36
11. Jahrgang 1995, 2. Quartal, DM 10.- 2/1995 Kreisalgorithmus Forth denkt - Windows lenkt Meßtechnik mit dem PC Multitaskingfähige Timerfunktion Hochsprachen in Silizium P 21 - Prozessor Forth Tagung ´95

Vierte Dimension 2/1995 11. Jahrgang - wiki.forth-ev.de4d1995_2n.pdf · als Editor mit 1,2 kDM so herrlich unterbezahlt wird, daß man auf Dauer keine Lust zu diesem Job haben kann

  • Upload
    vongoc

  • View
    230

  • Download
    1

Embed Size (px)

Citation preview

11. Jahrgang 1995, 2. Quartal, DM 10.-

2/1995

mKreisalgorithmus

mForth denkt - Windows lenkt

mMeßtechnik mit dem PC

mMultitaskingfähige Timerfunktion

mHochsprachen in Silizium

mP 21 - Prozessor

mForth Tagung ´95

Tel.: 0+381 -405 94 71 (Fax: -4059.471)Joachim-Jungius-Str. 9D-18059 Rostock

PC-basierende Forth-Entwicklungswerkzeuge,System comFORTH für DOS und Windows,Cross- und DownCompiler für diverseMicrocontroller, Controllerboards mit 80C196,80C537 und H8, Softwareentwicklung fürMicrocontroller und PC’s, auch unter Windows(und fremdsprachig)

Dipl.-Ing. Arndt Klingelnberg

Tel.: 0+2404 -61648 (Fax: -63039)Strassburgerstr. 12D-52477 Alsdorf (b. Aachen)

Computergestützte Meßtechnik undQualitätskontrolle, Fuzzy, Datalogger,Elektroakustik (HiFi), MusiCassette High-SpeedDuplicating, Tonband, (engl.) Dokumen-tationen u. Bed.-anl.

Ing.Büro Klaus Kohl

IngenieurbüroDipl.-Ing. Wolfgang Allinger

Tel. (+Fax.) 0+212-66811Brander Weg 6D-42699 Solingen

Entwicklung von µC, HW+SW, EmbeddedController, Echtzeitsysteme 1 bis 60 Computer,Forth+Assembler PC / 8031 / 80C166 /RTX2000 / Z80 ... für extreme Einsatzbedin-gungen in Walzwerken, KKW, Medizin,Verkehr / >20 Jahre Erfahrung.

ETA ElektrotechnischeApparate GmbH

Tel.: 0+9187 -10.0 (Fax: -10.397)Industriestr. 2-8D-90518 Altdorf (b. Nürnberg)

Produkte für EchtzeitanwendungenFRP1600: Echtzeitprocessor optimiert für ForthRP-PB1: FRP1600 Prototyping Board.

FORTecH Software GmbH

Tel.: 0+8233-30 524 (Fax: --9971)Postfach 11 73D-86406 Mering

FORTH-Software (volksFORTH, KKFORTHund viele PD-Versionen). FORTH-Hardware(z.B. Super8) und -Literaturservice. Professio-nelle Entwicklung für Steuerungs- undMeßtechnik.

Dienstleistungen und Produkte von Forthlern und/oder für Forthler (Anzeige)

Dienstleistungen und Produkte von Forthlern und/oder für Forthler (Anzeige)

Möchten auch Sie oder Ihre Firma hieraufgeführt werden? Bitte wenden Sie sich andie Anzeigenverwaltung (s. Impressum).

Ihre Anzeige plus 3 Zeilen je 45 Zeichen Textkosten 90.-DM (incl. 20.-DM Einrichtung/Änderung, je Zusatzzeile 10.-DM) und daskomplett für ein ganzes Jahr.

Zwischen den Tagungen..Wie geht es denn der Forth-Gesellschaft?Die Forth-Tagung im April´95 in Berlin

war sehr erfreulich. Auch wenn der eine oder die andere fehlte, so war das Programmdoch rundum gelungen. Ohne Jörg Plewes Bericht in diesem Heft allzusehr vorzugrei-fen: Forth wird GUI-fähig werden und seine Portabilität über Betriebssystemgrenzenhinweg erhöhen. Die anderen ´Einrichtungen´ der Forth-Gesellschaft,wie der Vertriebund der Microcontrollerverleih,schlafen auch nicht. Auch der Sysop der Mailboxschrieb einen Brief für´s Forth-Magazin. Die lokalen Gruppen sind wie immer vertre-ten. Erstaunlicherweisescheinen sie alle in und um Moers herum angesiedelt zu sein.

Das letzte Forth-Magazin kam zum ersten Mal aus Berlin. Die Leser und Leserin-nen nutzten die Gelegenheit und schrieben durchweg positive Leserbriefe. Die Re-daktion bedankt sich bei ihnen und veröffentlicht sie komplett. Die Redaktionsarbeitnimmt langsam Konturen an. Die Anzeigenverwaltung ist jetzt fest in der Hand vonUlrike Schnitter vom Forth-Büro. Rolf Kretzschmar bleibt ´seiner´ Zeitschrift treu understellt Zeichnungen. Ulrich Hoffmann und Fred Behringer sind als Kolumnisten ein-gestiegen zum Thema ANS-Forth resp. ´Forth International´.Über diese vielfältigeUnterstützung und die vielen von den LeserInnen eingesandten Kurzmeldungen freu-en wir uns besonders. Wird das Heft doch erst durch die Beteiligung vieler Menschenbunt, anregend, interessant und umfassend. Weitere Ideen sind jederzeit willkommen.

Der ´Terminkalender´ fehlt diesmal. Es mangelte sowohl an Einsendungen als auchan Platz. Aber das dürfte in der Urlaubszeit kaum auffallen.

Die Redaktionstechniknähert sich langsam einem gewissen Standard. Das DTP-System wurde - hoffentlich erfolgreich - geupdated. Dank Leserunterstützung funk-tioniert auch Ghostscript, sodaß auch PS und EPS-Dateien eingelesen werdenkönnen. Die Redaktion bittet, von der Einsendung weiterer Ghostscriptversionen ab-zusehen. Netzwerk und Telefonserver stehen noch nicht so ganz, daher mußten dieFaxfans diesmal andere Wege zur Redaktion einschlagen. Demnächst werden nochFreiwillige für das Pilotprojekt ´Autoren´ layouten selbst gesucht. Wer etwaszusätzliche Arbeit investieren kann und die Artikel z.B. mit WinWord schreibt, rufedoch bitte kurz mal vorher durch.

Tja, und was der Redaktion wohl immer am meisten fehlt, zeigt ein Blick auf dieUhr. Es ist Montag, der 12.6.95, 23:54 und die letzte U-Bahn geht demnächst.

Eine schöne Urlaubszeit wünscht

Claus Vogt, Berlin, Editor der VD

IMPRESSUM

Name der ZeitschriftFORTHMAGAZIN -VIERTE DIMENSIONOrgander Forth-Gesellschaft e.V.

HerausgeberinFORTH-Gesellschaft e.V.Postfach 111085701 UnterschleißheimTel./Fax: 089/3173784

Redaktion & LayoutClausVogtEbersstr. 10D-10827 BerlinTel.:030 /782 8179(Fax,BBSnachBedarf)Mail: [email protected]

Anzeigenverwaltung:UlrikeSchnitter c/oForth-Ges.;PF 1110; 85701 Unterschleißheim.ANS-Forth:UlrichHoffmann; [email protected]; Sehestädter Str.26;24340 Eckernförde.Forth international:Fred Behringer; PlaneggerStr.24; 8124 München.Zeichnungen:Rolf Kretzschmar;[email protected]

RedaktionsschlußJeweils2Monate vorErscheinen desHeftes.

ErscheinungsweiseViermal im Jahr.

PreisEinzelpreis: DM10,-

Manuskripte und RechteBerücksichtigt werden alle eingesandten Manu-skripte vonMitgliedern und Nichtmitgliedern. Le-serbriefe können ohne Rücksprache gekürztwiedergegeben werden. Für die mit dem Namendes Verfassers gekennzeichneten Beiträgeübernimmt die Redaktion lediglich die presse-rechtliche Verantwortung. Die in diesem Maga-zin veröffentlichten Beiträge sind urheberrecht-lich geschützt. Übersetzung, Vervielfältigung,Nachdruck sowie Speicherung auf beliebigeMedien ist auszugsweise nur mit genauer Quel-lenangabe erlaubt. Die eingereichten Beiträgemüssen frei von Ansprüchen Dritter sein.Veröffentlichte Programme gehen - soweit nichtanders vermerkt - in die Public Domain über. FürFehler im Text, in Schaltbildern, Aufbauskizzenetc., die zum Nichtfunktionieren oder evtl.Schadhaftwerden von Bauelementen oderGeräten führen, kann keine Haftungübernommen werden. SämtlicheVeröffentlichungen erfolgen ohneBerücksichtigung eines eventuellen Patent-schutzes. Warennamen werden ohneGewährleistung einer freien Verwendung be-nutzt.

Editorial

11. Jahrgang 1995, Nr. 2 3 Forth-Magazin ´Vierte Dimension´

Sponsoren gesucht!

Sicher möchten auch Sie etwas für die fleißigen Autorinnen und Autoren des Forth-Magazins lockermachen. Das geht ganz einfach:

Schicken Sie der Redaktion eine kleine Ankündigung, um was es sich bei dem Geschenk handelt -bitte schicken Sie nicht gleich das ganze Geschenk!

Wenn ein Autor sich Ihr Geschenk wünscht, dann benachrichtigen wir sie, wer der Glückliche ist.Sie senden es dann - zusammen mit Ihrem persönlichen Glückwunsch - direkt an den resp. dieBeschenkte.

Jupiter ACE - FORTH Pro-gramm-Handbuch

S. Vickers 1983, deutsch, 159 Seiten

Das Handbuch des einzigen Homecomputers,der FORTH als Betriebsystem hatte. FürMinimalisten und Oldtimer.

- gestiftet von Rafael Deliano

FORTH.Ein Geschenk für gute Freunde. In Gesellschaft am schönsten.

Um die Schublade der Redaktion besser mit Artikeln zu füllen, gibt es jetzt für jeden Autor einGeschenk als Anerkennung. Und damit es besser auf seinen/ihren Geschmack abgestimmt ist,kann es aus einer Liste ausgewählt werden. Diese wird durch Spenden gefüllt. EinigeGeschenke sind schon gebraucht, aber gut erhalten - manchmal längst vergriffen und damitrichtige Raritäten. Manches ist aber auch brandaktuell. Sollte man ein Geschenk nicht in seinHerz geschlossen haben, kann man es ja wieder spenden.

Steve JobsJ.S.Young 1988, deutsch, 495 Seiten

Von der Presse zum Kultbuch hochstilisiert, istes jedenfalls ein sehr gut geschriebenes Buch.Beleuchted die Microcomputerbranche zwi-schen 1975 und 1985 aus der Sicht von Apple.

- gestiftet von Rafael Deliano

Programmers at WorkS.Lammers 1986, englisch, 385 Seiten

Enthält Interviews die Lammers mit 20 Top-Programmierern geführt hat. U.a. Gates, Brick-lin, Hertzfeld, Kildall, Page, Warnock, Ra-skin,... Interessanter Einblick in die Innereiender PC-Softwareindustrie der 80er. Sowie inAnsichten und Arbeitstechnik derer die Erfolghatten. Auffällig wieviele von ihnen malFORTH programmiert haben.

- gestiftet von Rafael Deliano

Vom Mythos des Mann-MonatsF.P.Brooks 1972 (1987) deutsch 165 Seiten

Der Titel wurde zum Schlagwort. Das Buchwirkt auf den ersten Blick antiquiert, weil sichder Autor auf Erfahrungen bei IBM aus den60er Jahren stützt. Die Probleme der Software-entwicklung haben sich jedoch kaum geändert.

- gestiftet von Rafael Deliano

The Macintosh WayGuy Kawasaki 1988 englisch 209 Seiten

Der Inhalt befaßt sich mit Marketing vonStandardsoftware für Tischcomputer. Lesens-wert wird es durch seine umfassende Samm-lung industriespezifischer Jokes.

- gestiftet von Rafael Deliano

‘‘Schlagzeuger’’Linolschnitt 21 x 17 cm

Ein wirklich schönes Kunstwerk aus dergeübten Hand unseres langjährigen Editors.Eine Zierde jeder Wohnung.

- gestiftet von Rolf Kretzschmar

‘‘Fisch’’Linolschnitt 21 x 17 cm

Vermutlich aus der gleichen Periode seineskünstlerischen Schaffens stammt auch diesesWerk. Der Kulturbegeisterte erkennt das un-schwer an der Dynamik des Striches, derRezensent schließt es aus der Identität desFormats.

- gestiftet von Rolf Kretzschmar

Forth lernen mit dem ZFDas ideale Geschenk für Forth-Anfänger

Friederich Prinz hat hier ein wirklich schönesPäckchen gepackt. Es enthält das ZF, ein Forthaus der Hand von Tom Zimmer, das aberüberschaubarer als das F-PC ist und sich gut fürAnfänger mit DOS-Erfahrung eignet. Dazu gibtes zahlreiche Aufsätze von Friederich Prinz, diesich wiederholt in den Anfängerkursen derMoerser Forthgruppe bewähren mußten.

- gestiftet von Friederich Prinz

Forth-Magazin Vierte Dimensionvon hohem archivarischen Wert

Diese größte deutschsprachige Zeitschrift imForth-Bereich dürfte den meisten Lesern be-kannt sein. Weniger bekannt ist, daß einigelängst verschollen geglaubte Jahrgänge diesesBlattes völlig überraschend bei jüngsten Aus-grabungen im Keller des Forth-Büros gefundenwurden. InteressentInnen sollten diegewünschte Nummer angeben.

- gestiftet vom Forth-Büro & der FamilieSchnitter

F-PC - Das Buch zum ForthFür Ein-, Um- und Aufsteiger

Das F-PC ist sicher das derzeit meistbenutzteForth für PC. Es stammt wie das ZF aus derHand von Tom Zimmer und hat der Forth-Gemeinde neue Dimensionen geöffnet. JörgStaben ist es gelungen eines seinerEinführungsbücher, das monatlich in der c’tbeworben wird, vor dem Verkauf zu retten.Vom Forth-Zweizeiler bis zur Optimierung derwin.ini kann hier jeder was lernen.

- gestiftet vom Autor Jörg Staben

Das kleine Zeitgeistpaket

Wer den Timer des PC mit der Trial-And-Error-Methode bezwingen möchte, brauchtdieses Geschenk nicht. Doku-Freunde findenhier: Timer-Routinen des AT-Rom-Bios, 8254-Datenblatt,Register der RT-Clock...

- gestiftet von Claus Vogt

Sie schenken uns einen Artikel..Dafür möchten wir Ihnen auch ein kleines Präsent überreichen

... aus NebajSchal 2m lang, rot und gelb

Wer Nebaj nicht kennt, sollte es kennenlernen.Als Vorgeschmack gibt's einen Schal. DieMuster und Farben der Kleidung ist typisch fürjedes Dorf des guatemaltekischen Hochlandes.

- gestiftet von Holger Dyja

Autorengeschenke

Forth-Magazin ´Vierte Dimension´ 4 11. Jahrgang 1995, Nr. 1

Kreisalgorithmus von Ulrich Richter............9Wie werden aus der kreisförmigen Linie bunte Pixel

Forth denkt - Windows lenkt J.Plewe / W.Allinger ......11Ein Embedded Controller leistet die Arbeit - VisualBasic sorgt für das GUI-Feeling.

Das war die Forth Tagung ´95 von Jörg Plewe ..............15Direkt von der Jahrestagung - live berichtet!

Brief aus der Provinz von Friederich Prinz ......15Direkt vom Hüter des SWAP-Drachens!

Meßtechnik mit dem PC von Klaus Kohl...............20Im ersten Teil dieser Serie werden die verschiedenen Schnittstellen vorgestellt.

Multitaskingfähige Timerfunktionen von Bernd Beuster ........23Mit ein wenig Zeitsubstraktion braucht nicht jeder Task einen eigenen Timer.

Aber was passiert um Null Uhr Null?

Hochsprachen in Silizium von Rafael Deliano........31Der Zusammenhang von Prozessordesign und Programmiersprachen

läßt sich am besten anhand der historischen Entwicklung aufzeigen.

P 21 von Rafael Deliano........33Charles Moores neuester Prozessor

ist geeignet seinen Ruf als ´enfant terrible´ zu unterstreichen.

An oder Aus von Arndt Klingelnberg .34Eine schnelle Bitausgaberoutine

Es geht - ANS Forth! von Ulrich Hoffmann .....27Diesmal geht es in der ANS-Kolumne um ANS-Kontrollstrukturen.

Forth International von Fred Behringer .......28Diese neue Kolumne beschäftigt sich heute mit Forth in Frankreich, Holland, UK.

Weiterhin gibt es ´Gehaltvolles´ aus den ´Forth Dimensions´ und ´Het Vijgeblad´.

Inserenten2 Forthworks2 Holger Dyja2 Produkte von und

für Forthler36 FORTecH

Rubriken3 Editorial3 Impressum4 Autorengeschenke6 Leserforum35 Adressen und

Ansprechpartner

Forth-Gesellschaft8 Die Spezialisten26 Vertrieb26 Jagen und Sammeln26 Microcontrollerverleih26 Forth-Magazin sucht...

Projekte6 Braun Ludwig Junior8 Das Forth der Zukunft

Forth-Systeme24 Forth/2 für OS/219 pfe0911 uploaded

ANS19 DPANS94 im WWW19 Stand4th - Standardizer

Metasprachen19 Microsoft C intern

Forth inside19 Microsoft C intern24 Textverarbeitung30 IPS - Interpreter für

Prozeßstrukturen

Prozessorgeflüster19 Marc4:ASIC-Kern

aus Chemnitz

Kolumne:

Forth-Quellen19 pfe0911 uploaded

Bücher25 Hendtlass: Real TimeForth

Zeitschriften/Netz25 M&T:- NewMicros Inc & 68HC11- Die Forth-Spezialisten25 Design & Elektronik:- Sprachen auf 8-bittern- Experimente interaktiv

steuern25 Leo Brodie im WWW

Produktinfos25 Forth auf CD

Was noch24 Der Name ´C++´

Was fehlt:- Die Rubrik ´Anfänger´- Die Auflösung vom

Tausche-Rätsel- Der Artikel zum

Gray Parser

Direktorial

11. Jahrgang 1995, Nr. 1 5 Forth-Magazin ´Vierte Dimension´

als Editor mit 1,2 kDM so herrlichunterbezahlt wird, daß man auf Dauer keineLust zu diesem Job haben kann. Das ist abermeine PERSÖNLICHE Meinung. [die red.schließt sich dem vorbehaltlos an]. EineLösung zu diesem Dilemma müssen wir alsDirektorium bzw. Forth-Gesellschaft findenund tragen.

[email protected](Ralf Neuthe)

Die VD ist heute bei mir eingetroffen.Glueckwunsch. Sieht echt gut aus und istausserordentlichinteressant.

- Joerg

[email protected](JoergPlewe)

Reaktionen auf das Forth-Magazinvd 1/95

Hallo Claus,

ich habe heute die jüngste VD bekommen.Na, da ist Dir aber wirklich was gelungen

;-) Meine Hochachtung und meinen Dank -die Ausgabe 1/’95 ist inhaltlich gut underfreulich pünktlich ;-). Allerdings weiß ichnicht, wie Du auf den Gedanken kommst,daß diese Ausgabe - u.a. - ohne meineMitwirkung (welche ?) gar nicht möglichgewesen wäre...

Mach weiter [email protected] (Friedrich Prinz)

Herzlichen Gluckwunsch zu Deiner erstenVD. Man sieht (als Insider) dem Ding an,daß Du da tonnenweise Zeit reingesteckthast. Außerdem beglückwünsche ich Dich zuDeiner Zusammenarbeit mit Rolf. MitIllustrationen sieht so ‘ne VD einfach besseraus.

Eine Meckerei kann ich mir aber dochnicht verkneifen. Ist die Druckerei dieser VDwirklich so konkurrenzlos billig, daß mandiese scheiß Qualität akzeptieren muß? DasDeckblatt ist ‘ne Katastrophe und mit ‘nemMesser in der Hand mußte ich bis jetzt nochkeine Zeitschrift lesen. Aber der Inhalt dieserVD macht es wieder wett.

Auf der Forth-Tagung wird die VDgarantiert zu einem Thema. Dafür werdesicherlich nicht nur ich sorgen. Meine ganzpersönliche Meinung ist nämlich, daß man

Ich habe in der letzten VD die Adressender lokalen Gruppen vermißt? War der Platzzu knapp??

Thomas Prinz, [email protected]

[Für lokale Gruppen ist jede Menge Platzvorhanden /clv]

Internet, Schaltjahre, ANS in aBox...

Ich habe mal die VD 1/1995 durchgelesen,und folgendes ist mir aufgefallen:

Das Titelblatt sagt:”Mit der Mailboxdurch’s Internet”. Das Inhaltsverzeichnisreduziert das auf “Mit der MAilbox um dieganze Welt”. Mit dem Begriff “Internet”wird (meist) die Online-Verbindung gemeint,die dann alle hübschen Möglichkeiten wieFTP, WWW, und was es alles sonst noch sogibt, bietet. Hier gibt es (derzeit[*]) ‘nur’

Leserforum

68008 und 68001 Verkauf in Mio.Stückzahlen vorgesehen und möglich. DurchPCMCIA ROM Card für Amiga 600 und1200 wird das Commodore Betriebssystemausgeschaltet und durch neues ForthBetriebssystem ersetzt.

Infos unter Ludwig Braun junior, Postfach1236, 93328 Neustadt/Donau.

Kleinanzeige: Suche ForthProgrammierer, die mit F68k verschiedeneForth Anwendungen wie FIS oder in Forthgeschriebene Programmiersprachen neucoden wollen. Als Betriebssystem ist einkomfortables Forth BS auf Basis con F68kund Assembler für verschiedeneHardwareplattformenvorgesehen.

Bezahlung erfolgt auf gestaffelterStückzahlbasis.

Dokumentation muß mitgeliefert werden,bzw von Fremdautoren

erstellt werden dürfen.

Infos unter Ludwig Braun junior, Postfach1236, 93328 Neustadt/Donau.

Braun Ludwig Junior

Arbeitsgruppe: “60xxxBetriebssystem in Forth”

Fast immer ist die erste Sprache und daserste kleine Betriebssystem für neue Rechnerein Forth. Nur wird dann auf Basis von C einanderes Betriebssystem hochgepäppelt, weilkein größeres Forth Betriebssystem (gegenLizenzzahlungen) erhältlich ist. DiesemUmstande will ich abhelfen, indem ich aufBasis des F 68K von Jörg Plewe einallgemein erhältliches Betriebssystem mit derKommandosprache Forth zusammen mitinteressierten Leuten erstelle, und diesesBetriebssystem dann als Shareware angepaßtauf viele 68008, 68000, 68001, 68020 ohneMMU und alle sonstigen 68xxx CPUs ohneMMU, die ja in diversen Rechnernvorhanden sind, als Shareware und als OEMComputer mit eingebautem ROM Forthverkauft werden. Geld ist damit wirklich zuverdienen und es gibt ja einige Programmevon allgemeinen Interesse wie FIS, unddiverse Sprachen, in Forth geschrieben, dieangepaßt werden sollen.

Übrigens, zur Zeit (Okt.) besteht dieMöglichkeit über die Firma CommodoreAmigas mit einem eigenen Betriebssystem

(z.B. Forth) als OEM Produkte zu beziehen.Diese Möglichkeit will ich ausnutzen.

Braun Ludwig junior, 3.6.1995

Sehr geehrter Herr Vogt!

Ich möchte im Rahmen eines VierteDimension Sonderheftes Hardware Emufsmit einigen Besonderheiten veröffentlichen.Als Programmiersprache sollen ein ForthSystem, ein Basic System ein Modula2System und ein C System als Softwaremitgeliefert werden. Der Vertrieb soll anHändler und Endkunden über Klaus Kohlvon dem Forth Vertrieb erfolgen. Aninteressierte Ingenieure sollen Lizenzen undBlaupausen geliefert werden.

Braun Ludwig junior, 6.3.1995

Kleinanzeige: Suche Forth und AssemblerProgrammierer, die auf Basis von JörgPlewes F68K und Assembler einkomfortables Forth Betriebssystem fürverschiedene 68xxx Prozessoren wie 68008,68000, 68001, 68ec020, (A 600, A1200,68008 Einsteigercomputer, 68001Slotcomputer und ähnliche) schreibenwollen.

Gestaffelte Stückzahl Bezahlung.

Leserforum

Forth-Magazin ´Vierte Dimension´ 6 11. Jahrgang 1995, Nr. 2

Michael Schröder’s ‘XZF’ ist uns hier inMoers schon etwas länger bekannt. Von der‘Mäuseschieberoberfläche’ weiß ich, daß sieeinen DPMI-Manager dazu nutzt, mehrereAnwendungsprogramme quasi parallel zubetreiben und sich dabei - mehr schlecht alsrecht - abmüht, diese Programme inSpeicherbereichen zu halten, die vor- undgegeneinander geschützt sein sollen. OS/2stellt spätestens seit der Version 1.3ebenfalls einen DPMI- Manager zurVerfügung. Anders als Microsoft ist es IBMallerdings gelungen, diesen Part desProtected Mode laufsicher und stabil zuentwickeln. Das nutze ich seit vielen Jahrenfür mich dergestalt aus, daß ich ZF (und alleanderen DOS-Programme) in DOS-Sessionsvon OS/2 arbeiten lasse. Das

funktioniert reibungslos. Mehr hat michbisher am DPMI nicht

interessiert.Das ZF hat etwas mehr als 30.000 Byte

freien ‘Codespace’. Wenn es wirklich einmalknapp wurde, war es nie ein Problem, einoder zwei zusätzliche Segmente zuallokieren. Ein bißchen aufwendig war esschon, über die Segmentgrenzen hinweg eine‘saubere Verzeigerung’ zu organisieren.

Michael hatte von Anfang an neben denSourcen eine sehr ordentlicheDokumentation seinem ZF-DPMI beigefügt.Da war das erste Ausprobieren keinProblem. Und ich war angenehm überrascht,als ich durch .MEM-INFO angezeigt bekam,daß mir ‘irgendwo in den von OS/2verwalteten Ressourcen’ noch 4 MByteSpeicher zur Verfügung standen !Damitmußte ich sofort experimentieren.

Mit einigen ‘Dateiexperimenten’ hatte ichin diesem Speicherbereich so beeindruckendeErgebnisse, daß ich mich für das ‘ZF-DPMI’zu erwärmen begann. Vor allem dasSortieren einer großen Datei lief jetzt einfach

Das war es auch nicht. OS/2’sStandardeinstellungen für DOS-Sessionsstellen das DPMI aufein LIMIT von 4MByte ein. Das läßt sich natürlich ändern.,z.B. auf das Maximum von 512 MByte. Weildas ZF ein reines 16-Bit FORTH ist, sindmaximal 65 MByte nutzbar!

Durch Michael’s Arbeit eröffnen sich fürdie Bereiche Dateiverwaltung,Bildbearbeitung und für alle ‘Prozesse’, indenen möglichst viel Informationen imSpeicher eine möglichst hoheVerarbeitungsgeschwindigkeit mit sichbringen, ganz neue Möglichkeiten. Zudementfallen die gelegentlich lästigenÜberlegungen und Definitionen zu denbisherigen Segmentgrenzen der INTEL-Adressierungen.

Ich habe das XZF auf einem 80486/66DX2 unter OS/2 3.0 WARP ausprobiert,wobei die 20 MByte meines PC bisherentweder von OS/2 oder von diversenFlugsimulatoren genutzt wurden. Dank XZFkann ich, sobald sich eine entsprechendeGelegenheit ergibt, das RAM auch einmaletwas ‘sinnvoller’ nutzen.

[email protected] (Friedrich Prinz)Friederich Prinz

Forthgruppe MoersApril 1995

einen USENET-Anschluss. Das ist dieBeschränkung auf die Offline-DiensteNEWS & MAIL, also eben öffentlicheGruppen/Bretter/Areas und private Briefe.Allerdings kann man (fast) alle Online-Dienste auch mühsam per Mail erreichen.Hat aber das Problem, das dabei leichtriesige Datenmengen übertragen werden(Kosten!).

Seite 6: Schaltjahre sind solche, die sichohne Rest durch 4 Teilen lassen, nicht abersolche, die sich durch 100 ohne Rest teilenlassen, wohl aber wieder solche, die durch400 teilbar sind.

Seite 6: Der ANS-Standard-Entwurffindet sich in der Box im Pfad /usr/spool/uucppublic [nur für Online-Userinteressant] im dortigen Unterverzeichnisforth/diverse/ mit dem Namen “ans4-doc.zip” und ist 213 Kilobyte lang. XP-Userkönnen sich ihn bestellen...

Seite 22: Im Artikel schreibt MichaelSchröder: “Das DPMI-Paket habe ich ... inder Forthbox München und in der Box derMoerser Forthgruppe abgelegt” Ich hätte hierauch Platz dafuer, ich muss es nurirgendwoher bekommen... [Du hast es schonim VD-Listing ´VD-9501.ZIP´ /clv].Genauso können natürlich andere Paketehier abgelegt werden. Es gibt schon ein DOS(Ewald Rieger) und ein 68K (Jörg) -Paket.

Seite ‘35’ (hintere Umschlagseite innen)KI: Ulli Hofmann hat eine neue Telefon-Nummer. Mailbox: Meine Privat-Nummer istnicht mehr 333572, sondern 533 98 98. Beiallen Telefonnummern dort ist ”0+VORWAHL ” angegeben. Ich würdeentweder das “+” oder die “0” weglassen...

Gruss, [email protected], April ´95

[Die Redaktion lädt Dich hiermitausdrücklich zu einer regelmäßígen

Kurzmeldung/Rubrik ´Neu in der KBBS´ ein.Vielleicht gemeinsam mit dem Forth-Vertrieb

´Klaus Kohl´? /clv]

Achtung: Nicht schalten! in vd1/95

Ja, die VD ist da. Pünktlich zu Beginn deszweiten Quartals. Die paar Tage holst Dunoch auf, dann erscheint die VD sogar indem Quartal, das auf der Titelseite steht :-)!

Ach ja, an Aprilscherzen ist mir beimersten Durchlesen nur einer aufgefallen: Das

Die Meinung unserer Leser undLeserinnen veröffentlichen wir

gerne. Nur kurz sollte es sein, sonsttrifft uns die Pflicht zur Kürzung.Die Redaktionsadresse lautet:

Forth-Magazin 'Vierte Dimension'Claus Vogt, Ebersstr. 10,D-10827 Berlin, [email protected]

Jahr 2000 sei kein Schaltjahr. Das ist falsch.Das Jahr 2000 ist, wie alle durch 400teilbaren Jahre, ein Schaltjahr. Nur das Jahr1900 oder etwa 2100 sind (seit Papst GregorVI.) keine Schaltjahre. Deshalb können wiralle noch getrost weiter “ewige” Cäsar-Kalender programmieren, bis das auffällt,sind wir längst tot ;-).

Bernd Paysan“Late answers are wrong answers!”

http://www.informatik.tu-muenchen.de/cgi-bin/nph-gateway/hphalle2/~paysan/[email protected]

(Bernd Paysan), 7.4.95

VD - Kommentar, “100 Tage neueMailbox” in vd 1/95

Ein Kommentar zur letzten VD, prima!Loest in mir immer unangenehme Gefuehleaus -- eigentlich wollte ich doch schon seitlangem.

Ich moechte lediglich den Artikel “100Tage neue Mailbox” kommentieren. Auchich habe Crosspoint eine Zeitlang benutzt,auf dem PC ist das Programm sicherlichkonkurrenzlos guenstig/komfortabel/leistungsfaehig.

Aber: Von anderen UUCP Umgebungenmit modernen News/Mailreadern trennen esdoch noch Welten. Als Frontend fuermail/news brauchbar .. aber mehr auch nicht.

z.B Taylor-UUCP ( bei mir unter RiscOSaber auch unter LinuX ...): Nach kurzerEinarbeitung lassen sich problemlosZusatztools schreiben, bei mir laufen einmail-server ( als RiscOS-Forthmacs support )und eine mailing-list ( alle in Forthmacsgeschrieben ) ohne Problem. Wie so vieleDOS Loesungen ist dieses wieder einabgeschlossenes Programm ( mit zugegebenvielen Optionen ), aber eben nur deneingebauten.

Hat eigentlich schon jemand versucht,XP-uucp von Forth aus zu nutzen? --

[email protected](Hanno Schwalm)

“Extending Forth” in vd 1/95

Zur Anmerkung (3) des Autors auf S.22:XZF läuft unter der OS/2 Warp

Kompatibilitätsbox, wenn man bei denEinstellungen

DPMI_DOS_API ENABLED

eingibt. Die Defaulteinstellung AUTOliefert zwar TRY-PM o.k., aber nach einemALLOC ist der Selektor ungültig (kann manmit .SEL/DESC-INFO nachvollziehen).Übrigens - ein gut geschriebener Beitrag!

Gruß [email protected](Bernd

Beuster)

Forth.Kurz und Knapp. Das kommt

Leserforum

11. Jahrgang 1995, Nr. 2 7 Forth-Magazin ´Vierte Dimension´

ANS und Standard-Forth:Ulrich Hoffmann;

[email protected]; Sehestädter Str. 26;

24340 Eckernförde.

Forth international:Fred Behringer; Planegger

Str. 24; 81241 München.

Aufbau Lokale Gruppen und globaler Utopien:

Friederich Prinz; [email protected]; Homberger

Str. 335;

Anzeigenverwaltung:Ulrike Schnitter c/o

Forth-Ges.; PF 1110; 85701 Unterschleißheim.

Zeichnungen:Rolf Kretzschmar; rolf.kretzsch-

@forth-ev.de

Noch Fragen?Sonstiges:Claus Vogt; [email protected]; Eberstr.

10 10829 Berlin.

Worteverkehrt rumauf demStack...

Liebe Redaktion

Wer legt in F83 eigentlich fest, daßdoppeltgenaue Ganzzahlen in 2VARIABLEnund auf dem Stack verdreht abgelegt werden

und warum ? Beispielsweise erscheint12345678. in einem DUMP-Auszug als 34

12 78 56 und nicht, wie es logisch wäre, als78 56 34 12. - Der Transputer T800 ist in

jeder Hinsicht “little-endian”.Also habe ichin meinem Transputer-Forth-SystemF-TPdiese Verdrehung von Anfang (1990) an“berichtigt”. - Wie ist es bei dpANS-5 ?

Wenn anderer-seits überhaupt keineAbspeichervorschriftbesteht, dann sind so

unschuldige Worte wie : U.R 0 SWAP D.R ;(für F83, F-PC und Turbo-Forth)

systemabhängig: : U.R 0 -ROT D.R ; (beimir seit 1990 in F-TP). Mir sind diese Dinge

(wieder mal) beim Lesen des sehrinteressanten Artikels “Omzetting van de83-standaard naar dpANS-5” von WillemOuwerkerk in der Nummer 44 (1994) der

auch im Ganzen nicht minder interessantenZeitschrift “Het Vijgeblad” der holländischen“Forth-Gebruikersgroep”in der HCC (Hobby

Computer Club) aufgefallen.

Fred Behringer, München

Antwort:

Ein für die Portierung von Programmennicht zu unterschätzendes Problem ist dieFrage, in welcher Reichenfolge einzelne

Teile der Zahlenrepräsentationim Speicherabgelegt werden (Endianess). Um effiziente

Programme zu ermöglichen, erlaubt der ANSForth Standard eine beliebige Anordnung der

Daten innerhalb einer einzelnen Zelle(einfachgenaue Zahl), wodurch die

Implementierungvon @ (´Fetch´) und !(´Store´) auf entsprechende Wort-Befehle derHardware zurückgreifen kann. Diese Freiheit

ist nur dann störend, wenn einfachgenaueZahlen nicht als Einheit bearbeitet werden(z.B. Daten mit C! schreiben und mit @

lesen), was eher selten geschieht. Anders beidoppeltgenauen Zahlen, die nicht nur als

eine Einheit sondern eben oft auch als höher-und niederwertiger Teil behandelt werden.Für portable Programme muss also deren

Reihenfolge festgelegt werden. ANS Forthlegt hier die historisch übliche Reichenfolge:‘höherwertige Zelle oben auf dem Stack undan niedrigeren Adressen’ fest. Dies führt zu

einfacheren Umwandlungen zwischeneinfachgenauen und doppeltgenauen Zahlen.

Entsprechendes legt auch der Forth-83Standard fest.

Ulrich Hoffmann, Eckernförde

q

Das Forth derZukunft

Hallo FORTHer,

F83 war lange genug Standard, um immerwieder einer ganzen Reihe ImplementiererOptionen genug zu lassen, aus eben dieser

Reihe zu ‘tanzen’. ANSI, die Spaetfolge allerVersuche die gerade erwaehnten

Implementiererwieder in die bewusste Reihezu locken, ist kaum mehr als eine Totgeburt.

Schliesslich ‘macht’ ANSI nichts Neues,sondern beschraenkt sich darauf, auf neue

Art in alte Fehler zu stolpern. Insbesonderewerden von ANSI die Moeglichkeiten

moderner Prozessoren undBetriebssystemkonzeptenicht

beruecksichtigt.Einen Trabbi rosaanzustreichen und mit Ralleystreifen zu

bekleben, macht aber auch keinen Formel 1Wagen aus diesem Automobil...

Mir schwebt ‘ein ganz neues FORTH’vor. Das sollte die Moeglichkeiten des

Protected Mode der INTEL-CPUs nutzen,das preemptive Multitasking von OS/2,

UNIX und Anderen und, wenn moeglich,auch die Optionen der graphischen

Oberflaechen eben dieser Systeme fuer sichselbst und fuer alle Applikationen nutzbar

machen.Einen Ansatz dazu hat Ulf Stelbe auf derdiesjaehrigen FORTH-Tagung bereitsgeliefert, der FORTH-Systeme (sehr

vereinfacht) nur noch als indirekt gefaedeltenFadencode implementierenund alle ‘echten’Codes in DLLs auslagern moechte. Dieser

Ansatz birgt meines Erachtens entscheidendeNachteile, ist aber ganz sicher mehr als nur

‘diskussionswuerdig’.Zu einer solchen Diskussion (natuerlich

nicht nur ueber Ulf Stelbe’s Ansatz) rege ichan, lade ich ein, fordere ich auf - wie auchimmer. Ich moechte gerne ein ‘utopisches’FORTH diskutieren, frei von F83, frei von

ANSI und frei von allen bisherigen,bekannten Strukturen. Lasst und einfach

einmal eine Weile ein wenig ‘spinnen’ (Daskoennen wir FORTHer doch ohnehin am

besten, sagt man...). Lasst uns versuchen, ein“FORTH der Zukunft” zu entwerfen, demJede(r) (vom Anfaenger bis zum Profi !!!)seine Ideen und Vorstellungen mitgeben

sollte.Ich biete mich an, alle dazu eingehenden

Statements zu sammeln und, gegebenenfalls(das hoffe ich aber sehr) zusammenzufassen.Dazu werde ich diese Message gleichzeitigin Z-NETZ\SPRACHEN\FORTH und in

DE\COMP\LANG\FORTH absetzen, sowiedem Claus Vogt fuer eine der naechsten VDs

senden.

...und jetzt lasst mal ‘hoeren’...

F.Prinz, Forthgruppe Moers, 28.Mai1995

Fragen

Sie sich

auch manchmal,

warum sie sich

selbst fragen,

statt mal

jemand anders

zu fragen?

Wir

auch!

Und zwar uns!

Die Spezialisten

vom Forth-Magazin ...

Forth-Magazin ´Vierte Dimension´ 8 11. Jahrgang 1995, Nr. 2

Wenn derKreisbogen aneinem beliebi-gen, mathemati-schen Punkt ´P´exakt einen derphysikalischen Punkte der Bildschirm-matrix ´schneidet´, dann läßt sich dieserPunkt völlig problemlos auf dem Bild-schirm darstel-len. Allerdingsist die ´Inkon-gruenz´ zwi-schen Mathema-tik und Technikw e s e n t l i c hhäufiger anzu-treffen.

Der mathematisch exakte Punkt ´P´läßt sich mit eben dieser Exaktheit garnicht in der relativ groben Matrixbeschreiben. Statt dessen könnten dreider Bildpunkte für den mathematischenPunkt ´zuständig´ sein. Es gilt also,denjenigen Punkt herauszurechnen, der´am wenigsten fasch´ ist.

Nun kommt als weitere Komplikationhinzu, daß Computer eigentlich garnicht mit der mathematischen Exaktheitarbeiten können, die hier gefordert ist.Tatsächlich ´kennen´ Computer keineZahlen mit Nachkommastellen, sondernnur integere (ganzzahlige) Zahlen. Diemittels Programmroutinen nachgebilde-ten ´Fließkommaeigenschaften´ kostenden Computer sehr viel Rechenzeit, diebei der Berechnung eines einzelnen

Lösung

Der Grundge-danke ist zunächst,daß sich, währendder Kreisbogen ge-zeichnet wird, sehrviele rechtwinkeli-ge Dreiecke erge-ben. Und für diese Dreiecke lassen sicheine Reihe von Aussagen treffen. ZumBeispiel ist die Hypothenuse -r- fürjedes dieser Dreiecke gleich. Die Seite-y- jedes Dreiecks ist immer um -1-größer als es das -y- des vorhergegange-nen Dreiecks war. Die Seite -x- wirdallmählich kürzer, während -y- wächst,allerdings nicht stetig, sondern entspre-chend dem Tangens, der sich bei jedemeinzelnen -y- einstellt. Von -x- läßt sichaußerdem sagen, daß es im ´allererstenDreieck´ gleich dem Radius -r- ist,wobei -y- dann -0- ist.

Die wichtigste Aussage ist aber si-cherlich, daß für rechtwinklige Dreieckeneben der Trigonometrie auch nochPythagoras´ Lehrsatz gilt

Und nach Pythgaros gilt für jedesdieser Dreiecke r2 = x2 + y2.

Wenn es, wie zu Anfang beschrieben,darum geht, aus mehreren möglichenPunkten denjenigen herauszufinden, der´am wenigsten falsch´ ist, dann kann esdazu eigentlich kein genaueres´Meßinstrument´ als den Radius geben.Es geht also darum, denjenigen Punktherauszufinden, der dem gefordertenAbstand zum Kreismittelpunkt amnächsten kommt. Das zwingt aber zueiner ständigen Fehlerkorrektur !

Man stelle sich einmal einen ´etwasgrößeren´ Radius vor. Während -y-bereits 9-Mal verändert wurde, mußte zuBeginn der Steigung -x- erst 1-Malverändert werden. Sehr wahrscheinlichist diese Veränderung von -x- gar nichtgenau ge-nug. Undzuvor war- x -überhauptn i c h tverändertw o r d e n ,

Kreisalgorithmusvon Ulrich Richter

Oberwallstraße 4, 47441 Moers

Problematik: Beim Zeichnen eines Kreisbogens mit einem beliebigen Radiusum einen Mittelpunkt herum, lassen sich eine Reihe ganz unterschiedlicher,aus der Mathematik sattsam bekannter Lösungsansätze wählen, von denenin der Regel diejenigen bevorzugt werden, die mit Winkelfunktionen arbeiten.Solche Lösungsansätze sind mathematisch ausreichend genau - wenn manden Kreisbogen auf einem Blatt Papier darstellen will.

Auf dem Computerbildschirm steht der Routine die den Kreisbogen zeichnensoll aber kein Papier zur Verfügung, sondern eine Matrix aus Punkten. Hierbeginnen die ersten Schwierigkeiten.

Stichworte: Grafik Kreis

Bildschirmpunktes nur Bruchteile einerSekunde ausmacht, sich aber bei derBerechnung eines kompletten Kreisbo-gens schnell zu deutlich sichtbar ver-streichender Zeit aufsummiert. Gleichesgilt für transzendente Funktionen (wiedie Winkelfunktionen). Auch dieseFunktionen muß der Computer mittelsspezieller Programmroutinen nachbilden- bei noch wesentlich größerem Rechen-zeitverbrauch, als dies für Fließkomma-operationen notwendig ist.

Und auch der Gebrauch von Multipli-kationen und Divisionen verbietet sichim Grunde immer dann, wenn einProgramm schnell arbeiten soll. Selbstdie in der Prozessorhardware direkt´verdrahteten´ Multiplikationsbefehlebenötigen noch ca. 65 Mal so viel Zeitwie eine Addition. Noch wesentlichungünstiger ist das Verhältnis zwischenDivision und Subtraktion.

Nun läßt sich (beinahe) jede mathe-matische Operation (wenn man einigeÜberlegungen investiert) auf eine Addi-tion zurückführen [siehe FORTH-Kursfür Einsteiger, Grundlagen-Arithmetik,Forthgruppe Moers], was zumindestschon einmal den Verzicht auf Multipli-kationen und Divisionen denkbar wer-den läßt. Es müßte halt zusätzlich einenWeg geben, den exakten Verlauf einesKreisbogens so zu beschreiben, daß manauch auf Winkelfunktionen verzichtenkann. Einen solchen Weg hat UlrichRichter aus der Forthgruppe Moersaufgezeigt.

Kreisalgorithmus

11. Jahrgang 1995, Nr. 2 9 Forth-Magazin ´Vierte Dimension´

r2 - x2 - y2 = Fehler

Der Fehler ist dabei ein Wert < 0,weil x stets um seinen Fehlbetrag zugroß bleibt. Je länger x nicht korrigiertwird, umso größer wird der Fehler inseinem absoluten Betrag. Das zweite zuprüfende Dreieck läßt sich durch seineVeränderung zum aktuellen Dreieckbeschreiben mit:

-2y - 1

-2y -1 ist die Differrenz zum vorheri-gen Dreieck, wobei hier sofort ange-nommen wird, daß y zwar relativ zurAbszisse wächst, in seinem tatsächlichen´Wert´ aber fällt, weil es sich auf demBildschirm ´nach oben´ bewegt, also zueiner jeweils kleineren Zeilennummerhin. Der Ausdruck kommt durch einfa-ches Ausmultiplizieren zustande, wennman annimmt:

(y-1)2 = (y-1)(y-1) = y2-2y+1

Wenn also ´-1 ´ die Veränderung voneinem y zum nächsten y ist, dann wirdvon einem y2 zum nächsten y2 dieVeränderung -2y-1 betragen.

Das läßt sich auch ´visualisieren´, wiedie Skizze zeigt.

Nun läßt sich definieren:

r2-x2-y2-2y-1=Delta1

und für den Fall, daß x und y´nachgezogen´ werden:

r2-x2-y2+2x-2y-2=Delta2

Dabei ist im letzten Ausdruck derx-Anteil positiv, weil das ´Verringern´von x numerrisch ein ´Anwachsen´ von

x zur Folge hat. Und 2x -2y -2 istnatürlich nichts Anderes als 2x-1-2y-1.

Jetzt läßt sich aber erkennen, daß -x-spätestens dann ´nachgezogen´ werdenmuß, wenn Delta1 größer als Delta2wird - weil dann der Fehler in -x- mehrals einen ganzen Punkt ausmacht.

Man könnte nun also einen Algorith-mus festlegen, der natürlichsprachlichetwa so aussieht:

solange x nicht in seiner Endposition ist

(oder y)

mache Folgendes

setze den durch x und ybeschriebenen Punkt

r2-x2-y2-2y-1= Delta1

r2-x2-y2+2x-2y-2= Delta2

y = y-1

wenn Delta1 > Delta2dannx= x-1

wiederhole

Hierzu läßt sich, wie später eineFORTH HighLevel Implementierungzeigen wird, durchaus noch etwas ver-einfachen. Schließlich soll die Bildungder Quadrate vermieden werden.Tatsächlich kann noch auf mehrereBerechnungen verzichtet werden, wennman noch zwei oder drei weitereGedanken in den gerade beschriebenenAlgorithmus investiert.

Aus der ´Herleitung´ von -2y-1 läßtsich zum Beispiel sehen, daß in derRegel der numerische Abstand vonr2-x2-y2 zum nächsten r2-x2-y2 ebenfalls-2y-1 sein muß. Wenn -x- noch nicht´nachgezogen´ wurde, -y- abergrundsätzlich immer um 1 dekrementiertwird, dann gilt für jeden dieserAusdrücke

r2-x2-(y-1)(y-1) = r2-x2-y2-2y-1

Folglich läßt sich der gesamte´pythagoräische Teil´ zusammenfassenund in einer Variablen unterbringen, dersich zum Beispiel der Name PYTHgeben läßt. Von dieser Variablen läßtsich aber wiederrum sagen, daß sie zumStart der Routine den Wert 0 enthält und´in der Regel´ bei jedem Schritt um 2y-1verringert wird. Die 0 zum Start derRoutine erkärt sich natürlich einfach ausder Erkenntnis, daß -x- zu Anfanggleich -r- ist, während -y-, weil nochnicht verändert, gleich 0 ist. Von PYTH

während -y- bereits 8 Schritte ´gewach-sen´ ist.

Ganz sicher stimmt Pythagoras hiernicht mehr !

Die Gleichung r2 = x2 + y2 schleppthier also einen Fehler mit sich herum,dessen gelegentliche Korrektur sich dar-in äußert, daß -x- um 1 verkleinert wird.Nun erfolgt diese gelegentliche Korrek-tur nicht in festgesetzten Intervallen.Wie schon aus der Skizze zu sehen ist,wird sie bei wachsendem -y- immerhäufiger erfolgen müssen. Wenn -r-unter einem Winkel von 45o zur Abszis-se steht, ist das Verhältnis von x:y exakt1:1. Und wenn -y- weiter wächst, kehrtsich das Verhältnis sogar um. Dann wirdstets -x- um 1 verändert, während dieKorrekturen an -y- immer seltenererfolgen.

Mit anderen Worten: Nach der erstenFehlerkorrektur wird (sehr wahrschein-lich) ein Rest-fehler übrig bleiben. Aufdiesen Restfehler müssen sich die Feh-leranteile der weiteren y-Operationenaddieren, bis zur nächsten Korrektur, diedann ´etwas früher´ erfolgen muß -usw.. Diese sich automatisch anpassendeFehlerkorrektur und -fortführung faßtUlrich Richter in folgenden Gedankenzusammen:

Es müssen immer drei möglichePunkte untersucht werden, wovon einerdurch das aktuelle Dreieck beschriebenwird, ein anderer durch das aktuelleDreieck plus der anstehenden y-Operati-on und der dritte durch das aktuelle

Dreieck plus der anstehenden y-Opera-tionen und minus der letzten x-Operati-on.

Dabei läßt sich das aktuelle Dreieckeinfach beschreiben mit:

Kreisalgorithmus

Forth-Magazin ´Vierte Dimension´ 10 11. Jahrgang 1995, Nr. 2

wenn -r-un-ter einemWinkel von45o zur Ab-szisse auf-steigt. Des-h a l bbenötigt derAlgorithmusaber keineW i n k e l -funktionen. Weil hier nur der Funktions-wert eines einzigen Winkels gebrauchtwird, läßt sich dieser einfach in derRoutine ´fest verdrahten´. Nimmt manden Sinus von 45o mit 0,7071 an, erhältman, nach entsprechender Skalierungmit 10000, auch bei integeren Rechen-operationen eine mehr als ausreichendeGenauigkeit bei der Bestimmung derGrenze.q

sich nur bis zueinem Winkel von45o aufrecht erhal-ten. Danach kehrtsich dasVerhältnis zwi-schen x und y um,d.h. nun müßte -x-grundsätzlich um1 weitergesetzt

werden.Das ist nicht weiter tragisch, denn ein

wirklich schneller Kreisalgorithmusrechnet ohnehin nur einen 8-tel Kreisbo-gen aus und ´spiegelt´ anschließend dieeinzelnen Punkte auf die anderen Ach-tel.

Die Frage ist also nur noch, wie sichdie Grenze am einfachsten feststellenläßt. Auf der Skizze ist zu sehen, daß-x- den Wert von r * sin(45) annimmt,

läßt sich zudem sagen, daß dieserAusdruck immer dann wenn Delta1 >Delta2 ist, zusätzlich um 2x-1 verändertwird. Damit können die Multiplikatio-nen bei der Bildung der Quadrateentfallen. PYTH läßt sich um ´festste-hende´ Ausdrücke per Subtraktion undAddition verändern !

Diese ´feststehenden Ausdrücke´, z.B.-2y-1, ändern sich aber untereinanderebenfalls kontinuierlich. So gilt alsAbstand von einem 2y-1 zum nächsten2y-1, daß der jeweils nächste Ausdruckin seinem -y- bereits ebenfalls wiedereinen um 1 geringeren Wert enthält, alsdas vorhergegangene -y-. Also läßt sichauch schreiben

-2y-1 = -2(y-1)-1 = y-1-y-1-1 = -2y-3

wodurch sichtbar wird, daß der Ab-stand zwischen

den Abständen der Quadrate (jetztgeht es natürlich verwirrend tief) stets 2beträgt. Selbst-verständlich kann ein´pfiffiger´ Algorithmus das ebenso nut-zen wie die Zusammenfassung beiPYTH. Weitere Rechenarbeit kann ein-gespart werden, für das ´DeltaY´ ebensowie für das ´DeltaX´.

Mit den bisherigen Überlegungen istes problemlos möglich, den Kreisbogenüber Pythagoras zu beschreiben undgleichzeitig sowohl Rechenschritte ein-zusparen, als auch auf zeitintensiveMultiplikationen und Divisionen (fast)vollständig zu verzichten. Lediglichzwei Multiplikationen sind zu Beginnder gesamten Kreisroutine noch notwen-dig. Zum Einen muß für das ersteDeltaX, daß sich, entsprechend dembisher Gesagten als 2*Radius -1 defi-niert, eine Multiplikation mit 2durchgeführt werden, die aber in denmeisten Forthsystemen als Verschiebe-operation nach links definiert und damitnoch schneller als eine Addition ist.

Zum Anderen muß die Grenze für x(oder y) bestimmt werden. Hierzu istnoch ein weiterer, kurzer Gedankenotwendig.

Die Vorgehensweise -y- bei jedemSchritt um 1 zu verändern, und nur dann-x- ´nachzuziehen´, wenn die beschrie-benen Bedingungen erfüllt sind, läßt

\ Der KREI S - nach Ul r i ch Ri cht er\\ mögl i cher wei s e geht ' s s chnel l er - aber ganz s i cher ni cht exakt er !\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0 CONST ANT Pyt h \ Radi us ^2 - X^2 - Y^2 0 CONST ANT dX \ 2X - 1 0 CONST ANT dY \ 2Y - 1

0 CONST ANT xEnde

: Kr ei s ( x y Radi us ) \ Da s t eckt der ' Ri cht er ' dr i n ; - ) \ s i ehe Bes chr ei bung. . . DUP =: x1 \ x1 = Radi us 0 =: y1 2* 1- =: dX \ dX St ar t = 2Radi us - 1 0 =: dY \ dY St ar t 0 =: Pyt h \ St ar t =: y2 \ y2 ent s pr . y- Mi t t e =: x2 \ x2 = x - Mi t t e

x1 7071 U* D \ Das Mi ni mum, z u dem s i ch x 10000 UM/ MOD \ hi n bewegen muß ent s pr i cht =: xEnde \ Radi us * S i n( 45) , al s o DROP \ Radi us * 0, 7071

BEGI N \ . . . s ol ange x1 s ei n Z i el x1 xEnde > WHI LE \ ni cht er r ei cht hat\ . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - x2 x1 - y2 y1 - \ . . . Punkt e s et z en 2DUP Pi xel y1 2* + 2DUP Pi xel SWAP x1 2* + SWAP 2DUP Pi xel y1 2* - Pi xel x2 y1 - y2 x1 - 2DUP Pi xel x1 2* + 2DUP Pi xel SWAP y1 2* + SWAP 2DUP Pi xel x1 2* - Pi xel\ . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - Pyt h dY - ABS =: Del t a0 \ Fehl er pr üf ung dur chf ühr en Pyt h dX + ABS dY - ABS =: Del t a2\ . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - . - Pyt h dY - =: Pyt h \ Di f f . z um nächs t en y^2 abz i ehen dY 2+ =: dY \ akt uel l es y^2 anpas s en y1 1+ =: y1 \ y i nkr ement i er en

Del t a0 Del t a2 > I F Pyt h dX + =: Pyt h \ wenn der Y- Fehl er gr ößer dX 2- =: dX \ al s der X- Fehl er wi r d, muß x1 1- =: x1 \ x auch angepaßt wer den T HEN REPEAT ;

Kreisalgorithmus

11. Jahrgang 1995, Nr. 2 11 Forth-Magazin ´Vierte Dimension´

und sich aus einem VorratsbehälterNachschub besorgen können. Des weite-ren gibt es acht Meßeingänge, die dasSignal eines Sensors über einen A/

D-Wandler verfügbar machen. Jeweilseine Bürette mit einem Meßeingang istauf einem Einbauelement untergebracht,

ProjektbeschreibungSachlich geht es darum, das Langzeit-

verhalten bezüglich des pH-Wertes vonStoffen zu bestimmen, die auf einerDeponie eingelagertwerden sollen. Dazugibt es normierteTests, in denen eineLösung des betref-fenden Stoffes übereine gewisse Zeit(24h) auf einen kon-stanten, vorgegebe-nen pH-Wert titriertwird. Dabei kann essein, daß nur basisch,nur sauer oder aberbeides titriert werdenkann. Der pH-Ver-lauf über die Zeitsowie die zugegebe-nen Base-/Säuremengen gebenanschließend dem Fachmann Aufschlußüber das Langzeitverhalten. Vorgesehensind auch andere Tests, in denen z.B.neben dem pH-Wert auch Temperaturo.ä. erfaßt werden kann.

Bei dem Gerät handelt es sich umeinen Aufbau, der relativ selbständig beider Arbeit ist. Es hat die Aufgabe, diechemischen Versuche automatisch anbis zu acht unabhängigen Probendurchzuführen (auch asynchron) unddabei den Versuchsverlauf durchständige Messungen zu protokollieren.

Der Aufbau besteht aus acht motori-sierten Büretten, die, gesteuert vonjeweils einen eigenem Microcontroller,ihren Inhalt schluckweise preisgeben

das als fertiges Bauteil geliefert wirdund über eine serielle Leitung verfügt.

Die Büretten geben nun ihren Inhaltin eine Probenflasche ab, wobei aberauch zwei Büretten (eine mit Säure, einemit Base) eine einzige Probe bedienenkönnen. Damit kann das Gerät minimalvier, maximal acht Versuche gleichzeitigfahren.

Ihre Kommandos erhalten dieBüretten von einem Z80-Microcontrol-ler, der auf einem kommerziellverfügbaren Board untergebracht ist.Dieser hat gleichzeitig die Aufgabe, dieMeßergebnisse vom A/D-Wandler zubesorgen.

Die vollständige Regelung sowie dasLoggen der Meßwerte werden vom Z80übernommen. Dieser kommuniziert mitdem PC über eine schlichte serielleLeitung. Versuche werden vom PC ausparametrisiert und getriggert (starten-beenden). Der PC übernimmt die Versu-chergebnisse und stellt sie dar.

Die Konfiguration des Gerätes istvollkommen wahlfrei. So können bei-spielsweise die Büretten der Einschübe3 und 7 in eine Probe titrieren, währendder pH-Wert am Meßeingang von Ein-schub 4 aufgenommen wird.

Vorgeschichte

Das Projekt begann damit, daß dasIngenieurbüro Allinger den Auftrag er-hielt, die PC-Software unter Windows(natürlich) zu erstellen. Die Microcon-trollersteuerung sollte von einer anderenFirma kommen, die bereits in einVorgängergerät wie auch in die aktuelleSteuerung einige Mannjahre investiert

Forth denktWindows lenktJörg Plewe, Wolfgang Allinger

Haarzopfer Str. 32; 45472 Mühlheim

Solche Projekte gibt es alle Tage: Ein Gerät ist mit einem Mikroprozessor undserieller Schnittstelle ausgerüstet und wird von einem PC überwacht und/odergesteuert. Dabei wird das Gerät vom PC meist über ein mehr oder minderabstruses Protokoll angesprochen, das in der Regel vom Gerät bestimmtwird. Schön ist es, wenn dieses Protokoll Forth heißt und der Benutzer freutsich, wenn er neben seiner harten Arbeit mit dem Gerät nebenbei noch ‘Tetrisfor Windows’ genießen darf.

Stichworte: Windows Z80 Meßtechnik embedded

Z80 Forth ROM

RAM 512kB

ADC

Die Büretten geben

ihren Inhalt in eine

Probenflasche ab,

wobei aber auch

zwei Büretten eine

einzige Probe bedie-

nen können. Damit

kann das Gerät mini-

mal vier, maximal

acht Versuche

gleichzeitig fahren.

Forth denkt

Forth-Magazin ´Vierte Dimension´ 12 11. Jahrgang 1995, Nr. 2

Implementation

Die Implementationdes Forth-Programmsauf dem Microcon-troller wird denjeni-gen, die schon einmalmit so etwas zu tunhatten, nicht unbe-kannt vorkommen. Eslaufen drei Tasks:

§ Kommunikationmit den Büretten§ Datenverwaltungund Regelung§ Kommunikationmit dem PC

Diese drei Tasks verständigen sichuntereinander durch Variablenfelder.

Die Kommunikationstask mit dem PCführt nun im Prinzip ein einfachesQUIT, den äußeren Interpreter, aus. Dasbedeutet, daß man sich mit einemgewöhnlichen Terminalprogramm an dasGerät anklinken kann und ein interakti-ves Forthsystem vorfindet. Dies istinsbesondere für Diagnose- und Test-zwecke von unschätzbarem Wert (manfrage das C-Team, s.o.). Durch dieAbteilung der PC-Kommunikation ineine separate Task kann es auch nichtpassieren, daß der PC, der ja irgend-wann an den Microcontroller herantritt,diesen unpässlich vorfindet.

Wenn man soweit ist, bedeutet dieImplementation des PC-Programms nurnoch, eine grafische Oberfläche für einForthsystem zu entwerfen.

Dabei kann manvoll aus dem Poten-tial der Windows/V i s B a s -M ö g l i c h k e i t e nschöpfen. So gibt esdenn z.B. anstellevon Schleifen, diealles mögliche pol-len, schlicht für je-den Einschub einenTimer, der asyn-chron zum Rest derAnwendung die Da-ten für diesen Ein-schub abfragt. Damit

das keinen Salat gibt, definiert manabgeschlossene Kommunikationseinhei-ten (Kommunikationstransaktionen), dievon einer zentralen Prozedur abgearbei-tet werden. Wie schön, wenn dieseProzedur ihre Arbeit in einem Fensterprotokolliert. Wenn dieses Fenster dannauch noch interaktiv ist..

Man hat hier mit der Anwendungbeim Test die Möglichkeit, interaktiv inden Ablauf des Forth-Programms einzu-greifen, Variablen zu erfragen und zusetzen, usw. Wenn das das C-Teamgesehen hätte...

Da nun alles in Forth-Hochsprachegeschieht, stehen auf der Seite derAnwendung Tür und Tor offen. Wennman etwas implementieren möchte, aufdas das Microcontrollerprogramm nichtvorbereitet ist, baut man einen entspre-chenden Forth-String zusammen undschickt ihn zum Controller. Somit kannman besondere und plötzlicheKundenwünsche ‘on the fly’ erfüllen,ohne ein neues Eprom brennen zu

hatte. Nur die bisherige PC-Software,die noch in C++ unter DOS erstelltworden war, sollte restrukturiert undverfenstert werden.

Auch der Microcontroller wurde inC++ programmiert. Da aber 8 Regelpro-zesse mit asynchroner Kommunikationzu den Büretten und dem PCdurchzuführen waren, scheiterten diedrei Ingenieure, und zwar vor allerAugen bei den ersten Kommunikations-tests mit dem Prototypen unserer neuenPC-Software. Nachdem alle möglichenFristen abgelaufen waren, erhielt dasIngenieurbüro Allinger den zusätzlichenAuftrag, auch die Steuerung des Geräteszu übernehmen.

Wahl der Waffen

Allinger ist ein alter Forth-Hase.Damit war klar, womit der Z80 wohlprogrammiert werden würde. Nach wei-teren drei Monaten (Monate! nichtJahre) waren die neue Hardware samtSoftware dann soweit, daß man mit ihretwas anfangen konnte.

Blieb die Frage nach dem PC-Werkzeug. Die Wahl eines Windows-Forthsystems konnte ich so gerade nochabwehren. Warum? Diese Systeme sindfür die schnelle Implementation vonDialoganwendungen viel zu dürftig aus-gestattet und schirmen den Anwen-dungsentwickler nicht wirkungsvoll vomWindows-Systemkram ab.

Nach einigen Tests mit Paradox fieldie Wahl schließlich auf Visual Basic3.0. Diese Wahl hat sich bis zum Endedes Projektes als beinahe ideal erwiesen,denn:§ schnelles Prototyping durchschlichtes ‘Malen’ derAnwendungsoberfläche§ ‘unendlicher’ Umfang, der auch sehreinfache Behandlung der seriellenKommunikation einschließt§ Zugriff auf Access-Datenbanken§ kein Windows-Spezialwissennotwendig§ umfangreiche Stringbehandlung§ alles funktioniert und alles ist gutdokumentiert

Forth denkt

11. Jahrgang 1995, Nr. 2 13 Forth-Magazin ´Vierte Dimension´

ein wenigbedingterKompilation unterPC-Forth ablaufenzu lassen. Schon hatman die Emulationfertig. Besser noch.Wenn man das PC-Forth dazu bringt,seine Ausgabe aufdie serielle Schnitt-stelle und gleichzei-tig auf den Bild-schirm zu machen,kann man sogarwunderbar ein Pro-tokoll dessen, wasda so zwischem demPC und vermeintli-chen Controller abläuft, auf dem Schirmmitlesen.

Fazit

Jedem das seine. Auf dem Microcon-troller war Forth ganz klar das Mittelder Wahl. Als interaktives Multitasking-system ist Forth gegenüber C einfachübermächtig.

Auch Windows-Anwendungen ohnezwingenden Grund (z.B. weil man denInterpreter WIRKLICH braucht) inForth zu erstellen, erscheint mir mitSicht auf den ungeheuren Leistungsum-fang moderner Entwicklungswerkzeugevon großen Firmen wie ein Schuß inseigene Knie.

Um es klar zu sagen: gegen einVisBas für 400,- sehen professionelleForth-Umgebungen für 1000,- wie nichtregistrierte Sharewarespielzeuge einesGaragenhackers aus. Angeblich hatMicrosoft auch mehr Manpower zurVerfügung als die meisten Forth-Anbie-ter.

Man kann an dieser Stelle einwenden:... wenn ich aber dies und jenes machenwill dann geht das in VisBas aber auchnicht mehr so einfach und in Forthschon ...

Mag sein. Aber 99% der Praxisproble-me sind nicht ‘dies und jenes’ sondernnur ‘normales’ Zeug.

Es soll auch nicht verschwiegenwerden, daß ein schneller 486 oderbesser Pentium das geeignete Gerät fürdie Entwicklung ist. Ein 386SX machtjede Produktivität des Werkzeuges wie-der zunichte.

müssen. Selbst spätere Updates derFirmware lassen sich z.T. sodurchführen, ohne ein neues Epromliefern zu müssen.

Auf der anderen Seite stehen für denAnwender ohne großen Implementati-onsaufwand viele Windows-Funktionalitäten wie gewohnt zurVerfügung, da solche Standarddinge vonVisBas hervorragend abgedeckt werden:§ Konfiguration des Gerätes mittelsDrag&Drop§ Fließender Übergang zu z.B. Exceloder Access mittels DDE§ Drucken auf beliebigen (Farb-)Druckern§ Kontextsensitive Hilfe

Für den Anwendungsentwickler, derden Wert einer relationalen Datenbankzu schätzen weiß, ergeben sich einfacheund weitreichende Möglichkeiten. Sowerden in unserem Projekt sämtlicheVersuchsparameter sowie die gesamteGerätekonfiguration in Access-Tabellenabgelegt. Damit ist automatisch dieGewähr gegeben, daß auch der Netz-werkbetrieb in einer Folgeversion funk-tionieren wird.

Außerdem bieten die großen Pakete:§ raffiniertes Source-Management§ einfache Grafikerstellung fürBildschirm und Drucker§ viel Schnick-Schnack wie3D-Effekte, Spin-Buttons, skalierbareBilder, ...§ vollständige On-Line-Hilfen, dieeinen wirklich nicht im Stich lassen§ Installationshilfen für die fertigeAnwendung

Emulation

Da so ein Gerät in der Entwicklungmeist nur einfach vorhanden und zudemauch noch groß und schwer ist, mitAllinger und mir aber schon zwei Leutedamit befaßt waren, stellte sich dieFrage nach einerEmulationsmöglichkeit.

Hier zeigte sich dann der enormeWert eines Standards für Forthsysteme.Die Applikation für den Microcontrollerbesteht aus ein paar hundert ScreensLMI-Forth. Hier war also im wesentli-chen nichts anderes zu tun, als dieAnwendung schön ordentlich vom Kernzu separieren und den ganzen Rest mit

Auf dem Controller gibt es keineAlternative. Hier übersteigt der Wertseines Nutzens den Kaufpreis des Meta-compilers um ein vielfaches, besondersin Relation zu anderen Methoden.

Es hat sich gezeigt, daß die Kombina-tion der beiden Werkzeuge, die jeweilsauf ihrem Gebiet optimal erscheinen,durch die Unkompliziertheit undStabilität eines ROM-Forth-Systems erstihre gemeinsame Leistungsfähigkeit ent-wickeln. Das stärkste Windows-Ent-wicklungssystem wird nichts nutzen,wenn man sich auf die Gegenseite nichtverlassen kann.

Bei diesem Projekt übernimmt Forthdie eigentliche Arbeit und führt sieautark und autonom durch. Das Systemfunktioniert ganz prima auch ohne denPC. Um den PC anzuschließen, wird einnormaler Interpreter als eigene Taskgestartet, was für den eigentlichenArbeitsablauf der Steuerung aber ohneBedeutung ist. Die Visualisierung derErgebnisse und die ganze damit verbun-dene, asynchrone Kommunikation, diedas ursprüngliche C-Programm zumScheitern verurteilt haben, tangieren dieForth-Software nur periphär. Auf derPC-Seite kann man mit einemgewöhnlichen Forthsystem sprechen,ohne sich hier um die ganzenRegelabläufe kümmern zu müssen. Da-mit ist hier eine ganz strenge Trennungzwischen dem operativen Teil und derOberfläche vollzogen: Forth denkt -Windows lenkt

q

Forth denkt

Forth-Magazin ´Vierte Dimension´ 14 11. Jahrgang 1995, Nr. 2

den. Letztendlich war es aber interessantzu sehen, wie Forth uns allen unvermit-telt im Alltag begegnen kann.

Ebenfalls aus dem Medizinischen be-richtete anschließend Claus Vogt inseinem von einem Video eingeleitetemVortrag. Diesmal allerdings weniger vonder organisatorischen, als vielmehr vonder technischen Seite. Ein winzigerSender in Hüftgelenksprothesenübermittelt Daten vonDehnungsmeßstreifen und eines Tempe-ratursensors aus dem Inneren derPatientenhüfte. Aufgenommen, ausge-wertet und visualisiert werden dieseDaten von einer umfangreichen Forth-Software, die erstaunlicherweise zumeinen Teil in PC-FORTH und zum

Mit nur geringer Verspätung ging esam Freitag Nachmittag los.

Dr. Möller präsentierte eine praxisna-he Forth-Applikation, die in Arztpraxenunter Windows zu Werke geht. Nebendem Aufzeigen einiger typischer Proble-me des Aufgabengebietes, wie etwa derZertifizierung des Abrechnungs- undChipkarten-Systems, behandelte derVortrag die objektorientierten Entwurfs-techniken sowie die allgemeinen Proble-me der Entwicklung mit Forth unterWindows. Das verwendete proForth fürWindows des englischen AnbietersMPE, erst kürzlich in der ViertenDimension vorgestellt, scheint nochetwas unter großen Projekten und unzu-reichender Windowseinbettung zu lei-

anderen In F-PC erstellt wurde. BeideForthsysteme kommunizieren über einefestgelegte Schnittstelle. Tests habenergeben, daß die dabei wichtige Grafik-performance beim PC-FORTH besser istals in einem QBASIC-Program, abervon F-PC noch einmal um einen Faktor5-10 überboten wird.

Wichtig für alle Mitglieder, die inZukunft besonders kommunikativ seinwollen war der Beitrag von HolgerPetersen und Ulrich Hoffmann. Holgerist der Sysop unserer Mailbox und diebeiden haben versucht, einen Überblickzu geben, was man wie über dieMailbox erreichen kann, was nicht gehtund wie man es noch machen könnte.Ein wichtiger Punkt dabei: Durch einevon Holger Petersen auf Anfrage ver-schickte Starter-Diskette wird der Ein-stieg in die elektronische Kommunikati-on sehr leicht gemacht. Da das Netz-werk eine sehr schöne Plattform fürDiskussionen aller Art darstellt und hierauch echtes Vereinsleben stattfindet,erging der Aufruf an alle Anwesenden,es doch einmal zu versuchen. Ca. 10spontane Interessenten wurden gefun-den, so daß wir im Netz wohl bald neue'Gesichter' sehen werden. Nicht ganzunwichtig war auch der Hinweis, daßder Netzzugang, der im Mitgliedsbeitragja enthalten ist, einer der günstigsten ist,die man überhaupt bekommen kann.

Die erste kontroverse Diskussion derTagung löste Klaus Kohl aus, als er inseinem Vortrag die Erstellung einerForth-CD anregte. Die vielfältigenMeinungsäußerungen zu diesem Themabeleuchteten viele Aspekte vom Sinneines solchen Projektes über möglicheVertriebs- und Finanzierungsformen biszur technischen Machbarkeit. Klar wur-de dabei nur eines: Ohne eine Person,die sich dieses Projektes ernsthaft an-nimmt, wird es nicht gehen.

Anschließend wurde es wieder etwastechnischer, als Hr. Stelbe über CPU-unabhängigen Forthcode referierte. Ausder gestellten Anforderung konnte ereinige grundsätzliche Punkte ableiten,die von einem solchen System zuerfüllen sind. So kann es sich nur umeine ITC- oder TTC-Implemtation han-deln, da echte Maschineninstruktionenum jeden Preis zu meiden sind. DerInstruktionsteil wird jeweilsmaschinenabhängig dem eigentlichen

Das war die Forth Tagung '95von Jörg Plewe

Haarzopfer Str. 32; 45472 Mühlheim

Für viele Mitglieder der Forth Gesellschaft immer wieder der Höhepunkt desJahres: Die Forth-Tagung. Mitglieder und Nichtmitglieder treffen sich undlauschen interessanten Vorträgen. Davor, dazwischen und danach wird aufTeufel-komm-raus kommuniziert, wobei so manche Zunge auch mitbewährten Hilfsmitteln gelöst wird. So war es jedes Jahr und so war es auchin diesem Jahr. Am 21. und 22. April in Berlin. Die Mitgliederversammlung derGesellschaft hatte sich 1994 diesen Tagungsort gewünscht. Bernd Hinze undHelfried Schürer haben es dann möglich gemacht: Sie fanden ein Tagungs-hotel im Südosten Berlins. In dem Ortsteil, der einst durch einen schelmi-schen Hauptmann verunsichert wurde, konnte nun die Gesellschaft idyllischam Dämmeritzsee tagen und die ersten Mücken des Jahres genießen.

Stichworte: Forth-Tagung Tagung Berlin

Forth Tagung '95

11. Jahrgang 1995, Nr. 2 15 Forth-Magazin ´Vierte Dimension´

seinem Platz verbleibt und trotzdem fürden Entwickler der Eindruck einesmonolithischen Entwicklungssystem ent-steht. Durch den modularen Aufbau desSystems lassen sich auch zentrale Kom-ponenten wie die CPU austauschen.fieldForth ist zur Zeit für die TargetsTMS320C40 und M68332 implemen-tiert. Andere Targets sollen jeweilsinnerhalb einiger Wochen hinzuzufügensein.

Performanceprobleme von stackba-sierten Architekturen, zu denen ja auchForth gehört, haben Bernd Paysan vonder TU München keine Ruhe gelassen.Der Stack erweist sich als Flaschenhalsund behindert die Parallelisierung vonInstruktionen auf der CPU. SeineLösung: 4 Stacks. Bernd stellte einenmöglichen Chip auf Basis dieser Archi-tektur vor und erläuterte dessen Instruk-tionssatz. Am Beispiel einer FFTerklärte er die Wirkungsweise der Ma-schine und machte klar, daß ein solcherChip in bestimmten Anwendungsberei-chen tatsächlich sehr schnell sein würde.Wer sich näher für das Modell interes-sierte, konnte sich auch einen Assemblerund einen Simulator vorführen lassen.Bernd schätzte den Realisierungsauf-wand mit etwa 300.000 Gattern ab undsieht die Stärken der Architektur im

DSP-Bereich oder etwa beim Z-Buffe-ring in der 3D-Grafik.

Allgemeines zu Controllern, Memoryund Peripherie konnten wir von Prof.Thomas Beierlein lernen. Nach seinemgeschichtlichen Überblick zu diesemThema leitete er zur Vorstellung einesmodernen Entwicklungssystems für denControllerbereich über. Holon, die Ent-wicklung des Schweizer Gesellschafts-mitgliedes Wolf Wejgaard stellt eineintegrierte Umgebung dar, die sichinsbesondere der Quelltextorganisationwidmet. Menügeführt läßt Holon denEntwickler durch eine Vielzahl vonModulen navigieren. Und das nicht nurin der Theorie, wovon man sich in einerder Kaffeepausen selbst überzeugenkonnte.

Mit den ganz modernen Softwaretech-niken hat sich Helfried Schürer befaßtund uns auf der Tagung an seinenErkenntnissen teilhaben lassen. Neuro-nale Netze sind immer wieder einStichwort in fast allen Zeitschriften undMagazinen. Nachdem Helfried die Be-griffe in ihrer biologischen Bedeutungklar gemacht hat, zeigte er ein System,mit dem die Entwicklung neuronalerNetze komfortabel und flexibel möglichist. Auch dieser Vortrag löste eine regeDiskussion aus, die sich im wesentli-chen um die Vor- und Nachteile desEinsatzes von Floatingpoint-Arithmetikrankte. Nicht nur damit hat dieserVortrag sicher zur Allgemeinbildung desPublikums beigetragen.

Um die Lücke bis zum Mittagessen zufüllen, durfte ich selbst etwas über Forthund Datenbanken im allgemeinen undspäter über eine angefangene Implemen-tation im speziellen Berichten. Datypische Forth-Anwendungen den Da-

Fadencode zur Seite gestellt. Überdieses Thema wurde dann auch heftigdiskutiert, wobei nun endlich auch dieGurus so richtig vom Leder ziehenkonnten und den einen oder anderensicher abgehängt haben (deshalb kannich hier die Diskussion auch nicht sorichtig darstellen).

Doch zum Glück war nun der Abendbereits erreicht und in kleinerenGesprächsrunden konnten nun dieWissenslücken aufgefüllt werden. Nachdem vorzüglichen Abendessen war des-halb noch lange nicht Schluß und derletzte Diskussionsdrang erlosch erst ge-gen 3:30h am Morgen, wobei man umdiese Zeit noch unseren ortsansässigenEditor über ein Baugerüst aus demrundum abgeschlossenen Hotel entkom-men sah.

Damit die Pausen nicht zu langwurden, ging es pünktlich um 9:00hschon wieder weiter. Dr. Egmont Woit-zel stellte das fieldForth der FirmaFORTecH vor. Dieser fast einstündigeVortrag führte den Zuhörer zunächsteinmal gründlich in die allgemeinenProbleme der Entwicklung für embed-ded Controller und der Crosscompilationein. In dem von ihm dann beschriebenenLösungsansatz erfolgt eine möglichstweitgehende Trennung des Systems inTarget- und Hostteile, wobei jedes an

Das fieldFORTH der FORTecH-GmbH trennt strikt zwischenHost- und Targetcode

Eine Nervenzelle (Neuron)

Forth Tagung '95

Forth-Magazin ´Vierte Dimension´ 16 11. Jahrgang 1995, Nr. 2

tenbankbereich meist nicht tangieren,war auch hier eine gewisse allgemeinbil-dende Komponente vorhanden.

Das Mittagessen dürfte manchenknapp vor dem Kollaps gerettet haben...Auch das sollte erwähnt werden: Dernahe See und das erstklassige Wettermachten es etwas schwer, die Versamm-lung nach dem Essen wieder einzufan-gen!

Von vielen wird es benutzt, kaum

jemand hat es durchschaut: Das Hyper-textsystem des F-PC. Doch das hat sichjetzt geändert, denn Claus Vogt hat esuns erklärt! Und nicht nur das. Er hatgezeigt, wie man das System über seineursprüngliche Hilfe-Funktion hinaus ineigenen Applikationen gewinnbringendeinsetzen kann und praktische Beispieledafür vorgestellt: Aus der Online-Doku-mentation eines von ihm verfaßtenAnwendungsprogramms konnte er eini-ge Teile seiner Diplomarbeit generieren!Für die Zukunft schwebt ihm dieOrganisation eines Forth-Archives mit-tels des Hypertextsystems vor.

Real programmers don't read manuals!Auch wenn das stimmt, der ANSI-Standard verlangt gewisse Formen derDokumentation. Ulrich Hoffmann hatsie uns dargestellt. Der Sinn besteht vorallen Dingen darin, Abweichungen undSchwächen wirklich zu dokumentieren

und damit offenzulegen.DamitsollenFallen vermieden werden und der Pro-grammierer soll schnell entscheidenkönnen, ob er ein Modul von der Stangeverwenden kann.

Rainer Hansen von der UniversitätDuisburg stellte das avisierte Themaseiner Diplomarbeit vor: Eine portableTextverarbeitung in ANSI-Forth. Damitsollen die Möglichkeiten portablerForth-Programmierung u.U. mit grafi-

scher Oberfläche untersucht werden.Ein weiterer Vortrag aus der

FORTecH-Reihe von Udo Schützbeschäftigte sich der automatischen Ge-nerierung von Glossaren aus Forthpro-grammen. Und damit das nicht zueinfach wird, soll ein solches Glossarmit der Windows-Hilfefunktionzugänglich sein. Udo hat den Wegbeschrieben über die Erzeugung vonRTF-Dateien und Help-Compiler. Besit-zer des comForth-Paketes für Windowskönnen es einfach ausprobieren, dieanderen gucken in die Röhre.

Schnelle Spezialhardware zur Echt-zeit-Farbbildanalyse hat Hr.Höhenleitner vorgestellt. Es basiert aufdem DSP TM320C40 auf dem Forth fürdie Inbetriebnahme und als eine ArtBasisbetriebsystem eingesetzt wird. Dasbesondere an diesem System ist, daß dieApplikationssoftware aus einer bunten

Mischung von Forth und C/C++-Pro-grammen besteht, die sich kreuz undquer gegenseitig aufrufen können. Dieswird durch Namenslisten für offene undexportierte Referenzen der einzelnenProgrammodule ermöglicht, mit derenHilfe beim Booten das Programm erstzusammengelinkt wird. Auch diesesSystem konnte man in der Praxisbestaunen. Interessanterweise wird'Forth' gegenüber den Käufern desGerätes nicht genannt, sondern als'residente Instruktionsbasis RIB' be-zeichnet.

Als einen Teil des fieldForth-Systemsvon FORTecH ging Malte Köller spezi-ell auf die Verwirklichung auf demM68332-Controller ein. Dabei gab esbesonders vieles über den Controllerselbst zu lernen. Dieser Beitrag löstedann eine tiefgreifende Diskussion überdie Frage "Wieviele Stackeinträge soll-ten in Registern gehalten werden?" aus.

In seinem abschließenden Doppelvor-trag berichtete Ulrich Hofmann kurzüber seine Portierung des F68KANS-Systems auf den Mac bevor er sich derProblematik eines Terminplaners zu-wandte. Etwas die auf dem Marktbefindlichen, sehr aufwendigen Win-dows-Terminplaner verhöhnend zeigteer eine verblüffend einfache Implemen-tation eines Terminplaners in Forth. Wirließen uns überzeugen, daß ein paareinfache Definitionen, die das Forth-BLOCK-Interface nutzen, wohl vieleaufwendigere Systeme an Funktionalitätübertreffen. Ullis Fazit allerdings: Auchseine Lösung kommt an die Nützlichkeiteines kleinen Terminheftchens aus derApotheke nicht heran.

Damit hatten wir alle Vorträge hinteruns und nach dem Abendessen standFete auf dem Programm. Da Forthlerscheinbar auch gerne mit Maschinenfeiern, wurde es ein sehr fröhlicherAbend, an dem noch viel über diegehaltenen Vorträge geredet wurde.Wieviel es zu Reden gab mag mandaran ermessen, daß einige die Mitglie-derversammlung am Sonntag erreichten,ohne zwischenzeitlich ihrenZimmerschlüssel gesucht zu haben.

Alles in allem: Die Tagung war superund wer nicht dabei war, hat etwasverpaßt!

q

Forth Tagung '95

11. Jahrgang 1995, Nr. 2 17 Forth-Magazin ´Vierte Dimension´

Ich habe anläßlich der Forthtagungden SWAP-Drachen der FG verliehenbekommen, was ich wohl als Auszeich-nung akzeptieren soll - und auchversuchen will. Das fällt mir allerdingsso schwer, wie es mich getroffen hat, alsJörg Plewe in diesem Zusammenhangnach einer langen Aufzählung vermeint-licher Vorzüge und Verdienste meinerPerson meinen Namen genannt hat. Ichmöchte an dieser Stelle noch einmalversuchen, meine Haltung deutlich zumachen. Zunächst bin ich grundsätzlichgegen jede Art von Ehrung im Sinneeiner Hervorhebung. Eine meiner Le-benserfahrungen - besser: immer wiederbestätigte Beobachtung - sagt mir, daßdie Aussicht auf Auszeichnungen jegli-cher Art den größten Teil unsererMitmenschen immer wieder aufs Neuezu Handlungen und Verhaltensweisenanstachelt, die ich für mich selbst, aberauch für die Menschen meiner ‘näherenUmgebung’ kompromißlos ablehne.Gleichzeitig kann ich nur wiederholen,was ich schon in unzähligen Gesprächenvorgetragen habe: Ich bin nur einer vonmehreren FORTHern der Moerser Grup-

pe. Ich ‘führe’ dieseGruppe nicht. Die Moer-ser Gruppe benötigt keine Führung.Wenn ich unter den Moerser FORTHerndie Stellung eines “Ersten unter Glei-chen” einnehme, dann höchstens des-halb, weil ich in der zeitlichen Abfolgeder Moerser Forthgeschichte einer derErsten war. Die zugegebenermaßenrecht große Menge an Arbeit, die ich inden ersten Jahren in die Moerser Gruppeinvestiert habe, kam zuallererst mirselbst zu gute. Heute, da ichmich aus beruflichen Gründenein wenig aus derallwöchentlichen Arbeitzurückziehen mußte, leistetMichael Major diese Arbeit weiter. Undin ein oder zwei Jahren werden anderediese Arbeit übernehmen. Ich habe denSWAP-Drachen aber gerne stellvertre-tend für die ganze Moerser Gruppeangenommen. Ich sehe darin eine Aner-kennung der ‘Art’, in der wir hier amNiederrhein FORTH auffassen, FORTHbetreiben und versuchen, so viel Spaßwie möglich durch FORTH zu gewinnenund an FORTH zu vermitteln.

Brief aus der Provinzvon Friederich Prinz

[email protected];Homberger Str. 335; 47433 Moers

Einen Bericht über die FORTH-Tagung hat Jörg Plewe in die VDgegeben. Da kann ich mir einensolchen Bericht sparen. Vermut-lich fallen Michael’s und meine

Beschreibung, die wir unserenMoerser Freunden geben werden,

ohnehin ganz anders aus. Wir sind vollvon den Eindrücken einer großen Stadt,die sich lebendig und locker - fastfröhlich - daran gemacht hat, die Spureneiner wenig geliebten Vergangenheit zubeseitigen, und gleichzeitig zu bewah-ren, was erhaltenswert ist. Wir sind auchvoll mit Bildern einer überaus forthigenHeimreise. Diese war nämlich gekenn-zeichnet durch den Versuch, einmalmehr ‘in das Kleinste’ zu sehen. Dasheißt, daß wir auf Landstraßen aus

Berlin herausgefahren sind. Wir habenjede Straße gemieden, die auch nur nacheiner Bundesstraße aussah. Dabei sindwir ‘übers Land’ gekommen, durch einewunderschöne Landschaft und durchDörfer Brandenburgs und Sachsen-An-halts. “Just do it” - eines derschlagkräftigsten Argumente fürFORTH selbst - hat uns dabei als Mottogedient, und uns bis Wittenberg geführt.Erst danach haben wir mangels Tages-licht wieder die Autobahn aufgesucht.Die Forthtagung war schon ‘nichtschlecht’. Die Bilder aus Berlin und vonder Heimfahrt waren mehr als nur eineReise wert.

Trotzdem noch einige Worte zurTagung selbst: Mir haben einige Men-schen dort gefehlt ! Mit dem HannesTeich, der mir in meiner Anfängerphasemit vielen wertvollen Tips und Anre-gungen immer wieder ‘auf die Sprünge’geholfen hat, hätte ich ebenso gerne einBier getrunken, wie mit dem JörgStaben, der uns in Moers in fröhlicherErinnerung ist. Letzteres gilt auch fürden ‘bärigen’ Klaus Schleisiek (den ausAachen), der unseren Tag der offenenTür mit seinem 1·1 m2 LED-Feldbereichert hatte. Dafür habe ich andereMenschen endlich persönlich kennenge-lernt. Mit dem Claus Vogt stehe ich seiteinigen Monaten in recht intensiverDFÜ-Verbindung. Und ich bin froh, daß

Jörg Plewe links im Bild, einer der drei DirektorInnen der Forth-Gesellschaft

verleiht Friederich Prinz rechts im Bild, einziger Prinz der Forth-Gruppe Moers

den Swap-Drachenganz klein im Bild, höchste Auszeichung der Forth-Gesellschaft

Vielleicht liegt das ‘Besondere’ unserer

Gruppe einfach darin, daß wir uns öfter

Forth Tagung '95

Forth-Magazin ´Vierte Dimension´ 18 11. Jahrgang 1995, Nr. 2

sich der sympathische Eindruck auch visa vis bestätigt hat. Leider war insgesamtviel zu wenig Zeit, auch wenigstenseinige der anderen, interessanten Men-schen kennen zu lernen.

Ich wurde während der Tagung mehr-fach darauf angesprochen, daß ‘dieMoerser’ offenbar mehr Phantasiehätten, als die FORTHer in anderenStädten. Das kann ich nicht glauben. Ichkann auch nicht glauben, daß anderen-orts Gruppen nicht ‘funktionieren’könnten, wenn sie so unorganisiert und‘anarchistisch’ wären wie die Moerser.Hinter dem Funktionieren der MoerserGruppe steckt auch kein Geheimnis.Vielleicht liegt das ‘Besondere’ unsererGruppe einfach darin, daß wir uns öftertreffen - eben wöchentlich. Da kommenwir, wenn wir die Ferien ausnehmen,leicht auf 45 Treffen im Jahr. Da wächstman natürlich schneller und intensiverzusammen, als wenn die Anzahl derTreffen auf 10 - 11 Mal pro Jahrbegrenzt bleibt. Das allwöchentliche

Treffen ist für uns längst zu einemfesten Bestandteil des wöchentlichen‘Alltags’ geworden. Das heißt natürlichnicht, daß Jeder immer dabei ist. AberIrgendjemand ist eigentlich fast immerda ... Dazu mag kommen, daß wirunsere Gruppe nicht als ‘Freizeit-Dienst-leistungs-Betrieb’ ansehen. Niemandkommt zu uns um nur zu konsumieren.Jeder bringt sich selbst ein, mit seinenFähigkeiten, mit seinem jeweiligenKönnen und mit seinen Ideen. Dabeisind diese Ideen keineswegs auf FORTHbeschränkt. Wenn ich einen interessan-ten Vortrag ankündige, dann kommenViele. Wenn Irgendjemand für dennächsten Samstag selbstgebackenen Ku-chen verspricht, dann fehlt Niemand.Natürlich steht FORTH bei uns ‘ziem-lich vorne’. Aber noch vor FORTHkommt der Spaß - der Spaß an FORTH,Spaß an Technik allgemein, Spaß amEntdecken und - vor allem - Spaß anuns selbst. Dabei dokumentiert sich der‘Spaß an uns selbst’ nicht zuletzt an den

... noch vor Forth kommt der

Forth inside:Microsoft C intern

Aus einer Produktbesprechung zu MicrosoftC/C++ 7.0:‘‘Improvement in code size ... continue withC7’s use of p-code... P-code is an oldtechnique for reducing the size ofexecutables. ... the compiler can optionallygenerate object code for a virtual machine,together with an interpreter to emulate thevirtual machine. C7 packs code into astackbased language that abstracts many ofthe details of 80x86 assembly language...p-code can reduce code-size to 50 percent insome cases... Such p-code has apparentlybeen used in th user-interface code ofMicrosoft Word, Excel and Project....P-codeis ...new technology in C7...’’

jrd (Rafael Deliano) nach BYTE 9/92 S.274

Forth-Prozessoren:Marc4: ASIC-Kern aus Chemnitz

In der heutigen Diskussion in c.l.f. fand icheinen Hinweis auf einen Forth-ControllerMARC 4, der so 1978 herum in der VDschon einmal vorgestellt wurde. Hier inChemnitz hat man im letzten Jahr darauseinen ASIC-Kern gemacht. Ich habe dieUnterlagen da, vielleicht hat jemand Interes-se.

Thomas Beierlein, [email protected], März´1995

ANS:DPANS94 im WWW

I have uploaded a new HTML version of theDPANS94 document to Taygeta.oc.nps.navy-

.mil. The contents are identical to theoriginal posting. The new version, V2.0, hasmany more hyperlinks. Specifically, all(well, at least most :-) of the See: referencesare now linked. Anchors have been addedfor each section in my working copy. Thiswill faculitate filling in many additional linksin the next version of the document.I plan to start the next round of adding newhyperlinks after the next release of Until.You can access the new HTML documentfrom either the FIG home page or the Forthpage at http://taygetta.oc.nps.navy.mil/fort-h.html.

[dpANS94 ist der letzte Proposal zum ANSund frei erhältlich, z.B. bei Klaus Kohl /clv]

Enjoy!Norm Smith

(comp/lang/forth, 5.4.95)ANS:

Stand4thI have uploaded my Standardizer to Taygeta,in the ANS subdirectory, under the nameStand4th.ZIP . I'd welcome comments abouthow it should be changed.This is an ANS standard program with someenvironmental dependencies. It adds a varie-ty of error-checking to standard compilers,including type-checking, arithmetic-overflowchecking, and array-bounds-overflowchecking, all at run-time. It offers morecomprehensivetesting than Joerg Plewe'selegant debugger (and is also much lessflexible).It warns about many things that might be

perfectly OK on your standard compiler, butwhich would fail on a minimal standardcompiler, or a 1's-complement one, etc.However, some warnings are dependent onyour own compiler, particularly things thatdepend on the cell-size:char-sizeratio.

comp/lang/forth, 14.4.95Forth-Systeme

Forth-Systeme:pfe0911 uploaded

Halloechen, ich denke Ihr versteht meinpidgin english :-)I just uploaded a new version of the portableforth environment to several sites:roxi.rz.fht-mannheim.de:/pub/languages/forthtaygeta.oc.nps.navy.mil:/pub/incoming/forthftp.cygnus.com:/incomingsunsite.unc.edu:/pub/Linux/Incoming/pfe-0.9.11.tar.gzExcept on sunsite there are 4 files:

pfe-0.9.11.tar.gz-- sources onlypfe-0.9.11.bin.tar.gz-- DOS and OS/2 binaries

· pfe0911.zip -- sources only for unzip· pfe0911b.zip

-- DOS and OS/2 binaries for unzip

Changes vs. 0.9.9 include: Better configurati-on, bug fixes and additions,better file access, support for Watcom Cadded.

Hope everything works. [email protected] in

de/comp/lang/forth

vielfältigen Aktivitäten, die wir gemein-sam oder in kleineren Gruppenaußerhalb der Forthgruppe entwickeln.

In der letzten VD habe ich berichtet,daß wir uns mit dem Gedanken tragen,ein ‘Niederrheinforum FORTH’ ins Le-ben zu rufen. Ich hatte dazu aufgefor-dert, sich bei mir zu melden, wennInteresse an einem solchen Forumbesteht. Bis jetzt haben nur diejenigen‘Nichtmoerser’ Interesse bekundet, dieuns ohnehin zumindest sporadisch besu-chen. Das ist nicht weiter schlimm. Wirkönnen das Forum ohnehin erst imkommenden Jahr realisieren. Die beruf-lichen Einbindungen unserer Freundelassen die Organisation für dieses Jahrnicht mehr zu. Aber es wird stattfinden -vermutlich im Spätsommer ‘96.

Das war’s für dieses Mal aus derProvinz.

GlückaufFriederich Prinz

q

Forth Tagung '95

11. Jahrgang 1995, Nr. 2 19 Forth-Magazin ´Vierte Dimension´

Druckerport:

∗ Direkte Ansteuerung von Schrittmoto-ren über entsprechende Treiberbau-steine

∗ Ansteuerung von seriell ladbarenBausteinen wie:

∗ D/A-Wandler

∗ Sinusgeneratoren∗ Filter∗ Abfragen von seriell auslesbaren

A/D-Wandler∗ Schnelles Übertragungsmedium zwi-

schen PC´s

1.PC-Schnittstellen

Schon in der Grundausstattung wirdein PC mit vielen Schnittstellen gelie-fert. Darunter fallen vor allem derDruckerport oder die serielle Schnittstel-le. Weitere Ein-/Ausgabekanäle erhältman gegen geringen Aufpreis (z.B.Joystick) oder wurden im Rahmen derMultimedia-Anwendung integriert (z.B.Soundblaster). In diesem Kapitel liegtder Schwerpunkt der Betrachtungsweisehauptsächlich auf die unmittelbare Ver-wendbarkeit solcher Schnittstellen fürEin- und Ausgabe.

1.1. Vor- und Nachteile

Die Tabelle führt die bei üblichenPC´s verfügbaren Schnittstellen unddessen Vor- und Nachteile auf.

1.2. Einsatzmöglichkeiten

Jedes der vier oben angegebenenSchnittstellen hat für die Meßtechnikihre Hauptanwendungen auf verschiede-nen Gebieten. Hier sind nur einige derAnwendungen aufgelistet:

Meßtechnik mit dem PCAutor: Klaus Kohl / BMC Systeme GmbH

Zeppelinstr. 10; 86406 Mering; Tel.: 08233 / 30 524

Der Autor entwickelt für die Firma BMC Systeme GmbH unter anderemPC-Meßkarten mit entsprechender Software. Einige der dabei ermitteltenMöglichkeiten und Probleme soll in der hiermit begonnen Serie erläutertwerden. Ziel dabei ist, einen vorhandenen PC mit möglichst geringenAufwand zu einem Meß- und Steuercomputer auszubauen. Der erste Artikeldient dabei als Übersicht und behandelt in einem Rundumschlag die Vor- undNachteile der später verwendeten Schnittstellen. Außerdem werden nocheinige bei Erstellung von Meßprogrammen erkannten Probleme aufgeführt. Inden folgenden VD´s wird das Thema Meßtechnik und PC mit folgendenInhalten noch ausführlicher behandelt:

* Beschreibung der PC-Schnittstellen und dessen Programmierung* Bau einfacher Hardware zur Nutzung der Schnittstellen* Informationen zur Verwendung verfügbarer Meßsysteme* Tools für eigene FORTH-Programme (Hardwareansteuerung und Auswerte-programme)

Stichworte: Messen Hardwareansteuerung PC

Vorteile Nachteile

Druckerport Normierte Steckerbelegung Sinnvolle Ausgabebreite: 8 BitNormierte (TTL-)Pegel Als Eingang oft nur seriell nutzbar8+3Bit als Ausgang Portumschaltung nicht standardisiert5 Bit als Eingang Blockiert DruckerausgabeHohe Ausgabefrequenz möglich Nur gering belastbareingeschränkte InterruptfähigkeitAuch bei Laptop´s verfügbar

Serielle Normiertes Datenformat Geringe GeschwindigkeitSchnittstelle Interruptfähig Aufwendiges Interface notwendig

Auch bei Laptop´s verfügbar Spannungspegel ±3..±12VVom DOS unterstützt Nur gering belastbar

Gameport 4 Analogkanäle und 4 Digitalkanäle nicht kalibriertMeist schon eingebaut Analogwerte sind in Assembler-StandardisierteSteckerbelegung schleifen selbst zu ermitteln.Teilweise vom DOS unterstützt

Buskarte Interruptfähigkeitmöglich Belegt internen Steckplatz(Busmaster)DMA-Fähigkeitmöglich Belegt I/O-AdressenSehr schnell TeuerFür alle Anwendungen erhältlich

PC-Meßtechnik

Forth-Magazin ´Vierte Dimension´ 20 11. Jahrgang 1995, Nr. 2

wegen mangelnden Einsatzes nicht be-kannt.

Buskarten: Die Belastbarkeit derPC-Versorgung ist hier sehr groß undnur durch das Netzteil begrenzt. Oftmuß aber für genaue Meßdatenerfassungeine galvanische Trennung eingebautwerden. Der mechanische Einbau derKarte zwischen Anderen wie Grafikkar-te und Harddiskinterface erhöhen dieGefahr des Übersprechens vonStörsignale.

2.2. Betriebssysteme

Der Einfluß des Betriebssystems aufdie Meßdatenerfassung soll hier hinter-leuchtet werden. Dabei werden Proble-me angesprochen, die nur selten odererst nach vollständigem Aufbau einerApplikation erkannt werden.

2.2.1. (MS)DOS

Das MSDOS-Betriebssystem ist imNormalfall nur auf Anforderung aktivund blockiert deshalb auch keine Sour-cen des Systems. Es gibt aber einigeAusnahmen:

Timerinterrupt:Alle ca. 54.9255ms (Bustakt1193180Hz/65536 = 18.2Hz) wird einTimerinterrupt durch Timer0 ausgelöst.Dieser Interrupt veranlaßt dasWeiterzählen der internen Softwareuhrund der Aufruf evtl. eingebundener(BASIC-) Routinen. Wer in eigenenRoutinen genaues Timing benötigt, mußalle Interrupts abschalten und danach dieinterne Uhr gemäß der meistens vorhan-denen Hardwareuhr nachstellen.

Tastaturinterrupts:Die Tastatur liefert bei Wechsel derTaste (Drücken und Loslassen) einenInterrupt, der das DOS zur Abfrage undAuswertung des Tastenports veranlaßt.Im Prinzip gilt das gleiche wie beimTimerinterrupt.

Speicherrefresh:Dieser eigentlich nicht dem DOS zuzu-ordnenden Punkt bewirkt ebenfalls einenicht vom Programm steuerbareVerzögerung. Durch diesen Refresh istselbst bei abgeschalteten Interrupts ein

Serielle Schnittstelle

∗ Kommunikation mit externenMeßsystemen

∗ Abfrage und Steuerung seriell pro-grammierbarer A/D-D/A-Wandler

Gameport

∗ Abfrage eines Joysticks∗ Realisierung eines einfaches A/D-

Wandlers∗ Abfrage von bis zu 4 Digitalsignale

Buskarten

Die Steckkarten für PC´s sind in fastallen Ausführungen verfügbar. Ohneexterne Schaltungen sind die einzigenLimitierungen der Stromverbrauch undder verfügbare Platz. Leider können nurselten diese Steckkarten in Laptopsintegriert werden. Dies begrenzt diePortabilität dieser ‘‘Meßsysteme’’.

2. Probleme beim Messenmit PC´s

2.1. Stromversorgung

Normalerweise ist an Einsatzstellenvon PC´s ausreichende Stromversorgungvorhanden. Wenn aber auf externeBeschaltungen verzichtet wird, muß mitden bereitgestellten Leistungen des PC´sausgekommen werden. Diese liegen beiden angeführten Schnittstellen wie folgt:

Druckerport: Frühere Druckerportswaren mit 8255 realisiert, die aufTTL-Basis bis zu 20mA auf Masseziehen konnten. Mit der jetzigenCMOS-Logik zeigt sich in der Praxis,daß noch 5..10mA aus einer Druckerlei-tung gezogen werden können.

Serielle Schnittstelle: Die Versor-gung von verfügbaren seriellen Mäusenoder Optokoppler geschieht über Status-leitung des seriellen Ports. Durch Span-nungsinverter werden die meist geliefer-ten -12V in positive 5V gewandelt. Eswerden dabei Ströme von 10-20mAgezogen.

Gameport: Anders als Druckerportund serielle Schnittstelle stellt dieserPort die Versorgungsspannung direktzur Verfügung. Die Belastbarkeit ist

geringes Wobbeln in der Schleifendauerbemerkbar.

SMARTDRIVE und Harddisk-/Floppyzugriffe:Dieser Software-Harddiskpuffer ist nor-malerweise sehr nützlich für Program-me, weil dadurch die I/O-Zugriffeminimiert werden. Leider haben sie auchden Nachteil, daß dann bei Diskzugriffegrößere Datenmengen übertragen wer-den und dadurch der Rechner fürmehrere Millisekunden stillgelegt wer-den kann. Bei direkter Übertragung vonMeßdaten auf Festplatte sollte deshalbauf diese Option verzichtet werden.

EMM386:Auch der Speichermanager für erweiter-tes RAM ab 386-Rechner ist ein Wolfim Schafspelz. Obwohl er normalerwei-se nicht bemerkt wird, überwacht erI/O-Zugriffe und die Speicheraufteilung.Da nur er weiß, wo tatsächlich derangeforderte Speicher physikalisch vor-handen ist, ändert er bei Programmie-rung der DMA Parameter. Der einzigefür den Anwender ‘‘sichtbare’’ Nachteilist die Blockierung von Interrupts vonbis zu 50us (386SX-16). Dies machtleider die Interrupt-Datenabtastung ab20kHz unmöglich.

2.2.2. Windows

Das Windows ist ein großer Resource-fresser und blockiert meist alle System-features. Da es nicht auf Echtzeitgetrimmt ist und auch kein echtes,interruptgesteuertes Multitaskingunterstützt, ist eine zeitsynchrone Daten-erfassung eigentlich nicht mehr möglich.Falls man trotzdem eine DOS-Anwen-dung in einem Windows-Fenster laufenläßt, so hat man viele Probleme:∗ I/O-Adressen sind nicht beliebig

verfügbar (z.B. Druckerport)∗ Ein 4kHz-Timerinterrupt blockiert

auch einen 486AT-33 vollständig∗

Jedoch auch mit Windows-Program-me bleiben viele Schwierigkeiten

∗ I/O´s, Interrupts und DMA´s sind nurmit erheblichen Programmieraufwandverfügbar

∗ Exaktes Timing unter Windows pro-blematisch

PC-Meßtechnik

11. Jahrgang 1995, Nr. 2 21 Forth-Magazin ´Vierte Dimension´

eines Interrupts bei der seriellen Schnitt-stelle. Da aber das Betriebssystem ab9600Baud nicht mehr verwendet werdenkann, bleiben hier nur eigene Interrupt-programme. Terminalprogramm (auch inFORTH) haben gezeigt, daß115200Baud keine Probleme bereiten,wenn der Interrupt nicht zu langegesperrt wird.Die einzige Konkurrenz sind noch dieMäuse bei PC´s. Sie belegen ebenfallseine Schnittstelle und eine Interrupt.Man muß bei eigenen Programmendarauf achten, daß nur die vorgeseheneSchnittstelle verwendet und die Einstel-lung der Mausschnittstelle nichtverändert wird.

Druckerinterrupt:Über eine Statusleitung kann ein Latchgesetzt werden, daß einen Interrupt beibestimmten Pegel an Druckerport-Eingängen auslöst. Damit kann der PCFehler wie ‘‘PAPER-END’’ erkennen.Die gleichen Statusleitungen lassen sichnatürlich auch zu Handshake-Zweckebei eigener Hardware mißbrauchen.

2.3.3. DMA

Insgesamt sind in einem AT bis zu 48Bit- und 3 16Bit-DMA´s vorhanden.Bis auf die 8Bit-DMA für die Floppysind alle für den Anwender verfügbar.Leider gibt es auch einige Nachteile:∗ DMA´s sind nur über eine Buskarte

anzusteuern∗ Zieladressen einer 8Bit-DMA müssen

in einem 64K-Segment sein∗ Zieladressen einer 16Bit-DMA

müssen in einem 128K-Segment sein∗ Einzelübertragung bei-DMA´s dauern

sehr lang (bis zu 7us)

In der Praxis hat sich gezeigt, daß beiÜbertragung von Einzelwerten perDMA von Meßkarte in Speicher dasLimit mit heutiger Hardware bei ca.100kHz liegt. Darüber hinaus ist mitentsprechenden FIFO-Buffer zu arbei-ten.

Ein weiteres Problem sind dieverfügbaren SCSI-Controller mit Bus-masterbetrieb. Diese können bei gleich-zeitigem Zugriff auf Harddisk das ge-samte AT-Bussystem für mehrere 10usblockieren und dadurch das rechtzeitigeAbholen von Daten verhindern.

3. Anmerkung zum Kauf vonMeßkarten

Da sich diese Serie durch das nurviermal im Jahr erscheinende Mediumauf einen großen Zeitrahmen verteilt,soll schon in dem ersten Artikel ein Tipzum Kauf von Meßkarten erfolgen. Diesvor allem vor dem Hintergrund des abnächsten Jahres zwingend notwendigenCE-Zeichens, daß viele Vertriebe zurAufgabe billiger Meßkarten zwingt. Dader Autor aber nicht die Meß- bzw.Steueraufgabe kennt, kann er hier nur inStichpunkten die wichtigsten Fragenaufführen. Man sollte an Hand dieserListe die verfügbaren Meßkarten oder-Systeme beurteilen. Manchmal mußman den Vorteil eines schnellen undgenauen Systems gegen den hohen Preisaufwägen. Billige System erfordern da-gegen meist großen Programmierauf-wand oder sind sehr langsam.

∗ Einsatzort− freier Platz im PC (Laptop ?) und

verfügbare Versorgung− Umgebung (Temperatur, Staub,

Erschütterungen)− ausreichende Rechengeschwin-

digkeit (evtl. Karte mit eigener“Intelligenz” notwendig)

∗ Form (Länge: halb, dreiviertel odervoll; Bauhöhe; Abschirmung, Kon-taktschutz)

∗ Veränderbare I/O-Adressen, Interruptsund DMA´s (bei Laptops oftEinschränkungen)

∗ Umsetzung des zu erfassenden Si-gnals in die meßbare Spannungen(Verstärkermodule)

∗ Programmtools− Sofort einsetzbare Meß- und Aus-

werteprogramme− Grundroutinen für eigene Pro-

gramme

∗ Beschreibung− Ausreichende Dokumentation der

physikalischen Parameter (Strom-verbrauch, Genauigkeit)

− Ausreichende Programmierbe-schreibung (Port, Abfrage vonMeßwert)

∗ Preis und Verfügbarkeit

q

Neuere Windows-Versionen (Win-dows NT und Windows 95) machen dieHardwareansteuerung noch schwieriger,da nur über geeignete VxD´s oderDLL´s darauf zugegriffen wird.

2.3. Hardwareschnittstellen

2.3.1. I/O-Adressen

Der PC hat normalerweise 1024I/O-Adressen verfügbar. Davon werdenaber sehr viele schon durch die vorhan-dene Hardware und den vielen Schnitt-stellen belegt. Zusätzliche Grafik-, Netz-werk- Soundkarten begrenzen die Aus-wahl noch erheblich. Übrig bleiben danneigentlich nur noch die Bereiche $110-$1EF, $208-$21F, $230-$26F, $280-$2AF, $300-$31F und $340-$35F.

2.3.2. Interrupt

Durch das System und durch diePC-Steckkarten sind viele Interruptquel-len angebbar, die alle auf zwei Interrupt-controller des AT´s laufen.

TIMER0-Interrupt:Wie schon oben angesprochen, wirddieser Interrupt sowieso schon durch dasBetriebssystem verwendet. Es hat sichin der Praxis gezeigt, daß er sehr gut fürständige Aktivitäten wie Messungen im(Interrupt-)Hintergrund verwendbar ist.Im BMC-Meßprogramm NextView wirdz.B. der Interrupt von 18.2 auf 4000Hzgeändert und bei jedem Auslösen eineMessung an einem Eingangdurchgeführt. Man muß nur daraufachten, daß das Betriebssystem weiter-hin seinen 18.2Hz-Interrupt erhält. Einweiterer Vorteil ist, daß der Interrupt-controller nicht umprogrammiert werdenmuß.

Tastaturinterrupt:Dies ist der einzige Interrupt, der durchEinfluß des Bedieners über Standard-hardware ausgelöst werden kann. Einsinnvoller Einsatz ist z.B. das Abbre-chen des Abastprogrammen. Der Vorteilist, daß während des Programmlaufeskeine zusätzliche Programmzeit belegtwird.

Interrupt der serielle Schnittstelle:Ebenfalls angenehm ist die Möglichkeit

PC-Meßtechnik

Forth-Magazin ´Vierte Dimension´ 22 11. Jahrgang 1995, Nr. 2

Bekanntlich ist ‘‘Echtzeit’’ Definitionssache, deshalb sollenbei einem kooperativen Multitaskingbetrieb hier keine allzuhohen Anforderungen an die Timerauflösung gestellt werden.

Als Basis für den gesamten Timer dient in diesen Beispielendas Wort CENTISECONDS. Mit PowerForth+ (16 Bit) undPowerForth/386 (32 Bit) wird das mit Hilfe des Wortes(TIME) programmiert, welches auf dem Stack die Stunden,Minuten, Sekunden und Hundertstel Sekunden zurückgibt. Dader Tag 8.640.000 Hundertstel Sekunden lang ist, erfolgt dieBerechnung am besten mit 32-Bit-Zahlen. Der Einfachheithalber werden die Beispiele deshalb mit dem 32-Bit-Forthdargestellt. Eine Anpassung an 16-Bit-Systeme ist aber nichtschwierig.

Zeitdifferenzmessung

Zur Zeitdifferenzmessung soll das Wort ELAPSED dienen.Eine kleine Hürde bereitet eine Zeitdifferenzmessung um0:00 Uhr herum, aber diese kann durch eine Korrekturadditionüberwunden werden.

Screen 11 \ Multitasking Timer23 \ get time in centiseconds4 : CENTISECONDS ( -- u ) (TIME)5 SWAP 100 * + SWAP 6000 * + SWAP 360000 * + ;67 \ centiseconds per day8 24 360000 * CONSTANT CENTISECONDS/DAY910 \ calculate elapsed time in centiseconds11 : ELAPSED ( n1 n2 -- n3 ) SWAP -12 DUP 0< CENTISECONDS/DAY AND + ;13141516

Verzögerungsschleifen

Eine einfache Möglichkeit, eine Verzögerungsschleife zuprogrammieren, wäre folgende:

: CENTISECONDS-WAIT ( # -- )

CENTISECONDS + \ calculate end timeCENTISECONDS/DAY MOD \ modulo a day

BEGIN PAUSE DUP CENTISECONDS = UNTILDROP ;

\ wait for end time

Leider hat die obige Routine einen Haken. Es wird, speziellin einer Multitaskingumgebung, selten möglich sein, genauden Zeitpunkt der Endzeit zu erreichen. Meistens wird manwohl ein paar Hundertstel Sekunden zu spät sein. Deshalbmuß anstelle des Gleichheitszeichens ein anderer Vergleichher, der auch bei Überschreitung des Zeitlimits die Schleifebeendet, z.B. dieser:

: CENTISECONDS-WAIT ( # -- )CENTISECONDS + \ calculate end timeCENTISECONDS/DAY MOD \ modulo a dayBEGIN PAUSE DUP CENTISECONDS > WHILEREPEAT DROP ;

\ wait for end time

Diesmal wird die Schleife korrekt verlassen, wenn dieaktuelle Zeit gleich oder größer der Endzeit ist. Leiderfunktioniert dieses Konstrukt nicht bei Zeiten um 0:00 Uhrherum, die Schleife würde dann im ersten Durchgangverlassen werden.

Hier bietet sich eine Berechnung mit Overflow-Arithmetikan. Ab FORTH-83 wurden die DO...LOOP-Schleifen mit Hilfedieser Technik dahingehend geändert, daß mit ihnen nun auch65536 Schleifendurchläufe (bei 16 Bit-Systemen) möglichwaren. Das alte fig-FORTH konnte nur maximal 32768Durchläufe. Dieser Vorteil wurde mit einem kleinenLaufzeitoverhead bei der Berechnung des Schleifenindexeserkauft.

Betrachten wir einmal 3-Bit-Zahlen im Zweierkomplement,welche unseren laufenden Timer darstellen sollen:

000 0001 1010 2011 3100 -4101 -3110 -2111 -1000 0

usw. ...Die Betrachtung der Uhrzeit im Zweierkomplement scheint

auf den ersten Blick etwas ungewöhnlich zu sein, aberletztendlich ist dem Rechner unsere Betrachtungsweiseeinerlei. Additionen und Subtraktionen werden sowohl imZweierkomplement als auch in vorzeichenloser Darstellunggleich behandelt.

Jetzt stellen wir einen vorzeichenbehafteten Vergleich mitjeweils zwei aufeinander folgenden Zahlen an:

0 > 1 falsch1 > 2 falsch2 > 3 falsch3 > -4 wahr

-4 > -3 falsch

MultitaskingfähigeTimerfunktionenvon Bernd Beuster

[email protected]

Der Schwerpunkt dieses Artikels liegt bei einer Timerrou-tine, die nicht unbedingt bis auf die letzte Mikrosekundegenau sein muß, dafür aber im Multitaskingbetrieb denEchtzeiterfordernissen genügen soll.

Stichworte: Timer Übertrag PowerForth

Multi-Timer

11. Jahrgang 1995, Nr. 2 23 Forth-Magazin ´Vierte Dimension´

: MS ( # -- ) 10 / CENTISECONDS-WAIT ;

wobei man sich aber im klaren sein sollte, daß eineMillisekundenauflösung in diesem Fall völlig illusorisch ist.

Und daß das Ganze auch funktioniert, zeigt folgendes kleineMultitaskingprogramm. Es werden zwei Tasks generiert, dererste zeigt die aktuelle Uhrzeit im Sekundenrythmus in derobersten Zeile des Bildschirmes an und der zweite Task eineZeile tiefer die Uhrzeit im Dreisekundenrythmus.

Screen 31 \ Test2 : SHOW-TIME ( x y -- )3 CURSOR-OFF GETXY 2SWAP GOTOXY .TIME GOTOXY CURSOR-

ON ;45 : T16 BEGIN 100 CENTISECONDS-WAIT 35 0 SHOW-TIME AGAIN ;78 : T29 BEGIN 300 CENTISECONDS-WAIT 35 1 SHOW-TIME AGAIN ;1011 : START-TASKS12 INIT-MULTI \ init multitasker13 ASSIGN T1 1 TO-TASK \ init tasks14 ASSIGN T2 2 TO-TASK15 1 ACTIVATE 2 ACTIVATE ; \ start tasks16

Zusätzlich können natürlich auch im Vordergrundprogramm(Task 0 = Forth) Timerfunktionen genutzt werden.

q

Literaturverzeichnis

Thomas Beierlein, ‘‘Was tickt denn da...’’, VD 4/92, S. 21-22.Arndt Klingelnberg, ‘‘Pudding mit Sahne’’, VD 1/94, S. 18-20.Bernd Paysan, ‘‘Zeitmessung auf dem PC’’, VD 2/94, S. 10-11.

-3 > -2 falsch-2 > -1 falsch-1 > 0 falsch0 > 1 falsch

usw. ...Wie man sieht, gibt es genau eine Stelle, wo ein Überlauf

(Overflow) stattfindet, den man als Abbruchbedingung nutzenkann. Man muß also eine Verschiebung derAbbruchbedingung in den Bereich des Überlaufsbewerkstelligen. Bei einer Programmierung aufAssemblerebene stellt jede CPU, die etwas auf sich hält, einOverflow-Flag für genau diesen Fall zur Verfügung. In Forthsieht das dann so aus:

Screen 21 \ Multitasking Timer2 HEX34 \ wait for # centiseconds5 \ works with overflow arithmetic6 : CENTISECONDS-WAIT ( # -- )

CENTISECONDS TUCK + \ calculate end time7 CENTISECONDS/DAY MOD \ modulo a day8 80000000 + TUCK - SWAP \ prepare overflow math9 BEGIN PAUSE \ do the next task10 CENTISECONDS OVER - \ calculate time difference11 >R SWAP R@ > R> -ROT \ check for overflow12 UNTIL 2DROP ;1314 DECIMAL1516

Applikation

Der Name CENTISECONDS-WAIT ist zwar ein weniglang, aber CS (als Äquivalent zu MS=Millisekunden) könntebei i80x86 Prozessoren mit dem Codesegment verwechseltwerden. Eine Alternative wäre vielleicht noch:

release the PC in three monthswhen they suddenly realized thatthey didn’t have a word-proces-sor. Draper wasn’t doing muchdoing time so they were able tofurlough him. So the story goes.Maybe he will pop up here toconfirm or deny.”!Martel Firing berichtet über di-verse integrierte Programme, andenen er mitwirkte, insbesonderedas von Noumenon 1984 heraus-gebrachte ´Intuit´, ebenfalls inForth.Roedy Green glaubt, daß derfrühe Apple ][ Word Processorund ein Lotus Clone, VP-Planner,ebenfalls in Forth geschriebensind.

clv nach comp/lang/forth

Forth-Systeme

Forth/2 für OS/2

Wer immer noch kein Forth fürOS/2 gefunden hat, sollte viel-leicht einen Blick auf Forth/2werfen. es ist in assembler ge-schrieben, die Quelle ist dabeiund es unterstützt ´multiplethreads´.Erhältlich bei: http://www.interac-cess.com/users/ka9dgx/forth2.ht-ml

clv nach comp/lang/forth10.4.95)

Forth insideTextverarbeitung

Wer das Usenet-Brett ´comp/lang/forth´ regelmäßig liest, konn-te im April einiges über Textver-arbeitungssysteme erfahren. Hierberichtet z.B. Wil Baden :“The original Word Perfect waswritten in Forth. Word PerfectCorporation’s original name had“Forth” in it. It is said to havebeen done on a Summer vacationby two Brigham Young Universitystuduents. Forth’s portability letthem port it to many platforms.Now it is written in a profanelanguage.The word-processor that wasdelivered with the first IBM PC’swas written in Forth by JohnDraper, AKA Cap’n Crunch. Thestory is told that IBM was set to

Geschichte:Woher kommt der Name´C++´

In diesem Zusammenhang einekleine Anekdote: Der UlrichRichter hat, bevor er zur MoerserForthgruppe kam, ausschließlichin FORTRAN und C program-miert. Die Christel hat das ‘aufge-schnappt’ und wollte wissen, wo-her überhaupt dieser merkwürdigeName ‘C’ kommt. Ich habe das,zugegeben mit böser Absicht, soerklärt, daß dieser Name vonLeuten bevorzugt wird, die nurbis Drei zählen und nur bis ‘C’buchstabieren können. Der MartinBitter hat dann noch eins draufgegeben und gesagt : “Exakt, undwenn die ‘F’ meinen, sagen dieC++ !”

F.Prinz, April 95

Multi-Timer

Forth-Magazin ´Vierte Dimension´ 24 11. Jahrgang 1995, Nr. 2

Bücher

Dieses Buch ist bemerkenswert,weil es

- nach dem Sharewareprinzipvertrieben wird,

- auf F-PC 3.56 aufbaut,- weil es für Einsteiger ge-

schrieben wurde und trotzdemsehr tief geht.

Der Autor gibt zunächst eineEinführung in das Stackprinzip,erläutert dann den Unterschiedzwischen Daten- und Returnstackund gibt Hinweise zum Manipu-lieren des Stacks. Besonderswichtig ist es, daß reichlich Bei-spiele vorhanden sind, die auchgut kommentiert sind. Auch Trai-nigsaufgaben (mit Lösungen) sindgenug da.

Das dritte Kapitel behandeltArithmetik-Logik-Vergleichs-operationen, auch dieses schließtmit Übungen ab. Im vierten Kapi-tel werden dann die wichtigstenKontrollstrukturen (IF .. THEN ..ELSE ; DO .. LOOP usw)besprochen. Die nächsten Kapitelbehandeln Datentransport undStringverarbeitung. Besonders alsHinweis für Anfänger sei gesagt,daß das Inbetriebnehmen von F-PC sehr ausführlich erläutert wird.

Das daran anschließende Kapi-tel behandelt den Fall, daß etwasnicht tut, was es soll. Es geht aufDebugging ein und behandelt dieTechnik genauso wie die einzel-

bisher leider am beschränktenVD-Etat. Schade ...

jrd & clv

Design & Elektronik 10/95Sprachen auf 8-Bittern

In der Design & Elektronik10/95 war auf drei Seiten eineumfassende Tabelle mit derzeitangebotenen 8-Bit-Einplatinen-computern zu finden. An Softwarefanden sich reichlich C und Basic,aber auch zweimal Forth. Dieswar zum einen das nanoFORTHfür Mitsubishi-Controllerbei Glyn(vgl. VD 1/95, S.6) und zumanderen Forth für den PIC 17C42von Microchip. Letzteres liefertz.B.:

pd ComputerSchloßstr.16

61184 KarkenTel.: 06039 / 7061

jrd/Rafael Deliano

Design & Elektronik April´95Experimente interaktivsteuern

Dieser Beitrag von J..Pisarzvon der Firma Port auf Seite 58beschäftigt sich mit einer erwei-terbaren Experimentsteuerung fürdie D2-Mission. Als Erweite-rungs- und Steuerungssprachewird dabei Forth auf Motorola/OS9-Systemen eingesetzt.

Jörg Plewe

LiteraturLeo Brodies ´Forth StyleGuide´ im WWW

I have made an HTML versionof Leo Brodies Forth Style Guidethat appeared in “THINKINGFORTH”. The guide can bereached from the Forth InterestGroup home page: http://tayge-ta.oc.nps.navy.mil/fig_home.html.Because the style guide waswritten some 10 years ago, partsof it are clearly dated.

I would like to get well consi-dered commentary on the guideli-ne and add them as hypertextlinks in an “updates” section forit.. Please take a look and give meyour comments.

Everett (Skip) [email protected]

comp/lang/forth, 12.4.95

Forth auf CD

Der tewi Verlag bietet für69,80 DM unter der ISBN 3-89362-629-8 eine Doppel-CD mitdem Titel”POWER-PROGRAM-MIERUNG” an. Laut Titelblattdes Päckchens und seinerRückseite befinden sich auf denbeiden Scheiben mehr als 1 GBy-te an Entwicklungssystemen,Sourcen und Werkzeugen. Dassind z.B Vollversionen von: Tur-bo Pascal 5.5, Turbo Pascal fürWindows, Borland’s ResourceWorkshop 1.0, Turbo C++ 1.0,Turbo Assembler, inkl. Debuggerfür DOS und Windows. WeiterhinGNU C++ für DOS und OS/2,GNU ADA, Pascal für OS/2. Esfolgen Compiler für Modula,Oberon, Cobol, Fortran; Interpre-ter für Lisp, Prolog, Logo, Smallt-alk, Snobol; ein Transpiler (niegehört), Assembler, Crossassem-bler; Upgrade Windows 3.1 -->Windows 3.11, Win32S 1.15;Emulatoren für C64, CP/M, Sec-trum und Apple II...und “vielesmehr”.

Unter anderem werden auch 19(!!!) FORTH-Systemeangekündigt, von denen es imkleinen, beigepackten Heftchenheißt:

“Forth ist eine Sprache fürEnthusiasten. Eigentlich kann manmit Forth auch alles schreiben.Dementsprechend viele Public-Domain- und Shareware-Forth-Systeme gibt es und dementspre-chend viele Forth-Compiler und-Interpreter befinden sich auf CD1in den Unterverzeichnissen von>\forth\compiler< und >\forth\in-terpre<, nämlich insgesamt 19Stück. Außer DOS-Versionen sindauch OS/2-Compiler dabei.”

Bei näherem Hinsehen relati-viert sich die Angabe des Verla-ges allerdings auf 14 Systeme.Eines der angepriesenen‘FORTHe’ ist FIFTH. Eines der‘Systeme’ ist die ‘Razorback Da-

nen Worte. Kapitel 9 bis 11 und13 bis 16 sind eher dem Aufstei-ger vorbehalten und beinhaltenTextverarbeitung, Mathevokabular´Maths´, Deferred words, Interfa-cing DOS, Vokabulare, CREATEDOES>, und Timing, Multitas-king. Das Kapitel 12 ist eineinziges Beispielkapitel.

Abgerundet wird das Buchdurch ein Kapitel zu PASM, dierichtige Mischung aus Assemblerund Forth, die Behandlung vonInterrupts, Input/Output, Turnkey,Metacompiling, Targetcompilingund Übungen.

Im Anhang finden sich einigenützliche Listen über die Innerei-en von F-PC und Lösungen derÜbungen.

Fazit: Das Buch hat mich bisjetzt einen großen Schritt nachvorne gebracht. Es werden wohlnoch weitere folgen.

Einziger Nachteil: Das Buch istin Englich geschrieben, es ist aberleicht verständlich.

Kopien dieses Buches könnenbei mir gegen einen V-Scheckvon 32 DM bezogen werden (bitteAdreßaufkleber beilegen!)

Robert FreitagFormesstr. 31 A; 51063

Köln; Tel: 0221 / 617 93

Presseschau: M&T Februar´95New Micros Inc auf68HC11

Die Einplatinencomputer desamerikanischen Herstellers basie-ren auf 68HC11-CPUs. Währendder Hersteller alsSoftwareunterstützung bisher nurForth im Angebot hatte, liegenauf Diskette nun auch Basic undSmall-C als Alternative bei. Ver-trieb durch:

MicroscanÜberseering 23

22297 Hamburg

jrd/Rafael Deliano

Presseschau: M&T Februar´95Die Forth-Spezialisten

Wer Die Spezialisten für Forth-Software sind, verrät uns dieM&T zwar nicht. Unter der Ru-brik Geschäftsverbindungenerfah-ren wir aber deren Fax-Nummer,die 08131 / 78500 lautet. Recher-chen der Redaktion ergaben, daßes sich dabei um einen Anschlußim schönen Ort Karlsfeld imSüden der Republik handelt. Eineweitere Befriedigung der Neugierunserer Leserinnen und Leserdurch direktes Anfaxen scheiterte

Hendtlass:Real Time Forth

250 SeitenShareware per Diskette, englisch

Bezug einer Papierkopie (s.u.)

Rezensionen gesucht!

Das Forth-Magazin möchtegerne mehr Rezensionenveröffentlichen. Außerdem su-chen wir noch Personen, die ihreZeitschriften hinsichtlich forthre-levanter Themen lesen unddarüber Kurzberichte verfassen!

Bitte bei derRedaktion melden / Claus

Bücher / Presseschau

11. Jahrgang 1995, Nr. 2 25 Forth-Magazin ´Vierte Dimension´

Geschichtewird gemacht

- es geht voran!

tenbank’ - natürlich mit UR/FORTH definiert, aber ohne UR/FORTH nicht lauffähig. Ein Sy-stem ist ein DADA-Compiler (nievon gehört...), dessen einziges,äußerliches Merkmal einer Ver-wandtschaft mit FORTH ein bei-liegendes File *.SCR im Block-format zu sein scheint. MikeWarot’s FORTH/2 ist gleichzweimal vertreten. Zu F83 exi-stiert ein zusätzliches VerzeichnisF88.

Aber von den immer noch 14Systemen verbleiben zwei OS/2-Forthe, eben Mike’s FORTH2und Alan Pratt’s OS2FTH. Dazugesellen sich BBL, EFORTH,F83, FIG, FORTHCMP,FORTHED, FPC, LOVE,MIN4ZH, PYGMY, UNIFORTHund ZEN. Das ist immer nocheine beachtliche Sammlung. Ins-gesamt erscheinen mir die beidenCDs als eine riesengroße‘Wundertüte’, deren Ecken ichkaum jemals bis ins Detail ‘erfort-hen’ werde. 1 GByte ist mireinfach zuviel. Was die Zusam-menstellung der FORTH-Systemeanbelangt, wird der eine oderAndere sicher etwas zubemängeln haben, vor allem ver-mutlich die Auswahl der meistwenig bis gar nicht kommentier-ten Sourcen. Aber es ist einAnfang ! Kaufen wird die CDswohl Niemand (naja, ich schon)

Neu im Vertrieb:

- VD95-1 - Diskette zum Forthmagazin- VD92-2 ”- Dokumentation ANS X3.215 - 1994 im Word 2.0-Format- Crossassembler für Z8 und PIC von Bernd Hinze- EFORTH für PIC 1742

je Diskette: 10.-DM

Ing. Büro Klaus KohlPF 1173 MeringZeppelinstr. 1086415 MeringTel.: 08233 / 30 524Fax.: 08233 / 99 71

Seit 1.1.1995 hat Thomas Prinzden Microcontroller-Verleihübernommen. Bis jetzt hat er zweiAnfragen bekommen.

Dem Verleih stehen folgendeunterschiedliche Geräte zurVerfügung: Super-8 / Mini-Muckund zur Abschreckung 8052-AH-Basic. Es sind jeweils enthalteneine Leiterplatte mit dem entspre-chenden Microcontroller, Netzteil,Beschreibung und Software.Demnächst wird noch ein68HC11 hinzukommen Dieserwird zur Zeit von Rafael Delianozusammengebaut.

Der F65k wird in alter Formnicht mehr hergestellt und istnicht mehr erhältlich.

Wer dem Verleih Geräte zurVerfügung stellen könnte, seihiermit ermuntert.

Forth-Gesellschaft: Vertrieb

Forth-Gesellschaft: Microcontrollerverleih

Interessant wären auch ältereGeräte EMUF, MOPS aber mitUnterlagen, Software etc..

Nach Möglichkeit möge manmich zwischen 19:00 Uhr und22:00 Uhr kontaktieren, außerMontag und am 1.Mittwoch jedenMonats.

Thomas PrinzMicrocontroller-Verleihder Forth

Gesellschaft e.V. undFG-e.V. Rhein Neckar-Gruppe

Adalbert-Stifter-Str.1569412 Eberbach a/N

Tel: 06271 / 2830Fax: 06220 / 7065

Mail: [email protected]

Das Forth-Magazin sucht ...

Forth-Gesellschaft: Forth-Magazin

An Sachmitteln fehlen noch:- Ein Englisch-Wörterbuch- Ein Duden, neuer als 1968

An Hardware fehlt noch:- Ein Rechner, schneller

als 386dx33- Eine Gigabyte-Festplatte- Ein A4-Scanner

An Software fehlt noch:- Ein DTP-System,

teurer als50 DM- Ein Archivsystem, vielleicht

auf Basis desF-PC-Hypertextes?

An Beratern fehlen noch:- Spezialisten aus dem Satz-,

Grafik-, Layoutbereich- DTP-Erfahrene zur Beratung

bei der Neuanschaffung- Wer kann mir Hinweise zum

Belichten von Diskettegeben?

und natürlich Beiträge..... zum Beispiel für das geplante

Schwerpunktheft ‘Embedded Sy-stems’. Aber auch in allen ande-ren Bereichen, die Euch interes-sieren. Kurzmeldungen aus demInternet oder von aktuellen Pro-jekten, Rezensionen, der Phanta-sie sind keine Grenzen gesetzt...

Claus 030 / 782 81 79

Auf der Forth-Tagung wurdenverschiedene Ideen geäußert, diein ähnliche Richtungen gehen:

- Klaus Kohl vom Forth-Vertrieb schlägt vor, eine CDherauszugeben.

- Skip Carter (USA) plantebenfalls ein CD-Projekt

- Claus Vogt vom Forth-Magazin hätte Interesse,verschiedene Archive aufzubauen

- Holger Petersen von derMailbox möchte interessanteProgramme zur Verfügung stellen

- Egmont Woitzel hätte gerneeinen FTP-Server für Forth inDeutschland. FTP-Server wieTaygeta (Silicon Valley) und einServer in Portugal spielen einewichtige Rolle für Forth.

wegen der FORTH-Systeme. Dawerden Pascal und C - oder dieanderen Exoten - vermutlich eher‘ziehen’. Immerhin ist FORTHdabei. Freuen wir uns auf Jeden,der dadurch neugierig wird ;-)

Erwähnt werden sollte an dieserStelle unbedingt, daß wir, dieLeser dieses Beitrages, den Hin-weis auf die CD einem Forth-Freund aus Leipzig verdanken.Der Friedhold Birnkammerer, mitdem ich sowohl brieflich als auch(gelegentlich) telephonisch inKontakt stehe, hat mir von tewi’sCD erstmals berichtet.

Zusätzlich läßt sich noch dieaktuellste Version von Mike Wa-rot’s FORTH/2 auf der HOBBESCD finden. Diese CD, die (eigent-lich) ebenso

erscheint wie die VD - nämlichquartalsmäßig - ist allen OS/2-lernein Begriff. Auf ihr findet sichwieder, was sich im Laufe einesVierteljahres auf dem HOBBESftp.server zu OS/2 ansammelt. Für29,- ersteht der willige Käuferneben einer Unmenge an Trei-bern, Tools, Dokumentationen,Patches und Demos auch ‘Pro-grammiersprachen’ aus der PDund aus dem Sharewarebereich -eben auch FORTH/2 in der Versi-on Beta 0.40. Allerdings schreibtMike in seinen Dokus, daß tech-nisch kein Unterschied zur Versi-on 0.39 besteht. Lediglich an der

Die Lage stellt sich etwa sodar:

- Von weltweiten Netzen bis zuprivateSparstrümpfenisthinreichend Material vorhanden.

- Der Bedarf ist vorhanden.- Die technischen

Möglichkeiten reichen aus, umjeden Bedarf zu jedem beliebigenPreis zu befriedigen

Aber irgendetwas fehlt. Wersagt mir, was?

Die VD-Redaktionveröffentlicht gerne kurzeBeiträge zum Thema.

(clv)

Fortsetzung von der letzten Seite

Forth-Gesellschaft: Jagen und Sammeln

Hier wäre Platz für eine weitereAktivität von genau 4,46 x 2,4 cmGröße gewesen. Nächstesmal?

Forth-Gesellschaft

Forth-Magazin ´Vierte Dimension´ 26 11. Jahrgang 1995, Nr. 2

(Dies ist ein Wink mit dem Zaunpfahl diesenDienst der Forth Gesellschaft zu nutzen).

BEGIN ANS FORTH mysterious?WHILE learn REPEAT

Die ANS-Forth Kontrollstrukturen sindschon einw e n i gerklärungsbedürftig, weilsie einfachdas erlauben,was gefällt.Ich will ei-nen kleinenEinblick ge-ben, was demeinen oderanderem daalles gefallenkönnte. Ichwürde michfreuen, wenndas Thema in

einem getrennten Artikel einmal gebührlicherschöpfend behandelt werden würde.

Die ANS Forth Kontrollstruktur-Wortemüssen gar nicht ausschließlich in bekanntenKombinationen (BEGIN WHILE REPEAT,BEGIN UNTIL, IF THEN) auftreten, son-

dern dürfen nach gewissen Regeln beliebigkombiniert werden.

Um ihre Bedeutung zu erklären, definiertder Standard einen Kontrollfluß-Stack samtzugehöriger Operationen, den ein Systemdurch den Daten-Stack aber auch durcheinen separaten Stack implementieren darf.Ein Programm, das eigene neue Kontroll-strukturen definieren will, muß als Konse-quenz den schlimmsten Fall annehmen,nämlich, daß der Kontrollfluß-Stack durchden Datenstack implementiert ist.

Kombinieren darf man Kontrollstrukur-Worte nun, wenn ihre Kontrollfluß-Stack-Effekte zusammenpassen und letztlich einenblancierten Kontrollfluß-Stack ergeben. AlsBeispiel soll die WHILE-Schleife mit mehre-ren Ausgängen herhalten. Zum Verständnisist es einfacher die obige Schleife einmalstatt mit REPEAT mit AGAIN und THENzu schreiben:

BEGIN ANS FORTH mysterious?WHILE learn AGAIN THEN

Ja wo sind sie, die Kritiker? Nun hatte ichdoch gedacht, auf der Forth-Tagung ein paarrichtig kritische Stimmen zu hören. Aber -im Großen und Ganzen scheinen alle rechtzufrieden mit ANS Forth zu sein. Nicht, daßes überhaupt keine Kritikpunkte gäbe und

das ist ja auch gut so.Das technische ANS Forth Komitee hat

jedenfalls gemäß der ANSI-Richtlinien eineSperre, sich zu treffen und weiterzustandar-disieren. Damit herrscht von offzieller Seitealso verordnete Ruhe. Motivation ist, daßsich der aktuelle Standard auch über einenlängeren Zeitraum etablieren kann.

Nichtsdestotrotz ist eine (damit inoffiziel-le) Auseinandersetzung mit den Schwach-punkten des aktuellen Standards undÜberlegungen in Teilen, wo er gar nichtsaussagt, wichtig, sollen mit der nächsten(wohl in fünf Jahren zu erwartenden)offiziellen Runde substantielle Fortschrittegemacht werden. Das heißt aber, daß sichauch um den aktuellen Standard eineFolklore ausbilden wird, welche Konstrukteverwendet und unterstützt werden sollen, undwelche links liegen bleiben. Einen Vorstoßin dieser Richtung hat Anton Ertl mit denlokalen Variablen gemacht. Alsgrundsätzlicher Verfechter lokaler Variablenmöchte er dennoch das Wort LOCALS|wegen der Reihenfolge, in der die lokalenVariablen definiert werden, geächtet sehenund schlägt statt dessen vor, die Syntax vonJohn Hayes einzusetzen [1]. Auch dieScientific Forth Library, von der auch schondas letzte mal die Rede war, hat ANS Forthnoch weitere Konventionen (die ScientificForth Folklore) aufgesetzt, damit die Biblio-thek mehr aus einem Guß wird. Der aktuelleStand der Bibliothek wird regelmäßig imUsenet in comp.lang.forth veröffentlicht undunlängst wurde sogar auf Anfrage dergesamte bisherige Inhalt dort verschickt

BEGIN markiert das Sprungziel für denRückwärtssprung der Schleife und legt dazueine entsprechende Identifizierung (jedesSystem darf selbst entscheiden, was das ist)‘begin-sys’ auf den Kontrollfluß-Stack.WHILE erzeugt einen Vorwärtssprung, des-sen Sprungziel noch aufgelöst werden muß.ANS Forth gemäß vergräbt WHILE dieentsprechende Identifizierung ‘while-sys’ un-ter der von BEGIN. Der Kontrollfluß-Stackhat dann die Form ( while-sys begin-sys ).AGAIN erzeugt einen Rückwärtssprung zuder Adresse, die durch das obersteKontrollfluß-Element identifiziert wird (diesmuß ein ‘begin-sys’ sein); in unserem Fallist das die Identifizierung von BEGIN.Schließlich löst THEN den noch offenenVorwärtssprung von WHILE auf.

BEGIN markiert alsoRückwärtssprungziele, WHILE springt aneinem Rückwartssprung vorbei nach vorn,AGAIN springt unbedingt rückwärts undTHEN markiert Vorwärtssprungziele.Ja!

Nun ist die WHILE-Schleife mit mehrerenAusgängen nur noch eine Fingerübung:

BEGIN ANS FORTH mysterious?WHILE concentrated?WHILE learnAGAIN THEN THEN

Alles klar?Schlimm wird es erst, wenn nun der

Kontrollfluß-Stack explizit während einerDefinition umgeordnet wird. Dann ist derKontrollfluß in der Regel nur noch demProgrammierer klar, und dem auch nurwährend des Hinschreibens. Die vernünftigeHerangehensweise ist also, die für denexotischen Kontrollfluß notwendigenKontrollfluß-Stack-Manipulationen in neuenCompiling-Words zu verstecken und auf dasexplizite Verändern des Kontrollfluß-Stackszu verzichten. Ich hoffe, das wird Folklore...

Im nächsten Heft werde ich in meinerWortkiste kramen und einige der ANSForth-Implementierungen mir liebgeworde-ner Worte vorstellen. Vieleicht findet der einoder andere dabei ja etwas für seineneigenen Fundus.

[1] "User-Defined Local Variable Syntax withANS Forth”, John R. Hayes, ACM SIG-ForthNewsletter Vol.4 No.2, S.19f

q

Jetztgeht´s

ANSFORTH!

von Ulrich Hoffmann

Die ANS-Kontrollstrukturen sind

ANS Forth

11. Jahrgang 1995, Nr. 2 27 Forth-Magazin ´Vierte Dimension´

Forth in Holland

In Arnheim gibt es die Forth-GruppeHCC-Forth-Gebruikersgroep. In Kontaktstehe ich mit dem Redakteur derClubzeitschrift dieser Gruppe. SeineAnschrift:

Willem Ouwerkerk,Boulevard Heuvelink 126,NL-6828 KW Arnhem .

Die Zeitschrift kommt ein paar Malpro Jahr heraus und heißt ‘‘Het Vij-geblad’’, also ‘‘Das Feigenblatt’’. Dasist ein Spiel mit dem englischen Wort‘‘Fig’’ (Forth Interest Group), zudeutsch ‘‘Feige’’, und holländisch eben‘‘vijg’’.

Turbo-Forth und dieFranzosen

Turbo-Forth wurde von Marc Petre-mann, Michel Zupan und anderen ausder französischen Gruppe JEDI seit1987 (also vor F-PC !) entwickelt. Esbasiert auf F83 von Laxen and Perryund ersetzt die Blockstruktur (Screens)durch eine konsequente Dateianbindungim Sinne von DOS (für IBM-Kompati-ble).

Die Gruppe JEDI scheint es nichtmehr zu geben. Marc Petremann gibt esnoch:

Marc Petremann,17, allée de la Noiseraie,F-93160 Noisy le Grand .

Er betreibt eine Firma, diehauptsächlich Turbo-Forth vertreibt. Esgibt inzwi-schen eine ganze Reihe vonDisketten mit Turbo-Forth und Erweite-rungen. Ich habe vor Jahren solcheDisketten zu DM 10,- pro Stück erstan-den.

1988/89 habe ich eine deutsche Versi-on des Grundsystems (Fehlermeldungen,HELP-Erklärungen, SEE-Decompilateusw.) erstellt. Marc Petremann hat mirseinerzeit die kostenlose Weitergabeerlaubt.

Turbo-Forth habe ich mir zum Vor-bild für mein Transputer-Forth-SystemF-TP genommen, dessen Fertigstellungdemnächst bevorsteht.

Und im VereinigtenKönigreich

Von Willem Ouwerkerk habe icheinen Hinweis auf die Forth-Gruppe‘‘FORTHWRITE FIGUK’’ in Englanderhalten. Adresse des Vorsitzenden:

Paul Benett25 Court RoadHorsfield CommonBristol BS7 0BUGreat Britain.

Ich habe geschrieben und bleibe amBall.

Fred Behringer, München

ForthInternational

von Fred Behringer

Das französicheTurbo-Forth habe ichmir zum Vorbild fürmein Transputer-Forth-System F-TP

Ich möchte in dieser Rubrik gern in unregelmäßiger Folge über Forth-Aktivitäten in anderen Ländern berichten. Ich bin fleißig am Sammeln, würdemich aber natürlich auch über Zusendung von Material von anderer Seite freuen.

Fred BehringerPlanegger Str. 2481241 München.

Verständlich sind für mich die Sprachen Englisch, Holländisch, Italienisch undFranzösisch. Bei Russisch würden meine 4 Jahre Schulkenntnisse nichtausreichen. Aber vielleicht könnte ich dann Unterstützung von den sehr aktivenRostockern bekommen (?)

Forth International

Forth-Magazin ´Vierte Dimension´ 28 11. Jahrgang 1995, Nr. 2

8 Forth in 32-bit Protected ModeRichard Astle

Der Autor erklärt seine direkte Methode,Forth in den 32-Bit-Protected-Mode-Raumzu bekommen - ganz ohne Assembler,Linker oder Protected-Mode-Lader. Die Me-thode erzeugt ein Mischsystem, das eigent-lich aus zwei Forths besteht, einem 16-Bit-und einem 32-Bit-System. Zum Aus-gleich erhält der Benutzer die Möglichkeit,zwischen den beiden Systemen hin- undherzuschalten und die ihm vertrauten Werk-zeuge weiterhin zu verwenden, ohne sieeiner neuen Umgebung anpassen zu müssen.

21 A Forth-Oriented Compiler Compilerand its Applications

Mati Tombak, Viljo Soo, Jaanus Pöial

Stack-orientierte Sprachen (Forth,PostScript usw.) werden in Software-Systemen oft als Zwischen- oder Zielspra-chen verwendet, weil sie portierbar, flexibel,kompakt und einfach sind. Auf dem Gebiet

der Compiler-Compiler wird oft der Begriffeiner ‘‘virtuellen Stackmaschine’’ verwendet,um die Semantik der Quellsprache und dasVerhalten des Programms zu beschreiben.Leider verwendet jede/r Autor/in seine/ihreeigene Stackmaschine. Die Grundidee desvorliegenden Artikels ist die Verwendungeiner ‘‘real-existierenden’’, weithin bekann-ten Standardsprache als Zwischensprache imCompiler. Forth ist die Sprache, in der dasSystem programiert wurde, und Forth istauch die Sprache der Compiler, die eserzeugt.

23 Forth2LaTeX - a Pretty-PrinterRonald T. Kneusel

Forthens Schönheit sollte leuchten - selbstaus einem Druckauszug heraus. In diesemSinne schrieb der Autor sein Programm, mitdessen Hilfe man ein Forth-Programm nachLaTeX übersetzen kann, einem Derivat vonDonald Knuths berühmten Drucksatzsystem.Forth2LaTeX ist für jene gedacht, dieansprechende Quelltexte produzieren wollen.

Forth Dimensions der Forth Interest Group, USA

7, Vol.16 Januar/Februar 1995

Es läßt normalen Text innerhalb einesForth-Programms zu und der Programmiererkann ein Programm schreiben, das beiAusführung seine eigene formale Beschrei-bung mitliefert.

28 Using Zeller’s CongruenceWalter J. Rottenkolber

Das ist ein Musterbeispiel für die Verwen-dung von Forth, um herauszubekommen, aufwelchen Wochentag ein bestimmtes Datumfällt. An welchem Tag sind Sie geboren ?Wann ist das nächste Mal Freitag, der 13. ?

30 Reports from euroForth ‘94Gordon Charlton and Tim Hendtlass

Teilnehmer aus allen Ländern besuchtendie euroForth-Konferenz 1994, um sichVorträge der verschiedensten Gruppen vonForth-Programmierern, Produzenten undWissenschaftlern anzuhören. Wie bei Euro-pas bestangesehener Forth-Zusammenkunftnicht anders zu erwarten, waren Vorträgeund Organisation ein voller Erfolg.

q

3 Forth-83 naar dpANS5/6, Teil 2Willem Ouwerkerk

Reichlich dokumentierte Doppelpunkt-De-finitionen der Core-Erweiterungen: .R 0<>0> 2>R 2R> 2R@ :NONAME <> ?DOAGAIN C’’ CASE ENDCASE ENDOFERASE FALSE MARKER NIP OF PARSEREFILL RESTORE-INPUT SAVE-INPUTSOURCE-ID TO TRUE TUCK U.R U>UNUSED VALUE WITHIN \ Anmerkungdes Rezensenten: Eigenartig, fast nichts istdabei, was nicht in Turbo-Forth schon seit1988 (und in meinem Transputer-Forth F-TPseit 1991) enthalten wäre.

11 Interview met Charles MooreJohnny Hacker

Jux-Interview. Dem Autor (‘‘Autor’’ ?)sitzt der Schalk im Nacken. ... ich hatte nichtviel zu tun. Alles war in COBOL program-miert und funktionierte prima. Ich hatteZugang zu einem alten IBM-Großrechnerund war der erste, der versuchte, seine Zeitam Computer mit Spielen totzuschlagen.TETRIS gab es noch nicht, und keine ‘‘256

leicht zu programmierende Spiele in TRS80-BASIC’’. Also fing ich an, meine eigenenSpielzeuge zu entwickeln. ... soll CharlesMoore dem ‘‘Interviewer’’ erklärt haben.Das habe ich, der Rezensent, doch schon malirgendwo gelesen ? 4 Seiten in englischerSprache. Heiter bis tiefsinnig.

15 Beginnerservaringenmet F-PCJ.M.C. Juursema

Anfänger am F-PC-Paket: ...’’2,5 M HDnötig, Installation (‘‘kaum’’) 45 Minuten,einfaches Kalenderprogramm von FORTH-79 nach F-PC, Debug arbeitet gut, vielgelernt’’ ... (holländisch).

25 GLOSGEN: automatische generatorvoor programma documentatie

Lennart Benschop

Das Anlegen eines Glossars, also einerListe von Erklärungen der im Systementhalten Forth-Worte, ist mühsam undfehlerträchtig - sagt der Autor. Sein Pro-gramm, 5 Seiten in ANS-Forth, soll dieArbeit erleichtern und weitgehend automati-

sieren. 20 Zeilen Einleitung in holländischerSprache, das Programm selbst mit allenKommentaren englisch.

33 TISC II (a Threaded Instruction SetComputer)

Russ Webb / Coos Haak

Der (kurze) erste Teil des Artikels ist inholländischer Sprache geschrieben. CoosHaak hat ihn aus dem Englischen (AutorRuss Webb) übersetzt. Er beschreibt denAufbau des TISCII. Das ist ein CPU-Baustein, der nach den Prinzipien einergefädelten Sprache, so wie sie Forth oftdarstellt, entwickelt wurde.

36 Invoer van getallen in ForthAlbert Nijhof

Zahlenumwandlung nach ANS-Forth-Ma-nier, basierend auf >NUMBER . Der Autorkonstruiert einen Satz von Zahlenumwand-lungsoperatoren mit verschiedenen Eigen-schaften. Etwa 18 Doppelpunkt-Definitionen,einige davon Anwendungsbeispiele. Allesprima kommentiert. Holländisch.

42 Het beste van USENETLennart Benschop

Elf Seiten Fragen und Antworten überForth, aufgegriffen in USENET, News-groups: comp.lang.forth. Natürlich in engli-scher Sprache. ?

q

Gehaltvolleszusammengestellt und übertragen von Fred Behringer

Het Vijgeblad von der HCC Forth-Gebruikersgroep, Holland

Nr. 44, Erstes Quartal 1994

Forth International

11. Jahrgang 1995, Nr. 2 29 Forth-Magazin ´Vierte Dimension´

Ein Heft, das sich ausschließlich mitHardware-Fragen beschäftigt. Interessant fürdiejenigen unter uns, die ab und zu auchgern mal zum Lötkolben greifen, ohne gleichausgebildete Elektronik-Entwicklerzu sein.

2 Van de redactieLennart Benschop

auch der Einsatz von Assembler von Forthaus ist ein Genuß, wenn man es mit denherkömmlichen Assemblern vergleicht ......Hardware ansprechen .... Forth .... Microcon-troller .... unmittelbar. ... Turbo-C GNU-C ...EMACS ... unmöglich ...

3 BeginnerservaringenJoop Kleinsma

F-PC .... Forth-Paket .... deprimierendgroß und kompliziert .... ganz anders, als esin den Forth-Büchern steht ..... und dochauch wieder überraschend einfach .... Hyper-text per Knopfdruck ....

5 Forth cursus en Cursus-ForthAlbert Nijhof

Die HCC hat einen Forth-Kurs mit demzugehörigen Kurs-Forth (eine ANS-antizipie-rende Version) entwickelt. 12 Seiten Kost-probe. Das Ganze stützt sich auf einen6501-Single-Chip-Computer mit Forth imROM (Hardware-Beschreibung im Verlaufedes Kurses). Auf Seite 6 lese ich (derRezensent): Forth besteht aus Worten. Wer-den ein oder mehrere Worte hintereinandereingetippt und durch ein RETURN abge-schlossen, so führt Forth diese Worte in dereingegebenen Reihenfolge aus. Ein Wort,das eine Zahl benötigt, greift sich (dagegen)immer diejenige Zahl, die als letzte eingege-ben wurde.

18 Het opslaan van een gedigitaliseerdaudio signaal op floppy diskMarcel Hendrix

Umfangreicher Artikel über denRTX2001A als Anrufbeantworter (28 Seiten:18 Seiten Listing, 1 Seite Schaltbild).Offensichtlich eine Übersetzung (insHolländische) und Beschreibung der Be-schreibung (aus dem ‘‘Amerikanischen’’)eines industriell gefertigten Apparates (derRenzensent). Der RTX2001A ist eine sehrschnelle Forth-Maschine. Es wird gezeigt,daß er ohne komplizierte Zusatzbausteine,wie Floppy-Controller oder AD/DA-Wand-ler, digitalisierte Audio-Signale aufnehmenund wiedergeben kann. Deltamodulationvereinfacht die AD/DA-Wandlung. Diemögliche Länge der Nachricht liegt derzeitnoch bei nur 16 Sekunden. Aber das läßt

sich über Datenkompression und Extra-RAMauf 8 Minuten steigern. Das Programm paßtbequem in das 3K-Benutzer-RAM.

46 BANBOEWillem Ouwerkerk

Beschreibung (mit Schaltbild) einer E/A-Karte, die an den parallelen Druckerportder meisten Computer und an den Userportdes C64 gehängt werden kann. Erleichtertden Zugang zu den Hardware-Projekten desHCC-ANS-Forth-Kurses auf so ziemlichallen Computern. Ein paar Schieberegistersorgen dafür, daß man zur E/A-Ansteuerungmit einigen wenigen Bits am Druckerportauskommt.

56 Het inlezen vanBASICODE files in F-PCLennart Benschop

Bereits seit 10 Jahren überschwemmt derniederländische Rundfunk den Äther mitComputerprogrammen, die in BASICODEausgestrahlt werden. Dies geschieht mit 1200bit/sec, und die Programme können leichtsoftwaremäßig dekodiert werden. Für allemöglichen Computer, vom VC20 angefan-gen, wurden Programme entwickelt, umBASICODE von Kassette zu laden und insRAM zu bringen. Will man BASICODEdirekt aufnehmen, so muß man (mußte manbisher) Assembler einsetzen. Der Autorzeigt, daß man diese Aufgabe mit einem‘‘schnellen’’ 80386/25Mhz auch in High-Level-Forth erledigen kann. (Anmerkung desRezensenten: 80386 ? 25 Mhz ? Schnell ?Wie schnellebig doch unsere Zeit ist !)

60 Het beste uit USENETohne Autor

18 Seiten Forth-Blockstruktur,konfrontiertmit dem DOS-Dateisystem. (Anmerkung desRezensenten: Das war’s ja gerade, was michsofort auf Turbo-Forth von Marc Petremannund Co. zustürzen ließ - lange bevor TomZimmer bei uns (bei uns VDlern) aktuellwurde. Interessant, wie häufig und wieaufgeschlossen der Frage ‘‘Block oder nichtBlock’’ gegenüber Bernd Paysan von derTU-München auftritt. Spricht mir aus demHerzen. Muß doch mal die HP-Halle bei unsin der TU aufsuchen.)

q

Het Vijgeblad von der HCC Forth-Gebruikersgroep, Holland

Nr 39, Drittes Quartal 1992

Forth insideIPS

Die Sprache ‘‘Interpreter fürProzeßstrukturen’’ [1] wurde ursprünglichvon Dr. Karl Meinzer für die CPU RCA1802 zum Einsatz auf dem Amateurfunksa-tellit OSCAR-10 entwickelt und orientiertsich weitgehend an FORTH. Für den Einsatzauf den Satelliten OSCAR-13 [2] undRUDAK-II [3] folgte die Portierung auf dieCPUs 65SC02 und RTX 2000.Parallel zur Entwicklung für die Flugrechnerist auch laufende Portierung auf neueEntwcklungssysteme nötig. Der letzte Schrittwar von einem Atari XL ( 6502, Kassetten-laufwerk ) auf einen ATARI ST. Womit IPSnun auch für den 68000 existiert. DerBordrechner des Satelliten, die IHU ‘‘Inter-nal Housekeeping Unit’’, hat IPS nicht festinstalliert. Beim OSCAR-13 erfolgt nachdem Reset ein kurzer Selbsttest. Dannwerden die 7,2kByte IPS von der Bodenstati-

on geladen. Es folgt die Flugsoftware mit36kByte die während des Ladens compiliertwird. Die Flugsoftware ist in bis zu 8 Tasksaufgeteilt, die durch einen simplen round-robin-Multitasker, ‘‘Kette’’ genannt, voneinem 20msec-Timer geschalted werden.Weite Teile der Flugsoftware sind in Assem-bler geschrieben. Zu ihren Aufgaben gehörenKommunikation ( AX.25 Protokoll ), Bahn-berechnung ( z.B. mit CORDIC ), Sicher-heitsfunktionen ( Batterieüberwachung, Spei-chertest ). Die Betriebserfahrungen mit IPSist so positiv, daß es auch weiterhin von derdeutschen AMSAT für Flugrechner favori-siert wird.

Literatur:[1] Byte 1/79 K.Meinzer ‘‘IPS, an Unorthodox

High Level Language’’[2] AMSAT-DL Journal 2/94 J. Miller ‘‘Die

Steuerung des OSCAR 13’’[3] AMSAT-DL Journal 1/90 Stefan Eckart ‘‘Die

Software des RUDAK-II-Experiments’’

jrd (Rafael Deliano)nach BYTE 9/92 S.274

Forth International

Forth-Magazin ´Vierte Dimension´ 30 11. Jahrgang 1995, Nr. 2

Nikolaus Wirth hat es 1989 soformuliert:

‘‘C ist keine ‘high level pro-gramming language’. C ist ein mitSyntax verzuckerter Assembler. Undwenn man die kryptische Notationansieht, wird einem fast übel.’’

Nämliches gilt für FORTH.Eineursprüngliche Hardwarearchitektur spie-gelt sich also in der Programmiersprachewider. Hat sich die Programmierspracheeinmal etabliert, versucht man jedoch,für sie maßgeschneiderte Hardware zuentwickeln. Was bei derRücktransformation in Hardware heraus-kommt, liegt allerdings meist weit nebendem Orginal.

PDP-11Die Architektur des PDP-11 Mini-

computer von DEC scheint sowohlCharles Moore als auch Dennis Ritchiebeeinflußt zu haben. Der Typ PDP-11kam 1970 auf den Markt, speziell auchmit dem Anspruch, die Programmierungmit HLLs zu ermöglichen. FORTH undC enstanden zeitgleich 1971 bzw. 72.Der Entwurf der PDP-11 verwerteteviele Erfahrungen aus früheren Mini-computern und Mainframes, nicht nurvon DEC sondern auch von Konkur-renzunternehmen. Er war so erfolgreich,daß er sich - später bekannt als VAX -bis Mitte der 80er Jahre am Marktbehaupten konnte.

PDP-11 ist das, was man heute eineCISC-CPU nennen würde. Sie arbeitetregisterorientiert. Die typische Mikro-prozessorvariante dieses Konzepts istder 68000 von Motorola (ca. 1980). Nurzur Verbesserung derRückwärtskompatibilität wurde der Be-fehlssatz mit Stackbefehlen angereichert.Meist ist der Befehlssatz einer 0-Adreß-Maschine ohnehin in einer 1-Adreß-Maschine vorhanden.

NOVIX NC4000ADieser 16-Bit-Stackprozessors ist eine

simple 0-Adreß-Maschine. Der Daten-stack ist der Ersatz für Register. DieVariante wurde auf maximale Paralleli-sierung getrimmt: der Zugriff auf denSpeicher und die beiden Stacks erfolgtgleichzeitig. Dem Geschwindigkeitsvor-teil steht der Nachteil der hohen Kostenentgegen. Im Vergleich zu Registern istder Zugriff auf einen Stack natürlicheingeschränkt. Deshalb sind Befehle wieSWAP OVER ROT DROP nötig. FürRegister-Architektur entfallen dieseredundanten Umladevorgänge. Darausergibt sich theoretisch bessere Code-

Die PDP-11 hatte 5 universelle 16-Bit-Register. Sie konnten beliebig alsAkkus und für die Addressierung ver-wendet werden. Die Register 6 und 7waren Stackpointer und Programcounter.Die Maschine war mikroprogrammiertund hatte eine Unzahl möglicher Befeh-le. Z.B. 64 Varianten von ADD.

Die CPU war schwerpunktmäßig als1-Adreß/GeneralRegister-Maschine aus-gelegt. Die Speicherbewegung war Me-mory-to-Register. Für Bearbeitungmußten die Daten also in ein Registergeladen werden. Einige 2-Adreß-Befehle(MOVE, ADD) waren jedoch vorhan-den. Die Funktion war dann Memory-to-Memory. Register wurden dabei nichtverändert. Die Analyse der bis zudiesem Zeitpunkt auf DEC-Computernentwickelten Software ergab jedoch, daßsehr viel existierende Software stackori-entiert codiert war. Der Grund waren diebegrenzten Möglichkeiten derVorgängermaschinen. Der Befehlssatzwurde deshalb so ausgelegt, daß er auchals 0-Adreß/Stackmaschine effektiv ver-wendbar war. @ ! + SWAP sind miteinem Assemblerbefehl realisierbar. Die

Stichworte: Prozessoren Geschichte Forth-Prozessoren

Hochsprachen in Siliziumvon Rafael Deliano

Steinbergstr. 37; 82110 Germering; 089 / 841 83 17

Die Struktur problemorientierter Sprachen wie Fortran, Basic oder Cobol leitetsich aus der Anwendung ab, für die sie gedacht sind. Niedere Implementie-rungssprachen wie FORTH und C hingegen werden auf die Hardwareabgestimmt, auf der sie laufen sollen. Sie sind in mancher Hinsicht nurhardwareunabhängiger Assembler.

Hochsprachen in Silizium

11. Jahrgang 1995, Nr. 2 31 Forth-Magazin ´Vierte Dimension´

Serienchip unter dem Namen Hobbitverfügbar wurde. Erster Anwender wardie Firma EO mit ihrem PDA, dieallerdings inzwischen wieder das zeitli-che gesegnet hat. AT&T will dieVermarktung trotzdem vorantreiben undhat weitere Varianten des Chipsatzesangekündigt. Schon der Ur-CRISP warmit 180k Transistoren nicht eben klein.Hobbit mit Cash-Speicher liegt bei>400k Transistoren. Im Gegensatz dazubenötigt die Stack-CPU SC-32, die sichjetzt sinnigerweise FRISC (=Forth-Risc)nennt, 18k Transistoren.

Der Befehlssatz des CRISP ist sogarfür einen RISC-Prozessor ziemlich ma-ger. Es wurde kein Versuch gemacht,komplexe C-Funktionen direkt in Silizi-um zu realisieren. Die Befehlsdekodie-rung erfolgt in einer 3-stufigen Pipeline.Die Häufigkeit der Branch-Befehle kannin C, wie Untersuchungen ergaben, biszu 30% betragen. Damit die gewünschteLeistungssteigerung durch die Pipelineunter diesen Bedingungen noch gegebenist, wurde das Sprung-Problem durchParallelisierung (Branch-Folding) gelöst.Die Pipeline wurde dadurch natürlichdementsprechend komplexer. Das Pro-blem ist aber gängig für RISC-CPUsund die Lösung nicht ungewöhnlich.Wirklich neu ist nur der Verzicht aufRegister. Nach Untersuchung derCRISP-Entwickler machen Aufruf oderRückkehr von einer Prozedur etwa 5%der Befehle aus, benötigen aber beiregisterorientierten CPUs bis zu 50%der Laufzeit. Push & Pop der Register,die auf den Stack gerettet werdenmüssen sind dafür verantwortlich. AlsReferenzmaschine für die statistischenUntersuchungen diente AT&T eine

dichte und höhere Geschwindigkeit.Simples Beispiel. Berechnet werdensoll:

C = A + BD = B * 2

2 Befehle auf Registerprozessor:( r0 = A, r1 = B )ADD r0 , r1MUL r1 , #. 2( C = r0, D = r1 )

4 Befehle auf Stackprozessor:( B, A --- C, D )OVER + SWAP 2 *

Praktisch kann man primitive Stack-prozessoren aber meist mit höherererTaktrate betreiben als komplexe CPUs.Da jene sehr wenige Befehle haben,kann man sie mit wenigen Bits codierenund das optimiert die Codedichte. Wennman die realen technischen Gegebenhei-ten mitbewertet, liegt die reine Rechen-leistung einer Registermaschine alsonicht weit vor der eines Stackprozessors.Allerdings wird man Sprachen wie Chier nicht leicht effektiv implementierenkönnen, was am Markt tatsächlich einNachteil ist.

CRISP

Etwa zum gleichen Zeitpunkt als derNOVIX auf den Markt kam, 1986,wurden bei AT&T auch die erstenPrototypen eines 32-Bit-C-Prozessorsgefertigt. Die Definition der Architekturreicht bis 1982 zurück. Mit dem fürGroßfirmen üblichen gemächlichenTempo dauerte es bis 1992, als ein

VAX. Der CRISP verzichtet deshalb aufRegister und hat eine Memory-to-Me-mory-Architektur. Für den Programmie-rer sieht es so aus, als ob er immer aufexternen Speicher zugreift, ein ange-nehm einfaches Modell also. ExternerZugriff ist natürlich langsam und des-halb ist intern ein 64 Worte tieferStack-Cache vorhanden, durch den dertatsächliche Zugriff auf ein Minimumreduziert wird. Optimiert wurden amCRISP ferner Taskwechsel und Spei-cherverbrauch ( 20% besser als 68000 ).Er wurde also explizit als embeddedController entwickelt. Zudem wurdenkleinere Features für ADA eingebaut.Untersuchungen haben gezeigt, daß sei-ne simple, klare Architektur nicht nur C,sondern alle konventionellen Sprachenvon COBOL über ADA bis Modula-2gut unterstützt. Letztlich ist der CRISPwohl kein ‘‘C-Prozessor’’ sondern eineinnovative RISC-CPU. Die ‘‘semanti-sche Lücke’’ zwischen Hardware und Cwurde nicht geschlossen, eine echteC-CPU erwies sich als nicht kostenef-fektiv.

Die Abkehr von der Registerarchitek-tur erfolgt hier analog zum Stackprozes-sor. Register wurden ‘‘erfunden’’, weilder Zugriff auf externen Speicher lang-sam ist. Sie sind eine reineHardwarekrücke und für die Softwareeine Anomalität. Trotzdem beherrscheneinstweilen registerorientierte CPUs dasFeld. Auch Neuentwicklungen wie derPowerPC haben wieder 16 Register.Innovation bleibt somit Randerschei-nung. Auch im Jahr 2000 wird man sichvoraussichtlich noch nicht von derPDP-11 gelöst haben.

q

Hochsprachen in Silizium

Forth-Magazin ´Vierte Dimension´ 32 11. Jahrgang 1995, Nr. 2

von Rafael Deliano

Steinbergstr. 37; 82110 Germering; 089 /841 83 17

Charles Moores neuester Prozessor,P21 genannt, ist geeignet seinenStatus als enfant terrible zu unter-streichen.

Mit 20-Bit Wortbreite, extremem Mini-malismus der CPU, extern reichlich 1M-Word Speicher und einem program-mierbarem Videointerface ist es nicht ganz klar, auf welche Anwendung(Videospiele?) er zielt. Andererseits ist er mit 60 Mips extrem schnell undzudem preiswert. $25 einzeln, für Mitglieder der FIG $20.

Der ChipUm den Preis niedrigzuhalten wurde

ein 40-Pin DIL-Gehäuse gewählt. Leiderergab der erste Fertigungslauf durch diePlastikgehäuse Probleme, sodaß derzeitnur die Keramik-Typen funktionieren.PLCC44 wird möglicherweise baldverfügbar.

Die 20 Bit des Datenbus werdendirekt herausgeführt, während derAdreßbus nur 10 Pins hat und auf20 Bit gemultiplext werden muß.

Der Befehlssatz ist mit 24 Befehlenkompakt und von FORTH inspiriert. Erreicht aber nicht zur direkten Implemen-tierung von Standard-FORTH-Systemenaus.

Die Tiefe des Parameterstacks aufdem Chip beträgt 6 Worte, die desReturnstack 4 Worte. Das ist dieeigentliche Achillesverse der CPU. Manmuß beim Programmieren aufpassen,daß kein Overflow eintritt. MooresEntwicklungssoftware zeigt deshalb aufdem Bildschirm immer die belegteStacktiefe an, damit der Programmierergewarnt ist.

Besonderer Gag ist ein programmier-barer Videogenerator für composite NT-SC (384x482 Pixel). Nominell 15 Far-ben, die aus 8 Grundfarben und zweiIntensitätsstufen zusammengesetzt wer-den. Das Triggersignal wird ins Videosi-gnal gemischt, damit diese Funktion nureinen Pin belegt. Man kann zwischen 4Frames im RAM umschalten, wovon dieSoftware aber derzeit noch nicht Ge-brauch macht. Laut Moore ist auch PALmöglich.

Für konventionelle I/O steht einSelectpin zur Verfügung. Zusammen mitden 10 Adreßleitungen können über ihn

gering. Deshalb erwarted man eine hoheFertigungsausbeute durch die der Preisder Serienchips auf $10/10k fallen kann.

Das BoardDas ursprüngliche Demoboard hatte

neben NTSC-Video eine Tastatur mit 8Tasten. Das sind zwar fünf mehr als beiMoore üblich, aber immer noch wenigerals bei einem Telefon. Als Massenspei-cher war eine 128k PCMCIA vorgese-hen. Diese sollte OK, Assembler, Vi-deotreiber, Dokumentation, eFORTHusw. enthalten. Die Software ist sicher-lich gewöhnungsbedürftig, da der P21kein Standard-FORTH verträgt. DieLänge der Namen wurde auf 6 Zeichenbeschränkt.

Man sah bald ein, daß PCMCIA einteurer Spaß ist, weshalb die neueVersion der Leiterplatte als Alternativekonventionelles EPROM enthalten soll.Zusätzlich ist eine Erweiterung umschnelles SRAM vorgesehen. Preis der-zeit $100 für einen Bausatz dem einigeteile fehlen oder $350 für das montierteBoard

Der VertriebDie Finanzierung der Entwicklung

erfolgte durch Dr. Ting bei dem auchdie Rechte für Herstellung und Vertriebdes P21 liegen. Foundry für die Musterwar ORBIT, Beginn der Serie (10kStück) September 94. Die Produktionsoll später nach Taiwan verlagert wer-den, um die Herstellkosten zu senken.

Mit den nur teilweisefunktionsfähigen Chips der Vorseriesind einige Boards nach Europa gegan-gen. Die Distibution hier allerdings nochunklar. In USA ist Dr.Ting zuständig:

Dr. C.H. Ting; Offete Enterprises, Inc.1306 South B. Street San MateoCA 94402 (415) 574-8250Vom nächsten Prozessor, dem F21,

werden derzeit Muster gefertigt. Er solleine Nummer größer werden und RGBals Video haben. Die Rechte dafürwerden bei Jeff Fox liegen.

Jeff Fox; Ultra Technology2510 10th St. BerkeleyCA 94710 (510) [email protected] ist in comp.lang.forth errreichbar

und auf seinen EMAILs beruht dieserArtikel.

q

1024 Ports aktiviert werden, die 8 oder20 bit breit sein können.

Es können verschiedene Typen vonSpeicher verwendet werden. Typischsind 1Mx20Bit DRAM. Man erreichtdamit 50nsec Zugriff auf die selektiertePage, 150nsec auf nichtselektierte Page.

1Mx8Bit breiter statischer Speicher,EPROMs oder SRAM, ist auch möglich,aber mit 250nsec ziemlich langsam.

Die dritte Variante ist 1kx20Bitschnelles SRAM mit 25nsec für maxi-male Geschwindigkeit.

Eine typische Minimalversion enthältalso 5 DRAMs 1Mx4Bit und einEPROM. 256kx4-DRAMs eignen sichweniger, da der Speicherbereich nichtzusammenhängend ist. Praktisch mußman das EPROM nach dem Reset insDRAM booten um akzeptable Ge-schwindigkeit zu erreichen. Aber bei derSpeicherdichte heutiger DRAMs solltedas kein Nachteil sein und verändert dieKostenstruktur nicht wesentlich. Einultraschnelles System braucht zusätzlichdie externe 1k-Page mit den teuerenSRAMs.

Geeigneten Speicher vorausgesetzt,kann die Rechenleistung Spitzenwertevon 80-100 Mips erreichen. D.h. 10nsecpro Befehl, ohne Video 60 Mips, wennVideo mitläuft sind es allerdings nur20Mips. Hauptbremse ist das Umschal-ten der Banks. CPU und Video greifenauf unterschiedliche Banks zu. Der Chipwird derzeit auf einer 1,2um Fertigungs-linie hergestellt. Skalierung auf kleinereStrukturbreite wird die Gechwindigkeitweiter erhöhen. Die Stromaufnahme derCPU beträgt bei 5V typisch 0,1Watt. Dadie Komplexität nur bei 7k Transistorenliegt ist auch die Chipgröße mit 6 mm^2

Stichworte: P21 Charles-Moore Forth-Prozessoren

11. Jahrgang 1995, Nr. 2 33 Forth-Magazin ´Vierte Dimension´

\ DOT-BITS.seq PRINT a byte in BINARY (bit) -format very fast \ akg93jun23

\ akg93jun23 special version for Vierte Dimension

comment: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

This is used in (very) fast routines to display bit-wise information.

The usual number print command is quite slow, especially for ¨BINARY .¨U. or ¨U.8-bin need more than 1'000 µs ( 386SX 20MHz ).Time consumption is due to ¨# using slow ¨MU/MODwhich needs more than 288 cycles on a 8086 .( For 8 digits this is > 2000 cycles ).

You won't need it for a 586DX3-100 with 64 kB 1st-level cache duringnormal operation, but you may need it badly for an 8088 4M77 Hz duringan ECHTZEIT Programming Contest using MultiTasking.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^comment;

needs PASM-X.seq \ extended high level structured code\ $E2 CONSTANT dec_CX|CX=0 \ == ¨LOOP

ONLY FORTH ALSO DEFINITIONS decimal autoTitle

CREATE $bits 9 C, '~' C, 8 allot

PROC <>$bits> ( reg: ax -- ) \ converting low 8bit of n to ¨$.bitMOV AH, AL \ we like to test bit15MOV BX, # $bits \ addr of bufferINC BX \ care for '~'

\ MOV DH, # 'Ì' \ MOV reg, reg is faster than MOV reg, # data\ MOV DL, # '_'

MOV DX, # '_' 'Ì' join ( 'Ì' to DH )\ MOV DX, # '0' '1' join ( '1' to DH )\ MOV reg, reg is faster than MOV reg, # data

MOV CX, # 8 \ handle 8 bitsBEGIN \ ¨HERE

INC BX \ move behind count and afterOR AX, AX \ test also bit150< IF MOV 0 [BX], DHELSE MOV 0 [BX], DLTHENSHL AX

dec_CX|CX=0 UNTIL \ ¨LOOP jumps to¨HERERET end-proc

CODE (.bits) ( n -- a l ) \ convert to¨ALstring ( suitable for¨xy-type )POP AXCALL <>$bits>MOV DX, # $bits 2 chars +MOV AX, # 82push end-code

: .bits ( n -- )(.bits) type ;

comment: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

\ this is usefull only if you use numbers for display (0|1) ( see: ¨~num )

: .~bits ( n -- )(.bits) -1 /string type ;

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^comment;

CODE [email protected] ( paddr -- ) \ show value at portPOP DXIN AL, DX \ ¨PC@ --> ALCALL <>$bits>MOV DX, # $bits 2 + \ [ $bits 2 + ] LITERAL 8 typeMOV AX, # 8PUSH DXPUSH AXJMP ' typeend-code

CODE [email protected] ( seg addr -- ) \ show value at far memory locationPOP BXPOP DSMOV AL, 0 [BX]MOV BX, CSMOV DS, BX \ ¨c@L --> ALCALL <>$bits>MOV DX, # $bits 2 + \ [ $bits 2 + ] LITERAL 8 typeMOV AX, # 8PUSH DXPUSH AXJMP ' typeend-code

sample: \ + + + + + + + + + + + + + + +

\ $40 CONSTANT BIOSDATASEG \ usefull for a lot of things

: test.bitscls 10 6 at ." Ctrl-BREAK to end "BEGIN

10 10 at ." ticker: " biosdataseg $6C [email protected] 12 at ." timer-port: " $40 [email protected] 14 at ." game-port: " $201 [email protected] ." (use your joy-stick)"10 16 at ." keyboard-port: " $60 [email protected] ." (press any key to modify)"7 6 at \ place cursor here1 tenths \ wait a little

AGAIN ;

( needs MUtimer.seq ) \ needs precision timer

: timer.bitscr'Y' >Rtimer2@R@ droptimer2@2 BASE ! R@ U. DECIMALtimer2@R@ U.8-BINtimer2@R@ .bitstimer2@2over D- timer_0_offset 0 D-cr ." R@ .bits needs " .MUs2over D- timer_0_offset 0 D-cr ." R@ U.F-BIN needs " .MUs2over D- timer_0_offset 0 D-cr ." 2 BASE ! R@ U. DECIMAL needs " .MUs2over D- timer_0_offset 0 D-cr ." R@ drop needs " .MUs2drop R>drop ;

sample; \ - - - - - - - - - - - - - - - -

comment: vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

timer.bits1011001 0101-1001_Ì_ÌÌ__Ì

386SX 20 MHz NEATR@ .bits needs 0h00m00s.000'273µs 1/5th of time consumptionR@ U.F-BIN needs 0h00m00s.001'281µs2 BASE ! R@ U. DECIMAL needs 0h00m00s.001'449µsR@ drop needs 0h00m00s.000'005µs

386DX 40 MHz SISR@ .bits needs 0h00m00s.000'183µs 2/3 to 1/2 of timeR@ U.F-BIN needs 0h00m00s.000'349µs2 BASE ! R@ U. DECIMAL needs 0h00m00s.000'447µsR@ drop needs 0h00m00s.000'003µs

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^comment;

An oder Aus, High oder Low

Bitte ein Bit, aber schnell, egal woher

von Arndt Klingelnberg

Straßburger Str.12; D-52477 Alsdorf

Nicht nur für Steuerungen ist es sinnvoll, den Statuseinzelner Bits anzuzeigen. Aber mit den normalenRoutinen sind Grenzen gesetzt. Einmal ist das 0/1-Format nicht das auffälligste, andererseits vertrödelt dieübliche Zahlenausgabe sehr, sehr viel Zeit beim norma-len (!) dividieren durch 2 (·MU/MOD ). Es wird eineschnelle Assembler-Prozedur vorgestellt, die von ande-ren Assemblerworten (Code) aufgerufen wird. Das auch,um direkt im gesamten Adressbereich oder auch aufPorts zu arbeiten. Weiterhin gibt es Geschwindikeitsver-gleiche.

Stichworte: Bit F-PC

Bitte ein Bit

Forth-Magazin ´Vierte Dimension´ 34 11. Jahrgang 1995, Nr. 2

Spezielle Fachgebiete

Anfänger und Gerd LimbachWiedereinsteiger Tel.: +2051 -25 51 12 p

Mo.+Di. 20:00 - 22:00

32FORTH (Atari) Rainer AumillerTel.: +89 -6 70 83 55 gp

FORTHchips (FRP1600, RTX, Novix...)Klaus Schleisiek-KernTel.: +40 -330 674 p

F-PC & TCOM, ASYST (Meßtechnik), embedded controller(H8/5xx//

TDS2020, 8051 ... eFORTH...), FUZZY

Arndt KlingelnbergTel.: +2404 -6 16 48 agp

Gleitkomma-Arithmetik Andreas DöringTel.: +721 -59 39 35 p

HS/Forth (Harvard Softworks)Wigand GawendaTel.: +30 -44 69 41 p

KI (Künstliche Intelligenz), OOF (Object Oriented Forth)Ulrich HoffmannTel.: +431 -80 12 14 p

Unterricht mit Forth Rolf KretzschmarTel./Fax: +2401 -8 88 91 ap

UUCP (FORTH ... per eMAIL)Andreas JennenTel.: +30 -3 96 52 27 ap

Forth-Vertrieb volksFORTH/ultraFORTH,RTX/FG/Super8/KK-FORTHIngenieurbüro Klaus KohlTel.: +8233 -3 05 24 pFax: +8233 -99 71 f

Forth-Mailbox (KBBS) +431-533 98 98 :8N1Sysop: Holger PetersenFax: +431-533 98 97 fTel: +431-533 98 98 p bis 22 UhrMail: [email protected]

Hinweise

Zu den Telefonnummern

f == FAX

a == Anrufbeantworter, hier können Sie Ihren Ansprechpartner eventuell vorinformieren,

erwarten Sie bitte keinen (kostspieligen) Rückruf

g == geschäftlich, zu erreichen innerhalb typischer Arbeitszeiten

p == privat, zu erreichen außerhalb typischer Arbeitszeiten

Die Adressen des Forth e. V. (Forth Büro) und der Redaktion/ finden Sie im Impressum

Forth-Gruppen regional

Berlin Claus VogtTel.: +30 -782 81 79 pTreffen: nach Absprache

Rhein-Ruhr Jörg PleweTel.: +208 -49 70 68 pTreffen: jeden 1. Samstag imMonat im S-Bahnhof DerendorfMünstererstr. 199,

Moers Friederich PrinzTel.: +2841 -5 83 98 pTreffen: jeden Samstag 14:00Arbeitslosenzentrum,Donaustr. 1, Moers

Darmstadt Andreas SoederTel.: +6257 -27 44

Mannheim Thomas PrinzTel.: +6271 -28 30 pEwald RiegerTel.: +6239 -86 32 pTreffen: jeden 1. Mittwoch imMonat, Vereinslokal SegelvereinMannheim e. V.,Flugplatz Mannheim-Neuostheim

µP-Controller Verleih

Thomas PrinzTel.: +6271 -28 30 p

Gruppengründungen, Kontakte

RegionalStuttgartWolf-Helge NeumannTel.: +711 -8 87 26 38 p

Fachbezogen8051 ... (Forth statt Basic,e-FORTH)

Thomas PrinzTel.: +6271 -28 30 p

Forth-Hilfe für Ratsuchende

Forth allgemein Jörg PleweTel.: +208 -49 70 68 [email protected]

Karl SchroerTel.: +2845 -2 89 51 p

Jörg StabenTel.: +2103 -24 06 09 p

Adressen und Ansprechpartner