***************************************************************************** * Diese Datei beschreibt den Schnelleinstieg in das DOS-SDK fr PC/GEOS. * * Alle Anweisungen gehen davon aus, dass sich der Borland-Compiler und die * * IDE im Verzeichnis D:\BCC befinden. Andernfalls mssen Sie * * - Alle Pfade anpassen * * - Die TURBOC.CFG im BCC\BIN-Verzeichnis anpassen. Sie enth„lt den Pfad zu * * den Borland-Include-Dateien. * ***************************************************************************** Inhalt ------ 1. Kopieren des SDK 2. Einrichten des Systems 3. Testen des Systems 4. Womit beginnen? 5. Etwas Trouble-Shooting 1. Kopieren des SDK ------------------- Kopieren Sie die Verzeichnisse PCGEOS und BCC auf ihren PC und setzen Sie mit attrib -r *.* /s das Schreibschutz-Attribut aller Dateien zurck. Wechslen Sie dann in das Verzeichnis PCGEOS\INCUDE und aktivieren Sie den Schreibschutz fr die meisten der Dateien dieses Verzeichnises wieder, um diese wichtigen Dateien, die sei aber gelegentlich einsehen mssen, vor versehentlichen Žnderungen zu schtzen. Geben Sie ein: attrib +r *.goh /s attrib +r *.h /s attrib +r *.uih /s attrib +r *.def /s Die Datei PCS.PAT darf NICHT schreibgeschtzt sein! Dann sollten Sie die Dateien im PCGEOS\TECHDOCS\ASCII-Verzeichnis mit einem Schreibschutz versehen, da Sie auch hier wahrscheinlich h„ufiger nachsehen werden. Sie ben”tigen fr die ersten Versuche keinen zweiten PC. Sp„ter ist ein solcher Target-PC aber zu empfehlen, wobei es ein alter Laptop auch tut. Legen Sie eine Verzeichnisstruktur an, in der Ihrer Programmcode, also ihre Programmierprojekte, abgelegt werden sollen. Z.B. D:\GOCPROG\ D:\GOCPROG\APPL D:\GOCPROG\INCLUDE D:\GOCPROG\LIBRARY D:\GOCPROG\LIBRARY\LDF Es ist empfehlenswert sowohl das SDK (Verzeichnis PCGEOS) als auch ihr Projketverzeichins (GOCPROG) auf dem gleichen Laufwerk, z.B. D: anzulegen, da sonst einige der Hilfsmittel (Siehe SDKTOOLS.TXT) nicht funktionieren. 2. Einrichten des Systems ------------------------- Wenn man auf dem gleichen PC auch unter Windows arbeiten will, hat sich ein Bootmanager bew„hrt, der entweder Windows oder reines DOS bootet. Getestet ist auch die Variante, aus Windows 9x heraus COMMAND.COM zu starten und dort zu arbeiten. Editieren Sie ihre AUTOEXEC.BAT: rem * SDK-Programme in dem Pfad aufnehmen PATH=%PATH%;D:\BCC\BIN;D:\BCC\BIN;D:\BCC\IDE rem * Dem Compiler sagen, wo er suchen soll set ROOT_DIR=D:\PCGEOS set LOCAL_ROOT=D:\GOCPROG rem * Parameter fr serielle Verbindung zum Target-PC rem * Nur erforderlich, wenn ein Target-PC benutzt wird rem * Die genauen Werte h„ngen von der Hardwarekonfiguration ab! rem * Fr Details siehe SERIAL.TXT im Verzeichnis PCGEOS mode com2 96 set PTTY=2,38400 3. Testen des Systems --------------------- Booten Sie den Rechner neu, um die Žnderungen in der Autoexec zu aktivieren. Kopieren Sie ein Beispiel aus dem SDK, z.B. PCGEOS\APPL\SDK_C\HELLO in Ihr Projektverzeichnis, z.B. GOCPROG\APLL\HELLO Geben Sie folgende drei Kommandos ein: mkmf pmake depend pmake Jetzt mssen sie zwei Tabellen sehen und im Verzeichnis muss sich die Datei HELLO.GEO befinden. Starten Sie GEOS, wechseln sie nach GOCPROG\APLL\HELLO und starten Sie ihr ersten eigenes Programm. Wenn Sie Žnderungen im Programmcode vornehmen, compilieren Sie das Programm jetzt einfach mit pmake neu. Mkmf und pmake depend ben”tigen Sie nur wieder, wenn sie neue Code- oder Header-Dateien in Ihr Projekt aufnehmen. Wenn sich der Compiler einmal strikt weigert, irgendwelche Programm„nderungen von Ihnen anzunehmen, z.B. Programmcode ausfhrt, den Sie gerade gel”scht haben, dann haben Sie irgendwann einmal vergessen "mkmf" und "pmake depend" einzugeben. 4. Womit beginnen? ------------------ Sie mssen nicht die ganze SDK-Dokumentation gelesen haben, um mit dem Programmieren beginnen zu k”nnen. Ein wenig sollten Sie aber trotzdem am Anfang lesen, um einen šberblick ber das SDK und dessen F„higkeiten zu bekommen. Das CONCEPTS BOOK beschreibt die wesentliche Ideen hinter dem GEOS System. Wenn Sie verstehen wollen, wie das System arbeitet, sind Sie hier richtig. Das OBJECTS BOOK beschreibt die einzelnen GEOS-Objekte. Hier sollten Sie nachschlagen, wenn Sie ein konkretes Problem mit einem der Objekte haben. Das ROUTINES BOOK enth„lt Kurzbeschreibungen der Funktionen und Prozeduren, die ihnen das System zur Verfgung stellt. Fr viele davon gibt es im Concepts-Book ein Kapitel, in dem sie ausfhrlicher beschrieben werden. Zu Beginn sollten Sie lesen (lesen, nicht auswendig lernen!): Concepts 3: "System Architecture" Es handelt sich um einen šberblick sowohl ber die Architektur des System, das Konzept der objektorientierten Programmierung, das GEOS-User-Interface und welche Objekte es gibt, als auch ber die vom System angebotenen Grundfunktionen. Dieses Kapitel stellt die Schnittstelle zwischen der Sicht des Users und der Gedankenwelt der Programmierer dar. Das Kapitel ist leicht verst„ndlich geschrieben und eignet sich auch ganz prima, um eventuell eingerostete Englischkenntnisse wieder aufzufrischen. Concepts 4: First Steps, Hello World Es beschreibt die Hello-World-Applikation, welche Dateien ben”tigt werden, Namenskonventionen und einiges mehr. Wenn sie anfangs noch nicht jedes Wort verstehen, so ist das nicht so wild. Kein Grund zum Aufgeben. Concepts 5: GEOS Programming Dieses wichtige Kapitel beschreibt die wesentlichen Programmier- konzepte und Methoden sowie eine Menge Details, z.B. wie man Klassen und Objekte definiert, wie man Messages versendet, wie man bestimmte Schlsselworte verwendet usw., aber auch weiterfhrende Dinge, z.B. wie man direkt in den Eigenweiden von Objekten herumwhlt. Auch hier gilt: Nicht alles ist beim ersten Durchlesen verst„ndlich, (manches sogar beim zehnten Mal noch nicht :), aber es ist DAS wesentliche Kapitel ber die Grundprinzipien der GEOS-Programmierung. Das Tutorial Das Tutorial fhrt in die Arbeit mit dem System ein und zeigt an einem konkreten Beispiel Schritt fr Schritt, wie man zu einer eigenen Applikation kommt und wie man sie verbessern kann. Am Anfang steht ein Kapitel ber die Hardwarekonfiguration und das Testen des Systems. Obwohl hier immer von 2 PC's die Rede ist, man kommt auch mit einem aus - allerdings kostet das etwas Komfort. Auch wer es trotz der Anleitung oben sein SDK nicht zum Laufen bekommt, oder wer einen Target-PC benutzen will, bekommt hier Hilfe. Eine Anmerkung, aus eigener Erfahrung: - Auch hier gilt: Man versteht sicher nicht alles beim ersten Mal. Aber es ist so beschrieben dass man es nachmachen kann. - Irgendwann kommt der Punkt, wo man sich fragt: Muss ich mir das alles antun, um GEOS programmieren zu k”nnen? Die Antwort ist: Nein. Man kann eine ganze Menge erreichen, ohne das Tutorial komplett gelesen zu haben. Besonders das letzte Kapitel, in dem irgendwelche Objekte in Dateien gespeichert werde, ist sicher nichts fr Programmieranf„nger. Die ersten drei Kapitel (3, 4 und 5) sollten es fr den Anfang aber schon sein. - Es empfiehlt sich, den Code abzutippen (nicht nur die Beispiel- Dateien zu kopieren). Das kostet zwar viel mehr Zeit, der Lerneffekt ist aber wesentlich gr”áer. - Kommentare sind wichtig! Sp„ter noch mal zu begreifen, was man da eigentlich programmiert hat, kostet ein Vielfaches der Zeit, die man jetzt fr zwei Zeilen Kommentar ben”tigt. Ausserdem muss man, um etwas in Worte (Kommentar) zu fassen, es auch richtig verstanden haben. - Einiges im Tutorial ist etwas umst„ndlich programmiert. Stoáen Sie auf so etwas, versuchen Sie ruhig, es zu vereinfachen. Der Lerneffekt ist enorm, besonders wenn es nicht funktioniert. - Pointer (Zeiger, Syntax z.B. pself->MCI_data) sind ein wesentliches Element der C-Programmierung, GOC kommt letztlich nicht ohne sie aus. Wenn Sie damit keine Erfahrungen haben, k”nnen Sie sicher viel ohne Zeiger erreichen, aber letztlich werden Sie sich dem Problem stellen mssen. Weiterfhrende Stellen in der Dokumentation: ------------------------------------------- - Die Beispieldateien unter PCGEOS\APPL\SDK_C sind gut kommentiert und sehr lehrreich. Wenn Sie ein neues Problem angehen, ist es immer eine gute Idee, zun„chst zu schauen, ob es dafr ein Beispiel gibt. Eine Liste der Beispiele finden Sie im Concepts-Book 2.5: Sample C Applications. - Concepts 10, "The GEOS User Interface" wird im SDK auch als MUSS angegeben. Wenn Sie sich etwas eingearbeitet haben, sollten Sie dieses Kapitel nicht auslassen. - Frher oder sp„ter werden sie das Bedrfnis haben, Concepts 12 "Managing UI Geometrie" zu studieren, damit ihre Applikation auch so aussieht, wie sie sich das vorstellen. - Fr jedes Objekt (Schalter, Liste, Texte, Views usw.) gibt es ein eigenes Kapitel im Objects-Book. Wenn Sie ein Objekt einsetzen wollen, mit dem sie noch nie gearbeitet haben, so sollten Sie auf jeden Fall einen Blick auf das entsprechende Kapitel werfen. Ans Herz zu legen ist auf jeden Fall Objects 7 "GenInteraction". Dieses extrem universelle Objekt ist die Basis zum Anordnen anderer Objekt im Hauptfenster, aber auch fr Mens und Dialogboxen. - Das Routines-Book enth„lt Kurzbeschreibungen aller Funktionen und Prozeduren, die Ihnen das System bereitstellt. Ein intensives Studium des Inhaltsverzeichnisses ist sicher eine gute Idee. 5. Etwas Trouble-Shooting -------------------------- Auf neueren, schnelleren PC's mit viel RAM gibt es manchmal Probleme, von denen einige hier mit L”sung aufgelistet sind. ++++++++++++++ Das SDK l„uft gar nicht +++++++++++++++++ Sowohl die SDK-Programme als auch die Borland-IDE benutzen sogenannte DOS-Extender um mehr Speicher zur Verfgung zu haben. Hat der PC schon viel Speicher (mehr als 16 oder 32MB RAM, z.B.) gibt es oft Probleme. Abhilfe schafft, DOS nur wenig Speicher zur Verfgung zu stellen. Bekannte M”glichkeiten dafr: 1. Das Memory Hole aktivieren (empfohlene Variante) Im BIOS kann man (meist unter extended features oder so) ein "memory hole at 16MB" einschalten. Windows st”rt das nicht, aber fr DOS stehen nur noch 16MB zur Verfgung - mehr als reichlich fr alles was mit DOS zu tun hat, GEOS eingeschlossen. 2. In der AUTOEXEC.BAT die Zeile einfgen set DPMIMEM=MAXMEM 16000 Das begrenzt den Speicher fr den Compiler auf 16 MB, wenn das Memory-Hole bei 16MB nicht aktiviert ist. Diese Variante machte den Compiler jedoch deutlich langsamer, als die mit dem setzen des Memory-Lochs. Das muss natrlich nicht auf allen Systemen so sein. ++++++++++++++ Der Compiler ist ewig langsam +++++++++++++++++ Manchmal ist der Compiler sehr langsam, oder wartet, bevor er loslegt. Dann hilft vielleicht diese Zeile: set DOSX=-MAXV 0 Ausserdem sollte man unbedingt SMARTDRV benutzen! Der Compiler braucht sonst ewig! Je gr”áer der Cache von SMARTDRV, desto schneller. ABER: Da der Compiler selber schlimmstenfalls 8 MB RAM braucht, kann smartdrv nur noch 4 MB benutzen, sonst gibt's Probleme mit sehr grossen Programmen. Im Normalfall sind die GEOS-Programme aber kleiner, so dass man Smartdrv mehr Speicher zubilligen kann: lh c:\dos\smartdrv.exe 7192 /f /x rem *** bei wilden GOC-Fehlern, wie "Memory exhaustet" **** rem * lh c:\dos\smartdrv.exe 4096 /f /x ++++++++++++++ Probleme mit DOS 7 +++++++++++++++++ Man kann das DOS von Windows 9x (bezeichnet als DOS 7) auch als eigenst„ndiges DOS booten, ohne Windows im Hintergrund, aber trotzdem mit Zugriff auf groáe Partitionen! Meist hat man dann die Zeilen DEVICE=c:\DOS\HIMEM.SYS /TESTMEM:OFF DEVICE=C:\DOS\EMM386.EXE NOEMS in seiner Config.sys. Strzt der Compiler oder die IDE dann ab, muss man HiMem aus einer „lteren DOS-Version (z.B. DOS 6.22) benutzen DEVICE=c:\DOS6\HIMEM.SYS /TESTMEM:OFF Nachteil: Man hat deutlich weniger konventionellen Speicher zur Verfgung, zum Programmieren st”rt das nicht, bei der Arbeit mir GEOS aber manchmal. ++++++++++++++ GOC-Scanner confused: No ' +++++++++++++++++ Das ist die typische Fehlermeldung, wenn am Ende einer ihrer Dateien das abschlieáende Enter fehlt. Es empfiehlt sich daher jede Datei mit einer Zeile der Art /* ------------ end of file ----------------*/ zu beenden, der, wie hier im Beispiel, mindestes eine Leerzeile folgt. Viel Spaá mit dem PC/GEOS SDK. --- Ende der Datei. -----