NNNNNNcp@ NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNO` @`! #@%`')+-/O5`79;=?A C@E`GIKMOQ OU`WY[]_a c@e`gikmoq s@uy{} @` ` @ ` @ o @ ǀ ɠ o ׀  @` @`!A   !Aa!!#o')+-/1!3A5a79;=?A!CAEaGIKQ!SAUaWY[]_a!cAeagimoq!sAuawy{}!o!AaAaOaǁɡ!Aaׁ١!Aa!Aa " B b  !"!B!b!!!!!"!""#B"%+"-"/#1"#3B#5b#7#9#;#=#$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_a"&cB&eb&g&i&k&m&o'q"'sB'w'y'{'}'("(B(b((((()")B)b))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b...../"/B/b/////0#0C0c00 0 00O` @`! #@%`')+-/O5`79;=?A C@E`GIKMOQ OU`WY[]_a c@e`gikmoq s@uy{} @` ` @ ` @ o @ ǀ ɠ o ׀  @` @`!A   !Aa!!#o')+-/1!3A5a79;=?A!CAEaGIKQ!SAUaWY[]_a!cAeagimoq!sAuawy{}!o!AaAaOaǁɡ!Aaׁ١!Aa!Aa " B b  !"!B!b!!!!!"!""#B"%+"-"/#1"#3B#5b#7#9#;#=#$A"$CB$Eb$G$I$K$M$O%Q"%SB%Ub%W%Y%[%]%_a"&cB&eb&g&i&k&m&o'q"'sB'w'y'{'}'("(B(b((((()")B)b))))*"*B*b*****+"+B+b+++++,",B,b,ǂ,ɢ,,,-"-B-b-ׂ-٢---.".B.b...../"/B/b/////0#0C0c00 0 00PD_269 CORSHELL ƔpFLEXDESK Ҕp1GFASHELL pGFA_SHELL pPASMANAGER pMTC_SHELLPD p)THYSHELL10ApFLEXDESKPIC p}GFASHELLPIC p}LEES DIT@t ISHELLS TXT •pA233 u D_269 u . p.. pCORSHELLTXT ǔpR5AUTOEXECBAT ʔp#CORSHELLPRG ̔pvDATUM BAT Дp0E CORORONA - SHELL fR ATARI ST ============================= Version 0.11 vom 20.6.1989 ******************************************************** Autor: ------ Mathias Krallmann Wohnheim D, Zi. 2408 Universitts-Gelnde D - 6600 Saarbrcken Bundesrep. Deutschl. Tel. (0681) 302-2888 ******************************************************** Inhaltsverzeichnis ================== 1. Befehlsbersicht 2. Beschreibung der einzelnen Befehle 3. Hinweise zur Anwendung der CORONA-Shell 1. Befehlsbersicht =================== a) Diskettenoperationen -------------------- CD bzw. CHDIR COPY DIR ERASE FATTR FORMAT MD bzw. MKDIR PRINT RD bzw. RMDIR RENAME TYPE b) Parametereinstellungen ---------------------- CURS_FLASH CURS_NOFLASH CURS_OFF DATE ECHO_OFF ECHO_ON PROMPT TIME c) sonstige Befehle ---------------- CLS ECHO FREE_DISK FREE_MEM QUIT QUIT_NS SYSTEM SYSTEM_NS TOSVER VER 2. Beschreibung der einzelnen Befehle ===================================== a) Diskettenoperationen -------------------- Befehlswort: CD bzw. CHDIR Syntax : CD Beispiel : CD AUTO CD \ (\ = Hauptverzeichnis) Erklrung : wechselt das aktuelle Verzeichnis --------------------------------------------------------------- Befehlswort: COPY Syntax : COPY Beispiel : COPY DESKTOP.INF DESKTOP.BAK COPY A:\AUTO\TEST.PRG B:\AUTO\ Erklrung : kopiert die 1. angebene Datei in die 2. hinein (diese wird ggf. berschrieben). Verwendung von Jokern (*,?) n i c h t erlaubt! --------------------------------------------------------------- Befehlswort: DIR Syntax : DIR [] [-ALL] [-ATTR] [>] Beispiel : DIR *.BAK DIR -ATTR >INHALT.DAT Erklrung : gibt Inhaltsverzeichnis des aktuellen bzw. in Dateiname spezifiziertem Pfadnamen aus. Wird dieser nicht angegeben, so wird das aktuelle Verzeichnis angesprochen. -ALL : Es werden alle Dateien (auch Diskettennamen und versteckte Dateien) ausgegeben -ATTR: Es werden die Dateiattribute mit ausgegeben p = protected (schreibgeschtzt) h = hidden (versteckt) s = system file (Systemdatei) n = volume name (Diskettenname) d = Directory (Verzeichnis) a = archive (Archiv-Flagge) Als kann neben normalen Dateien die parallele und serielle Schnittstelle (PRN: bzw. AUX:) sowie die Konsole (CON:) angegeben werden. --------------------------------------------------------------- Befehlswort: ERASE Syntax : ERASE Beispiel : ERASE TEST.DAT ERASE *.BAK Erklrung : lscht die angegebenen Dateien; Verwendung von Jokern (*,?) erlaubt. Bei schreibgeschtzten Dateien erfolgt eine Sicherheitsabfrage vor dem Lschen. --------------------------------------------------------------- Befehlswort: FATTR Syntax : FATTR (+,-)(p, h, s, n, a) Beispiel : FATTR DESKTOP.INF -h -a Erklrung : Verndert die Dateiattribute. Dabei bedeuten '+' Setzen und '-' Lschen des entsprechenden Flags. Bedeutung der Flags: s. DIR --------------------------------------------------------------- Befehlswort: FORMAT Syntax : FORMAT : [<-1>] Beispiel : FORMAT A: -1 Erklrung : Formatiert Diskette im GEMDOS-Format. Standard- mig wird doppelseitig formatiert. Einseitige Formatierung durch Angabe von "-1" mglich. --------------------------------------------------------------- Befehlswort: MD bzw. MKDIR Syntax : MD Beispiel : MD NEWDIRECT.ORY Erklrung : Erzeugt einen neuen Ordner. darf GEM- DOS-Pfadnamen enthalten. --------------------------------------------------------------- Befehlswort: PRINT Syntax : PRINT [>] Beispiel : PRINT DESKTOP.INF PRINT INFO.DAT >CON: Erklrung : Druckt Datei aus. Ausgabegert kann eine Datei bzw. ein Ausgabegert (PRN:, AUX:, CON:) sein. --------------------------------------------------------------- Befehlswort: RD bzw. RMDIR Syntax : RD Beispiel : RD OLDDIRECT.ORY Erklrung : Lscht einen (leeren!) Ordner. --------------------------------------------------------------- Befehlswort: RENAME Syntax : RENAME [,] Beispiel : RENAME TEST.DAT INFO.DAT Erklrung : Gibt einer bestehenden Datei (1. Dateiname) einen neuen, bisher nicht verwendeten Namen (2. Datei- name). --------------------------------------------------------------- Befehlswort: TYPE Syntax : TYPE [>] Beispiel : TYPE TEST.DAT TYPE TEST.DAT >AUX: Erklrung : Gibt eine Datei auf dem Monitor bzw. dem angege- benen Ausgabegert (s. PRINT) aus. --------------------------------------------------------------- b) Parametereinstellungen ---------------------- Befehlswort: CURS_FLASH, CURS_NOFLASH, CURS_OFF Syntax : (ohne Parameter) Beispiel : CURS_FLASH CURS_OFF Erklrung : CURS_FLASH schaltet den Cursor in den Blinkmodus CURS_NOFLASH schaltet den Blinkmodus aus CURS_OFF schaltet den Cursor aus --------------------------------------------------------------- Befehlswort: DATE Syntax : DATE <00.00.00> Beispiel : DATE 17.06.89 Erklrung : Stellt die Systemuhr auf das angegebene Datum. Dabei mssen je 2 Stellen fr Tag, Monat und Jahr eingegeben werden. Das zwischen den Zahlen stehen- de (Trenn-) Zeichen ist beliebig. --------------------------------------------------------------- Befehlswort: ECHO_OFF Syntax : ECHO_OFF Beispiel : ECHO_OFF (in Batch-Datei!) Erklrung : Schaltet die Wiedergabe des aus einer Batch-Datei gelesenen Befehls auf dem Monitor ab. Dieser Befehl hat bei Tastatureingabe keine Bedeu- tung. --------------------------------------------------------------- Befehlswort: ECHO_ON Syntax : ECHO_ON Beispiel : ECHO_ON (in Batch-Datei!) Erklrung : Schaltet Wiedergabe ein; s. ECHO_OFF --------------------------------------------------------------- Befehlswort: PROMPT Syntax : PROMPT [+p] [-p] [+d] [-d] [+t] [-t] Beispiel : PROMPT +p +d PROMPT -t Erklrung : Gibt Darstellungsform des Cursors wieder --------------------------------------------------------------- Befehlswort: TIME Syntax : TIME <00:00:00> Beispiel : TIME 12:05:00 Erklrung : Stellt die Systemuhr auf die angegebene Zeit. Dabei mssen je 2 Stellen fr Stunde, Minute und Sekunde eingegeben werden. Das zwischen den Zahlen stehende (Trenn-) Zeichen ist beliebig. --------------------------------------------------------------- c) sonstige Befehle ---------------- Befehlswort: CLS Syntax : (ohne Parameter) Beispiel : CLS Erklrung : lscht den bildschirm und positioniert Cursor in der ersten Bildschirmzeile. --------------------------------------------------------------- Befehlswort: ECHO Syntax : ECHO Beispiel : ECHO Hallo Anwender! Erklrung : Gibt den auf dem Monitor aus --------------------------------------------------------------- Befehlswort: FREE_DISK Syntax : FREE_DISK [:] Beispiel : FREE_DISK FREE_DISK A: Erklrung : Gibt den freien Speicherplatz des angegebenen Laufwerks aus. Fehlt die Laufwerksangabe, so wird das aktuelle Laufwerk verwendet. --------------------------------------------------------------- Befehlswort: FREE_MEM Syntax : (ohne Parameter) Beispiel : FREE_MEM Erklrung : Gibt den freien RAM-Speicherplatz aus. --------------------------------------------------------------- Befehlswort: QUIT Syntax : (ohne Parameter) Beispiel : QUIT Erklrung : Beendet nach Sicherheitsabfrage die CORONA-Shell und kehrt zum Desktop bzw. aufrufenden Programm zurck --------------------------------------------------------------- Befehlswort: QUIT_NS Syntax : (ohne Parameter) Beispiel : QUIT_NS Erklrung : Beendet ohne Sicherheitsabfrage die CORONA-Shell und kehrt zum Desktop bzw. aufrufenden Programm zurck --------------------------------------------------------------- Befehlswort: SYSTEM Syntax : (ohne Parameter) Beispiel : SYSTEM Erklrung : wie QUIT --------------------------------------------------------------- Befehlswort: SYSTEM_NS Syntax : (ohne Parameter) Beispiel : SYSTEM_NS Erklrung : wie QUIT_NS --------------------------------------------------------------- Befehlswort: TOSVER Syntax : (ohne Parameter) Beispiel : TOSVER Erklrung : Gibt die Versions-Nr. des verwendeten TOS aus. --------------------------------------------------------------- Befehlswort: VER Syntax : (ohne Parameter) Beispiel : VER Erklrung : Gibt die Versions-Nr. der verwendeten CORONA-Shell aus. --------------------------------------------------------------- 3. Hinweise zur Benutzung der CORONA-Shell ========================================== a) Befehlseingabe -------------- Befehle knnen ber die Tastatur eingegeben werden. Tippfehler knnen vor dem Drcken der Return-/Entertaste mittels Backspace und neuer Eingabe korrigiert werden. Wird ein Wort eingegeben, welches keinem Befehl entspricht, dann sucht die Shell nach einer Datei dieses Namens im aktuellen Verzeichnis. Dabei wird zuererst eine Datei mit gleichem Namen gesucht, danach eine Datei des eingegebenen Namens mit angehngter Kennung ".BAT", danach ".PRG", ".TOS" und ".TTP". Dabei bezeichnet ".BAT" eine Batchdatei (siehe b) Zwischen Gro- und Kleinschreibung unterscheidet der Parser nicht. b) Batchdateien ------------ Alternativ knnen Befehle auch in Form von Batchdateien verarbeitet werden. Dabei wird nach Aufruf der entsprechenden Datei die Befehlsein- gabe auf die Datei umgelenkt und nach Beendigung wieder auf die Tastatur umgestellt. In Batchdateien drfen grundstzlich alle Befehle stehen, die auch ber die Tastatur eingegeben werden knnen, zustzlich die Anweisungen ECHO_ON bzw. ECHO_OFF. Beim Start sucht die CORONA-Shell im aktuellen Verzeichnis eine Batch- datei mit der Bezeichnung AUTOEXEC.BAT. Falls diese existiert, wird sie automatisch gestartet. c) Ausgabegerte ------------- Bei manchen Befehlen knnen Daten anstelle des Standardausgabegerts (Monitor) auf einem anderen Gert ausgegeben werden (Datei, Drucker, Modem usw.). Dieses geschieht durch Angabe des '>' und des entsprechen- den Gertes. Bitte diesbezglich Beschreibung der einzelnen Befehle beachten. d) Schlubemerkungen ----------------- Zum guten Schlu: Ich habe dieses Programm fr eigene Zwecke geschrieben und erst nach Fertigstellung an einen Vertrieb als PD-Programm gedacht. Von daher bitte ich evtl. vorhandene Unschnheiten und Fehler (?) zu entschuldigen. Fr Fragen (bitte unbedingt frankierten Rckumschlag beilegen!), Kritik und Anregung bin ich stets dankbar! Meine Adresse: Mathias Krallmann Wohnheim D, Zimmer 2408 Universittsgelnde D-6600 Saarbrcken 11 Bundesrepublik Deutschland Zu allerletzt: viel Freude (und wenige Abstrze) mit der CORONA-Shell! Saarbrcken, den 20.6.1989 Mathias Krallmann echo_off cls echo ******************************************************************** echo * * echo * Herzlich willkommen auf dem * echo * * echo * A T A R I S T * echo * * echo * unter der CORONA - Shell! * echo * * echo ******************************************************************** echo prompt -d -t +p curs_flash echo ver echo_on `eF "o#e*i,EB&J(JSB  g  g  f RSBj` gn =fa6 n <#Y` %fa n <#e`Rpr A9nA0m/ПЁRSBkB`Jg:NuAef`AeFrRSBk$  gJ  gB  g:Qp`JBkQB$)ԩ Y&9ef &`nր n&< ЃйY// Bg?<JNAJfV.B#eY#e#e#e#eNL/ / KF,MN/pJeg / yeNXO??<LNA` /`NVp=@=@ n l0.RnHA|0`=|Hn HyrfHn|N[NO 09rfH/N\.XBp/p/NZO p//p/NZO 09rfH/N[X09rfHr///N\O HyhN4XHyhN4XHyeN4XSI 9IJk yIRIp r`HyIp /NN8PJyegBp/p/NZO HnN4:XJyegp//p/NZO .JgbHna$X=@ @f=|`"Jng09rfH2.H//a#PBnAI 9eg /N7X#IeJng|09rfHB/N\PBp/p/NZO p//p/NZO 09rfH/N[XN^NuNVpB=@=@/.NY0X2.Hl,0.H nHH//HNZX oRn`Bn/.NY0X2.Hn0.H nHH gJf=n0.nl8 .r2NXZ n 0.H2.H/@ /"nRn` .r2NXZ n 0.H2.HB0.H n(HH f JgRn`0.R@R=@Rn`" .N^NuNV  opN^Nup/pH/NZP"<NW/HyiCN8PpN^NuNV  opN^Nu  fp/NZX-@` n(2HHa-@Jk opN^Nu .R/HyrRr6/NZO -@JgN^Nu 9rV"9r^NXZ"9rZNXZ"<NW-@ 9rR"9r^NXZ"9rZNXZ"<NW".A/.//Hyid/9e-@N5OpN^NuHyeN4XNuNVp0/NZXr0//@NZX"<NW///HyiN8O N^NuNVHprHyiHn=@=@=@-A-A-ANXP  o=|0.H lJf0.2 nHH -g >fF=n`Z0.2 n(HH tg lf=|`,=|`$p-@`0.2 n/HnNXPRn`^Jg pLpN^NuJng&0.2 n/aX-@JgLpN^NuHyiHnNYPJfHyiHnNXPHnNY0XS6-@ \g 6 :fHyiHnNWJPJnf>/9eHyiN3P/9eHyiN3P/9eHyj+N3P`/9eN5P`HykA/9eN5P9r/gHykD/9eN5P`HykG/9eN5P yeS ye (Jk"PRp r`@/9ep /NJnf6=|0.2 nHyl=/NYPJf.gSBn0.2 nHyl@/NYPJf.fRBn0.2 nHylC/NYPJf.gUBn0.2 nHylF/NYPJf.fTBn0.2 nHylI/NYPJf.gYBn0.2 nHylL/NYPJf.fXBn0.2 nHylO/NYPJf.gQBn0.2 nHylR/NYPJf.fPBn0.2 nHylU/NYPJf.g  Bn0.2 nHylX/NYPJf.f  Bn0.2 nHyl[/NYPJfBBnRn`JngpN^Nu n2/.p//pC/NZO-@fB .N^NuNV nf=|`=|109l^HJgJ ffHyrp/NZP0.H//.rN/NZO Jf Byl^pN^NupN^NupO/NZXJfpN^Nu3l^pN^NuN^NuNV . m opN^Nu  f nd/aX-@JgN^Nu n2Hyl`/N5P-@JfpN^Nu nS (Jk "PRp` /.N:X@ g> yeS ye"(Jk "PRr`p./9e/N/NZP/.p>/NZP/.N:6X .N^Nu/././.p@/NZO-@䰮g2/.p>/NZP/.p>/NZP/.N:6XpN^NuJnN/.p>/NZP/.p>/NZP/.N:6X ndBp//pC/NZO-@JgN^NupN^NuNVp*/NZX-@Jj ."<NW-@r 㠑 .r NW-@뀑 .-@ .P//./.HymN8OJyegBp/p/NZO HnN4:XJyegp//p/NZO .HH0r NXZ.HH0Ё-@.HH0p NXZ.HH0Ё-@.HH0p NXZ.HH0ЁP-@J.g*".$.ԁr Ԁ/p+/-BNZP-@`B .N^NuNVp,/NZX-@Jj ."<NW-@r 㠑 .r NW-@뀑 .-@//./.HymN8OJyegBp/p/NZO HnN4:XJyegp//p/NZO .HH0r NXZ.HH0Ё-@.HH0p NXZ.HH0Ё-@.HH0p NXZ.HH0Ё-@J.g,".Ёr $.Ђ/r-/-@NZP-@`B .N^NuNVBn  lpN^Nu=|0.H lJnf0.2 nHH -g +f=|` Bn`=|JnfR0.2 n(HH pg$ tg df3e`3e`3e`=|Rn`T0.HN^NuNVJyef`/.NY0X o nZ/N4X`:SI 9IJk yIRIp r`HyIp /Ng#IepN^NuR nHynK/N5P#eJf#IepN^NupN^NuNV4p2. HB/=@4=@6N\P0.4 @h"2JAg @h"0H f=n46Rn4`/. HynNHn8NOO Jn6g 0.6 @h"/(Hn8NWJPHynHn8NWJPSI 9IJk yIRIpr`HyIp/NHn/.aۨPHyo(Hn=@NYPJgHyo-HnNYPJfSI 9IJk yIRIpr`HyIp/NfBHyegp=/NZO -@`BHyefpfp//.BpB/NZO/.p/pF/NZO /. N@rX/9eHy2/92NO BN9XN^NuCPROGCan't open stdin file Can't open stdout file dNVB . S".lL n (S!@Jk "PRp` /.N:X-@Rg nR . fNq . nBJfpN^Nu .N^NuNVp nR-@Jg/. /N3PRfpN^NupN^NuNV n (g f//.NP n R"n QR .JjN^Nup-@ n  -@Jg(gpp/B/(NONO -@J.gR .S-@JkDB/ n /(NONO p/Hn n /(NMO Jef . gNq/. n /( /(NEO -@`B f n ` .g n J.g n (D!@` n !h"n i " . g2")S#AJk QRr` ./. /aP" n (0JgpN^Nu fpN^Nu .N^Nu dNV nJg(fpN^Nu/9p NARX n !@ Jfp #rpN^Nu n!yp p!@!@N^NuNV-np-@ nJg/NY0XRѮR` opN^Nu ./-@NARX-@JfpN^Nu n#eB-H nJg "n"/NY0XRѮRX` nBJrg yr/9r/NBFP#r#er .N^Nu=NV/.aXN^NuNVH..Jn pL8N^Nu l~ V.IY*TgZ -eLf(Y M L8N^Nu - e$" M$&B&'@(Y M L8N^Nu(M*U`/NLBX*@g"JXf#X߹X M L8N^NupL8N^NudLNV . //.-@aPN^NuNVH<.. Jn pL/NZP#eJjp #rpN^NupN^Nud?NVx . gJfp /NZX g . ~nS`p}@|Hn|p /NZPp /p/NZPp.}Bx-@ .xl n C~Rx` . }lF n R `6/. /./.p?/NZO-@Jj#ep#rpN^NuBe .N^NudNV/. /./.p@/NZO-@Jj#ep#rpN^NuBe .N^NudNV/././. pB/NZO-@Jj#ep#rpN^NuBe .N^NudNVRr . yrRrN^NuNVBr#rHn/. HzNTO yrB 9rN^NuSNVH p| r-Ar-ArA@@@@@-A-A-H nJg^rp kPfN#`2 `"+`-`|`|`|`|NqR` n 0f |0R n *f$n "RX-QR`Hn/.NVPѮ n .f4R-H *f$n "RX-QR`Hn/.NVPѮ n lf |R nR@r8kvfNc`Js`X`x`o`*u`d`J.g "n QX ` "n QX -@Jj r-ADJgp-` J.gp+`p @p.".肀p.JgRR/./.NVP-@Jjp-@ .".-AJo8 n//./NZO p././/.NZ0O -n .ѮA-HJ.gT| `JJ.g "n QX ` "n QX -@`RJ.g "n QX ` "n QX -@J.g n0Rp-@/./.NUP-@`J.g "n QX ` "n QX -@J.g n0RxRp-@-H/./.NUXP-@ .XfHnNV|X`"n QX"P-I̳f-|U%c:>%ld KB verfgbarer RAM-Speicher Disk %c: %ld KB verfgbarer Speicher (Gesamtkapazitt: %ld KB) Die Versions-Nr. des TOS lautet: %ld.%ld *.**.* Disketten-Inhaltsverzeichnis Dateiname Lnge Datum Uhrzeit ------------------------------------------ Disketten-Inhaltsverzeichnis Dateiname Lnge Datum Uhrzeit p h s n d a -------------------------------------------------------- %12s %8ld %02d.%02d.%02d %02d.%02d.%02d x x x x x x %12s %02d.%02d.%02d %02d.%02d.%02d x x x x x x ------------------------------------------ -------------------------------------------------------- %d Dateien belegen insgesamt %d Bytes Speicherplatz. -p+p-h+h-s+s-n+n-a+a0r>PRN:Zugriff auf Datei %s verweigert. Soll die Datei trotzdem gelscht werden (j/n)? %d Datei(en) gelscht. Bitte neue Diskette in Laufwerk %c: einlegen und eine Taste drcken! Formatiere Seite %d Track %2d%c Die Diskette hat eine Kapazitt von %d KB. Die Diskettenformatierung wurde korrekt beendet.Systemdatum: %02d.%02d.%02d neues Tagesdatum: Systemzeit: %02d:%02d:%02d neue Uhrzeit: [%02d.%02d.%02d][%02d:%02d:%02d] .PRG.TOS.TTP.bat.batr%c:%s>%c:>echo offecho onw+[3][*** Meldung CORONA-Shell ***| ====================|Es trat Fehler Nr. %4d auf:|][ OK ][3][ *** Sicherheitsabfrage ***| ==================|Mchten Sie die CORONA-Shell|wirklich verlassen?][Ja|Nein]echo quitsystemquit_nssystem_nsvertosverecho_offecho_oncdchdirdirfattrtypeprinterasecopyrenameformatrmdirrdmkdirmdclsfree_memfree_diskcurs_offcurs_noflashcurs_flashdatetimeprompt0123456789abcdef ((((( H ((((( H  X 8 H*  R     0&  4   "*J8~0B     "L "                                  , >********..>: \4 >DN2     ($T* `6:&T2<424>2`.$    <8 $    ","$ 8 N $     J  ">   6  *    4      <      ( ( ( ( ( ( ( ( ( (  ( (   ( (  .        h8> v    .  4TX2D  $: :&>l$. $:0  P4Xh  $X0 $&* j,"20&"NT"0  B( ( @ :0` 0 .   @8X" X~2`**f\$@B *<  "  *,zecho Bitte aktuelles Datum und momentane Zeit eingeben! date time . p1.. pFLEXDESKINF Ӕp2FLEXDESKPIC Քp3}FLEXDESKPRG ٔpSBEISPIELSET pvLIESMICH pwSET_EDITPRG p~Q"FLEXDESK" 0,-1,-1 巘?efūikHs]]Yx_^{k_~ۭ|xDXbvsN|#rgCS~?wq+vgc^xh.GY_e.tA|G ?4?os\wh$X7XZ-9k_ݦV4`p~B#{?Ͽ8l.w_?L4O?#05 /`9vS<+ӓoHy6Ӕ?_?a? 5=$n|{[<+7=)e[33x^ ?ß9V_ko',?E_[U*T>?z n49}mQn/f}_?K}fl ^,azn|G3!qNMΖӪ<\6gQq^"Y~.K'??37`SwHCqoO75<4s{q\???'?aGY9i?e9MfpǗ>m_&8m]^T~5Jp3_?;if8A'z?j?O,x;hlpj>=w^?gnsuζ?7nO9J8?ѡ``;~.r2!}9w?/9χq"0܏5F{'?x^7_9__r+JE:}?m'9^ݦ90,{קߵ{9޶aMs`68tyy3JWGz?6Ӏ?yeo>0G?7s3?/d?6~g8g Gs?p>wТp->Gw«Uw哞>vMkݟu__>əegpxJG/_6Oeg5a9ߖ%SpYtj~@/|4kQ/۳w!E(p s?_%E/<{M:Y#?'S{<{?~G?\!xoم2Jq~wȚoG.?{>#">oΙp?Q?ojcaoP y~muݕ<=87 P͘/ݰ =ISnWWvw_Q_`9pe{2{= "_ܫ]sނe}8s2zSf%w;`uM ~?r+?a[oM0ݜ˟I`Frymߓp}=k0|)O_Ӿħ<i|>%7p6o}p ۷g+t ~G贓rwG8~ocyݼ#W<.xY⾵>2CWsi <7[0|NRЛgk<>:q=}q gj8w˜&1[xI0Y {I) zfL>jvpe?ߠ'Y߽Po?N-u&~Ț>4O_f F*S x? 1?' l>Npxxޞ$>8˨>oGO [?>=xG?րgO#?O\P#7x_u`:Gks|7sGn3 ?㷍SkO>a w>_ o?_C+?K:^zp x$?߿ _ktx:_KSf|2_ `6!??ڍ$?P~ 3:ŀV?W[g|Qp=lgoG c~5="~Gg=xC/\>bc^ mo{Qg;&aw? /C_SwB\xp`5~ n@>?q'?FL̜lp`= ~?9??s_ٝޫuշk?<?581OOԏ;~o}8K}0e8?_ V3kW{kNCLwx<`@w_#s+n]*P w?g;?@ _p9L}0//3Ϣ}zX=770-?^:OHe1qzݙ%0R纺і7?C?G[~?׮y7|ƿ93/p_c3q}H y,a=?E7ïέ׾/8s̥tˑ/| ?OQ ^&w7m/6fzVWgH07?'{_s/佷%ػ?u~- O?D;{߼Ox7Fg|q 㷇 )`>?/g~7gPm#N?dzgT4gmb3wOd{џMq>w?G!';Yg[ׂ@1F7]7ːnwܸw睳 K_^I?1LHl@d?og`OQ`e&@Nz7T'3`ʿnݘ<7\;??c81_r.֊ôvy?d~uVp+Ӷ,|R̟;߀ U9x ?/gP?_Tp>46?xYQБ2^ƿײl ٷ'ůɾ;.3r?13_ }?vc'=L:_T)~os?|n ons >s ?11+>u0H3_z`>k>w݇WGԬxN[~E?'x&`//8 3xeG3G?2q>-s /w[8o{yMo?=Tೃ,;3|E_T!3cp{~]8{_H|򼷺w{~Ow}=?c}>;sw=;}ş@R9x`1=7}/??S՜޽~y?7MėL7}F 64utM 8__ԇ W ä ǃop_OA1}.<7``C=0Л\G|9p-Ev?SOju7vg_??*UwY5n5Vo?O7l 淚=MKxK/|vYcacxl?n__<1~]6{%8&4I9?V~Vp3?~{8J߿y,xw?Ã_~{>:#t<oLv?} _~??a ?,ً;b`{{)?o5B)=у9o/ > {{2?yqĖөq9?x{{{{oc}1bp?~{{{{{@R1j??{{{{{?㯿oQx+Oa{{{{{vչx{Gjýu{{{{{˹Y<~>?x{xx{?ܻh5~B^Ã 8{Oj9=7ps~~`?ŰE{=sU0spsW _s u';~nJs"x}يX3gA>gW 1s澿=އ_|AmZvp=to[xu٣?wyh|5sx``qjρ1x?3ހ{oow{|Nk>2@<{oovsvxv>1{߿oo{ܷ;yM{ǿo=~o3et͟ {o<=й=J?:ώ7=oIm]+SQn8v=k^w޲#0|~=jfj9pc6{߽~= mi]|߽~=x'hُ3Uw9?߽<~Ͻڒ1Q5x߽mdp1tǵce =='<~o=='ܜ.?䧐o~-??~?o==g_pxn oo1c_6_gO8{oo<=?+?kxoh`<s{߿o{K{{]{o{Ϗ\׮s/y{{}uVj_?xx?__wOYUy?5?F|_{h}IwUOKNE&+/Qa'?9321~?τ|cX8{ s hcߓx~g>3c]7|oƇGrc<~?ѿ)!K< p/~ןϰa1wb?7oyO~>ρ > ޛ]/ n>?5[E`.8So'yo~xx/8O_6YO858~?;O'?><~Q7?6YxOs/t|><4C3~'x]|L=O_xpG&Bٞ&frî?%_w9p?~>Mj~k[&{f<``pÙ3?O/y"[O7<?~7px*`q```vwqޝp85fyfw W]po 9<3gf))i6W`_/c<3gf))?='?iݓ3gqB|?YW~7|_qkos|5^W8I9RT~tp灁矟—sy8<o)珏 |N)Á `){sgvox8럇3owcߞaK7iڿG>tA3|TYy05,{< ȱ|ps?1=Ãǿ>u:ÙÁ8Á~w1vÙ_BÀkoϿyv?Wz~5M|~f?V~awo}atc~̿2Çqux^ek?0#k+ff9<=|=bڪesxm~~뎒cU- K}?zͻ~»>_e-7彿G3c~~~~3ǁǃ|w:pҸ9x0y+6';ÙÁx>ᕟ4uÙß9{}>>}__9r_>x >ySܘ?s>{93o?،֛_9sx~wc9??/kL91Ï?u꫶LÃx9fw{apν?gdqyos?aPCbe_P.?{$ahÛ^SukUo#?$G؀go?><u? ȿp~</<_-ӟ~C]<o??/O{s// >[ K? ??G|<]˿?>MUGq=aѿ?|JUM?qgMOߚǧ9|? JLsϯX?Ї_"תej|^z3}/eIbx39?7$y|\b@ g|p{|}1?&Ə?;Cde^?&N Q%s~W}uc_#k}c~}0~j7#43wgo=<;;?o?`8Aۇ{??-L?|\?._G$f?]r~?eT/?)7o_}kl~mR/5s2|y xؿ_׿^8N@fq p\3vC_o߲?K|Tqco(p`cXoaN8/8şgq0?88'p3v9?k/9I'p8yw+`;op? ϣO{`?ǛG7?Os?ݬ&|QÝC3gp+;/_㙵1m'?n`)N87?+?1?L~kIΏ <=v {52%ϧθb?Oك!=w;Eyq)_^0w);wǃĀc嵰'aٜ?_n&@Hq_1_Na f۷!jڣlU(yO1=,0o~cK>K3(7GowԿ~~会/o?~ 3z{W?`^v?Z?9DݷϿ:WG 7b>'g~Ͽo~_9_W7| mxx}`7>l溿yꕋ8 }=(WlϿo9b _a?R0?=6p%U;Jyyـ^7X|0-sVpms-TI~a={ ُ}/p~~P(j~p<sxjqǏ?>CWc>Gp\2_?/~FK{x|kO_7Qxp? C}~2d_NJ~>x?`w8>*Wݞ?>o?n<X{ko x>M0<:>`Nx\.xk(ًw3|>㎗px%G`>p?a <>]_`x?CY\ pkn>>>?gpvO ???pͿڦ>w>]=p?Ogp?6̿p<'<9w0xp~o|p8 ?8x}ɇox;K?Ξu8bt__>8R# aä<{?G͇߿p;;@m~??9O?+ /uü'?{t3>?L?2!`SxKO` EfvM,. m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HN2Hx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNHz6?< NA\pdAxr0XQ)K\NN \ "4:N\ ,`NuJrBjNuHz?<&NN\NCAp$L Qp N9lrBlJpNNpMN9@pdAr 0Q0tr N9lNdNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu pa4|a@:>< |a6RGk0Gg`a(0GVfA1G<ap??<?<NM\Nu??< NMXNuHn 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuN4pNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|H  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8N6.HJgtBnHNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dGe GbFGNu G0dFGHANu~NuAd RdQRB6Ce0 C/jC C@j C jr0H@{0DH@Nur{0Nu{0NutNuJj(:,af AfBfNu&<x*<NٔHnBr$g4jDk( b4<J@`@[H@0Nu4<Ѐ[Nu4<NuNuAd RdQRBBkBjDBJjDNupNufJj fJAkNupNdRdRrxaAffBWHNuJjDBDA@JBfprJjDEDD@JEfvxNuaغBffAVHNuCDEaEf fDUHNu]HNuCDEaEffDftNuCDEHHNNL8NvL8NِNNJjtNupN&NAXJ@jNNurAt`t Add.A0Hk"JjJBft??/?<BNA JjNNuS@k ??<NAXNuNJ@g,A,BBgHQ?<=NAP FJ@k??<>NAXtNutNu ::/rI IN<,(k$/<??<?N`NA Jj ?a0NNHrO INLA NNN` A$ HJo d*b` QjNuQjNubNN*/N.,*Q(,l؅kb/,h?<INA\/?<HNA\Jg< l`"ld۬d۬`)Dl$I& `&bۛp0R@@b&C CX`~/,l?<HNA\p=N$_*(<HREHRa" EHRa DHRa??<KNNANNuN @ep~QBNuHPa _Np"Np,`vN)@p `H@)@prtNAHplrtNB 2pNpNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNu9Cp rtNAv` Av `Avl 2l 4)lVHNaBp0,l 2Nua40,HNua*p0,l 4Nuaprt0,l 22,l 44,NuN9||BlBlrҌpsNBNu0<}N& ?<NNC`&?<NNT"@ C <}N`N*@((?<NN.?<NNX@LvA HA HNupmrtA)HA)HN(* 9AJA)H@@[000][ˈN Evz`* [g" ]g |g QSz` zQSpQ][ɈN Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NHNu*( INA)H @depd ae zb QB DNA\)H @ e` ae zb \gQBA BhNrpZNA BP"`#|}NA"H0,tg"Hg \f`A\fS A ENAR@H`2QNu@9@JpNNr|<N @xepw2A$JBjDFHB t`0QBl9F)lVTAtp 9| N2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NN\"l`dpNAtrdJhk\QpaNH ld$l`"Hg0 k&@ S`g k#&@0+S@H3 Q&f)I`LNu?<?<NAXJgJgNAH@B pNA NuApNNn$ND$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0NuNJ@gpNu _0HpN _0HpNp"_0HqNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNWHNuNVHNu Ihd*ND$E$RR@H`2QˈN ENu Ihd"*ND$E8*$R`"QˈN ENu2)A IJAfr4(Ae*RBBc0*SA?ND$E$R`QˈN ENup`(* 0(iND$E 4R`Q$D 4R`QˈN DN ENua NuN IHPg"B  g &gNJBjt BNut`Rptr ae OgT Xgj HgSRB ae Fb$0k  c_  c b退`tSJBkNnRB0 b b瀀`RB0 fрd`A"HJf X0pNNuNtЀUrЀQ NNtV0 9c^Q N2p <0ND`QNu?Hl?<GNAPA"HJf SNpC 0(gFd"P$I` *ND$E$R(S@jv A(Wf( ae zb Q DNur ,* N& ( EN C"Sj|AcJ@fCAHPBHQ?NA\ _JjNNu, N* ( FN EJ@fC JDfA E@( BE, BHPHQBg?<VNA F DJjNNuNJ@fC )I( BAҐ)Hp9@J9@L9@NpyN DJlrgN֬p N?r`??, N$F Z268SDĒDcCc2Ac0`QNuHpx$ ld$l`"Hg8" &Ak eѐ S`g"" k#&Aeё2+SAI3 Q&f)I`LNuHpx$&ր ld$l`"HgR" k&Ac b S` S`g4" k#&AcbrkX`ޑ2+SAI3 Q&f)I`LNuHRp` HRpJQfpNPNq Y QfdЀЀ 0NuN@N:rNq Y Qfd20VHNuN:N@Nq Y Qfd ЀЀNuN:N@$_& Y Qfdփփ!8NN>N8$_& Y Qfd8JBg 8N 8NN8N>$_& if"QdփփHRNVN8N>~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@/ l\Nj NnL"2` NqR YEjrd0` SjNp"X4g S`"QNuNuNJPgBP, d eЀЀ``Ѐ"ЀЁE H FNL l ,"X2geb J"F\N*" KC`e N\`d \N l\Ӭ\ NupNd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNuPj0,lf$J,nk l*fp?Np N9|nNA0,l2J,jk 0"fZRAR@ 0"g 0 f` 0 g 0,f9@lTll`BllA"H"g"A4`Q"AA 0! NuS@R@ 0 g 0,f9@lRll`R@ 0 fQj`NNBll?<?<?<NM\NHQN&g ! ge l*g l*gpNNu<,*?Hj\F FfN`H FfN`RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HNLNu0,^2,`NzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(NldeS@f lbfSl`9Ab9FdNupapqr`p`C l ", Ⲭ dfѬ SA 0! Nup"NNNJfNup#`NN"p`tdbDA0Hg<<R@f|0HND*JFk*HQ/??<?NAXfX ENuJkpNp`p`\F( &I.` ??<NMXJ[j E&DNuak NupNuakfpNupNtddA0oH?<?B?<BNA Jk.,?<?B?<BNA *kBg?/?<BNA JkNuN<(`|HP?N<pg2JFg W"X2@e2<A`QNCpR@ 1 fA 0! "_NVp`pNu)H9@Jp4NP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C]fApNNN֬HP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Fehler # ][Abbruch]\f.B &lX)K\)ld` lp ,BQjNup(NXtHB9BL@@TAt )l g.A( f hgSASAgRB`9BJNSAgNu)l g,vARC( g9CJ9|Lp!,N FPeNu֖A JpBQA/)H )l gBlJpNB Aprt0 0BBB R@ @efA000 0PB0 *00 000\0X0 *0000 0P0BX0, *@00p1| 1|QBX0 $HTH0P &0 *0,NupNSk [0NupNuHPaH8 _&X Pf/|~ K!zag @ ep 24C"2 S@ػ Td BTA3A0C4$I2a222B"0@2A\xvaRg<2#M 4B3BS@ -f ػ Td>BAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8Np>L8Np*HEAJ0?C bL000H?A/.)HpNLrHH/>Bl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CN 0`@k Ap0(/.NuA Nup)@JphNLtH &JKBCH .A/~0 1PP1P1PA L? &<@>AFG0000X0000X0000X0000C ~AJ0g0  pi, N"F QNu?S@k&8L &LeBLe,C`(A? fHa)_ 2TNuBlJ`l *bl ,bH .N0S@k@>A PC/~. 0(JgRJ)@g1@CJ2fP2HP" &" *pdN0,r W1@AJ00 piN9|L@NpiN _CL""pe`9| LpiN9|LphNLtH 2H/`SBSC@AHH/jP 6P/^P0<rtNpapapapaL/jr`S@k6@ A 9PJg8BPpfNpgN9| LphN9@JfdBlJa\Q 6BB 2`NuS@k @ A 9pJg a$Bp`NuHS&I. FV 7p&N 9l/h8,:,L/d4,pĴ@cS@9@p4,rŴAcBSA9Ar`8pJ, 7fnJ/^k0 Eg$2,/h pg  qfH9A/hpjN`B -NnH <r$<L8NِNAN -NnH -C NNNn&<x*<NٔL8N 0N+@ - /p NHP -C N"_NCN N,`NqNq - /p-"-N8CN )|H - / -2/AN AN -JnN?B -NnH <r$<L8NِNAN -C NNNzNJBfN? - /p"NZN,`NqNq -./pC4NpNBN"NZ -0/pC4NpNBN"NZ -1/pC4NpNBN"NZpNN N֬t;BA@*N N N<*.*HPN<Programm aufrufenHPAN Hm0A "_NpJBgp/Hm0p\N"_NpJBgp$fNBRA0NN&<x*<NJBfNBHm0p"_NBC6NVHm6N<PRG"_NpJBgp/Hm6N<TOS"_NpJBgp/Hm6N<TTP4"_NpJBgp/Hm6N<APP4"_NpJBgp$fNA4-N&<x*<NJBfNApN\ - /?<;NA\Hm0 -"_NBNNAHm0A HPABVN NBBN0 Datei nicht | ausfhrbar ! HPN<Abbruchr"_ N+@NBRBN0 Programm nicht | vorhanden ! HPN<Abbruch4r"_ N+@N "_ABN "_A schreibgeschtzt HPN<Abbruch4r"_ N+@NKA0NPHm0A "_NJBg&N A.NpC.N2N<*.*HPN<Datei-Attribut ndern von ... HPAN Hm0A "_NpJBgp/A0NN&<x*<NpJBgp$gHm0A "_NgNSHxHx2HxHxJHxHxAN HxHxHx;Hx6HxBAN HxOHxHxHx6BBAN Hm0A0NNnHHm0p\N"_NNnL8NِN"_NBC`NV -0+@BgBg/-?<CNA +@6BpAN/- -Nn&<x*<NN6C.NpNHx -Nn&<x*<Nv&<x*<NٔN/Hx -Nn&<x*<Nv&<x*<NٔN/ -C.NNNnvNN/ -C.NNNnvNN/AN pN -Nn&<x*<Nv&<x*<NٔN"<N -NnNNN,`NqpN~p N <,"<NN0OKN <,"<YNN<Abbruch4NpNps"<NN0von HPA`"_NN <"<NN< read only4N <"<NN0hiddenN <"<NN0systemNpN~pNpZ"<NN< Fileattribute4NpN~p NpNpNHxHxHx;Hx6AN 4-N&<x*<NgNRx -:Nn&<x*<NpJBgp/ ->Nn&<x*<NNpJBgp/ ->Nn&<x*<NTpJBgp/ -BNn&<x*<NNpJBgp/ -BNn&<x*<NTpJBgp$VHgNRx -:Nn&<x*<NpJBgp/ ->Nn&<x*<NNpJBgp/ ->Nn&<x*<NTpJBgp/ -BNn&<x*<NNpJBgp/ -BNn&<x*<NTpJBgp$fNRt -BNnH <r$<L8NِN+@ -Nn&<x*<N&<x*<NTJBfNRl -Nn&<x*<NN+@/- -C.NNSDC.NHx -Nn&<x*<Nv&<x*<NٔN/Hx -Nn&<x*<Nv&<x*<NٔN/ -C.NNNnvNN/ -C.NNNnvNN/AN pN -Nn&<x*<Nv&<x*<NٔN"<N -NnNNpNN Jf`pN4-N&<x*<NJBfNS pC.NNNnHpC.NNNnNL8NٔHpC.NNNnvNL8NٔN+@6?-8?</-?<CNA A*N`N N<*.*4HPN0Datei umbenennenHPAN Hm0A "_NpJBgp/A0NN&<x*<NpJBgp$gHm0A "_NJBfNUA0CfNVA ClNVN<*.*HPN0Benenne HPAf"_NHPN0 um in ..."_NHPAN Hm0A "_NJBfNUHm Al"_NJBfNUhA0NN&<x*<NJBfNU8pC4NpN&<x*<NJBfNTBN0. Zieldatei existiert schon. | berschreiben ? HPN< Ja | Nein 4r"_ N+@pC4NpNzNpJBgp/ -Nn&<x*<NpJBgp$fNU8A0NPA0NNzNJBfNUbHmfA0"_NNUBN<) Der Pfad darf nicht | gendert werden ! 4HPN<Abbruchr"_ N+@N pNCrNVN<*.PRGHPN0GFA-Basic-Programm patchenHPAN Hm0A "_NpJBgp/A0NN&<x*<NpJBgp$gHm0A "_NgNXbpUNHPA0r"_N+|pdAN -rNprNCxNVHmxp"_NBHPpENHPAr"_NHPpfN"_NHPAr"_NHPpvN"_N"_Ng N NWN,`NqNq - dmNW -rNHmxp"_NHPAr"_NJBfNWRpNpNNWBN<IBeim diesem Programm | wurde das Bildschirm- | lschen schon verhindert. 4HPN<Repatch|Abbruch4r"_ N+@ -SgNWpNpNNXXBN<G Programm kein GFA-Basic | oder Compilerversion | neuer als 2.02 A !! HPN<Abbruchr"_ N+@pN~`jN N<*.*HPN<Ordner erffnenAHPAN Hm0A "_NgNY"A0NNzNJBfNXA0NTNYBN0$ Datei gleichen Namens | vorhanden. HPN<AbbruchAr"_ N+@`FN ANpdCN2N<*.*HPN0Ordner lschenHPAN Hm0A "_NgN_BN0 Ordner existiert nicht ! HPN<Abbruchr"_ N+@N_0BA0CN BJBNBR -RJ^HgN[v -RCNHPN0\*.*"_NHPHxAN -FJmNZRRN[RA:N -6QmNZRNN[R -6Nn&<x*<NpJBgp/Hm~p.N"_NpJBgp$fN[RRJ/-J -RCNHPp\N"_NHPA`"_NCN -FJ]HgN[rAnN `*`HxHxxHxHxHxBAN HxHxHx;HxHxBAN HxEHxHxHxBBAN pNpN~pN <"<NN0Ordner lschenNpN~p N <"<NN< Ordner : 4HP -JNn&<x*<NٔN"_NN <"<NN< Dateien: HP -NNnN"_NN <"<NN0OKN <"<[NN<Abbruch4NpNpNHxHxHx;HxAN 4-N&<x*<NpJBgp/ -:Nn&<x*<NpJBgp/ ->Nn&<x*<NNpJBgp/ ->Nn&<Ԁx*<NTpJBgp/ -BNn&<x*<NNpJBgp/ -BNn&<x*<NTpJBgp$gpN4-N&<x*<NJBfN_0HxHxHx;HxBHxAN pN <"<NN0OKNpN+mJpAN -CNHPN0\*.*"_NC퀄NVA퀄NNzNgN^A퀄NPSN <"<N -NNnNHPN0 "_NN` -CNNX <"<N -NnNHPN0 "_NNNF`Hmp N4"_NJBfNe8HmpN"_NC퀨NV?< -/?<NAXNeHmA`"_NJBfNe <N4C퀴NV?-?-l?< -/?<?<NMHmp N4"_NJBfNe <NC퀮NVHm -nR/A퀮""_N2?-?-l?< -/?<?<NMA*NN N֬ANN&<x*<NpJBgp/4-N&<x*<NpJBgp$fNffHmAN NgN<*.SET4HPHxAN -FJgNg4-N&<x*<NJBfNfN<*.SETHPAN NgN<*.SETHPN< Set berladenHPAN Hm0A "_NgNgHm0p.N"_N+@ -JgNgZHm0N0.SET"_NC0NVNgHm0 -"_NHPN<SET4"_NC0NVA0NNJB;B4-N&<x*<NJBfNgHm0AN t;B4-N&<x*<NgNg`N -Nn&<x*<NN+@vHx Hx HxvHxrHxBAN pNpN~pNp2"<NN0 Set anzeigenNpN -JnNipN~ -vC"NNN+| -AN -NnH -vC(NNNnL8Nv&<x*<NٔN+@z -zrN -NnNHPN<) 4"_NHPp"_NHP -NnH <r$<L8NِNC N"_NN -z"<XN -NnH <r$<L8NِNCNNN,`NqHxHxEHxgHxcHxBAN pNpN~p N <Y"<8NN0OKNpNpNHxHxEHxgHxcAN 4-N&<x*<NJBgpNA*NN ANN&<x*<NJBfNjHmA HPABVN NkfN<*.*HPN0SET-Datei-Editor ladenHPAN Hm0A "_NJBfNkfHm0p "_NBHPA"_NJBfNk Hm0A HPABVN NkfBN<7 Andere Programme vom Men | 'Ausfhren' aus starten ! 4HPN0 OK r"_ N+@N N֬?-?<NMX+@~HxHx2HxHxJHxHxAN HxHxHxHx6HxBAN pNpN~pNpZ"<NN< Laufwerk HPA"_NNpN~p Npx"<NN<Bytes pro Sektor : 4HP -~NvNnN"_NN -~TNv+@ <"<NN<Sektoren pro Cluster : AHP -NnN"_NN <"<NN<Bytes pro Cluster : HP -~XNvNnN"_NN <"<NN<RD-Lnge : HP -~\NvNnN"_NHPN< Sektoren4"_NN <"<NN<FAT-Lnge : HP -~PNvNnN"_NHPN< Sektoren4"_NN <"<NN<1. Sektor von FAT Nr. 2: HP -~ NvNnN"_NN <"<NN<1. Datencluster : HP -~ NvNnN"_NN -~Nv+@ -Nnv NH -NnL8NvH - NnL8N +@B +@:Bm -Nn&<x*<NpJBgp/ -:Nn&<x*<NpJBgp/ ->^HpJBgp/ ->]HpJBgp/ -B^HpJBgp/ -B]HpJBgp$fNt;BN AN X AN X AN X AN X AN X AN X/-AN -"-N -"-N/-AN -X/ -X"N -NnH <r$<L8NِN/ -NnH <r$<L8NِN"NN AN X -JgNpNpNNpN -NN AN X"_A EditorInfo Datei Laufwerk SpeicherParameter ... speichern--nach Aufruf--- ... anhalten--Request beim-- ... Lschen ... berschr.6 0H:T*f  400 0 $06V4@($0 HZLrvd.4Tx.6&< |a6RGk0Gg`a(0GVfA1G<ap??<?<NM\Nu??< NMXNuHn@ 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuNpNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8N6.JgtBnNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNuNJ@g,A,BBgHQ?<=NAP FJ@k??<>NAXtNutNu ::/rI IN<,(k$/<??<?N`NA Jj ?a0NNHrO INLA NNN` A$ HJo d*b` QjNuQjNubNN$HPa _Np"Np,`vN߬)@p `H@)@prtNߺAHplrtNߺB 2pNߪpNߞpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNߺpapap9@p`pvN߬v`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNߺAl 2l 4HVNu9Cp rtNߺAv` Av `Avl 2l 4)lVHNaBp0,l 2Nua40,HNua*p0,l 4Nuaprt0,l 22,l 44,NuN9||BlBlrҌpsNBNu0<}N& ?<NNC`&?<NNT"@ C <}N`N$@((?<NN.?<NNX@LvA HA HNupmrtA)HA)HNߺ(* 9AJA)H@@[000][ˈN Evz`* [g" ]g |g QSz` zQSpQ][ɈN Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NlHNu*( INA)H @depd ae zb QB DNA\)H @ e` ae zb \gQBA BhNJpZNlA BP"`#|}N^A"H0,tg"Hg \f`A\fS A ENAR@H`2QNu@9@JpNNlr|<N @xepw2A$JBjDFHB t`0QBl9F)lVTAtp 9| Nߺ2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NN4"l`dpNAtrdJhk\QpaNH ld$l`"Hg0 k&@ S`g k#&@0+S@H3 Q&f)I`LNu?<?<NAXJgJgNAH@B pNA NuApNN$N$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0NuNJ@gpNu _0HpN _0HpNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNvWHNuNvVHNuNvSHNu Ihd*N$E$RR@H`2QˈN ENu Ihd"*N$E8*$R`"QˈN ENu2)A IJAfr4(Ae*RBBc0*SA?N$E$R`QˈN ENup`(* 0(iN$E 4R`Q$D 4R`QˈN DN ENua NuN IHPg"B  g &gNJBjt BNut`Rptr ae OgT Xgj HgSRB ae Fb$0k  c_  c b退`tSJBkNRB0 b b瀀`RB0 fрd`2p <0N`QNu?Hl?<GNAPA"HJf SNpC 0(gFd"P$I` *N$E$R(S@jv A(Wf( ae zb Q DNur ,* N& ( EN C"Sj|AcRGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HNLNu0,^2,`NzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(NldeS@f lbfSl`9Ab9FdNupapqr`p`C l ", Ⲭ dfѬ SA 0! Nup"NNNJfNup#`NN@<(`|HP?N<pg2JFg W"X2@e2<A`QNCpR@ 1 fA 0! "_N p`pNu)H9@Jp4NlP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C]fApNNNVHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Fehler # ][Abbruch]\f.B &lX)K\)ld` lp ,BQjNup(NX)l g,vARC( g9CJ9|Lp!,Nl FPeNu@A JpBQA/)H )l gBlJpNlB Aprt0 0BBB R@ @efA000 0PB0 *00 000\0X0 *0000 0P0BX0, *@00p1| 1|QBX0 $HTH0P &0 *0,NupNSk [0NupNuHPaH8 _&X Pf/|~ K!zag @ ep 24C"2 S@ػ Td BTA3A0C4$I2a222B"0@2A\xvaRg<2#M 4B3BS@ -f ػ Td>BAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8Nlp>L8Np*HEAJ0?C bL000H?A/.)HpNlLrHH/>Bl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CN 0`@k Ap0(/.NuA Nup)@JphNlLtH &JKBCH .A/~0 1PP1P1PA L? &<@>AFG0000X0000X0000X0000C ~AJ0g0  pi, Nl"F QNu?S@k&8L &LeBLe,C`(A? fHa)_ 2TNuBlJ`l *bl ,bH .NN0S@k@>A PC/~. 0(JgRJ)@g1@CJ2fP2HP" &" *pdNl0,r W1@AJ00 piNl9|L@NpiNl _CL""pe`9| LpiNl9|LphNlLtH 2H/`SBSC@AHH/jP 6P/^P0<rtNߺpapapapaL/jr`S@k6@ A 9PJg8BPpfNlpgNl9| LphNl9@JfdBlJa\Q 6BB 2`NuS@k @ A 9pJg a$Bp`NuHS&I. FV 7p&N߶9l/h8,:,L/d4,pĴ@cS@9@p4,rŴAcBSA9Ar`8pJ, 7fnJ/^k0 Eg$2,/h pg  qfH9A/hpjNߢ`HxHxEHxHxcHxHxAHN p NpNߪ <Y"<$NNLschenNlpNߪ -\JWHgN=pN^HxHxEHxgHxcAFPN 4-N&<x*<NpJBgp/ -dN&<x*<NpJBgp/ -lN&<x*<NpJBgp/ -lN&<x*< NpJBgp/ -hN&<x*<NpJBgp/ -hNH -pCNNH -\NL8N &<x*<N>L8NpJBgp$gpN^4-N&<x*<NgN= -hNH <r$<L8N:H -pCNNL8N&<x*<N>N@+@t -tNH <r$<L8N:N@+@D -\NH <r$<L8N:N@ADN"/-D -DRC퀲NC퀲N/-D -DRC퀸NC퀸NNP`NqNqt;B -\NH <r$<L8N:N@/A C퀸NS\t?A HPAJjN `NHxHxEHxHxcBBAHN <Y"<$NNLschenNlN@Z -\ WHgN@ZN*.*HPNEintrag hinzufgenHPAMN HmA "_NgN@ZHmp"_NCN HmNPRG"_NpJBgp/HmNTOS4"_NpJBgp/HmNTTP4"_NpJBgp/HmNAPP"_NpJBgp$fN@BmBD -\NH <r$<L8N:N@ADN"Hm -DC퀲N"_NJBfN?jt;B+m\DNP`NqNq4-N&<x*<NJBfN?BN" Programm ist schon | vorhanden ! HPNAbbruchr"_ N+@L8NpJBgp$gpN^4-N&<x*<NgNDl -hNH <r$<L8N:H -pCNNL8NN@+@tBN" Erstellung der Commandline | fr HP -tC퀲N"_NHPN | mittels ... ? "_NHPN FS-Box |Tastatur| Abbruchr"_ N+@< -HmN.SET"_NCN NJfHm -P"_NHPNSET4"_NCN N "_A0N f4A퀰N 6 -\N&<x*<NN@+@p4-N&<x*<NJBfNKLHx Hx HxvHxrHxBAHN pNߪpNVpNA0NN&<x*<N &<x*<N:N@+@p2"-NA0NlpNߪNKppN^pFrN <@"<qNpN^ -\JnNLpNV -pCNN+|D -\ADN" -DNH -pCNNL8N &<x*<N>N@+@ -rN -DNNHPN) 4"_NHPp"_NHP -DNH <r$<L8N:N@C퀲N"_NNl -"<XN -DNH <r$<L8N:N@C퀸NNlNP`NqN "_AN fpINHPAr"_NpNNC6N Hm6NFLEXDESK"_NJBfNMRBp NHPA"_NHPN | hat falsches Format ! "_NHPNAbbruch4r"_ N+@N@+@/-Hx/-HxHxBAHN pNVp N - rNA6NlHmA"_NHPA HPA""_NA$N^HmA "_NJBfNONAN+@P+mPDpADN"Hmp"-D"_NHCN Hmp\N"_Ng N RNO8Nj`NqNqHm -D"_NCN N NV1361612 SET-Editor ...--------------------- File---SET-Datei--- ... laden ... speichern--------------- EndeBearbeiten---SET-Datei--- ... anzeigen ... edieren ... lschen-Programmwahl-- ... edieren-Commandlines-- ... edieren ... lscheng-,T*.00h X$ *: ,V*:& & T^ ,xJD>",,V:N* ^& TD>$2" BB&4"l2v`zjP. p.. pGFASHELLPRG pGFASHELLRSC p&README DOC pU3README TXT p2GFASHELLINF p`{b>jAON? <'afEPas EVarN N;AN;BP;CR;DT0-T<-R:-P8-Nvt"-aP"-paP$m4~<-T:-R8-P6-Npt$m2 maez$m0H maz^aL"maT40-VH mazD @ aKaaFa;$m\$$m\ ;]HH/$m\ ^HHg.0< ma[:CaL8/$m\ a;a^t"_aL"CaSx m؄00HH maygE|.paZBCaKCaSx m؄00HH maygE|1paZ CaKCaSNx m؄00HH maygE|4paYCaKzCaS`E|7paYCaK\CaRx m؄00HH may4gE|:paY|CaK$CaR`E|=paY^CaKCaRx m؄00HH maxgE|@paY&CaJCaRj`E|CpaYCaJCaRLx m؄00HH maxgE|FpaXCaJxCaR`E|IpaXCaJZCaQx m؄00HH max2gE|LpaXzCaJ"CaQ`E|OpaX\CaJCaQx m؄00HH mawgE|RpaX$CaICaQhx m؄00HH mawgE|UpaWCaICaQ0`E|XpaWCaIvCaQx m؄00HH mawNgE|[paWCaI>CaPx m؄00HH mawgE|^paW^CaICaPpaWCaHCaPpaWCaHCaPvpaWC"aH"HA(aHpaI"HA.aHpaI"HA4aH"HA:aH"HA@aHpaICaP/-/-N<`Y>aYAaTAaUA`aUp maX4ai~``N `/-`NV`r/-`N`dN`ZN`PN`FN@`Hx m؄1-Hx m؄1.Hx m؄1:Hx m؄1;Hx m؄1*Hx m؄1+Hx m؄11Hx m؄12Hx m؄1BHx m؄1CHx m؄1Hx m؄1H;|DVAFaOE}2p A큎aHQQPP?<NATrAЁaOp:aB/paT"_a@p\aACRaH|?<NATrAЁaOp:aA/paTx"_a@p\aACaHJpARaPCaH8N p~A$aip ~A*aip~ApAaGb`PaPAtaLAHaLAaL$mQA큎a,g|A큎ra9$mtBpaGfZpaUnA큔aV$mtRA큔a]VaP"maFp maOBp!a@/p maO0p'a@p maOp;a@gp maOC큚aFA큚E}NpaAg mC큠aF`bA큚E}Tpa@gE}ZpA큦aF^`g.$mPpracjE}p aFA큎a=4E}paF$mf`pa5`.prac.E}p aFA큎a-gA|ae8/pA|aL6 <.GFAa>gX0-HYA|aK0<.Oa>C큂aCvE}NpaJ"HA큂a;C"aCX0< #aJCa;CaC@`@A큂adg6E}NpaI"HA큂a;zC"aC0< #aJdCa;bCaBpaJDC"a;L"HA(a;Bpa/A|a& gxE~$paGH"HA|a8x"m$aeAx"m$aeHxHxapa>HmjpXaG"HA|a8"HAa8"HA$ra^@$m`$pa>`I`aIA`aEA큂aag0<.OaGd/Hmaa>a^A큂aa|/A큂a%^gpa>nE~,paF~"HA큂a8$x"m$adAFaa>g"p aFC큾a8"HAFa7x"m$adAx"m$adHxHxaHmppXaF"HAa7"HAFa7"HA$ra]P$m`$pa=`HpaHA|a`gN@A|a`/A|a$g|a3xE~1paE"HA|a7T"m,a>E~4paE"HA|a76x"m$adaEtx"m$acHxHxaHmdaEV"m,$ra\$m`$aAt`&aAna2HmdaE./aE("_$ra\z$m`$aAH`GaGA`aC/-`af$m` f/-`a`GtaGA`aCaA a2HmvaD/aD"_$ra\$m`$a@`G:aG <.GFAaEX/Hm|aa(aH`GaG\AaCDA큂"ma=0<.OaE//-an ma_8gP mC큂a=E}NpaDB"HA큂a5C"a=E~9paD$aJa$n2-xH maclQ`FaFAaBA큈"ma=B <.PRGaD//-a ma^gP mC큈a=E}TpaC"HA큈a5^C(a2-vH maaE~9paAaGa!R2-nH ma`P`CvaCa=A큸a[g Hma@/a@"_$raX$m`$`Nja<`C6aC|A,a?da< -a6x;AN;BP;CR;DT0-T<-R:-P8-Nvt"-a6"-pa6$m4~<-T:-R8-P6-Npt$m2 maJ$m0H ma_a1H"ma9n mE~Ep a3gda<4E~Np-a;HE~{p-a;>A4a>6A a>.Aa>Axa>FA|a>>A퀈a>6Aa=?<NATrAЁa?p:a1/paD"_a0p\a1Ca8fE~p m a8HE~p" m4a880a0H$mQB $mB ma>aVj$mx$aVZ$m|$$m| $mx"aV< m a0/-/-/-N1$m `x"m*a] "ma0/ maYg mxC*aKp oRB `S - lB ma>$`(- "m*a\"ma78`(- "m*a\"ma7 R - l+m ma=`x &aKrp a."m a5p a<\"m aA$mh$p a$m$?< NMTa;"m,a1>pr ma:p:a+/$m nB m,0(H$m\HHg*$m aTa3Epa2p ma92a)*`fE'pa2`X maRH/ maR>gB?<NAT$m$$mRpaa3&Epa2$m rAЁa2bp:a7a(` mECpa*g maQ/ maQg$P EFpa6//-HmN6` maQ/ maQgP /-/-HmN6`p maQv/ maQlgZ m Ep'a.la..` mEpa&/ maM maMgNpa3"ma$"m,a,* m, /?<9NA\$m`$$m` gE~p a.$m` a.D`| mEpa&^/ maM` maMPgR ma6g0 mra pa,pf2pa9 m$a;a.P m$a#``E}p a- ma#` mE1pa%/ mEpa%ҁ maL maLg mag m"ma` mEpa%/ maL maLgNpa2B"ma#J"m,a* m, /?<:NA\$m`$$m` gE~p a,$m` a-`8 mELpa%g m mE}vpa" / maIgZ$mBpЭa&`6$m a*a)V$m r la)@$m("m*aLa$mR$m o]` mEpa!/ mEpa!/ maHgHx?<HNA\a)Epa(`H mEpa!X/ mEpa!Fga.a)JEpa(` E}p a(`* m pa+~Ca&x"mBaIp$m$p$m$$m("mBaJ"H ma/$m("m mDa` $mB$mBp a&$m"a)"mDal`$m oB$m S mDa'/$m R mDa( "_ap a"mDa*$mS$mS`$m $mo:$m  mDa'N/$m T mDa'"_aBp aV"mDa$mS`^$m oV$mS`N$m $mo@$mR`8Jgvmvovgvg v gfv gv g$mg`'a'Aa#TA퀬a#LALa$A퀨a#A`a#A퀀a#A퀰a#A퀴a#A퀸a#A퀼a#ATa#vAXa#nAPa#fA,a#^aC$m$$mB$mB$m/?<NA\p mLa@$m`$`|$m Rp($m$$m Rp0($m$$m Rp0($m$$m R ($m$$m rЁa0"mPaVp a)H"mPap a%"mPa:$m r r&<:<a&(*pra(p:a/$m r?&<:<a&(*pra'"_a6p:aJ/$m r&<:<a^&(*pra'"_a"mTa$m r&<:<a*&(*pra'lp.a/$m r&<:<a&(*pra'<"_ap.a/$m r r&<:< a&(*pra'"_ad"mXa$m g4pa#:p a^"H mPa:/p a#"r a%p"_a&"m,a`>0< a#"H mPa /$m a&(*pa&J"_ap a"m,a mT"m,ap a"H mXa$m("mHa@$mR$m $mђ?<ONAT$m`$$m` g~$m Smr$m AH~ta5&$mB$m SaX`>$m("mHa@`a# pag$m("mHa@F/p*a"r"_a@h$mR$m o]`#a N?HnF?<6NAP0.PTHNupa JkpNupNua"zAHPB?HQ?<NNAP _NuDExa`bDEa`ZaR11!Nua11!Nu 24&8:DE`6 24&8:DB`&a\&8:DE`DEx`aH` 24&8:HnghDBHngXDE~<En g6@ABDFGcGcGb8(vHDl`G8BCHC` GHD8HD쬵k&Dуd QRB BbJjDBNu DENupN֓DjdDA@ cAр[SBoJjDBNurptNuH@g0J`Ѐ[rGoJjDBNu0ftNu@[rB oH@JjDBNu $HkBk Bj*DBNupNuDBBkBjDBDNuf gp`7a 00Nur$o, b4< J@k @[H@NuH@RBNu4<Ѐ[NuDg8k2 b4< J@k @[H@DBNuH@RBDBNu4<Ѐ[DBNu40rHGGdHGGdSWDуdi?<>0rHGGdHGGdSWDуdi ?<>0rHGGdHGGdSWDуd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<,>CEdGH@0r`xJCgz?<0rÐdSWЃdi?<0rÐdSWЃdid?<0ÐdSWЃd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<0riR?0i?`?<`"_KPMI:O:HQ <-H*,`N,t0d d3 d# d# # d# # # # d ALH dAL H LH d AL`H L|0H>L|H>d~# # # # A`@ALH L|H>L|H>L|PH>L| H>L|H>L|H>L|H>L|`H>L|0H>L|H>QL|Nu$H$&"BA -KaXA"f B &nNuH>dd2d"d""d""""d LHC dLHLH C@d LHL|H| L|H|PCd~""""C`:LHL|H| L|H|PL|H|L|H|L|H|L|H|L|H|@L|H|pL|H|L|H|CQL|Nu`8a8A-Hhp apMa=@F?<NNTT@A0r p0Q`pdr ta0.F=@=@ACp,2QAp 2Qaa2`p`lpeahp`(p?a a\aZaHz?< NA\?<LNAfCR2A0A82r22a"<E0<NBLNurt=@:=A@=B2::(   F..26"8@"PQ1!P1P!0PP`0  q#p"A ӘQNu|^|  R^,T:Hz(` NF>Hz ?<&NN\Nu9gNuWNua8aa TNuNuNupc?a0QNurdd6Ag,B(dB(dH Ac<a^tgBAp`NuNu?<OA`d?<IA`Z0<H IaLt Ig Og Ug Ag Rg*afNup`aXp`-.0adfHRa4>Er$Wgr STD:gr COM:g r LPT:f2FA$_0=@D~CA0< BhaB2"pNu$_AF Ge><QBAFpNuahgzp=` a\gzpaxAHPBHQ?NA\ _Jk+8Nu/ IaB$$IAHPB Ba.AHPBHQHRBg?<VNAO _ _Jk*NuJBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNu <r4<NuQfHR$n2Jjg$_NuH LNuPfJ.fg0HR$n2Jjf$_NuHC/*%I $n2%_LNu B?b4<rpAv JBlDBv-|JBg Bb Bk&H>aTaRFBd&8*L?a<aSF Be BgQRB`RAdR e <rRF&0xaCձfEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`HQ2.d Aeg>r C 5e&!R 0c 9c0`<R"_`VC0 Ef"_Nuaa/ CFr  g 00VJAgB @ nN @mHJ@j0.4DBUBk0QSAg Q.`S@k 0`0BAF "_Nu.WAkQA 0g`prt|P;Q:  g +g -f .g40  b 0e 9b da6`RF` .f 0e 9b daSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`ZJjDDDS4<.aJFkSFk4arQa~`&HaFFaZQ&8*L/a,H܆jDBJ.:gtBn:Nu @$@JfS a<`QNu$Aa`QBNu?aHQA(B?<NNAP DJNu?<ONATNu?</NATNu/?<NA\NuHz a `Hz |aH ` HPHQ0(ika $I _aIUd4Id4Id$Id `$$$$Q _Jf,ahId4Id4Id$Id `$$$$Q @NuSa:IdIdId`Q @Nup `%/ a$I> _aG` VNuag`af`ae `ac` acpNuadpNu/ a$I> _a4Ae4v` VfANuHP0(R@kBa $I _aIUd4Id4Id$Id `$$$$Q @JfNuNup `%$aDSAfNuag`af`ae `ac` acpNuadpNuaSAkfJANuH HPhkJa  $I _a IUd4Id4Id$Id `$$$$Q @JgSL`QNup `$a Af` VNuag`af`ae `ac` acpNuadpNua j4@m4v` Vf@Nu/HP0(X@kHa P $I _a 8IUd4Id4Id$Id `$$$$Q @Jf$Nu $Nup `#a YAfNuag`af`ae `ac` acpNuadpNua SAkEF$p VfWANu?HP0(T@kHa $I _a IUd4Id4Id$Id `$$$$Q @Jf4Nu0XNup `#*a JUAfQNuag`af`ae `ac` acpNuadpNua SAkXf SAkXfJANuth`tpa ".Nutj`t@H|`pM` pO`p`po` ~*@-AH|`t)`t` tr`t2`t@-A=B|`rAD-@f-H `r6 @`HP"X2AF-H AerQBp|a`rHpx`6H$X4 Y0CF @depdQBC B2et2QBpZAF-HA-HaFA"HJf  _a A`QAF"HJfS  _a AF`QLJ@NuBp'rta n2rt6(SC0(S@apaB\papava0pa _a P4$FAFp_@[000][vx`* [g" ]g |g QSx` xQSrQ][vx`* [g" ]g |g QSx` xQStQ]BAF0-H,=@p4a|2HNuE"ea"ep`|&6NuE "e a"d&&6NuE"e aƵ"d66NuE"e a"d666NuE"e a"d6Nua`QNuHg"cc/ 0)a _$PS@kH2QNu2(g$PRAA4DBH%$Y2Pg 1AHRAA%NuBhNuao aШNupNuaJFoHPJhja?<?B?<BNAO _*kBg?/(?<BNAO Jk NuNafoazJBkAf`a|??/?<BNA.k \Hx?<BNAO [HHNux`x*0ao< 2fJjr`Nu~dGdEH<Nup`0@F@AJhg PLNu`LJg(HPBHh/??<@NAXLf ѨLNuJkp%`PaJBja!| ??<>NAXOJkpNu0< aF`0< CF2p`bp a0`p CFp`NaCF"p`@Hza `Hz"J`.B.@=|DNua.@FpAR@C` @H` @HHyWaa"H`HyW`HyW 24`@H` @HHyWaa\"Hav`HyW`HyW 24`B.@=|DNuB.@ab=GDgNup`a`a0CF"E p`Lar@S@k ??<NAXNuJg$_a: HN$_a: HN$_aBHN$_a؄BpHN$_aB0HN$_axBpHN$_alN$_ab؄N$_aXN$_aPN$_aF 0HN$_a:؄00HHN$_a,p0HN$_a 24N$_a:p 0HgpN"X I"_(*UGk*<(؆QNp`p`p` p`pJPg`$_a!HN$_a؄1HN$_aHN$_a 00N.@<.DAp$I"t Q k"RGef~`SG * g *fSG`<.DjZ\FkBJn`g Fgd Fg^HS&I.aQ`p???<NM\Qj&_NuHQ/?"bf "_&& &6NE "e a"b> B[& &6NuE"e a"b BB[& &6 NuE"e aȵ"b B& &6NuE"e a"b"_$_HQHPbb6Bk K0*a$RHd2Hd2Hd"He`""""Q`"Z&p0P7@g R@@#( \ _& &6 -KNuHyNMXJg HyNMXJNuagpNua Nu"H Y0e$b Pr@Ag$D!("fXծ"HNup`rap`QNupaNu4pa2Nu$pa"Nup2(g"P@g2RADAH""n"r2gZAe2 1@#-I"Nu1@NuAt2<XJX[j]`p`a."n"dp`paNu?pa2Nu/pa"NuH n&$n""Hgr k&@ S`g^ k#&@0+Hd3 Hd3 Hd# Hd# # Hd# # # # Hd`# ALH# ALHQ&f-I"LNuat ."NuaJAfCNu"X2ebP6gHRC(D#HNua@gn` a4gb0`/hd6a$ W PHd2Hd2Hd"Hd `""""Q _/a _Nu/hda$ W2( P"IdHdHd `Q`r@/JAnr W4(Ae4RBBc0?a0$2 W PA`HP"Xp0g"r~ RAfS@n _a`1V` _NuJG06#f &#o-K"CNk"c" C gT6f&#o-K"CNPv6"cgRCC(D#8`E"e a"d"_&B[NpZ`NJAgF Ag>4(g8HP b6 a^$_// Z4HQ`S@Q _Q _a, _Nua$`p`AFtЀvQBNuAFt0 9c^QBNuAFt 0QBNua`a`aCF 0gS JfS`\@a Acr `@a A cr `@a\ A cr `NK2$H`Ha>LHP?.d=hdNK2=_d2 "@$Y4Ad2`0Q @NuH@&g( b⸃bLHaLC 0$Ir `Q"Jr0XDQD@CtEe PA`fRشf`e"J*c j|0"cRLJgR $I.f) 5e*0!.g -g  g 9f 0b`RB`1`p `@`r ??a"P02R@H`2Q Nu?AFBHP?<GNAPAF `r0?HQa _/ ?a0 _4gSB@cLAc4JBg,J@g4@Bo2’S@,. SB6VgS F"GQpNufJ@fSBD@BR@HNufS@kVfpNur ?HQaN _/ ?aD0 _4gSB@c:Ad,J@gB@BmS@,. RB6Vg(R F"GQpNufJ@fRB`fS@kVft0HNuaHaJjtNua:HPa pJk NuCg.BJ@g  g &g, $g %gNKNutNuRpt`2Rpt`Rptr ae OgX Xgn HgSRB ae Fb$0k  c_  c b退`tSHkaDNuRB0 b b瀀`RB0 fрd`ap`ap`anp3cBc~Nu>.D<jRGg>VGg:TGjp`pHPa0CF$IpR@  f _aBHd2Hd2`"QNu` <.DHSGFaAEg f< &_Nua`"Nu.dfa Bc~=n`r>.D<jRGg:VGg&TGjp`<.DaAFa&JkNup#` z fa2a` z f a"aAFa  f#c~JkzNu0:g0.D<jRGg*VGgTGjp`X<.Da(` z faa(` z f aaAF "g pR@0 ,g  g  fHp`:pR@0  g  g "fR@0 ,g  g  fHpRU@"_  f#c~$H _a`QNupR@0 ,g"  g  fa~ (fR~Nua ~ `a~NuaJkHQ ! gRf _NuXX~Nu0j \@??<NMXJk .dgp Nu`*<.DHSGFa "fAGg ."Fg( ,g2 gAEf< &_Nua g`Ra ,g g` ."Ff`H|=@-Hp/`a*|A((@؆*.&|؆kD`&a,k.."*B(.&؅kr-K/.?<INA\/?<HNA\JgB n""n&ۮ&ۮ"$I`&bۛp0R@@b&n CXb*` .&/?<HNA\p=` HU2<.,HdY=ANu?<*NAT.p a Ha INu.k2@a.0H@av.`2H@af/0@aZ/Yda@HA`Y6 :fRS@g.t;ak&AA :fRS@g t;akIA??<-NAXNua0g2.k.tak$6g .fS@gt atkAg A .fS@f.Nut a\kAg6 /fS@gtaFkJAgކA /fS@g4<;a.kAjA AbAPjAdYA??<+NAXrNurxS@k0  bS@k .g( :g"0  b DBb BdeS@jJANuSR@JANup`p` HP  if"Y(d.ЀЇЀHq.؄؇؄AHĘ aHPaׂ"_ WBhad"_ _`$Pt4(gRBB&D%(Nu"X Pf(d.ЀЇЀ.؄؇؄HqHAHaH HQaN _"_BBa]tv`$P4(gRBC%(\cNua$ZXNuHzxlJj xo`xdJjxc, EJDD`DDD Dz$X Pf-K&e "&J$IpSNup` L4 fd$R$&k(*ڄNdNjRofNu.#jHjؿe(*NdN$&Rgp$(؁*Ne*(NdN(*Ro2(NdS(So&*NdB*RRNf$f$SD`S(l//"a R"mxNupЂmlNu2(gbc  P"H`Nu/0Ha2  _ PSAvjx E(Wf* ae zb Q @NuBnp`pBnp`p=| p|=Fn@=@b=n`raHj=Ah~`:a JfBH@ RfF.f Kg" Mg sg tg Pg Hf~`xSGjtRGFcn>`jAF gp gj g grffnnpenbfJ.fj6pRGFc$SG` J.fjpRGFcRF` Ff`> `?~ap a0p a*0Nu|``CpE`bf`FgRGJGgSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0NuagNu4.rf?HyaNM\Nu=|D`LjazEfpadppa`AFEg0PaEfaFRE`ܾEfp a@a8?nnnp a2RF`<annoS@f nhfSnl=Ah=FnNup` papq4.rf?Hya4NM\Nu=|DHaLNu|A0"P2(@e2<EF`QHP=|DJ@g$abAF$HpR@ 0 f _aZ`QNup?ap a~2<|0`aS@k g U@k g NuNu0Nu NuHP$ZXAB6<Q _NuHz`Hza$_HaC`2Hzh`Hza$_HaC`2EL`EHaCZA`E0`EhHaC>A *FM3x?Fc>֞VSGk Vf>FNuTNuHpr,.܆އ܄ޅ܆އ(sh*sx<3h>3x?Fc>֞VSGk66Vf >FLNuTLNu,.܆އ܄ޅ܆އ*sh'xh'x:sh7xh7xNu,.*rh%xh%x܄ޅ܄ޅ*sh'xh'x:sh7xh7xNuC&pHQ/Hy@NA NuC pa:NuHQ/Hy?NA Nu&g4 FgalgJAga2< R@AdSf0Nu0aZp Ce`&g4 Fga JBja8gPAe CbRa R@Sf0Nu FgRag JBjaAeaJAg RP0 pNu`h Fg6agJAga @eaRP Nup NHѨB?<?/?<BNAO JkLLNu&8aRJBjajJAg Df*ڃkd0Nu DfրBH??/?<BNAO LJk!@NuHBHh Hx??<?NAO LJo ѨLNuk:fp`^k: g ѨNuBHPHQ/??<?NAO _JoѨfNuBHPHQS/??<@NAXLfѨNuJkp%`p#fpNup`p`#NuO?// C4<a./J _ta$/J _a/Ja>?<KNAdOHNu$Ia JBc2QBB"HNu?a2@`?a2@a` a Nu4.`Af n2LR@RANu4.`g S@SAHNutbpbr??paJpYaD0a>0`8NpEgP`LJg&B.C`a8aD*9fap-I,=|p4aϞHz*9g ENp9`\ _a &nO:NMI:KP$<Nu[1][Error +111][Return]EN g g>Jf`Ar Hjr-D@Hd0H@H 0H@0CNuAF"H [1][fSEfNu9HHNu9`aJf"_O:N"_O:HQ`2 9t"g"9tgJ9f ga"ANp\B`G06#f&#-KNuk"c" C gT6f`Pv6"cgRCC(D#8`D@v`v??NMXJNuJ@k??<NM"UAf J@fH@NuaVjz0fpNu\@`aB`]@><CF Ipa<0HNua&`]@><CF Ipa Nu?|`?a0R@f|0aHJFkHPa _Nupo`HSHP&I>g\SG??<NMXJk V _t&_Nu&_`taJANuag `af`apNuapNuC`C``C` C`CJhfRRRRRRRHP? @CFH~8:E#P&<2 `b$bYEf` RAf rЁЀ`$Ѐe "ЀeЁdpNJAkfgRer?DDЁaAaZ8$HX :CFE` YEjT"_$P"2trDDd0d d d` QjNu`0aDa DNu na^ K"ng42 $`gk2&Hg Af deђ$`ebѐXf&nNu AgebѐA``-Kx$ n&$n""Hg8" &Ak cѐ S`g"" k#&Acё2+SAI3 Q&f-I"&nNu-Kx$&ր n&$n""HgR" k&Ac b S` S`g4" k#&AcbrkX`ޑ2+SAI3 Q&f-I"&nNu$9tg6ACNr2f`ef2f`#t``aL `ӈaP n2L6(n\n^HHHNua0 n20(n\HNua n20(n^HNua n20(HNua:ffNuarNua J[HHNu:nfa@ z^0NuJg6$:Pf,H?<"NNT&@p/&ztra :,ga &Lr`r??Q@zrHyNM\0Nu#znNu؄*؄؅CH`ڶ؅X`$_  IajHR"H @`̘؄*؄؅AHNu؅X`$_ Ia6HR"H`4<H`@adL Z0De2SCkÐCo@c2`QNu .*Nua!@ NuAANua1 Nut`t`t`t`t`t `t`t`t`t`a ( Nua Nu@@Nura00HNur`r`r`r`r `r`r`r`r`zQ`z ` zn`z4=A|a-IHQB0a _JNuz"-A=@|a^-I` I+ S& S> S< E$ E# F> F< *& *% %0 %3 F% P> P< B+ -sInterpreter=Compiler=Linker=RCS-Program=GFA-File=OBJ-File=PRG-File=C-OBJ-File=G3WAIT=ONG3WAIT=OFFG3MOVE=ONG3MOVE=OFFOBJ-File = GFA-FilePRG-File = GFA-FileCompiler-Option: Path = GFASHELL.RSCRSC nicht gefunden!GFASHELL.INFABCDEFGHIJKLMNOPG3OBJ=G3PRG=G3PRG=TEST.PRGG3LIB=G3INT=G3COM=G3LNK=G3RCS=SHELL=G3PTH=%%% SYNTAX ERROR IN LINE (C)ONTINUE OR (Q)UIT? !!! (TAKE GFA-DEFAULT) CANNOT OPEN GFABASIC.PRGGFA_BCOM.PRGGL.PRGRCS2.PRGG3OBJ=TEST.OG3LIB=GFA3BLIBCOMPILE LINK - EDIT &H0000&H0004PARAMETER GFA-Shell V.1.0 Parameter Info: KLICKLCI> Little Command Interpreter V. 1.0TOS-ERROR: CLSDELDELETEDFREE BYTES FREE ON DRIVE INVALID DRIVE SPECIFICATION DIR*.* CONTINUETOTAL OF FILES / TOTAL LENGTH PRINTER IS OFFLINENO FILES FOUND KNOWS:CD [path], CLS, DEL(ETE), DIR [filespec] [device (or filespec)], DFREE drive:,EXIT, FREE, HELP, MKDIR path, PRINT filespec, REN(AME) filespec filespec,SET parameter parameter, SH(OW) parameter [parameter], TYPE filespec, QUITFOR MORE INFORMATION READ "README.TXT"!RENAMERMDIRSORRY, CAN'T USE ".." OR "." FOR PATHPROMPTMEMORYSYSTEM BYTES FREE (SYSTEM)INTERN BYTES FREE (INTERN)PURGE*.BAKDELETE \BIN\ERROR-NO.:   N8888888888<  $ X .&h""((((($"<(`XB*ʰ Pl`t6~8"<0X 6jRh@j"B,*0rVTf`B X^BX`26P6x,D"&"&6 T\((@H|$pl@ *l "*$VVV$VW&SHELL fr GFA-BASIC 3.0 Compiler(c) SEP. 89 by Ralf Lenz, Gluckensteinweg 71, 6380 Bad HomburgGFA OBJ=GFAEDITOBJCOMPILE PRG=GFALINKPRG G3WAITMAKELIB G3MOVERCSC-OBJTESTCOMMANDEXITInterupts+-+-BombenFunc. Test+-Select2 Byte4 ByteProceduresGFA68000INTFLOATInt. DIV+-Debug Sym.ErrorsTextZahlFunctionINTFLOAD2 Byte4 ByteInt. MULCASE Opt.ZeitGre0_____Memory:______999999SHELL fr GFA-BASIC 3.0 Compiler(c) SEP. 89 by Ralf Lenz, Gluckensteinweg 71, 6380 Bad HomburgVersion 1.0Dieses Programm wurde mit dem GFA-Basic Compiler 3.0 erstellt!fr privaten Gebrauch kopiert und weitergegeben werden.Gewerblicher Gebrauch (auer PD Versand) ist nur mit aus-drcklicher Genehmigung gestattet.Bei berweisung von 20,00 DM auf mein Konto, sende ich dasneuste Update der GFASHELL zu (s. auch README.TXT).KONTO 17837228, BLZ 500 520 09, KSK HochtaunusDieses Programm ist "PUBLIC DOMAIN". Es darf beliebig oftGFASHELLPARAMETER(Kennwort: GFASHELL - Absender nicht vergessen!!!)E?   !0;< QZ[ `kl mtu   &AB?COP Q?8:+,#-hi;j4/  : ST&3&C   <$ !V6<F B          ! !!, ,7 , 7 D& @ &r   &  $!#&" #  (%'& &'" $),)+& * += (A0-/&.G /K,413&!2\ 3^0 857&! 667v 4{<9;&!:R ; 8@=?&!> ?<nDAC&! B C @(! &B <!6 / &< ; 29 N" j; 3 .;&'   2 n07201010101800 1 2 F0110030 9[........................................................]001  GFASHELL.PRGV.1.0 ==================  Versionvom18-SEP-1989   VORWORT: ======== NachlangemwartenwarderCompilerfrdasGFA-BasicVersion3.0nun endlicherschienen.MitzittrigenHndenwurdederUmschlaggeffnetund diedarinliegendeDisketteindieFloppygeschoben.Dochwasistdas? NachdemStartvonGFA_BCOM.PRGpassiertenichtdaswasmanbishervom GFA-Compiler(V.2)gewhntwar.Alsohalfnichts,dasHandbuchmute dochnochaufgeschlagenwerden.(WerliestdennnochHandbcher?)Aha, MENUX.PRGmugestartetwerden,wrhttedasgedacht.Parametergehren auchnochdazu.WasbedeutetnunschonwiederS>inderParameterliste, woistdennschonwiederdasHandbuchhin?HILFEwobleibtdiebisher gewohnteArbeitsumgebung?!! Eshalfnichts.WaseinrichtigerProgrammiererist,dermachtsichhalt seineArbeitsumgebungselbst.Soentstandalsoinschweitreibenden NchtendieGFASHELL.  SinndiesesProgrammesistesalsodieArbeitmitGFA-Basic3.0zu vereinfachen,undwoichgeradedabeiwarkamendannnocheinpaar kleineExtrasdazu.DasProgrammistweitgehendselbsterklrend geschrieben,abertrotzdemfolgthiereinekleineBeschreibung: BEDIENUNGSANLEITUNG: ==================== (Wennsiejemalsvonirgendwemgelesenwird) ZudemProgrammgehrendieDateien:  GFASHELL.PRG(DaseigentlicheProgramm) GFASHELL.RSC(DiedazugehrendeResource-Datei) GFASHELL.INF(DateimitDefaultwertenfrdieSHELL) README.TXT(DieseDateilesenSiegerade) README.DOC(DasselbeinWORDPLUS-Format)  DieerstendreiDateienmssenimselbenOrdnerliegen(z.B.:GFA_3).  DieMindestkonfigurationisteinSpeicherplatzvonmindestens520K,ein einseitigesLaufwerksowieeinSM124Monitor(RealProgramersdon'tuse color!).EineFestplatteodereineRAMDISKerhhendieGeschwindigkeit. EinDruckeristnatrlichimmerempfehlenswert.  1.Programmstart: ================= BevorSiedasProgrammstarten,solltenSieberprfen,obdieAngaben inGFASHELL.INFIhrerArbeitsumgebungentspricht. DieOriginaldateisiehtwiefolgtaus: ' ' INFO-FILE FUER GFAASHELL ' ************************ ' ' STANDARTNAMEN FUER COMPILE UND LINK ' G3OBJ=F:\GFA_3\TEST.O G3PRG=F:\GFA_3_TEST.PRG ' ' PROGRAMME DIE VON GFASHELL DIREKT AUSGEFUEHRT WERDEN ' G3LIB=F:\GFA_3\GFA3BLIB G3INT=F:\GFA_3\GFABASIC.PRG G3COM=F:\GFA_3\GFA_BCOM.PRG G3LNK=F:\GFA_3\GL.PRG G3RCS=F:\GFA_3\RCS2.PRG ' ' KANN BEI BEDARF GESETZT WERDEN: ' ' SHELL= ' 'STANDARTPFADFRFILESELECTORBOX ' G3PTH=F:\GFA_3\MAKE\ Kommentarzeilenwerdenmit',!oder;gekennzeichnet.AmAnfangundam EndejederZeileknnenbeliebigvieleBlanksstehen.DieReihenfolge derDefinitionenkannfreigewhltwerden.SolltenParameternicht definiertsein,werdenautomatischdieDefaultwerteausdemHandbuch genommen. 2.INFOS ======== SiehabendasProgrammschongestartet?DannhabenSiejaschongesehen wiesichdasganzeaufdemBildschirmdarstellt. DerweieKastenobenbeinhaltetdiesehrwichtigeMitteilungwiedas Programmheit,undvonwemeserstelltwurde.WennSiedieseBOX anklickenerscheinteinbichenWerbungfrmich.Siehabennundie Mglichkeitmit"ZURUECK"wiederindieSHELLzurckzukehren,odersich mit"PARAMETER"alleaktuellenWertederSHELLanzeigenzulassen.Wenn SiesichsattgesehenhabengengteinMausklickundSiesindwiederin derSHELL.  3.Arbeiten =========== DerKastenunterdenInformationenistfrdieDefinitionender Standard-Datei-NamenundzumAufrufderGFA-Programmegedacht: EDIT AufrufdesGFA-Basic-Interpreters COMPILEAufrufdesGFA-Basic-Compilers LINK AufrufdesGFA-Basic-Linkers MAKE AufrufdesCompilers,unddesLinkershintereinander RCS AufrufdesResource-Construktion-Sets TEST AufrufdeszuletztcompiliertenProgrammes GFA Bestimmungdes*.GFAFiles OBJ BestimmungdesObjekt-Files PRG BestimmungdesProgramm-Files LIB BestimmungderLibrary C-OBJ BestimmungdesC-Objekt-Filesdasdazugelinktwerdensoll OBJ=GFA ObjektfilenimmtautomatischdenNamendesGFA-Filesan. PRG=GFA ProgrammfilenimmtautomatischdenNamendesGFA-Filesan. (Wennhatesnichtschongestrt,daalleProgrammeTEST.* genanntwerden?) G3WAIT G3WAITeinoderausschalten(s.Handbuch) G3MOVE G3MOVEeinoderausschalten(s.Handbuch) COMMAND RufteinenCOMMAND-LINE-INTERPRETERauf.Standardmigwirdeine abgespeckteaufdieSHELLangepateVersiondesLCI'sbenutzt. WenninGFASHELL.INFeineandereSHELLbenanntistwird natrlichdiesebenutzt.(Mankannnatrlichaucheinnormales Programmdefinieren,unddannz.B.Raumschiffeabballern, Malen,Briefeschreibeno..) EXIT AllesaufdieserErdeistvergnglich,soauchdieGFASHELL. 4.Parameter ============ DieBedienungderParametereinstellungentsprichtinetwaderBedienung vonMENU.PRGbzw.MENUX.PRG,nuristallesaufeinenBlick,imKlartext ohnestndigesnachschlagenimHandbuchsichtbar.DiegenaueBedeutung derParameteristrechtausfhrlichimHandbuchbeschrieben.Leutedie ihrenCompiler"zufllig"aufeinerihrerDiskettenentdeckthaben, solltensichvielleichtdochnochdenCompilerkaufen.Ichverratehier nichts.  5.LittleCommandInterpreter(LCI) =================================== AlskleinesExtraistinderGFASHELLeinkleinerKommandointerpreter eingebautderdiewichtigstenBefehlefreinsinnvollesArbeiten beherrscht. SyntaxderBeschreibung: ======================== KOMMANDOPARAMETERPARAMETER inKlammern()=>kannzustzlichzumKommandoeingegebenwerden [nnnn] =>kannoptionalbenutztwerden filespec =>[Laufwerk:][\ORDNER...\]DATEINAME.EXTENSION CD[filespec] WechseltdasVerzeichniss BeispielCDA:\GFA\ gehtnachA:\GFA\ CD wechseltindasVerzeichnissdasmit SETPATHdefiniertwurde CLS lschtdenBildschirm DEL(ETE)filespec(ohneWildcards) lschtangegebeneDatei Beispiel:DELTEST.OlschtdieDateiTEST.O DFREElaufwerk zeigtdenfreienSpeicherplatzaufdemangegebenLaufwerk DIR[filespec][filespec] Inhaltsverzeichnisvon1.Parameterauf2.Parameter Beispiel:DIRgibtalleDateiendesaktuellenOrdnersaus DIRA:\TEST\*.GFAzeigtalle*.GFA-FilesaufA:\TEST DIR*.*LST:DrucktdenInhaltdesaktuellenOrdners EXIToderQUIT ZurckzurSHELL.KannauchmitQUIToderdurchdrckenvon "UNDO"erreichtwerden. FREE ZeigtdenfreienSpeicheran HELP ZeigtdiebekanntenKommandosan MKDIR filespec ErzeugteinenOrdner PRINTfilespec GibtdieangegebeneDateiaufdenDruckeraus REN(AME)filespecfilespec Verndert1.Dateinamenin2.Dateinamen.Gehtnuraufaktuellen Laufwerk. Beispiel:RENAMETEST.O\GFA_3\HUGO.O RMDIRfilespec LschteinenOrdner  SETparameterparameter setztverschiedeneWerte SETDATEdatum BeigltigerDatumsangabewirddasSystemdatumgendert SETTIMEzeit BeigltigerZeitangabewirddieSystemzeitgendert SETPATHpfad VerndertdenStandardsuchpfadderGFASHELL SETPROMPTstring VerndertdasEingabezeichen(Maximal6Stellen) SH(OW)parameter zeigtverschiedeneWerte SHOWGFA(SHELL) zeigtdieaktuellenGFASHELLParameter SHOWDATE zeigtdasSystemdatum SHOWDIR zeigtdasaktuelleVerzeichniss SHOWTIME zeigtdieSystemzeit SHOWPATH zeigtdenaktuellenGFA-SHELLPfad SHOWMEMORY[SYSTEM] zeigtdenfreienSpeicheran SHOWMEMORYINTERN zeigtdenfreienSpeicherderGFASHELLan TYPEfilespec gibtdieangegebeneDateiaufdemBildschirmaus PURGE lschtalle*.BAKDateienimaktuellenVerzeichniss ProgrammewerdendurchEingabedesPfadesunddesDateinamens(ohne Extension)gestartet.LCIberprftobeinausfhrbaresProgrammmit diesenAngabenbesteht.Bzw.:ohnePfadangabewirdgeprftobein ProgrammimOrdner\BINoderomdefiniertenPfad(mitSETPATH)mit diesenAngabenexistiert.LCImerktsichdieletzten10Eingaben(auch nachverlassenvonCOMMAND).DieseknnendurchdiePfeiltastenUPund DOWNwiederaufgerufenundeditiertwerden.  6.Publik-Domain ================ NichtvergessendarfichnatrlichdenHinweisaufmeinarmesKonto: DasProgrammistalsPublikDomainSoftwarefreigegeben,d.H.dieses Programmdarffreikopiertundweitergegebenwerden.Dabeimssendie DateienGFASHELL.PRG,GFASHELL.INF,README.TXTundREADME.DOCmit kopiertwerden. UmaberwenigstenseinenTeilmeinerUnkostenfrKaffeeundZigaretten, diebeiderErstellungdiesesProgrammesverbrauchtwurden,wieder zurckzubekommen,bitteichjedenderdiesesProgrammgebrauchenkann, mireinenkleineren(oderauchetwasgreren)Betragzuberweisen. Ab20,00DMwirdmanregistrierterBesitzer.(RegistrierteBesitzer erhaltenvonmirautomatischdasnchsteUpdatezugesandt,undbekommen vommirbeiBedarfeineindividuelleBeratung.) AnsonstenbinichfrAnregungen,Verbesserungsvorschlge,Lobundauch Beschimpfungenimmerzuhaben.EinkurzerBriefanmichgengt.Antwort gibtesgarantiert. Evntl.FehlermeldungenbittemitgenauerBeschreibungdesFehlers(s. Anlage)undderVersionsnummerdesProgrammsanmichsenden.Ich bentigedazueineDiskettemit:a)derGFASHELL.INFundb)evntl.dem geradebearbeitetenFiles*.GFA*.O....DieDiskettegibtes garantiertwiederzurck(natrlichmitderneustenGFASHELLVersion). RalfLenz Gluckensteinweg71 6380BadHomburg Konto:17837228BLZ:50052009KreissparkasseBadHomburg P.S.DenServicemitdenFehlermeldungengibtesnatrlichnurfr registrierteBesitzerderGFASHELL.Ansonstenhilftnurwartenaufdie nchsteVersiondieinderPD-Scenekursiert. P.P.S.Fanpost,DrohbriefeundAnregungendarfmirauchjederandere zusenden.  FEHLERMELDUNG ============= AdresseName: Strae: PLZ,Ort: Tel.: BeimBenutzenvonderGFASHELLV1.0istfolgenderFehleraufgetreten: (BittehierdenFehlergenaubeschreiben,evntl.Blattanfgen.) ------------------------------------------------------------------------ DerFehlerist []reproduzierbar []nichtreproduzierbar DerFehlertrataufim[]Diskettenbetrieb TypderFloppy:______________ []Festplattenbetrieb TypderFestplatte:________________ Treiber:___________________________ TURBODOSgeladen[]Ja[]Nein CACHE-Programmgeladen[]Ja[]Nein (wennja,welches?:________________) []RAM-Diskbetrieb NamedesRAMDISK-Programms:________________ IchbesitzefolgendeKonfiguration: TOS-Version:____________[]imROM[]aufDiskette ST-Typ[]520ST[]520ST+[]260ST[]520STM []1040ST[]1040STM[]MegaST2[]MegaST4 []anderen:__________________________ beiDruckerfehlern: Druckertyp:__________________ Spoolergeladen[]Ja[]Nein wennja,welcher?:____________________ Schnittstelle:[]Seriell[]Parallel MeinGFA-BasicInterpreterhatdieVersionsnummer3.__ MeinGFA-BasicCompilerhatdieVersionsnummer:3.__ GFASHELL.PRG V.1.0 ================== Version vom 18-SEP-1989 VORWORT: ======== Nach langem warten war der Compiler fr das GFA-Basic Version 3.0 nun endlich erschienen. Mit zittrigen Hnden wurde der Umschlag geffnet und die darinliegende Diskette in die Floppy geschoben. Doch was ist das? Nach dem Start von GFA_BCOM.PRG passierte nicht das was man bisher vom GFA-Compiler (V.2) gewhnt war. Also half nichts, das Handbuch mute doch noch aufgeschlagen werden. (Wer liest denn noch Handbcher?) Aha, MENUX.PRG mu gestartet werden, wr htte das gedacht. Parameter gehren auch noch dazu. Was bedeutet nun schon wieder S> in der Parameterliste, wo ist denn schon wieder das Handbuch hin? HILFE wo bleibt die bisher gewohnte Arbeitsumgebung?!! Es half nichts. Was ein richtiger Programmierer ist, der macht sich halt seine Arbeitsumgebung selbst. So entstand also in schweitreibenden Nchten die GFASHELL. Sinn dieses Programmes ist es also die Arbeit mit GFA-Basic 3.0 zu vereinfachen, und wo ich gerade dabei war kamen dann noch ein paar kleine Extras dazu. Das Programm ist weitgehend selbsterklrend geschrieben, aber trotzdem folgt hier eine kleine Beschreibung: BEDIENUNGSANLEITUNG: ==================== (Wenn sie jemals von irgendwem gelesen wird) Zu dem Programm gehren die Dateien: GFASHELL.PRG (Das eigentliche Programm) GFASHELL.RSC (Die dazugehrende Resource-Datei) GFASHELL.INF (Datei mit Defaultwerten fr die SHELL) README.TXT (Diese Datei lesen Sie gerade) README.DOC (Dasselbe in WORDPLUS-Format) Die ersten drei Dateien mssen im selben Ordner liegen (z.B.: GFA_3). Die Mindestkonfiguration ist ein Speicherplatz von mindestens 520 K, ein einseitiges Laufwerk sowie ein SM124 Monitor (Real Programers don't use color!). Eine Festplatte oder eine RAMDISK erhhen die Geschwindigkeit. Ein Drucker ist natrlich immer empfehlenswert. 1. Programmstart: ================= Bevor Sie das Programm starten, sollten Sie berprfen, ob die Angaben in GFASHELL.INF Ihrer Arbeitsumgebung entspricht. Die Originaldatei sieht wie folgt aus: ' ' INFO-FILE FUER GFAASHELL ' ************************ ' ' STANDARTNAMEN FUER COMPILE UND LINK ' G3OBJ=F:\GFA_3\TEST.O G3PRG=F:\GFA_3_TEST.PRG ' ' PROGRAMME DIE VON GFASHELL DIREKT AUSGEFUEHRT WERDEN ' G3LIB=F:\GFA_3\GFA3BLIB G3INT=F:\GFA_3\GFABASIC.PRG G3COM=F:\GFA_3\GFA_BCOM.PRG G3LNK=F:\GFA_3\GL.PRG G3RCS=F:\GFA_3\RCS2.PRG ' ' KANN BEI BEDARF GESETZT WERDEN: ' ' SHELL= ' ' STANDARTPFAD FR FILESELECTORBOX ' G3PTH=F:\GFA_3\MAKE\ Kommentarzeilen werden mit ',! oder ; gekennzeichnet. Am Anfang und am Ende jeder Zeile knnen beliebig viele Blanks stehen. Die Reihenfolge der Definitionen kann frei gewhlt werden. Sollten Parameter nicht definiert sein, werden automatisch die Defaultwerte aus dem Handbuch genommen. 2. INFOS ======== Sie haben das Programm schon gestartet? Dann haben Sie ja schon gesehen wie sich das ganze auf dem Bildschirm darstellt. Der weie Kasten oben beinhaltet die sehr wichtige Mitteilung wie das Programm heit, und von wem es erstellt wurde. Wenn Sie diese BOX anklicken erscheint ein bichen Werbung fr mich. Sie haben nun die Mglichkeit mit "ZURUECK" wieder in die SHELL zurckzukehren, oder sich mit "PARAMETER" alle aktuellen Werte der SHELL anzeigen zu lassen. Wenn Sie sich sattgesehen haben gengt ein Mausklick und Sie sind wieder in der SHELL. 3. Arbeiten =========== Der Kasten unter den Informationen ist fr die Definitionen der Standard-Datei-Namen und zum Aufruf der GFA-Programme gedacht: EDIT Aufruf des GFA-Basic-Interpreters COMPILE Aufruf des GFA-Basic-Compilers LINK Aufruf des GFA-Basic-Linkers MAKE Aufruf des Compilers, und des Linkers hintereinander RCS Aufruf des Resource-Construktion-Sets TEST Aufruf des zuletzt compilierten Programmes GFA Bestimmung des *.GFA Files OBJ Bestimmung des Objekt-Files PRG Bestimmung des Programm-Files LIB Bestimmung der Library C-OBJ Bestimmung des C-Objekt-Files das dazugelinkt werden soll OBJ=GFA Objektfile nimmt automatisch den Namen des GFA-Files an. PRG=GFA Programmfile nimmt automatisch den Namen des GFA-Files an. (Wenn hat es nicht schon gestrt, da alle Programme TEST.* genannt werden?) G3WAIT G3WAIT ein oder ausschalten (s. Handbuch) G3MOVE G3MOVE ein oder ausschalten (s. Handbuch) COMMAND Ruft einen COMMAND-LINE-INTERPRETER auf. Standardmig wird eine abgespeckte auf die SHELL angepate Version des LCI's benutzt. Wenn in GFASHELL.INF eine andere SHELL benannt ist wird natrlich diese benutzt. (Man kann natrlich auch ein normales Programm definieren, und dann z.B. Raumschiffe abballern, Malen, Briefe schreiben o..) EXIT Alles auf dieser Erde ist vergnglich, so auch die GFASHELL. 4. Parameter ============ Die Bedienung der Parametereinstellung entspricht in etwa der Bedienung von MENU.PRG bzw. MENUX.PRG, nur ist alles auf einen Blick, im Klartext ohne stndiges nachschlagen im Handbuch sichtbar. Die genaue Bedeutung der Parameter ist recht ausfhrlich im Handbuch beschrieben. Leute die ihren Compiler "zufllig" auf einer ihrer Disketten entdeckt haben, sollten sich vielleicht doch noch den Compiler kaufen. Ich verrate hier nichts. 5. Little Command Interpreter (LCI) =================================== Als kleines Extra ist in der GFASHELL ein kleiner Kommandointerpreter eingebaut der die wichtigsten Befehle fr ein sinnvolles Arbeiten beherrscht. Syntax der Beschreibung: ======================== KOMMANDO PARAMETER PARAMETER in Klammern () => kann zustzlich zum Kommando eingegeben werden [nnnn] => kann optional benutzt werden filespec => [Laufwerk:][\ORDNER...\]DATEINAME.EXTENSION CD [filespec] Wechselt das Verzeichniss Beispiel CD A:\GFA\ geht nach A:\GFA\ CD wechselt in das Verzeichniss das mit SET PATH definiert wurde CLS lscht den Bildschirm DEL(ETE) filespec(ohne Wildcards) lscht angegebene Datei Beispiel: DEL TEST.O lscht die Datei TEST.O DFREE laufwerk zeigt den freien Speicherplatz auf dem angegeben Laufwerk DIR [filespec] [filespec] Inhaltsverzeichnis von 1.Parameter auf 2.Parameter Beispiel: DIR gibt alle Dateien des aktuellen Ordners aus DIR A:\TEST\*.GFA zeigt alle *.GFA-Files auf A:\TEST DIR *.* LST: Druckt den Inhalt des aktuellen Ordners EXIT oder QUIT Zurck zur SHELL. Kann auch mit QUIT oder durch drcken von "UNDO" erreicht werden. FREE Zeigt den freien Speicher an HELP Zeigt die bekannten Kommandos an MKDIR filespec Erzeugt einen Ordner PRINT filespec Gibt die angegebene Datei auf den Drucker aus REN(AME) filespec filespec Verndert 1.Dateinamen in 2.Dateinamen. Geht nur auf aktuellen Laufwerk. Beispiel: RENAME TEST.O \GFA_3\HUGO.O RMDIR filespec Lscht einen Ordner SET parameter parameter setzt verschiedene Werte SET DATE datum Bei gltiger Datumsangabe wird das Systemdatum gendert SET TIME zeit Bei gltiger Zeitangabe wird die Systemzeit gendert SET PATH pfad Verndert den Standardsuchpfad der GFASHELL SET PROMPT string Verndert das Eingabezeichen (Maximal 6 Stellen) SH(OW) parameter zeigt verschiedene Werte SHOW GFA(SHELL) zeigt die aktuellen GFASHELL Parameter SHOW DATE zeigt das Systemdatum SHOW DIR zeigt das aktuelle Verzeichniss SHOW TIME zeigt die Systemzeit SHOW PATH zeigt den aktuellen GFA-SHELL Pfad SHOW MEMORY [SYSTEM] zeigt den freien Speicher an SHOW MEMORY INTERN zeigt den freien Speicher der GFASHELL an TYPE filespec gibt die angegebene Datei auf dem Bildschirm aus PURGE lscht alle *.BAK Dateien im aktuellen Verzeichniss Programme werden durch Eingabe des Pfades und des Dateinamens (ohne Extension) gestartet. LCI berprft ob ein ausfhrbares Programm mit diesen Angaben besteht. Bzw.: ohne Pfadangabe wird geprft ob ein Programm im Ordner \BIN oder om definierten Pfad (mit SET PATH) mit diesen Angaben existiert. LCI merkt sich die letzten 10 Eingaben (auch nach verlassen von COMMAND). Diese knnen durch die Pfeiltasten UP und DOWN wieder aufgerufen und editiert werden. 6. Publik-Domain ================ Nicht vergessen darf ich natrlich den Hinweis auf mein armes Konto: Das Programm ist als Publik Domain Software freigegeben, d.H. dieses Programm darf frei kopiert und weitergegeben werden. Dabei mssen die Dateien GFASHELL.PRG, GFASHELL.INF, README.TXT und README.DOC mit kopiert werden. Um aber wenigstens einen Teil meiner Unkosten fr Kaffee und Zigaretten, die bei der Erstellung dieses Programmes verbraucht wurden, wieder zurckzubekommen, bitte ich jeden der dieses Programm gebrauchen kann, mir einen kleineren (oder auch etwas greren) Betrag zu berweisen. Ab 20,00 DM wird man registrierter Besitzer. (Registrierte Besitzer erhalten von mir automatisch das nchste Update zugesandt, und bekommen vom mir bei Bedarf eine individuelle Beratung.) Ansonsten bin ich fr Anregungen, Verbesserungsvorschlge, Lob und auch Beschimpfungen immer zu haben. Ein kurzer Brief an mich gengt. Antwort gibt es garantiert. Evntl. Fehlermeldungen bitte mit genauer Beschreibung des Fehlers (s. Anlage) und der Versionsnummer des Programms an mich senden. Ich bentige dazu eine Diskette mit: a) der GFASHELL.INF und b) evntl. dem gerade bearbeiteten Files *.GFA *.O ... . Die Diskette gibt es garantiert wieder zurck (natrlich mit der neusten GFASHELL Version). Ralf Lenz Gluckensteinweg 71 6380 Bad Homburg Konto: 17837228 BLZ: 500 520 09 Kreissparkasse Bad Homburg P.S. Den Service mit den Fehlermeldungen gibt es natrlich nur fr registrierte Besitzer der GFASHELL. Ansonsten hilft nur warten auf die nchste Version die in der PD-Scene kursiert. P.P.S. Fanpost, Drohbriefe und Anregungen darf mir auch jeder andere zusenden. FEHLERMELDUNG ============= Adresse Name: Strae: PLZ, Ort: Tel.: Beim Benutzen von der GFASHELL V1.0 ist folgender Fehler aufgetreten: (Bitte hier den Fehler genau beschreiben, evntl. Blatt anfgen.) ------------------------------------------------------------------------ Der Fehler ist [] reproduzierbar [] nicht reproduzierbar Der Fehler trat auf im [] Diskettenbetrieb Typ der Floppy:______________ [] Festplattenbetrieb Typ der Festplatte: ________________ Treiber: ___________________________ TURBODOS geladen [] Ja [] Nein CACHE-Programm geladen [] Ja [] Nein (wenn ja, welches?: ________________) [] RAM-Diskbetrieb Name des RAMDISK-Programms:________________ Ich besitze folgende Konfiguration: TOS-Version:____________ [] im ROM [] auf Diskette ST-Typ [] 520ST [] 520ST+ [] 260 ST [] 520STM [] 1040ST [] 1040STM [] Mega ST 2 [] Mega ST 4 [] anderen:__________________________ bei Druckerfehlern: Druckertyp: __________________ Spooler geladen [] Ja [] Nein wenn ja, welcher?: ____________________ Schnittstelle: [] Seriell [] Parallel Mein GFA-Basic Interpreter hat die Versionsnummer 3.__ Mein GFA-Basic Compiler hat die Versionsnummer: 3.__ ' ' INFO-FILE FUER GFAASHELL ' ************************ ' ' STANDARTNAMEN FUER COMPILE UND LINK ' G3OBJ=F:\GFA_3\TEST.O G3PRG=F:\GFA_3_TEST.PRG ' ' PROGRAMME DIE VON GFASHELL DIREKT AUSGEFUEHRT WERDEN ' G3LIB=F:\GFA_3\GFA3BLIB G3INT=F:\GFA_3\GFABASIC.PRG G3COM=F:\GFA_3\GFA_BCOM.PRG G3LNK=F:\GFA_3\GL.PRG G3RCS=F:\GFA_3\RCS2.PRG ' ' KANN BEI BEDARF GESETZT WERDEN: ' ' SHELL= G3PTH=F:\GFA_3\MAKE\ . p.. pGFASHELLTXT pGFASHELLCNF pJGFASHELLPRG pQUELLEN p ********************************************************************** ** ** ** ***** ***** ***** ***** * * ***** * * ** ** * * * * * * * * * * ** ** * ** ***** ***** ***** ***** ***** ***** * * ** ** * * * * * * * * * * * ** ** ***** * * * ***** * * ***** ***** ***** ** ** ** ********************************************************************** Kleine Information zur GfA-Shell Version 2.1: Im folgenden werden nur Neuerungen gegenber dem original MENUX erlutert. Men Options Save Settings : Alle Voreinstellungen werden in der Datei 'GFASHELL.CNF' gespeichert. Load Settings : Die Voreinstellungen werden geladen. (Dies geschieht auch beim Start der Shell.) Men Settings O und PRG=GFA : Objekt- und Programmname werden von der GFA-Datei bernommen. Link TEST.O : Kann nur angewhlt werden, wenn O und PRG=GFA selektiert ist. Bewirkt, da das Objektfile TEST.O zustzlich zu XXXXXXXX.O gelinkt wird. Don't Check exist: Fr alle die, die mit Diskettenlaufwerken (kurbel... kurbel (Insider-Joke)) arbeiten. Bewirkt, da bei Eingabe von Pfadnamen nicht geprft wird, ob diese auch existieren. Es folgen fnf Menpunkte, die zur Eingabe einiger Pfade dienen. Mit Ausnahme von 'In-Out Path' mssen Programme angegeben werden. 'In-Out Path' verlangt nur einen Pfad (z.B. D:\SOURCES\), in welchem GFA- und Objekt-Dateien gesucht werden. Men Filer Move on same Drive: verschiebt eine Datei innerhalb eines logischen Laufwerks. Move to other Drive:verschiebt eine Datei auch auf ein anderes Laufwerk. (dauert lnger) Delete DIR : Lscht alle Dateien mit einer voreingestellten Extension innerhalb eines Verzeichnisses. (nur Pfad und Extension angeben, keine Datei) Men Utility INLINE : Diese Routine entnahmen wir den GFA-CLUB Nachrichten (Nr. 4 /89, Seite 23). Sie wandelt PRG- und TOS- in INL-Dateien um. (Das Assemblerfile mu mit RTS abgeschlossen sein) Es wird auch ein LST-File erzeugt, welches einen Standartaufruf der Assemblerroutine erlaubt. Im Gegensatz zum Listing aus den Club-Nachrichten wird der Speicher fr die Routine mit MALLOC reserviert und kann deshalb mit MFREE wieder freigegeben werden. Es folgen zwei Menpunkte, die es erlauben, sieben Programme fest- zulegen, die aus der Shell heraus gestartet werden knnen. Diese werden am Ende dieses Mens angezeigt. Edit Extras : Falls weniger als sieben Programme installiert sind, hat man die Mglichkeit, entweder ein weiteres Programm hinzuzufgen, oder ein installiertes zu ndern (Name / Pfad). Delete Extra : Es kann ein Programm aus der Liste der installierten entfernt werden. Diese Programme knnen entweder durch das Men oder die Tasten- kombinationen CONTROL + 1..7 (Haupttastenfeld) gestartet werden. ******************************************************************* ACHTUNG: Bevor die Arbeit mit der GFA-Shell beginnen kann, ******** sollten die Shell-Settings eingestellt und abgespeichert werden. ******************************************************************* Fr Verbesserungsvorschlge und Fehlermeldungen sind wir stets dankbar (Disketten ohne an sich selbst adressierten und frankierten Umschlag werden nicht rckerstattet). Oliver Musch Markus Lindermeier Sonnenbichl 5 Zum Hohlen Berg 25 8901 Wehringen 8901 Wehringen (08234) 1873 (08234) 3949 0 0 1 0 0 0 1 2 1 1 0 0 D:\GFABASIC\G3SYSTEM\EDITOR\GFABASIC.PRG D:\GFABASIC\G3SYSTEM\COMPILER\GFA_BCOM.PRG D:\GFABASIC\G3SYSTEM\LINKER\GLINKER.PRG D:\GFABASIC\utility\RCS\RCS2.PRG D:\GFABASIC\SOURCES\ G3OBJ=??? G3PRG=??? G3LIB=D:\GFABASIC\G3SYSTEM\LINKER\GFA3PLIB G3WAIT=OFF G3MOVE=OFF ??? 6 Sprite Editor D:\GFABASIC\UTILITY\SPRITE\SPR_EDIT.PRG BCS D:\GFABASIC\UTILITY\BCS\BCS.PRG Assembler D:\OM_ASSEM\OM-ASSEM.PRG Public Painter E:\GRAFIK\PUBLIC\PPM.PRG EdiMax E:\EDITOR\EDIMAX\EDIMAX.PRG BITBLK-Konverter D:\GFABASIC\UTILITY\BITBLK\BITBLK.PRG `Na&AONZ, <'N"N"a^LaNN%bNDApau pJ-cgprr0ar0-rr-arx(<x&<Z <trE/as^EasEas <ar`` aPA퀴azAta{@?<NNTUg.E1p6a|V/Egpa|Hr"_tan$m4a]z?<NATrAЁa|p:ahn/pN"_agFp\ahZCXaqPE +@N-,N 4`zA큎EpaegEpaw/NNE+pawC^ab/HmN1p.axC큎a{R"pA큎ay|pOad/0-J@WHHgv0-J@oLp\awC큎a{^R/0-H/p\awC큎a{DDS"A큎ay$ExpacCjal:0-J@oND`&EpA큎al `E.par`ND`p/-NOJBgNDN-,N `LpAjaxEpac/pAjaxaKFgELpaq`Eep aqpAjax\aa^a\$m$a]n?<NATrAЁav/pAjax.aw"_ab gpAjaxaw|arA^a\pAjaw/au/au"_$rN$m|$AXawBaqAXa[N$m|/$m/N`PEopau/NNEpaurC^a`//-N1p.au"mayR mawfExpab/p.au"may^R maw@Epabj m0(J@WHHgD maJ\/pJ-cgpRfp. m0(J@^HHgEp ap ma_a[^$m$a[?<NATrAЁau8/ mav"_a`g mavapp\au"maxr mavaZ/-atR/atL"_$rN$m|$AXauap`AXaZ`N$m|/$m/N`d maIr/pJ-cgpRWHHF/ m0(J@^HHg.Epao& ma^Epao` Ep)ao` h `N:`N<`N@`N6t`N7`Etpak/NNEpakC^aV//-lN1p mlamauExpaX/p mlamtauvEpaX ml0(J@^HHg"Epaf mlaV~Ep%af` ml0(J@o /-lNK`NB`NH`0-o HxNG`0-S@o HxNG`0-U@o HxNG`0-W@o HxNG`0-Y@o HxNG`j0-[@o HxNG`T0-]@o HxNG`>tgtg g ;gtg  g <gztgJ g@ =g6tg8 .g. >g$tgF & g< ?g2 @g2tﰂgN gD Ag:tg. -g$t찂g g Dgt鰂g gt谂g gt簂g !gt氂g gt専g ~gv/gt䰂g gv*gt㰂g gtᰂg 2g Bgt߰g g tݰg tܰgtٰgtذgbtְgtհgt԰g agt bgt CgjtӰgltҰgtѰgtаg tΰgLtͰgt̰gt˰g2tʰgtưg .gtŰg gtİg gtðg gt°g %gtg gtg /gtg % gtg| grtgt gj gj gt g g g g g$mx nD2-H^HH/$mx nD/p4mЊ^HHg$mx nD0m/NGApa_pJ-cgprr0a\0-rr-a\z(<x&<Z <trE/a]`EXa]Eha]NDN%>`iaiVpravaapaX"paX,paX*6<0<traV~N-,ND`haiaNAvaQLA|aQDA큈aQ`_|a_A|a[A퀀a[A(a[E@paX"amr Ё0|<alrЁ0|<pa`aGaCF$m$/-(N#@N$.HmpXa]"H maG"HA큸aG"H m($rak$m|$N$$m|/$m/a`^a_A|aZA퀀aZA(aZAaZAaZE@paWValJr Ё0|<al2rЁ0|<pa_aFaBz$m$/-(N#@N$.HmpXa\N"H maF"HA큸aF"H m($rak$m|$N$$m| faVE,paV0-HrgE:p maP` ma[jpJ-`gpJfE=p maPb` ma[B/-(N#@HmpXa["H maF0"H maF&"HA큎aF"H m($rajd$m|$` EOp4aV$m|/$m/aN%>`]2a]xA|aYpA퀀aYhEp aUaA2$m$aA?<NATrAЁa[ /A큠a["_aFbg A큠a[aVzp\aZC큠a^trA큠a\Za@fHmaZ&/aZ "_$rai$m|$AXa[aV4AXa@4av$m|/$m/a`\pa\A(aXpaZvC큂aE"HAjaDpaF"HA큈aDpaE"HAvaDpaE"HA|aDpaE"m(aN`\ a\PAaWA aXp ma["m aNp maZaDn m r @ <!@`Za[(AtaW ao @p!@ <Va>$mt$ <Va>rЁaL`"$mt a>ưAtaVEp aWa- gLEp aWra;@HxNQJBgpa\a] ;@HxNQJBgpa\~a];@HxNQJBgfpa\`a\;@HxNQJBgHpa\Ba\;@HxNQJBg*pa\$a\0VHHJV`HxNQJBgpa[a\0VHHJVcHxNQJBgpa[Apa\HxNQJBgApaX,CpaK pa[Ada\HxNQJBgAdaWCdaJpa[xAa\HxNQJBg`AaWCaJpa[JA큚a\lHxNQJBg2A큚aWC큚aJpa[A큠a\>HxNQJBgA큠aWtC큠aJhpaZA^a\HxNQJBgA^aWFC^aJ:paZA큂a[HxNQJBgA큂aWC큂aJ paZAja[HxNQJBgzAjaVCjaIpaZdA큈a[HxNQJBgLA큈aVC큈aIpaZ6Ava[XHxNQJBgAvaVCvaIpaZA|a[*HxNQJBgA|aV`C|aITpaYA큎aZHxNQJBgA큎aV2C큎aI&paYaZ0;@0-gHxNQJBgp$mt$0-HaG`paYp$mt("mvaiaZHxNQJBgpaYH$mt("m|aiaZ`$mt 0mЈ/0< aS/$mt("mvai"_a>f/$mt("mvair0(rDaW"_a>B0< ^aAH/$mt a*aV"_a>$("mpah$mtR$mt o6]EpaNAvEp a@/AvEp a?gEp AvaGA|Ep a?/A|Ep a?g>Ep A|aG`,Ep#aRH/EgpaR:r"_taD$mJVpa5`TaTAtaPEp aRra7paN0-aMpaN0-aMpaM0-aMxpaM0-aMjpaM0-aM\paM0-aMNpaM0-aM@paM0-aM2paM0-aM$paM0-aMpaMpJ-`gpaMpaMppJ-cgpaLpaM\ApaSa<`paMJAdaS~apaLb$mt("mvafaRa;\paLF$mt("m|aftaRpa;@$mtR$mt o]pa3`RaRA퀈aNpaApaApaA6<|0<4<nra?$mBpaApaApaApaAaApFaPD/$m &<:<a* aBaS*"_a:4<xr$mҒaDZ$m o$m&0<4<n$m"a?paA(paA&paA$paA"aA*$m jr?ЁR`TEpaO4<r $mҒaC`EpaN4<r$mҒaC``E&paN4<r$mҒaC`@E8paN4<r$mҒaC` EJpaN4<r $mҒaCn`E8paNt4<r$mҒaCNEpaNX4<r$mҒaC2` p a?$m4Jg"$m0S@f m$"ma?` maJ` maJ maL"ma?aan`LaM2A$aIPA퀼aH m$rca/JprcaRpaEppGaEjpFaEdpAaE^p-aEXpBaERpAaELpSaEFpIaE@pCaE:p3aE4$m4prcaR$mRR$m0@Oo$m4prcaRpaDpaDpaD$mRR$m0@oprcaR^paDpaDpaD0<aDpca-:`LaLHpa; pa;*pa;(6<0<]tdrda9|6<0<[tfrfa96<0<Ztgrga9pa;A4a>Aa>Epa@6/NNEpa@"CXa+P//-0a m0ap/ m00(J@^HHgLEpa?/NNp\a@v"m0aDr m0aAEpa,//-4a m4aF/ m40(J@^HHg/-0/-4an/-0NA` m4a/ m40(J@^HHg m4aA/ m0aA"_a+BgEpa?,/p\a?"m4aCPR m4aA2"_a*BEpa+/Epa>r"_ta1b$mp$mUfp/-4NA/-0/-4a/-0NA`NEp#a9`@ m0aF/ m00(J@^HHg Epa9 m0a)Epa9`@aA0A8a=Aa/NNEpa> CXa)8//-8a m80(J@^HH/ m8aFg m8a8gT m8a?LCa3 p raME/pa8p\a>B"m8aAR m8a?"ma2 mr aJRp\a>"m8aAr m8a?"H ma(a?"ma2 mag~aּEpa=6/p\a="maAZR ma?<"_a(LE?pa)/ETpaa?0A@a;E@p aa>A@a: m@a^g m@a"` Epa74 m@a'EMpa7$`>Na>AHa:A퀜a:aR/?<NA\p mHa $m$pa-pa-2pa-`p$mZraJp$m&<:<aDa5 <. : a4p$mjR("mvaOa$p$m\r aIp$mjR("m|aOa$x$mT$m+crYa4ZETp1a4pa4h0a6pa1$m("m|aK(/$m("m|aK/p\a5^"_a8r _a6a$m("m|aJ/a4/a4"_$raD$m|$AXa6a0AXaa$m|/$m/a:`6a7$Aa2ALa2Aa2$m0-HЀa(`p$mZraDRp$m&<:<aa/ <. : a/4p$mjR("mvaJ(ap$m\r aDp$mjR("m|aIa$mT$m+crYa.Ep1a.pa.00<^TaDx"mpaB <r4<`.n` ma,Ep a'" m0(J@^HH/p.a,X"ma/R ma-Epag Epa& maEpa& ma+t`-a.6A퀘a)$m a%hg:Ep$a&Ep4a&$mt Sm$mt S@;@` Bmt`- <r4<`-a H 24&8:BgnpNu<ngfDcpNufAcpNu 24&8:BgmpNu<ngfDdpNufAdpNupa JkpNupNua+AHPB?HQ?<NNAP _NuDExa*`bDEa"`ZaR11!Nua11!Nu 24&8:DE`6 24&8:DB`&a&8:DE`DEx`a` 24&8:HnghDBHngXDE~<En g6@ABDFGcGcGb8(vHDl`G8BCHC` GHD8HD쬵k&Dуd QRB BbJjDBNu DENupN֓DjdDA@ cAр[SBoJjDBNurptNuH@g0J`Ѐ[rGoJjDBNu0ftNu@[rB oH@JjDBNu $HkBk Bj*DBNupNuDBBkBjDBDNuf gp`9 246jDCCe0 C/jC C@j C jr0H@{0>H@Nur{0Nu{0NutNu 246j(:<DCaf AfBfNu`a 00Nur$o, b4< J@k @[H@NuH@RBNu4<Ѐ[NuDg8k2 b4< J@k @[H@DBNuH@RBDBNu4<Ѐ[DBNu4H@Ѓdh`^HCH@:">H@`H2g&HCH@:<HC>H@Ѓd(`HCH@:H@r` gDBgkDE`HDBDEaBDBNugDBa8DBNutNua 11!Nux`xa`a` 24&8:HoHoEBJAgJDfr:g,|HC҅H@:ۆ<HC>H@Ѓd`vHCH@:H@`fgDBgkDE` DBDEaDBNugDBaDBNutNuHoHoEBz:g|HC҅H@:ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuJBj^tNuk(g.JBjDBAр[SBDBjNutNuAр[SBkNuJlNu0gH@rJBkB JkЀ[`DBЀ[`J.;gP:pr4<Nup`6*xa2`Ba411!Nux`4 24&8:`& 24&8:`a&8:` &8:@ABJEoHnfNup`5tNugDEDBHngDBEBkQ*HEJDg?<>0rHGGdHGGdSWDуdi?<>0rHGGdHGGdSWDуdi ?<>0rHGGdHGGdSWDуd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<,>CEdGH@0r`xJCgz?<0rÐdSWЃdi?<0rÐdSWЃdid?<0ÐdSWЃd&2 H@kփAр[SBkփejRAd RdQRBJjDBNutNu?<0riR?0i?`?<`@$g\kdHfiHNufnpNupNu"lDaDNuJnDaDNuzxeҁ؄d`ef Nup`3"_KMIR&O:HQ <-H*,`N,d d3 d# d# # d# # # # d ALH dAL H LH d AL`H L|0H>L|H>d~# # # # A`@ALH L|H>L|H>L|PH>L| H>L|H>L|H>L|H>L|`H>L|0H>L|H>QL|Nu$H$&"BA -KaXA"f B &nNuH>dd2d"d""d""""d LHC dLHLH C@d LHL|H| L|H|PCd~""""C`:LHL|H| L|H|PL|H|L|H|L|H|L|H|L|H|@L|H|pL|H|L|H|CQL|Nu`8a8A-Hhp apMa=@F?<NNTT@A0r p0Q`pdr ta0.F=@=@ACp,2QAp 2Qaa2`p`lpeahp`(p?a a\aZaHz?< NA\?<LNAfCR2A0A82r22a"<``0<NBLNurt=@:=A@=B2::(   F..26"8@"PQ1!P1P!0PP`0  q#p"A ӘQNu|^|  R^,T:Hz(` N`Hz ?<&NN\Nu9Er$Wgr STD:gr COM:g r LPT:f2FA$_0=@D~CA0< Bha`B2"pNu$_AF Ge><QBAFpNuahgzp=` a\gzpa*AHPBHQ?NA\ _Jk*dNu/ Ia$$IAHPB BaAHPBHQHRBg?<VNAO _ _Jk*NuHz `Hz"` <Hz&?<&NN\Nup CNup C0Nu C NuJBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNu <r4<NuQfHR$n2Jjg$_NuH LNuPfJ.fg0HR$n2Jjf$_NuHC/*%I $n2%_LNu B?b4<rpAv JBlDBv-|JBg Bb Bk&H>aTaRFBd&8*L?a<aSF Be BgQRB`RAdR e <rRF&0xaCձfEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`HQ2.d Aeg>r C 5e&!R 0c 9c0`<R"_`VC0 Ef"_Nuaa/ CFr  g 00VJAgB @ nN @mHJ@j0.4DBUBk0QSAg Q.`S@k 0`0BAF "_Nu.WAkQA 0g`prt|P;Q:  g +g -f .g40  b 0e 9b da6`RF` .f 0e 9b daSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`ZJjDDDS4<.aJFkSFk4arQa`&HaFFaZQ&8*L/aJ,H܆jDBJ.:gtBn:Nu @$@JfS a`QNu$Aa`QBNu?avHQA(B?<NNAP DJNu?<ONATNu?</NATNu/?<NA\NuHzaB`Hza8H `BHPHQ0(ika* $I _aIUd4Id4Id$Id `$$$$Q _Jf,aId4Id4Id$Id `$$$$Q @NuSaIdIdId`Q @Nup `$/ a|$I> _arG` VNuag`af`ae `ac` acpNuadpNu/ a8$I> _a.4Ae4v` VfANuHP0(R@kBa $I _aIUd4Id4Id$Id `$$$$Q @JfNuNup `$aSAfNuag`af`ae `ac` acpNuadpNuaSAkfJANuH HPhkJa| $I _adIUd4Id4Id$Id `$$$$Q @JgSL`QNup `#xaAf` VNuag`af`ae `ac` acpNuadpNua4@m4v` Vf@Nu/HP0(X@kHa $I _aIUd4Id4Id$Id `$$$$Q @Jf$Nu $Nup `"anYAfNuag`af`ae `ac` acpNuadpNua:SAkEF$p VfWANu?HP0(T@kHa $I _aIUd4Id4Id$Id `$$$$Q @Jf4Nu0XNup `"aUAfQNuag`af`ae `ac` acpNuadpNuaSAkXf SAkXfJANuth`tpa ".Nutj`t@H|`t)`t` tr`t2`t@-A=B|`HAHBHCHDHEHFHG-HfAD-HH@-@H|p`HP"X2AF-H AerQBp|at`rHpx`6H$X4 Y0CF @depdQBC B2et2QBpZAF-HA-Ha A"HJf  _aFA`QAF"HJfS  _a$AF`QLJ@Nuz`z `z8.^n\Dn\@Hp tr=ED`bn\n^n\n^A0000000000prt`0n\n^648HH`prt` n\n^n\n^8HH`prt`"_A `4RB`"_A42L\A` L0GF11Q-p`prHQ`Bp'rta n2rt6(SC0(S@apaB\papava0pa _a4$FAFp_@[000][vx`* [g" ]g |g QSx` xQSrQ][vx`* [g" ]g |g QSx` xQStQ]BAF0-H,=@p4aB2HNu 24DBaDB11!Nu 24DBa DBNu 24x6o<Ce(FC BdЄeNu B/dHDDdRdQRBNu&<:<`hg BbUC BcjNu BcHDDdSkg Aр[RBNu0ftNuB H@"jNuE"ea ʵ"ep`&6NuE "e a "d&&6NuE"e a "d66NuE"e a n"d666NuE"e a N"d6NuE"e a 0"df&66&6 ` 24` ka~A&8:BgmpNu<ngfDbpNufAbpNuvn\n^~Ha f0 @xepw2AtE4*jDjHB t`0QTAtp =| D`pa `QNuHg"cc/ 0)a _$PS@kH2QNu2(g$PRAA4DBH%$Y2Pg 1AHRAA%NuBhNu@tIB=BAAT@t n-H,g0A( f hgS@S@gRB`=B0`pS@gNupLADa$HTBnBL*Hd"aZHd"aRHd"aJHd"aBHdF n Dg"`.2.JWAARA0.L n.g hfRAS@f=AB"aNug//ANu@k AB00HNuX@g .NuAD Nuz`zA6C|IdXC |2:H<0`$6HpA2`A.p` A>`A*p4. g=BNuA*pBQBX".g paBNupraHP?<NNT~U@g~tb3t\A>pr0 0BBB R@ @fA>0000PB0Tp`00000\0X0Tp`T@00000P0BXpnT0raVA0p1| 1AQBX0$HTH0P P0Tp`0NuH(Fa$L(FNuSk [0NupNupa`pp>`HPaa _&X Pf/|~Kzag @ ep 2tCJ"2 S@HQCػR"_d BTAA3ApC>4$I2a222B"0@2A\xva@gF2#M 443BS@ -f HQCػR"_d@BAAb8RGRC`3RSG5G5C J1DcaRF Fe `RG GdNuXA>SF1F41R1h4x1EDg"<>p-A`fao aШNupNuaJFoHPJhja?<?B?<BNAO _*kBg?/(?<BNAO Jk NuNafoazJBkAf`a|??/?<BNA.k \Hx?<BNAO [HHNux`x*0ao< 2fJjr`Nu~dGdEH<Nup`$0@F@AJhg PLNu`LJg(HPBHh/??<@NAXLf ѨLNuJkp%`aJBja!| ??<>NAXOJkpNu0< aF`0< CF2p`Hp a0`p CFp`4aCF"p`&Hza `Hz"J`B.@=|DNua.@FpAR@C` @H` @HHyxFaa"H`HyxF`HyxF 24`@H` @HHyxFaa"Hav`HyxF`HyxF 24`B.@=|DNuB.@ab=GDgNup`a@S@k ??<NAXNuJg$_a: HN$_a: HN$_aBHN$_a؄BpHN$_aB0HN$_axBpHN$_alN$_ab؄N$_aXN$_aPN$_aF 0HN$_a:؄00HHN$_a,p0HN$_a 24N$_a:p 0HgpN"X I"_(*UGk*<(؆QNp`p`p` p`pJPg`x$_a!HN$_a؄1HN$_aHN$_a 00N.@<.DAp$I"t Q k"RGef~`SG * g *fSG`<.DjZ\FkBJn`g Fgd Fg^HS&I.aHQ`p???<NM\Qj&_NuHQ/?.D<jRGg>VGg:TGjp` HPa0CF$IpR@  f _a Hd2Hd2`"QNu`<.DHSGFaAEg f< &_Nua`ЌNu.dfa*B=n`r>.D<jRGg:VGg&TGjp` <.DaAFa&JkNup#`  z fa2a` z f a"aAFa  f#JkzNu0:g0.D<jRGg*VGgTGjp` <.Da(` z faa<` z f aa$AF "g pR@0 ,g  g  fHp`:pR@0  g  g "fR@0 ,g  g  fHpRU@"_  f#$H _ah`QNupR@0 ,g"  g  fa~ (fR~Nua ~ `a~NuaJkHQ ! gRf _NuXX~Nu0j\@??<NMXJk .dgp Nu`n<.DHSGFa "fAGg ."Fg( ,g2 gAEf< &_Nua g`Ra ,g g` ."Ff`$ a\ Nua`ta`Za`v]A=ADNua`Za`@a`\a|A((@؆*.&|؆kD`&a,k.."*B(.&؅kr-K/.?<INA\/?<HNA\JgB n""n&ۮ&ۮ"$I`&bۛp0R@@b&n CXb` .&/?<HNA\p=` 24JBkCkNuCktNu 24JBoSBNugRBNu2(gbc  P"H`Nu/0Haf2  _ PSAvjx E(Wf* ae zb Q @NuBnp`pBnp`p=| p|=Fn@=@b=n`raHj=Ah~`:a JfBH@ RfF.f Kg" Mg sg tg Pg Hf~`xSGjtRGFcn>`jAF gp gj g grffnnpenbfJ.fj6pRGFc$SG` J.fjpRGFcRF` Ff`> `?~ap a0p a*0Nu|``CpE`bf`FgRGJGgSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0NuagNu4.rf?Hya NM\Nu=|D`Lja0zEfpadppa`AFEg0PaEfaFRE`ܾEfp a@a8?nnnp a2RF`<aмnnoS@f nhfSnl=Ah=FnNup` papq4.rf?HyapNM\Nu=|DHalLNu|A0"P2(@e2<EF`QHP=|DJ@g$abAF$HpR@ 0 f _a`QNup?ap a~2<|0`C&pHQ/Hy@NA NuC pa:NuHQ/Hy?NA Nu&g4 FgagJAga2< R@AdSf0Nu0ap Ce`&g4 FgaJBjagPAe CbRa R@Sf0Nu FgRag JBja좰AeaJAg RP0 pNu` Fg6aXgJAga @eabRP Nup NHѨB?<?/?<BNAO JkLLNu&8aJBjaJAg Df*ڃkd0Nu DfրBH??/?<BNAO LJk!@NuHBHh Hx??<?NAO LJo ѨLNuk:fp`^k: g ѨNuBHPHQ/??<?NAO _JoѨfNuBHPHQS/??<@NAXLfѨNuJkp%`0O?// C4<a./J _ta$/J _a/Jaא?<KNAdOHNu$Ia JBc2QBB"HNuHz` Hz`Hz&$A?<&NN\NuNu4Nu$Nu(a֒؀.dfaքjNu?a2@`?a2@a ` a Nu4.`Af n2LR@RANu4.`g S@SAHNutbpbr??papYa0a0`pEgP `LJg&B.C`a8aD*9fap-I,=|p4arHz*9g ENp9`0 _a &nO:NMIR&K$<Nu[1][Error +111][Return]E g g>Jf`Ar Hjr-D@Hd0H@H 0H@0CNuAF"H [1][fSEfNuD@v`v??NMXJNuJ@k??<NM"UAf J@fH@Nuazj0fpNu\@`af`]@><CF Ipa<0HNuaJ`]@><CF Ipa Nu?|`?a(0R@f|0aHJFkHPaT _Nupo`@HSHP&I>g\SG??<NMXJk V _t&_Nu&_`aJANuag `af`apNuapNuC`C``C` C`CJhfRRRRRRRHP? @CFH~8:E#P&<2 `b$bYEf` RAf rЁЀ`$Ѐe "ЀeЁdpNJAkfgRer?DDЁaAa8$HX :CFE` YEjT"_$P"2trDDd0d d d` QjNu`aDa DNu na^ K"ng42 $`gk2&Hg Af deђ$`ebѐXf&nNu AgebѐA``-Kx$ n&$n""Hg8" &Ak cѐ S`g"" k#&Acё2+SAI3 Q&f-I"&nNu-Kx$&ր n&$n""HgR" k&Ac b S` S`g4" k#&AcbrkX`ޑ2+SAI3 Q&f-I"&nNuaP n2L6(n\n^HHHNua0 n20(n\HNua n20(n^HNua n20(HNua:ffNuarNua J[HHNu:nfa@ z^0NuJg6$:Pf,H?<"NNT&@p/&8ra :,ga &Lr`r??Q@6HyNM\0Nu#2Nu؄*؄؅CH`"؅X`$_  IaHR"H @`̘؄*؄؅AHNu؅X`$_ IaHR"H` n1d$HJf-HS Nup"`HPa _a|`QNua JH aL0Nua` .*NuzQ`z ` zn`z4=A|af-IHQB0a _JNuz"-A=@|a>-I`#hHrYapYaLapY`| :/rYaͨpYa(Hyp?o?<?NAO JkpY`F/a `:`k0&p z0AFj`g0r.Ar @'d @d @dd  @ d"`&'B@H@B@H@dB@H@ H@G|paG3OBJ=???G3PRG=G3PRG=??? Minuten SekundenZeit : Return: Linking ... -s # Compiling line Link wurde wegen Fehler bei Compile nicht gestartet.Starting RCSGFASHELL.CNFSettings loaded |File 'GFASHELL.CNF' not found. | Editor& Linker*.*GfA-ShellVersion 2.1 / Public Domainwritten by M. Lindermeier und O. Musch in GFA-BASIC 3.0 Wie kam es zu dieser Neuschpfung??? Als wir den lang ersehnten Compiler zum GfA-Basic 3.0erhielten, war zwar die Freude gro, aber MENUX zuklein. Aus der tglichen Arbeit mit dem GFA-Compilerentstand die Shell.Wir hoffen, da die Shell nicht nur uns, sondern allenGFA-Basic Usern die Programmentwicklung erleichtert.Wir sind fr Verbesserungsvorschlge und Fehler-meldungen stets dankbar. (--> 'GfASHELL.TXT')Markus Lindermeier Oliver MuschZum Hohlen Berg 25 Sonnenbichl 58901 Wehringen 8901 Wehringen(08234) 3949 (08234) 1873Ordner anlegen existiert bereitsVerzeichnis lschen Lschen (J/N):Auswahl der Quelldatei[1][Datei kann nicht|geffnet werden.][ Abbruch ]Auswahl der Zieldatei existiert |bereits. Lschen|Abbruch[0][ |Datei ist zu gro (zuwenig Speicher)| ][Abbruch]Auswahl des Zielpfads| existiert bereits.Abbruch|LschenFiles sind nicht auf dem gleichen Laufwerk.Ziel- und Quellfile sind identisch.Datei umbenennenNeuer Dateiname :Datei lschen ist nicht vorhanden.[2][ Wollen Sie Extra-Programme| hinzufgen?][ Abbruch | Hinzufgen ][2][ Wollen Sie Extra-Programme| hinzufgen oder bestehende ndern?][ Abbruch | ndern | Hinzufgen ][2][ Wollen Sie bestehende| Extra-Programme ndern?][ Abbruch | ndern ] Welches Programm soll gendert werden (Nummer / qbbruch ):Name des Menue-Eintrags: Programmpfad: Welches Programm soll gelscht werden (Nummer / LST' Assembler-Routine %=MALLOC() !Speicher reservieren~C:%() !Standardaufruf ohne Parameter~MFREE(%) !Reservierten Speicher freigebenGFA-Datei auswhlenFile GFASHELL.CNF ist unvollstndig. Bitte Voreinstellungen berprfen und abspeichern.y F :RVD*R&(  z " &V>r|f* l.  <"`6`6`6d*: " F<.(((((((((N"," 42Xb0Z( "(R&H8FH8(D((...........6>4 >H6>,*$f2l6F.86,,2fdl6,,,B:>FF,,.Hbr,,B0.*t4 ** x4BFBj62 Z T\((@H"&Xb0$>p<*~$v. p.. pGFASHELLGFA ptGFASHELLINL p$GFASHELLLST p%şGFA-BASIC3bZTTTFzztHtuuvv v,v,v,vvvwwwwwz}NREDRAW_INFO_BOXTRTRUWE FORM_ALERTDAT_EXASK_EXREN_FILEDEL_FILEGFAINTFASLEFATALGFARCS MAIN_PATH EXECUTE_FILEZW_FILE SOURCE_PATHFILEGFAINTTPRGUSED_RAMTWAITTMOVETOBJTLIBCOBJ GFACOUSED_RAMGFALNKGFARCSCOMINUTENSEKUNDENENVDBSYM LINK_TESTOINPUTSPEICHERPATHPCOMPILER_OPTIONS ENVIROMENTG3OBJEXECUTE_EXECUTE_FILEOLD_FILEGFACOM GFACOM_RAMSRC_FILE DEST_FILESRC_ADRREN_FILECPY_FILEOLDFLPNEWFLPDEL_FILEARM_FILEPFADEXTRAKOLDPFADEX_PFADOLD_PFADNEW_FLPOLD_FLPOLF_FLP EXECUTEFILEERREEXTINLINELSTDUMMYLSTFILETESTNAMINL_FILELAENGERM_DIR MAIN_PFADTEXTIIRQEVENT RETURN_CODETIMEZEITPMKMX X_KOORDINATE MAUS_TASTEBUTSRC_LENSRC_ADRARC_LENSTATEAEZEILENRRETURNLAENGECOUNT LINK_TESTDUMMY LINK_TESTOEEX_AUSEXLENMEU MENUE_EINTRAGEXTRAEX_PFADOLDPFAD MENU_EINTRAGLEFTGFARCSEATRADUMMYALINK_GFA COMPILE_TESTOCOMPILER_OPTION_ICOMPILER_OPTION_SCOMPILER_OPTION_FCOMPILER_OPTION_PCOMPILER_OPTION_DCOMPILER_OPTION_MCOMPILER_OPTION_E SYMBOLTABELLEBRANTWORTIBUTTONANTWZEILZEILE NR_EXTRASNR_EXTRANR MAX_EINTRAGABDAT_EXASK_EXINRWEITERASH_LASK_LEXASK_DMAININITCNF_LOADF_CHECK MENU_EVENT KEY_EVENT REDRAW_SCREEN CHECK_EVENTS SELECT_FILE TERMINATIONRCS KEY_CLEARCOMPILELINK COMPILE_LINKCNF_SAVE READ_VARIABLE SHOW_SETTINGSCOMPILER_OPTIONSF_BOX SET_CURSOR ENVIROMENT INTERRUPT_ON INTERRUPT_OFFREDRAW_INFO_BOX F_TASTEN_BOXF_TASTEN_CHECKMAKE_EMPTY_GFAIFMK_DIRRM_DIRKOPIERECOPYMOVERENAME FILE_DELETEREMOVEDELETEUMBENNENKOPIEREN VERSCHIEBEERLMOVDEL_DIR SELECT_DIR DELETE_PATHREDRAW SHELL_INFO MOVE_SAME MOVE_OTHER SET_EXTRAS ED_EXTRASCASCASE START_EXTRA1 LOAD_ERROR ERROR_LOAD FILE_ENDEERRORFATAL DELETE_EXTRAKONVERT_INLINE DELETE_FILEM_BOXZEXMBOXINFO_BOXCHK_FILE FILE_ENDE< Last Edition: 19:10 / 17.08.1989 & Status: released lm10000 'F FFFFF, F80!݀F 8-!݀F *!!Z!x!LFFFF (Fn  FFF !F ظV FtZ!6 | GFASHELL luft nur in hoher | Auflsung. | !! OK !FTF$F,4BW  : \F !F`k0&p z0AFj`g0r.Ar @'d @d @dd  @ d"`&'B@H@B@H@dB@H@ H@G|paFFi4F 0F!  F!Info anzeigen /F0!!;FdGFA-File auswhlen 4FF@GFA-File auswhlen FF*.GFA F0 T>!!.  GFAB F f#T B Fgj!AFile existiert nicht. | Soll das File neu | erzeugt werden? | !! Make |Abbruch! F L ߀Fi  F 8`FF 4FF$F$F B F 4FF$F "߀FczL9 ?!!\ !B !\  PRG#B !\ ߀ ^TFT 8NF"L9 TEST.PRG ^T F$F 8F(L File hat nicht die Extension GFAFF 4FF$F2! !<F Interpreter aufrufen  B F4 - FF 8F- 4FF$FL Starting ""F 8>FF$ NBW  : F : F$FF8_!!! F : F!FF #! F*!!=F RCS aufrufen  F02!.!>F Compiler aufrufen e * FF FF F$F.!& !?F Linker aufrufen n  ???F @Objektdatei auswhlen F*.O F4 b? ! !. ! OB F (B F@4? ! !\ !B  !\ ߀ PRGF$F FB F Fl 8\FB 4 ???F$F 8Fk&LFile hat nicht die Extension OFF$F 8F FF$F.@FCompiler und Linker aufrufen   FFFF$F.V!!AFnProgramm testen , >! ???#T>! F LTestfile existiert nicht.F 8NFtL Executing ">! F 8>FFHF, BW  :>! F:>! F$FF8_!>! !! FF : F!FF #! F$F*Z!-FaProgramm ausfhren @Programm ausfhren Fm*.PRG FP >!!.  PRG>!!.  TOSB F #T  B FL Executing "FF 8>FFHF$ tBW  : F : FW$F?!!!\ F8_!!! F : F!FiFF #! F@#T  B F$LFile "" existiert nicht.FF$F 8RF0L)File hat nicht die Extension PRG oder TOSF$F.!!DF Shell verlassen F F*!FCompiler Option I sF*!FCompiler Option S sF*6!!FCompiler Option F sF*h!FCompiler Option P sF0!~!/FiCompiler Option D eF0!!*FiCompiler Option M e F* !FCompiler Option E i F2!2!BFiSpeicher einstellen T!/!' FLY! "Memory :"FdlF0%5 FF k( F 4FF 8FF 4 FF$F0 ! FSymboltabelle einstellen  F,VFEinstellungen abspeichern lFLSettings savedFFnFsF$FlG3WAIT einstellen e  G3WAIT=OFFF4 G3WAIT=ONFL G3WAIT=ONF 8FA4 G3WAIT=OFFFFL G3WAIT=OFFFF$F$FFG3MOVE einstellen e ^  G3MOVE=OFFF4 G3MOVE=ONFL G3MOVE=ONF 8FO4 G3MOVE=OFFFFL G3MOVE=OFFFF$F FFtobj einlesen l  F FFtprg einlesen l  FFF B F4 G3LIB=FF$F 4 FFLGFAINT="FFdl F 4  FF 4 FF B F #T> ! Ft"LFile " " existiert nichtF 4 FF$F 8FB 4 FF$F*aFiBildschirm neu aufbauen nF*Hb!CFsSettings anzeigen nF$XFPRG=GFA einstellen  ߀Fs@F 8F@F$F B߀FezL9 ?!!\ !B !\  PRG#B !\ ߀ ^TFT@߀F "L9 XXXXXXXX.PRG ^T F 8F"L9 TEST.PRG ^T F$F  ߀FA@F<F 4 FFL O NOT GFAFL Link TEST.OF 8PFk@F.<F LO=GFAFLDo not linkt TEST.OF$F(FObjekt Files eingeben LOther object files: "Fdl F 4 FF(<FLink TEST.O einstellen  FF<FLDo not linkt TEST.OF 84Fn<FL Link TEST.OF$FF rFF<FL Check existF 8F<FLDon't check existF$F,FInterpreterpfad einstellen 4FFLGFAINT="FFdlF 4 FF 4 FF jB F d#T F"LFile "" existiert nichtF 4FF$F 8~FB 4FF$F*dFCompilerpfad einstellen e 4FFLGFACOM="FFdlF 4 FF 4 FF HB F BT F"LFile "" existiert nichtF 4FF$F 8\FB 4FF$F(@FLinkerpfad einstellen n 4FFLGFALNK="FFdlF 4 FF 4 FF $B F T F"LFile "" existiert nichtF 4FF$F 88FB 4FF$FF 4FF$LGFARCS="FRCSpfad einstellen 4 FFdlF4 FF B F T F"LFile "" existiert nichtF 4FF$F 8FB 4FF$FdFLIn-Out="FFdlF 4 FF 4 FF!.FF!F"F!F0F!F1F!%F1%F!F1F6!/F1+F !% F@INLINE-Konverter Fe*.PRG> F8 =>! PRG=>! TOSB> F 8LFile ">"% hat nicht die Extension PRG oder TOSFF 8F= B> F >> F>$F$F>!F3F\! F=FFF FF6# F$FF  ߀Fi6# F$FF ߀Fi6# F$F<F 4Fi6# F$FvF n߀Fi6# F$FF ߠFi6# F$FF Fi6# F$F4F$ "( ( F6#(  F$F, F80!݀F 8-!݀F*!!Z!x!LFFFF FFF\LY! Ft!!F!!!FFFFFFFLFFL FFL FFL FFLFFLGFAINT="FFLGFACOM="FFLGFALNK="FFLRCS ="FFLIn-Out="FF FL O NOT GFAF 8F L O = GFAF$F FAL PRG NOT GFAF 8,F L PRG = GFAF$F ZFALDo not linkt TEST.OF 8vFnL Link TEST.OF$F FFLDon't check existF 8FL Check existF$F F"0L(Es sind keine Extra-Programme angemeldetFF 8>Fs2LEs sind "7" Extra-Programme angemeldetFF$FFF 4FF  ߀F.4 *&FF$F ߀F.4 %3FF$F ߀F.4 S&FF$F ߀F.4 SFF$F B F4 mFF$F .F4 G3OBJ=???F 8F3 ߀F.\4 G3OBJ=?!!!\ ?!!\ ݀!B !\  OF 8F3.4 G3OBJ=?!!!\ TEST.OFO$F$F F4G3PRG=TEST.PRGFF 8F3 DF4 G3PRG=???F 8F3 ߀F =! .GFAF,4G3PRG=;!B ߀ .PRGFG$F$F$F$F RF 6B FT4 ?!!!\ ?!!\ ݀!B !\  OF 8LF 4 ???F$F$F ߀B Fn"L9 XXXXXXXX.PRG ^T F$FFFFFF tF! !}!UF|!!~!VFp!!! FiT!0!FT!@!Com:FFT!P!Lnk:F  ߀FFT+!P!-sF$FTC!P! FF ! F!!!F!F8#> FF F$ @& F4 MinutenFF 8ZFM4 MinuteF$F4 #&  F4 SekundenF 8FS4 SekundeFF$FNLZeit : "7& "" und "7#&  "FF 8bFt.LZeit : "7#> " SekundenFFLReturn: "7FF$FFFtFt 8FLY! "FF$F 9߀FLFF$FL!wFL!FL!F \FF F!!!FFLLinking ... FF 8>FF z ߀F 4-s F 8Fs 4FF$F F 4 # F 8F# 4FF$F  F8_!!X ! F #! F FF F!!FLCompiling line "FFC߀9F*C߀8FFL "FF 8>FF  FF8_!!X! FFF #! FFF!!!!FLCompiling line "FFC߀9F*C߀8FFL "FF 8>FF  FF8_!!X! FFF  xFLFFLLinking ... FF  ߀F 4-s F 8 Fs 4FF$F  4F 4 # F 8 HF# 4FF$F  F8_!!X ! F 8 F!<L4Link wurde wegen Fehler bei Compile nicht gestartet.FF$F #! F FF F !FL Starting RCSFF 8>FFHF$  DBW  : F : F$F?!!!\ F8_!!! F : F!FF #! FF 2 FB4 B B  B B  B FF 2 FF4>! FL;! "FFdlF 4 FF 4 FF  B F4;! F$FFFF"  ^rXFnix wenn irq% leer ,`AV GAV HF  A F !F8AV F$F  F߄CF߀CF$FFFF߀CF,`AV GAV HF  A F!F$F  FFF F"Flsche GEM Tastaturpuffer x  {!!!!!!!!!!!!!!!!d FTFF !FF ZT GFASHELL.CNF F$I!M! GFASHELL.CNFF# FM!F# FM!F# FM!F# FM!F# FM! F# FM! F# FM!F# FM! F# FM!F# FM!F# FM!F# FM!F# FM!F# F 4 FF M!F# F 4 FFM!F# F 4 FFM!F# F 4 FFM!F# F 4 FFM!F# F 4 FF M! F# F 4 FFM!F# F 4 FFM! F# F 4 FFM!F# F 4 FFM! F# F 4 FFM! F# F 4 FFM!FF# FXGFM! Fr# FM! Fr8L9  ݀B  ^ F BFLSettings loadedF(  G3WAIT=OFF G3WAIT=ONFu4 G3WAIT=OFFFF$F( T  G3MOVE=OFF  G3MOVE=ONFu4 G3MOVE=OFFFF$F 8FF!# |File 'GFASHELL.CNF' not found. | !! OK !F$F  F 0MFFFF$O!M! GFASHELL.CNFFPM!7FFPM!7FFPM!7FFPM!7FFPM!7 FFPM!7 FFPM!7FFPM!7 FFPM!7FFPM!7FFPM!7FFPM!7FFPM! F PM! FPM! FPM! FPM! FPM! F PM! FPM! FPM! FPM! FPM! FPM! FPM!7FFXGFPM! FFPM! FF F 0MFFF Ft!!FC!n!|!FN` GߠH@Fp!!!F'4T !x!F ߀߀ F  Fl !n! !FF$Fp!!!F 0 ߀߀F@F"T !!AuswahlFpF T !!EditorFFT ߠ!!RCSFFF"T !!CompilerFF T !!LinkerFTF"T !!CompilerF"T !!& LinkerFFT ߐ!!TestFF T !!MemoryF FT ߐ!!HelpF FT ߐ!!QuitF4F P Fp!!! FFFF ! F8 F8 F <߀F8 F 8:FF` GߠH@F F  F $F  ߀F0 ߀F2FAuswahl # FXFEditor # F|FRCS o# FFCompiler # FFLinker # F FCompile & Link #@ FFTest # FBFMemory # Ff FHelp #b F FQuit # F4F$FF!2 FFF 4FF Ю!! F ߀F < B F4;!B  F F! H!\ F4;!!\ FF$F |< .F 4;!B  F$F F 4F$F 8FF 4FF$F 8F 4FF$F 4 FFF!FFF,!2 FF4*.*FF 4FF ~Ю!! F d߀F 4FF 8xFF 4FF$F 8F 4FF$F 4 FFFFF  FF $O!Mc!FTMc!!!G!F!A!-!B!A!S!I!C!3F dGOFMc!FO FFdGF$Mc!!!!F xF*Mc!!!!!F 0McFF/Ft!!Fd!d!!]Fi|f!f!![Fi|g!g!!ZFi XFp!!!FS$X}!!! GfA-ShellFsp!!!FS$X!!! GfA-ShellFsp!!!Ft XF<X!!"!!Version 2.1 / Public DomainF-p!!! F@X}!!!&written by M. Lindermeier und O. MuschF>X}!!!$ in GFA-BASIC 3.0 Fp!!!FHX}!!!. Wie kam es zu dieser Neuschpfung??? Fp!!!FPX}!!!5Als wir den lang ersehnten Compiler zum GfA-Basic 3.0FiLX}!!!2erhielten, war zwar die Freude gro, aber MENUX zuFNX}!!!4klein. Aus der tglichen Arbeit mit dem GFA-CompilerF.X}!!!entstand die Shell.FcPX}!!!6Wir hoffen, da die Shell nicht nur uns, sondern allenFNX}!!!4GFA-Basic Usern die Programmentwicklung erleichtert.FJX}!!!0Wir sind fr Verbesserungsvorschlge und Fehler-FHX}!"!!-meldungen stets dankbar. (--> 'GfASHELL.TXT')FFFX}!6!!+Markus Lindermeier Oliver MuschFhFX}!@!!+Zum Hohlen Berg 25 Sonnenbichl 5FFX}!J!!+8901 Wehringen 8901 WehringenFhFX}!T!!+(08234) 3949 (08234) 1873FhF $<SFFFF! *!F < FF@Ordner anlegen FeЮ!*! FF!FF& &R ߀B* ߀F 8! F & F$ &tߕXFF" &*aߞXB F<F<LOrdner "?!!!\ *" existiert bereitsF$F$F 8FF %jF &LF,?!!!\ *F$F$FF+F !-F@Verzeichnis lschen F,*.* FFFF ':B F(L Directory "" Lschen (J/N):"FF 4-S F &-J-NF '4-JF- - F_$F$FFF!!"!!F"@Auswahl der Quelldatei FF*.*! F )"B! F 'T! FBП!1[1][Datei kann nicht|geffnet werden.][ Abbruch ] F 8)F @Auswahl der Zieldatei F*.*" F )B" F (T" F`!File >"!"!\ ߀  existiert |bereits. !!Lschen|Abbruch!F (߀F #" F !" F$F@)߀F !" F$F$F$F$FF !!" F ! F$i!Mc!!F8 Oc F 0McF 8 и F ) FFHП!6[0][ |Datei ist zu gro (zuwenig Speicher)| ][Abbruch] Fb 8*F T!! FP"! ! F й F$FF0F$!%! Fe"@Auswahl der Quelldatei FF*.*$ F$ *##T$ B$  B$ FF *#T$ B$ F$LFile "$" existiert nicht.FF$F 8,Fe @Auswahl des Zielpfads F&?$!!$!\ *.*% F ,$T% B% F^!File >%!%!\ ߀ | existiert bereits.!!Abbruch|Lschen! F , ߀F #% Fc ,#:$ :% F +B% F2L+Files sind nicht auf dem gleichen Laufwerk.F$F 8,F: $l%F$F$F 8,F ,#:$ :% F ,B% F2L+Files sind nicht auf dem gleichen Laufwerk.F$F 8,F: $l%F$F$F$FF1F!!"! Fe"@Auswahl der Quelldatei FF*.*! F .T! B! F @Auswahl des Zielpfads F&?!!!!!\ *.*" F -#T" B" F  !" F #! F 8.F .T" B" F .d" ! F^!File >"!"!\ ߀ | existiert bereits.!!Abbruch|Lschen! F .^ ߀F #" F !" F #! F$F 8.F*L#Ziel- und Quellfile sind identisch.F$F$F$F 8.FT .#T! B! FF$LFile "!" existiert nicht.FF$F$FF"F$!!!F : F!F@Datei umbenennen Fe*.*$ F 0B$ T$ F 0T$ F 4&:$ FF(LY! "Neuer Dateiname :"FF 4>$!$!\  FdlF 4?$!!$!\  F 0T FF`!File >!!\ ߀  existiert |bereits. !!Lschen|Abbruch!F 0߀F # F $lF$F 80F $lF$F$F 81F 1B$ #T$ F $LFile "$" existiert nicht.FF$F$F : F!FF%F (F@ Datei lschen F*.*( F 1B( F #( F!$FF #( F 1T( F4(F 81FT(LFile "(" ist nicht vorhanden.FF$FF -+ FF ߀ F8+! F  Ft!!F!Z!!@FLY! "+FF 3F$ 3tߕX F F 3F!Z!!@FLY! "+FF@F $F*4?+!!+!\ aݞXF*LY!ݐ "WaߞXF ` F$F 8FF 2FF  FF3F!!-!.F 4Z߀FoXDП!E[2][ Wollen Sie Extra-Programme| hinzufgen?][ Abbruch | Hinzufgen ] F 4T߀FoF$F@4FFxDП!e[2][ Wollen Sie Extra-Programme| hinzufgen oder bestehende ndern?][ Abbruch | ndern | Hinzufgen ] F 85NF\DП!H[2][ Wollen Sie bestehende| Extra-Programme ndern?][ Abbruch | ndern ] Fh$F 8^߀Fo"xG݀HF>LY!ߠ "7߀". : "߀ F*LY ! "݀ F 5FLFF\L1 Welches Programm soll gendert werden (Nummer / "B "pA"B " qbbruch ):"FF4-SFF 6h#C- C- ݀ -A-aF 8F-A-aF@C- FL7FFFF! F 4. F"LName des Menue-Eintrags: "FFdl F! FLProgrammpfad: "Fdl FL9 F  7#T FFL " existiert nicht.F L9.F 88@F"FF8L9  ݀B  ^ F $F 88XF-FF$F@9F@߀F! F"LName des Menue-Eintrags: "FFd! F!FLProgrammpfad: "F 4. Fd! FL9 F  9#T FFL " existiert nicht.F L9F L9.F 89F"FFBL݀9  ߀B  ^ FgF$F$FF 6 F !F 8>FF& :DBW  : F : F$F ? !! !\ FF8_! !! FF : F!FFF #! FF=F !-!Fr"xG݀HF>LY!ߠ "7߀". : "߀ F*LY ! "݀ F :FLFF\L1 Welches Programm soll gelscht werden (Nummer / "B "pA"B " qbbruch ):"FF4-SFF ;#C- C- ݀ -A-aF =-A-aF@C- FL7FF p߀GFL߀9 FFL߀9 FFLL݀9  ߀B  ^݀ F  F8!9!:!;!;!B  INLFP>!л8 !B8 F8!\ F4<=!B  F"4;;499= %=MALLOC(?) !Speicher reservieren:F"499INLINE =%,?:FFF499~C:=.%() !Standardaufruf ohne Parameter:FH499~MFREE(=,%) !Reservierten Speicher freigeben:FL9FFP;!л9 !B9 FF @B Ft!!F!!!5F|!!!3Fp!!! F4B;B !( F4T!*!#ߠBB ݀ BFF (#2 FF AfB F A`#T  FBDF$F$F@GFA-Datei auswhlen F*.GFA FFFF0 B>!!.  GFAB F BB F B#T  FBzL9 ?!!\ !B !\  PRG#B !\ ߀ ^TFTDF$F$F 8BF 4FF(L File hat nicht die Extension GFAFF$F0 C,B >!!. ݀ GFAF"LFile "" existiert nichtF$F 4FFDF,F (# FF DN F,L$File GFASHELL.CNF ist unvollstndig.FF<L4 Bitte Voreinstellungen berprfen und abspeichern.FF C߀F@߀F 8DF@FDF$F$FDF,F`k0&p z0AFj`g0r.Ar @'d @d @dd  @ d"`&'B@H@B@H@dB@H@ H@G|pa PROCEDURE main init cnf_load compiler_options MENU menue_eintrag$() MENU 48,ex_aus! AND 1 MENU 45,link_gfa& AND 1 ON MENU IBOX 1,4,346,632,396 GOSUB f_tasten_check ON MENU GOSUB menu_event ON MENU KEY GOSUB key_event DO ON MENU 500 LOOP RETURN > PROCEDURE init LOCAL dummy&,i% IF XBIOS(4)<>2 ALERT 0," | GFASHELL luft nur in hoher | Auflsung. | ",1," OK ",dummy& SYSTEM ENDIF main_path$=CHR$(GEMDOS(25)+65)+":"+DIR$(0)+"\" ' INLINE irq%,&HD6 DIM extra$(7),ex_pfad$(7) DIM menue_eintrag$(100) FOR i%=0 TO 100 READ menue_eintrag$(i%) EXIT IF menue_eintrag$(i%)="*" NEXT i% menue_eintrag$(i%)="" max_eintrag&=i%-1 DATA  DATA GfA-BASIC Shell DATA --------------------------,1,2,3,4,5,6, DATA System DATA Auswahl ^A DATA Interpreter ^I DATA RCS ^R DATA Compiler ^C DATA Linker ^L DATA ------------------ DATA XXXXXXXX.PRG ^T DATA Execute ^X DATA ------------------ DATA Quit ^Q DATA DATA Optionen DATA Interrupts I DATA Select S DATA Functions F DATA Procedures P DATA IntDiv / DATA IntMul * DATA Error E DATA ----------------- DATA Memory M DATA ----------------- DATA DebugSym D DATA ----------------- DATA Save Settings DATA Load Settings DATA DATA Settings DATA G3WAIT DATA G3MOVE DATA --------------------- DATA G3OBJ DATA G3PRG DATA G3LIB DATA O und PRG=GFA DATA Other Objects DATA Link TEST.O DATA Don't check exist DATA --------------------- DATA Interpreter Path DATA Compiler Path DATA Linker Path DATA RCS Path DATA In-Out Path DATA DATA Filer DATA --------- File ---------- DATA Copy File C DATA Rename File R DATA Move on same Drive O DATA Move to other Drive T DATA Delete File K DATA -------- Folder --------- DATA Make Folder A DATA ------ Directory -------- DATA Delete Directory V DATA DATA Utility DATA ----- Konverter ------ DATA INLINE Konverter ^K DATA -- Extra Programme --- DATA Edit Extra ^E DATA Delete Extra ^D DATA ---------------------- DATA * IF link_gfa&=0 menue_eintrag$(17)=" TEST.PRG ^T " ENDIF redraw_screen RETURN > PROCEDURE menu_event check_events(-MENU(0)) RETURN > PROCEDURE key_event ' PRINT HEX$(MENU(14)) check_events(MENU(14)) RETURN > PROCEDURE check_events(event%) LOCAL return_code%,time%,execute_file$,zw_file$,dummy&,antwort&,old_file$,inl_file$ redraw_screen MENU KILL SELECT event% CASE -1 !Info anzeigen shell_info CASE -11,&H1E01,&H3B00 !GFA-File auswhlen old_file$=file$ m_box("GFA-File auswhlen") select_file(source_path$+"*.GFA",file$) IF MID$(file$,RINSTR(file$,".")+1)="GFA" OR LEN(file$)=0 IF (NOT EXIST(file$)) AND LEN(file$)<>0 ALERT 0,"File existiert nicht. | Soll das File neu | erzeugt werden? | ",1," Make |Abbruch",antwort& IF antwort&=1 make_empty_gfa(file$) ELSE file$=old_file$ ENDIF ENDIF IF LEN(file$)=0 file$=old_file$ ENDIF IF link_gfa&=1 AND file$<>"" menue_eintrag$(17)=" "+MID$(file$,RINSTR(file$,"\")+1,LEN(file$)-RINSTR(file$,"\")-3)+"PRG"+SPACE$(12-(LEN(file$)-RINSTR(file$,"\"))+1)+"^T" ELSE menue_eintrag$(17)=" TEST.PRG ^T " ENDIF ELSE PRINT "File hat nicht die Extension GFA" file$=old_file$ ENDIF CASE -12,&H1709,&H3C00 !Interpreter aufrufen IF LEN(file$) zw_file$=" - "+file$ ELSE zw_file$="" ENDIF PRINT "Starting ";gfaint$;zw_file$ time%=TIMER IF CHR$(GEMDOS(25)+65)<>LEFT$(gfaint$) CHDRIVE LEFT$(gfaint$) ENDIF CHDIR source_path$ return_code%=EXEC(0,gfaint$,zw_file$,"") CHDRIVE LEFT$(main_path$) CHDIR main_path$ redraw_screen termination(return_code%,time%) CASE -13,&H1312,&H3D00 !RCS aufrufen rcs CASE -14,&H2E03,&H3E00 !Compiler aufrufen IF @chk_file(file$) compiler_options key_clear f_tasten_box compile ENDIF CASE -15,&H260C,&H3F00 !Linker aufrufen IF cobj$="???" m_box("Objektdatei auswhlen") select_file(source_path$+"*.O",cobj$) IF MID$(cobj$,RINSTR(cobj$,".")+1,1)="O" OR LEN(cobj$)=0 IF LEN(cobj$)>0 tprg$=MID$(cobj$,RINSTR(cobj$,"\")+1,LEN(cobj$)-RINSTR(cobj$,"\")-1)+"PRG" ENDIF IF LEN(cobj$)>0 link ELSE cobj$="???" ENDIF ELSE PRINT "File hat nicht die Extension O" ENDIF ELSE link ENDIF CASE &H4000 !Compiler und Linker aufrufen IF @chk_file(file$) compiler_options f_tasten_box compile_link ENDIF CASE -17,&H1414,&H4100 !Programm testen IF MID$(tprg$,7)="???" OR (NOT EXIST(MID$(tprg$,7))) PRINT "Testfile existiert nicht." ELSE PRINT "Executing ";MID$(tprg$,7) time%=TIMER SHOWM IF CHR$(GEMDOS(25)+65)<>LEFT$(MID$(tprg$,7)) CHDRIVE LEFT$(MID$(tprg$,7)) ENDIF CHDIR source_path$ return_code%=EXEC(0,MID$(tprg$,7),"","") CHDRIVE LEFT$(main_path$) CHDIR main_path$ redraw_screen termination(return_code%,time%) ENDIF CASE -18,&H2D18 !Programm ausfhren m_box("Programm ausfhren") select_file(source_path$+"*.PRG",execute_file$) IF MID$(execute_file$,RINSTR(execute_file$,".")+1)="PRG" OR MID$(execute_file$,RINSTR(execute_file$,".")+1)="TOS" OR LEN(execute_file$)=0 IF (EXIST(execute_file$) OR ex_aus!=TRUE) AND LEN(execute_file$)>0 PRINT "Executing ";execute_file$ time%=TIMER SHOWM IF CHR$(GEMDOS(25)+65)<>LEFT$(execute_file$) CHDRIVE LEFT$(execute_file$) ENDIF CHDIR MID$(execute_file$,1,RINSTR(execute_file$,"\")) return_code%=EXEC(0,execute_file$,"","") CHDRIVE LEFT$(main_path$) CHDIR main_path$ redraw_screen termination(return_code%,time%) ELSE IF (NOT EXIST(execute_file$) OR ex_aus!=TRUE) AND LEN(execute_file$)>0 PRINT "File ";execute_file$;" existiert nicht." ENDIF ELSE PRINT "File hat nicht die Extension PRG oder TOS" ENDIF CASE -20,&H1011,&H4400 !Shell verlassen RESERVE -10000 QUIT 0 CASE -23,&H1700 !Compiler Option I INC compiler_option_i& CASE -24,&H1F00 !Compiler Option S INC compiler_option_s& CASE -25,&H2100 !Compiler Option F INC compiler_option_f& CASE -26,&H1900 !Compiler Option P INC compiler_option_p& CASE -27,&H7E00,"/" !Compiler Option D INC compiler_option_d& CASE -28,&H7F00,"*" !Compiler Option M INC compiler_option_m& CASE -29,&H1200 !Compiler Option E INC compiler_option_e& CASE -31,&H3200,&H4200 !Speicher einstellen TEXT 3,47,SPACE$(39) PRINT AT(2,3);"Memory :"; FORM INPUT 8 AS used_ram$ n=INT(VAL(used_ram$)) IF n>1000000000 OR n<=0 used_ram$="" ELSE used_ram$=STR$(n) ENDIF CASE -33,&H2000 !Symboltabelle einstellen INC symboltabelle& CASE -35 !Einstellungen abspeichern cnf_save PRINT "Settings saved" CASE -36 cnf_load CASE -39 !G3WAIT einstellen IF twait$="G3WAIT=OFF" twait$="G3WAIT=ON" PRINT "G3WAIT=ON" ELSE twait$="G3WAIT=OFF" PRINT "G3WAIT=OFF" ENDIF CASE -40 !G3MOVE einstellen IF tmove$="G3MOVE=OFF" tmove$="G3MOVE=ON" PRINT "G3MOVE=ON" ELSE tmove$="G3MOVE=OFF" PRINT "G3MOVE=OFF" ENDIF CASE -42 !tobj einlesen read_variable(tobj$) CASE -43 !tprg einlesen read_variable(tprg$) CASE -44 IF LEN(tlib$)=0 tlib$="G3LIB=" ENDIF old_file$=tlib$ PRINT "GFAINT="; FORM INPUT 70 AS tlib$ tlib$=UPPER$(tlib$) tlib$=TRIM$(tlib$) IF LEN(tlib$)>0 IF (NOT EXIST(MID$(tlib$,7))) AND ex_aus!=FALSE PRINT "File ";tlib$;" existiert nicht" tlib$=old_file$ ENDIF ELSE tlib$=old_file$ ENDIF CASE &H6100 !Bildschirm neu aufbauen redraw_screen CASE &H6200,&H4300 !Settings anzeigen show_settings CASE -45 !PRG=GFA einstellen IF link_gfa&=1 link_gfa&=0 ELSE link_gfa&=1 ENDIF IF link_gfa&=1 AND file$<>"" menue_eintrag$(17)=" "+MID$(file$,RINSTR(file$,"\")+1,LEN(file$)-RINSTR(file$,"\")-3)+"PRG"+SPACE$(12-(LEN(file$)-RINSTR(file$,"\"))+1)+"^T" ELSE IF link_gfa&=1 AND file$="" menue_eintrag$(17)=" XXXXXXXX.PRG ^T " ELSE menue_eintrag$(17)=" TEST.PRG ^T " ENDIF IF compile_testo&=1 compile_testo&=0 link_test!=TRUE cobj$="" PRINT "O NOT GFA" PRINT "Link TEST.O" ELSE compile_testo&=1 link_test!=FALSE PRINT "O=GFA" PRINT "Do not linkt TEST.O" ENDIF CASE -46 !Objekt Files eingeben PRINT "Other object files: "; FORM INPUT 70 AS cobj$ cobj$=TRIM$(cobj$) CASE -47 !Link TEST.O einstellen IF link_test!=TRUE link_test!=FALSE PRINT "Do not linkt TEST.O" ELSE link_test!=TRUE PRINT "Link TEST.O" ENDIF CASE -48 IF ex_aus!=TRUE ex_aus!=FALSE PRINT "Check exist" ELSE ex_aus!=TRUE PRINT "Don't check exist" ENDIF CASE -50 !Interpreterpfad einstellen old_file$=gfaint$ PRINT "GFAINT="; FORM INPUT 70 AS gfaint$ gfaint$=UPPER$(gfaint$) gfaint$=TRIM$(gfaint$) IF LEN(gfaint$)>0 IF (NOT EXIST(gfaint$)) AND ex_aus!=FALSE PRINT "File ";gfaint$;" existiert nicht" gfaint$=old_file$ ENDIF ELSE gfaint$=old_file$ ENDIF CASE -51 !Compilerpfad einstellen old_file$=gfacom$ PRINT "GFACOM="; FORM INPUT 70 AS gfacom$ gfacom$=UPPER$(gfacom$) gfacom$=TRIM$(gfacom$) IF LEN(gfacom$)>0 IF NOT EXIST(gfacom$) AND ex_aus!=FALSE PRINT "File ";gfacom$;" existiert nicht" gfacom$=old_file$ ENDIF ELSE gfacom$=old_file$ ENDIF CASE -52 !Linkerpfad einstellen old_file$=gfalnk$ PRINT "GFALNK="; FORM INPUT 70 AS gfalnk$ gfalnk$=UPPER$(gfalnk$) gfalnk$=TRIM$(gfalnk$) IF LEN(gfalnk$)>0 IF NOT EXIST(gfalnk$) AND ex_aus!=FALSE PRINT "File ";gfalnk$;" existiert nicht" gfalnk$=old_file$ ENDIF ELSE gfalnk$=old_file$ ENDIF CASE -53 old_file$=gfarcs$ PRINT "GFARCS="; !RCSpfad einstellen gfarcs$=UPPER$(gfarcs$) FORM INPUT 70 AS gfarcs$ gfarcs$=UPPER$(TRIM$(gfarcs$)) IF LEN(gfarcs$)>0 IF NOT EXIST(gfarcs$) AND ex_aus!=FALSE PRINT "File ";gfarcs$;" existiert nicht" gfarcs$=old_file$ ENDIF ELSE gfarcs$=old_file$ ENDIF CASE -54 PRINT "In-Out="; FORM INPUT 70 AS source_path$ source_path$=UPPER$(source_path$) source_path$=TRIM$(source_path$) CASE -58,&H2E00 kopiere CASE -59,&H1300 rename CASE -60,&H1800 move_same CASE -61,&H1400 move_other CASE -62,&H2500 delete CASE -64,&H1E00 mk_dir CASE -66,&H2F00 del_dir CASE -70,&H250B m_box("INLINE-Konverter") select_file(source_path$+"*.PRG",inl_file$) IF UPPER$(RIGHT$(inl_file$,3))<>"PRG" AND UPPER$(RIGHT$(inl_file$,3))<>"TOS" AND LEN(inl_file$)>0 PRINT "File ";inl_file$;" hat nicht die Extension PRG oder TOS" ELSE IF LEN(inl_file$)>0 konvert_inline(inl_file$) ENDIF ENDIF CASE -72,&H1205 ed_extras CASE -73,&H2004 delete_extra CASE &H211 IF nr_extras&>0 start_extra(1) ENDIF CASE &H300 IF nr_extras&>1 start_extra(2) ENDIF CASE &H413 IF nr_extras&>2 start_extra(3) ENDIF CASE &H514 IF nr_extras&>3 start_extra(4) ENDIF CASE &H615 IF nr_extras&>4 start_extra(5) ENDIF CASE &H71E IF nr_extras&>5 start_extra(6) ENDIF CASE &H817 IF nr_extras&>6 start_extra(7) ENDIF ENDSELECT IF ABS(event%)>max_eintrag& AND ABS(event%) PROCEDURE redraw_screen PRINT AT(1,1) DEFFILL 1,2,4 PBOX -1,18,640,400 f_tasten_box compiler_options RETURN > PROCEDURE show_settings redraw_screen set_cursor PRINT twait$ PRINT tmove$ PRINT tlib$ PRINT tobj$ PRINT tprg$ PRINT "GFAINT=";gfaint$ PRINT "GFACOM=";gfacom$ PRINT "GFALNK=";gfalnk$ PRINT "RCS =";gfarcs$ PRINT "In-Out=";source_path$ IF compile_testo&=0 PRINT " O NOT GFA" ELSE PRINT " O = GFA" ENDIF IF link_gfa&=0 PRINT "PRG NOT GFA" ELSE PRINT "PRG = GFA" ENDIF IF link_test!=FALSE PRINT "Do not linkt TEST.O" ELSE PRINT "Link TEST.O" ENDIF IF ex_aus!=TRUE PRINT "Don't check exist" ELSE PRINT "Check exist" ENDIF IF nr_extras&=0 PRINT "Es sind keine Extra-Programme angemeldet" ELSE PRINT "Es sind ";nr_extras&;" Extra-Programme angemeldet" ENDIF RETURN > PROCEDURE compiler_options compiler_options$="" IF compiler_option_m& AND 1 compiler_options$=compiler_options$+" *&" ENDIF IF compiler_option_d& AND 1 compiler_options$=compiler_options$+" %3" ENDIF IF compiler_option_s& AND 1 compiler_options$=compiler_options$+" S&" ENDIF IF compiler_option_s& AND 2 compiler_options$=compiler_options$+" S<" ENDIF IF compiler_option_e& AND 1 compiler_options$=compiler_options$+" E$" ENDIF IF compiler_option_e& AND 2 compiler_options$=compiler_options$+" E-" ENDIF IF compiler_option_i& AND 1 compiler_options$=compiler_options$+" I+" ENDIF IF compiler_option_f& AND 1 compiler_options$=compiler_options$+" F<" ENDIF IF compiler_option_p& AND 1 compiler_options$=compiler_options$+" P>" ENDIF IF LEN(used_ram$) compiler_options$=compiler_options$+" m"+used_ram$ ENDIF IF file$="" tobj$="G3OBJ=???" ELSE IF compile_testo& AND 1 tobj$="G3OBJ="+MID$(file$,1,RINSTR(file$,"\"))+MID$(file$,RINSTR(file$,"\")+1,LEN(file$)-RINSTR(file$,"\")-3)+"O" ELSE tobj$="G3OBJ="+MID$(file$,1,RINSTR(file$,"\"))+"TEST.O" ENDIF ENDIF IF link_test!=TRUE tprg$="G3PRG="+source_path$+"TEST.PRG" ELSE IF file$="" tprg$="G3PRG=???" ELSE IF link_gfa& AND 1 IF RIGHT$(file$,4)=".GFA" tprg$="G3PRG="+LEFT$(file$,LEN(file$)-4)+".PRG" ENDIF ENDIF ENDIF ENDIF IF link_test!=FALSE IF LEN(file$)>0 cobj$=MID$(file$,1,RINSTR(file$,"\"))+MID$(file$,RINSTR(file$,"\")+1,LEN(file$)-RINSTR(file$,"\")-3)+"O" ELSE cobj$="???" ENDIF ENDIF IF link_gfa&=1 AND LEN(file$)=0 menue_eintrag$(17)=" XXXXXXXX.PRG ^T " ENDIF redraw_info_box set_cursor RETURN > PROCEDURE redraw_info_box DEFFILL 0 PBOX 2,32,637,85 BOX 1,31,638,86 DEFTEXT 1,0,0,13 TEXT 3,48,file$ TEXT 3,64,"Com:"+compiler_options$ TEXT 3,80,"Lnk:" IF symboltabelle& AND 1 TEXT 43,80,"-s" ENDIF TEXT 67,80,cobj$ RETURN > PROCEDURE termination(return_code%,time%) LOCAL zeit%,minuten$,sekunden$ set_cursor zeit%=(TIMER-time%)/200 IF zeit%>60 IF TRUNC(zeit%/60)>1 minuten$=" Minuten" ELSE minuten$=" Minute" ENDIF IF zeit%-(TRUNC(zeit%/60)*60)>1 sekunden$=" Sekunden" ELSE sekunden$=" Sekunde" ENDIF PRINT "Zeit : ";TRUNC(zeit%/60);minuten$;" und ";zeit%-(TRUNC(zeit%/60)*60);sekunden$ ELSE PRINT "Zeit : ";(TIMER-time%)/200;" Sekunden" PRINT "Return: ";return_code% ENDIF RETURN > PROCEDURE set_cursor LOCAL return_code% IF CRSLIN<7 PRINT AT(1,7); ENDIF IF CRSCOL>1 PRINT ENDIF SETCOLOR 0,&H777 SETCOLOR 3,0 SETCOLOR 15,0 DEFMOUSE 0 RETURN > PROCEDURE link LOCAL return_code%,time%,enviroment$,dbsym$ LOCAL link_testo$ PRINT "Linking ... " time%=TIMER IF symboltabelle& AND 1 dbsym$="-s " ELSE dbsym$="" ENDIF IF link_test!=FALSE link_testo$=" # " ELSE link_testo$="" ENDIF enviroment(enviroment$) return_code%=EXEC(0,gfalnk$,"X"+link_testo$+dbsym$+cobj$,enviroment$) termination(return_code%,time%) key_clear RETURN > PROCEDURE compile LOCAL return_code%,time%,enviroment$ PRINT "Compiling line "; BYTE{irq%+6}=32+CRSCOL BYTE{irq%+7}=32+CRSLIN-1 PRINT SPACE$(6); time%=TIMER enviroment(enviroment$) interrupt_on return_code%=EXEC(0,gfacom$,"X"+file$+compiler_options$,enviroment$) interrupt_off termination(return_code%,time%) RETURN > PROCEDURE compile_link LOCAL return_code%,time%,enviroment$,dbsym$,link_testo$ PRINT "Compiling line "; BYTE{irq%+6}=32+CRSCOL BYTE{irq%+7}=32+CRSLIN-1 PRINT SPACE$(6); time%=TIMER enviroment(enviroment$) interrupt_on return_code%=EXEC(0,gfacom$,"X"+file$+compiler_options$,enviroment$) interrupt_off IF return_code%=0 PRINT PRINT "Linking ... " IF symboltabelle& AND 1 dbsym$="-s " ELSE dbsym$="" ENDIF IF link_test!=FALSE link_testo$=" # " ELSE link_testo$="" ENDIF enviroment(enviroment$) return_code%=EXEC(0,gfalnk$,"X"+link_testo$+dbsym$+cobj$,enviroment$) ELSE PRINT "Link wurde wegen Fehler bei Compile nicht gestartet." ENDIF termination(return_code%,time%) key_clear RETURN > PROCEDURE rcs LOCAL return_code%,time% PRINT "Starting RCS" time%=TIMER SHOWM IF CHR$(GEMDOS(25)+65)<>LEFT$(gfarcs$) CHDRIVE LEFT$(gfarcs$) ENDIF CHDIR MID$(gfarcs$,1,RINSTR(gfarcs$,"\")) return_code%=EXEC(0,gfarcs$,"","") CHDRIVE LEFT$(main_path$) CHDIR main_path$ redraw_screen termination(return_code%,time%) RETURN > PROCEDURE enviroment(VAR enviroment$) enviroment$=tobj$+CHR$(0)+tprg$+CHR$(0)+tlib$+CHR$(0)+twait$+CHR$(0)+tmove$+CHR$(0) RETURN > PROCEDURE read_variable(VAR input$) LOCAL speicher$ speicher$=MID$(input$,7) PRINT LEFT$(input$,6); FORM INPUT 60 AS speicher$ speicher$=UPPER$(speicher$) speicher$=TRIM$(speicher$) IF LEN(speicher$) input$=LEFT$(input$,6)+speicher$ ENDIF RETURN > PROCEDURE interrupt_on LOCAL i% IF INT{irq%} !nix wenn irq% leer FOR i%=LPEEK(&H456) TO LPEEK(&H456)+31 STEP 4 IF LPEEK(i%)=0 SLPOKE i%,irq% i%=LPEEK(&H456)+31 ENDIF NEXT i% {BASEPAGE+132}=irq% {BASEPAGE+128}=&H4030201 ENDIF RETURN > PROCEDURE interrupt_off LOCAL i% {BASEPAGE+128}=0 FOR i%=LPEEK(&H456) TO LPEEK(&H456)+31 STEP 4 IF LPEEK(i%)=irq% SLPOKE i%,0 ENDIF NEXT i% RETURN > PROCEDURE key_clear REPEAT !lsche GEM Tastaturpuffer UNTIL EVNT_MULTI(33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100)=32 RETURN > PROCEDURE cnf_load LOCAL dummy!,i% REPEAT IF EXIST("GFASHELL.CNF") OPEN "I",#1,"GFASHELL.CNF" EXIT IF @file_ende(1)=FALSE INPUT #1,compiler_option_i& EXIT IF @file_ende(1)=FALSE INPUT #1,compiler_option_s& EXIT IF @file_ende(1)=FALSE INPUT #1,compiler_option_f& EXIT IF @file_ende(1)=FALSE INPUT #1,compiler_option_d& EXIT IF @file_ende(1)=FALSE INPUT #1,compiler_option_m& EXIT IF @file_ende(1)=FALSE INPUT #1,compiler_option_e& EXIT IF @file_ende(1)=FALSE INPUT #1,compiler_option_p& EXIT IF @file_ende(1)=FALSE INPUT #1,symboltabelle& EXIT IF @file_ende(1)=FALSE INPUT #1,compile_testo& EXIT IF @file_ende(1)=FALSE INPUT #1,link_gfa& EXIT IF @file_ende(1)=FALSE INPUT #1,link_test! EXIT IF @file_ende(1)=FALSE INPUT #1,ex_aus! EXIT IF @file_ende(1)=FALSE INPUT #1,used_ram$ EXIT IF @file_ende(1)=FALSE used_ram$=TRIM$(used_ram$) ' INPUT #1,gfaint$ EXIT IF @file_ende(1)=FALSE gfaint$=TRIM$(gfaint$) INPUT #1,gfacom$ EXIT IF @file_ende(1)=FALSE gfacom$=TRIM$(gfacom$) INPUT #1,gfalnk$ EXIT IF @file_ende(1)=FALSE gfalnk$=TRIM$(gfalnk$) INPUT #1,gfarcs$ EXIT IF @file_ende(1)=FALSE gfarcs$=TRIM$(gfarcs$) INPUT #1,source_path$ EXIT IF @file_ende(1)=FALSE source_path$=TRIM$(source_path$) ' INPUT #1,tobj$ EXIT IF @file_ende(1)=FALSE tobj$=TRIM$(tobj$) INPUT #1,tprg$ EXIT IF @file_ende(1)=FALSE tprg$=TRIM$(tprg$) INPUT #1,tlib$ EXIT IF @file_ende(1)=FALSE tlib$=TRIM$(tlib$) INPUT #1,twait$ EXIT IF @file_ende(1)=FALSE twait$=TRIM$(twait$) INPUT #1,tmove$ EXIT IF @file_ende(1)=FALSE tmove$=TRIM$(tmove$) INPUT #1,cobj$ EXIT IF @file_ende(1)=FALSE cobj$=TRIM$(cobj$) INPUT #1,nr_extras& EXIT IF nr_extras&=0 EXIT IF @file_ende(1)=FALSE FOR i%=1 TO nr_extras& INPUT #1,extra$(i%) EXIT IF @file_ende(1)=FALSE INPUT #1,ex_pfad$(i%) menue_eintrag$(max_eintrag&+i%)=" "+extra$(i%)+SPACE$(16-LEN(extra$(i%)))+" ^"+STR$(i%) NEXT i% PRINT "Settings loaded" IF twait$<>"G3WAIT=OFF" AND twait$<>"G3WAIT=ON" twait$="G3WAIT=OFF" ENDIF IF tmove$<>"G3MOVE=OFF" AND tmove$<>"G3MOVE=ON" tmove$="G3MOVE=OFF" ENDIF ELSE ALERT 0," |File 'GFASHELL.CNF' not found. | ",1," OK ",dummy! ENDIF UNTIL TRUE CLOSE #1 RETURN > PROCEDURE cnf_save LOCAL i% OPEN "O",#1,"GFASHELL.CNF" PRINT #1,compiler_option_i& PRINT #1,compiler_option_s& PRINT #1,compiler_option_f& PRINT #1,compiler_option_d& PRINT #1,compiler_option_m& PRINT #1,compiler_option_e& PRINT #1,compiler_option_p& PRINT #1,symboltabelle& PRINT #1,compile_testo& PRINT #1,link_gfa& PRINT #1,link_test! PRINT #1,ex_aus! PRINT #1,TRIM$(used_ram$) ' PRINT #1,TRIM$(gfaint$) PRINT #1,TRIM$(gfacom$) PRINT #1,TRIM$(gfalnk$) PRINT #1,TRIM$(gfarcs$) PRINT #1,TRIM$(source_path$) ' PRINT #1,TRIM$(tobj$) PRINT #1,TRIM$(tprg$) PRINT #1,TRIM$(tlib$) PRINT #1,TRIM$(twait$) PRINT #1,TRIM$(tmove$) PRINT #1,TRIM$(cobj$) PRINT #1,nr_extras& FOR i%=1 TO nr_extras& PRINT #1,TRIM$(extra$(i%)) PRINT #1,TRIM$(ex_pfad$(i%)) NEXT i% CLOSE #1 RETURN > PROCEDURE f_tasten_box LOCAL x_koordinate% DEFFILL 1,0,0 PBOX 4,366,636,396 FOR x_koordinate%=0 TO 640 STEP 64 DEFTEXT 1,0,0,6 TEXT x_koordinate%+24,376,"F"+STR$(x_koordinate%/64+1) IF x_koordinate%>0 LINE x_koordinate%,366,x_koordinate%,396 ENDIF DEFTEXT 1,0,0,4 SELECT x_koordinate%/64+1 CASE 1 TEXT x_koordinate%+12,388,"Auswahl" CASE 2 TEXT x_koordinate%+14,388,"Editor" CASE 3 TEXT x_koordinate%+20,388,"RCS" CASE 4 TEXT x_koordinate%+6,388,"Compiler" CASE 5 TEXT x_koordinate%+12,388,"Linker" CASE 6 TEXT x_koordinate%+6,384,"Compiler" TEXT x_koordinate%+6,392,"& Linker" CASE 7 TEXT x_koordinate%+18,388,"Test" CASE 8 TEXT x_koordinate%+12,388,"Memory" CASE 9 TEXT x_koordinate%+18,388,"Help" CASE 10 TEXT x_koordinate%+18,388,"Quit" ENDSELECT NEXT x_koordinate% DEFTEXT 1,0,0,13 RETURN > PROCEDURE f_tasten_check LOCAL x_koordinate%,maus_taste% x_koordinate%=0 maus_taste%=0 IF MOUSEK=1 maus_taste%=1 mx%=MOUSEX FOR x_koordinate%=0 TO 640 STEP 64 EXIT IF mx% PROCEDURE select_file(path$,VAR file$) LOCAL button& file$="" IF FSEL_INPUT(path$,file$,button&) IF button&=1 WHILE RIGHT$(file$)=CHR$(0) file$=LEFT$(file$,LEN(file$)-1) WEND IF RINSTR(path$,"\") path$=LEFT$(path$,RINSTR(path$,"\")) ENDIF IF RIGHT$(file$)="." file$=LEFT$(file$,LEN(file$)-1) ENDIF IF file$<>"" file$=path$+file$ ENDIF ELSE file$="" ENDIF ELSE file$="" ENDIF file$=TRIM$(file$) redraw_screen redraw_info_box f_tasten_box RETURN > PROCEDURE select_dir(path$,VAR file$) LOCAL button& path$=main_path$+"*.*" file$="" IF FSEL_INPUT(path$,file$,button&) IF button&=1 file$=path$ ELSE file$="" ENDIF ELSE file$="" ENDIF file$=TRIM$(file$) redraw_info_box f_tasten_box RETURN > PROCEDURE make_empty_gfa(path$) LOCAL i& OPEN "O",#99,path$ OUT #99,0,3,71,70,65,45,66,65,83,73,67,51 FOR i&=1 TO 79 OUT #99,0 NEXT i& FOR i&=1 TO 18 OUT #99,4,0,0,0 NEXT i& OUT #99,4,0,4,0,180 CLOSE #99 RETURN > PROCEDURE shell_info DEFFILL 1,0,0 PBOX 100,100,539,349 BOX 102,102,537,347 BOX 103,103,536,346 GRAPHMODE 2 DEFTEXT 1,1,0,26 TEXT 125,133,390,"GfA-Shell" DEFTEXT 1,3,0,26 TEXT 128,136,390,"GfA-Shell" DEFTEXT 1,0,0,6 GRAPHMODE 1 TEXT 175,150,290,"Version 2.1 / Public Domain" DEFTEXT 1,,,13 TEXT 125,175,390,"written by M. Lindermeier und O. Musch" TEXT 125,193,390," in GFA-BASIC 3.0 " DEFTEXT ,1,,6 TEXT 125,210,390," Wie kam es zu dieser Neuschpfung??? " DEFTEXT ,0,, TEXT 125,220,390,"Als wir den lang ersehnten Compiler zum GfA-Basic 3.0" TEXT 125,230,390,"erhielten, war zwar die Freude gro, aber MENUX zu" TEXT 125,240,390,"klein. Aus der tglichen Arbeit mit dem GFA-Compiler" TEXT 125,250,140,"entstand die Shell." TEXT 125,260,390,"Wir hoffen, da die Shell nicht nur uns, sondern allen" TEXT 125,270,390,"GFA-Basic Usern die Programmentwicklung erleichtert." TEXT 125,280,390,"Wir sind fr Verbesserungsvorschlge und Fehler-" TEXT 125,290,390,"meldungen stets dankbar. (--> 'GfASHELL.TXT')" TEXT 125,310,390,"Markus Lindermeier Oliver Musch" TEXT 125,320,390,"Zum Hohlen Berg 25 Sonnenbichl 5" TEXT 125,330,390,"8901 Wehringen 8901 Wehringen" TEXT 125,340,390,"(08234) 3949 (08234) 1873" REPEAT UNTIL MOUSEK OR INKEY$<>"" redraw_screen RETURN > PROCEDURE mk_dir LOCAL rm_file$,ex! ex!=fasle m_box("Ordner anlegen") ~FSEL_INPUT(path$,rm_file$,but%) redraw_screen f_tasten_box redraw_info_box IF but%=1 AND LEN(rm_file$)>1 e%=FSFIRST(path$,-1) DO UNTIL e% IF BYTE{BASEPAGE+149} AND 16 IF rm_file$=CHAR{BASEPAGE+158}+CHR$(0) ex!=TRUE PRINT "Ordner ";MID$(path$,1,RINSTR(path$,"\"))+rm_file$;" existiert bereits" ENDIF ENDIF e%=FSNEXT() LOOP IF ex!=FALSE MKDIR MID$(path$,1,RINSTR(path$,"\"))+rm_file$ ENDIF ENDIF RETURN > PROCEDURE del_dir LOCAL file$,k$ m_box("Verzeichnis lschen") select_dir(main_path$+"*.*",file$) redraw_screen redraw_info_box f_tasten_box IF LEN(file$)>0 PRINT " Directory ";file$;" Lschen (J/N):"; REPEAT k$=UPPER$(INKEY$) UNTIL k$="J" OR k$="N" IF k$="J" delete_path(file$) ENDIF ENDIF RETURN > PROCEDURE kopiere LOCAL src_file$,dest_file$,dat_ex|,ask_l| m_box("Auswahl der Quelldatei") select_file(main_path$+"*.*",src_file$) IF LEN(src_file$)>0 IF NOT EXIST(src_file$) ~FORM_ALERT(1,"[1][Datei kann nicht|geffnet werden.][ Abbruch ]") ELSE m_box("Auswahl der Zieldatei") select_file(main_path$+"*.*",dest_file$) IF LEN(dest_file$)>0 IF EXIST(dest_file$) ALERT 0,"File "+MID$(dest_file$,RINSTR(dest_file$,"\")+1)+" existiert |bereits. ",2,"Lschen|Abbruch",ask_l| IF ask_l|=1 file_delete(dest_file$) copy(src_file$,dest_file$) ENDIF ELSE IF dat_ex|=2 OR dat_ex|=0 copy(src_file$,dest_file$) ENDIF ENDIF ENDIF ENDIF RETURN > PROCEDURE copy(src_file$,dest_file$) LOCAL src_len%,src_adr% OPEN "i",#99,src_file$ src_len%=LOF(#99) CLOSE #99 src_adr%=MALLOC(src_len%) IF src_adr%=0 ~FORM_ALERT(1,"[0][ |Datei ist zu gro (zuwenig Speicher)| ][Abbruch]") ELSE BLOAD src_file$,src_adr% BSAVE dest_file$,src_adr%,src_len% ~MFREE(src_adr%) ENDIF RETURN > PROCEDURE move_same LOCAL ren_file$,cpy_file$,ask_d| m_box("Auswahl der Quelldatei") select_file(main_path$+"*.*",ren_file$) IF ((NOT EXIST(ren_file$)) AND LEN(ren_file$)>0) OR LEN(ren_file$)=0 IF (NOT EXIST(ren_file$)) AND LEN(ren_file$)>0 PRINT "File ";ren_file$;" existiert nicht." ENDIF ELSE m_box("Auswahl des Zielpfads") select_file(MID$(ren_file$,1,RINSTR(ren_file$,"\"))+"*.*",cpy_file$) IF EXIST(cpy_file$) AND LEN(cpy_file$)>0 ALERT 0,"File "+MID$(cpy_file$,RINSTR(cpy_file$,"\")+1)+"| existiert bereits.",1,"Abbruch|Lschen",ask_d| IF ask_d|=2 file_delete(cpy_file$) IF (LEFT$(ren_file$)<>LEFT$(cpy_file$)) IF LEN(cpy_file$)>0 PRINT "Files sind nicht auf dem gleichen Laufwerk." ENDIF ELSE RENAME ren_file$ AS cpy_file$ ENDIF ENDIF ELSE IF (LEFT$(ren_file$)<>LEFT$(cpy_file$)) IF LEN(cpy_file$)>0 PRINT "Files sind nicht auf dem gleichen Laufwerk." ENDIF ELSE RENAME ren_file$ AS cpy_file$ ENDIF ENDIF ENDIF RETURN > PROCEDURE move_other LOCAL src_file$,dest_file$,ask_d| m_box("Auswahl der Quelldatei") select_file(main_path$+"*.*",src_file$) IF EXIST(src_file$) AND LEN(src_file$)>0 m_box("Auswahl des Zielpfads") select_file(MID$(src_file$,1,RINSTR(src_file$,"\"))+"*.*",dest_file$) IF (NOT EXIST(dest_file$)) AND LEN(dest_file$)>0 copy(src_file$,dest_file$) file_delete(src_file$) ELSE IF EXIST(dest_file$) AND LEN(dest_file$)>0 IF TRIM$(dest_file$)<>TRIM$(src_file$) ALERT 0,"File "+MID$(dest_file$,RINSTR(dest_file$,"\")+1)+"| existiert bereits.",1,"Abbruch|Lschen",ask_d| IF ask_d|=2 file_delete(dest_file$) copy(src_file$,dest_file$) file_delete(src_file$) ENDIF ELSE PRINT "Ziel- und Quellfile sind identisch." ENDIF ENDIF ENDIF ELSE IF (NOT EXIST(src_file$)) AND LEN(src_file$)>0 PRINT "File ";src_file$;" existiert nicht." ENDIF ENDIF RETURN > PROCEDURE rename LOCAL ren_file$,antw&,zw_file$,ask_l| CHDRIVE LEFT$(main_path$) CHDIR main_path$ m_box("Datei umbenennen") select_file(main_path$+"*.*",ren_file$) IF LEN(ren_file$)>0 AND EXIST(ren_file$) IF EXIST(ren_file$) oldflp$=LEFT$(ren_file$) PRINT AT(20,12);"Neuer Dateiname :"; zw_file$=MID$(ren_file$,RINSTR(ren_file$,"\")+1) FORM INPUT 12 AS zw_file$ zw_file$=TRIM$(MID$(ren_file$,1,RINSTR(ren_file$,"\"))+zw_file$) IF EXIST(zw_file$) redraw_screen ALERT 0,"File "+MID$(zw_file$,RINSTR(zw_file$,"\")+1)+" existiert |bereits. ",2,"Lschen|Abbruch",ask_l| IF ask_l|=1 file_delete(zw_file$) RENAME ren_file$ AS zw_file$ ENDIF ELSE RENAME ren_file$ AS zw_file$ ENDIF ENDIF ELSE IF LEN(ren_file$)>0 AND (NOT EXIST(ren_file$)) PRINT "File ";ren_file$;" existiert nicht." ENDIF ENDIF CHDRIVE LEFT$(main_path$) CHDIR main_path$ RETURN > PROCEDURE delete LOCAL del_file$ m_box("Datei lschen") select_file(main_path$+"*.*",del_file$) IF LEN(del_file$)>0 file_delete(del_file$) ENDIF RETURN > PROCEDURE file_delete(del_file$) IF EXIST(del_file$) KILL del_file$ ELSE PRINT "File ";del_file$;" ist nicht vorhanden." ENDIF RETURN > PROCEDURE delete_path(pfad$) LOCAL e% ~FSETDTA(BASEPAGE+128) e%=FSFIRST(pfad$,-1) BOUNDARY 0 DEFFILL 1,2,4 PBOX 0,90,639,320 PRINT AT(8,8);pfad$ DO UNTIL e% IF BYTE{BASEPAGE+149}<>16 INC zeile& IF zeile&>=12 PBOX 0,90,639,320 PRINT AT(8,8);pfad$ zeile&=1 ENDIF KILL MID$(pfad$,1,RINSTR(pfad$,"\"))+CHAR{BASEPAGE+158} PRINT AT(25,zeile&+9);'CHAR{BASEPAGE+158} PAUSE 10 ENDIF e%=FSNEXT() LOOP BOUNDARY 1 RETURN > PROCEDURE ed_extras LOCAL ask_ex|,nr&,k$,oldpfad$ IF nr_extras&<1 ask_ex|=FORM_ALERT(1,"[2][ Wollen Sie Extra-Programme| hinzufgen?][ Abbruch | Hinzufgen ]") IF ask_ex|=2 INC ask_ex| ENDIF ELSE IF nr_extras&<7 ask_ex|=FORM_ALERT(1,"[2][ Wollen Sie Extra-Programme| hinzufgen oder bestehende ndern?][ Abbruch | ndern | Hinzufgen ]") ELSE ask_ex|=FORM_ALERT(1,"[2][ Wollen Sie bestehende| Extra-Programme ndern?][ Abbruch | ndern ]") ENDIF IF ask_ex|=2 FOR i|=2 TO nr_extras&*2 STEP 2 PRINT AT(5,5+i|);i|/2;". : ";extra$(i|/2) PRINT AT(10,6+i|);ex_pfad$(i|/2) NEXT i| PRINT PRINT " Welches Programm soll gendert werden (Nummer / ";CHR$(27);"pA";CHR$(27);"qbbruch ):"; REPEAT k$=INKEY$ UNTIL (ASC(k$)>=49 AND ASC(k$)<=49+nr_extras&-1) OR k$="A" OR k$="a" IF k$<>"A" AND k$<>"a" nr&=ASC(k$)-48 PRINT nr& redraw_screen redraw_info_box f_tasten_box LOCATE 6,12 oldpfad$=ex_pfad$(nr&) PRINT "Name des Menue-Eintrags: "; FORM INPUT 16 AS extra$(nr&) LOCATE 6,13 PRINT "Programmpfad: "; FORM INPUT 60 AS ex_pfad$(nr&) ex_pfad$(nr&)=UPPER$(ex_pfad$(nr&)) IF (NOT EXIST(ex_pfad$(nr&))) AND ex_aus!=FALSE redraw_screen PRINT ex_pfad$(nr&);" existiert nicht." ex_pfad$(nr&)=oldpfad$ ELSE redraw_screen menue_eintrag$(max_eintrag&+nr&)=" "+extra$(nr&)+SPACE$(16-LEN(extra$(nr&)))+" ^"+STR$(nr&) ENDIF ELSE redraw_screen ENDIF ELSE IF ask_ex|=3 nr&=nr_extras&+1 LOCATE 6,12 PRINT "Name des Menue-Eintrags: "; FORM INPUT 16,extra$(nr&) LOCATE 6,14 PRINT "Programmpfad: "; oldpfad$=ex_pfad$(nr&) FORM INPUT 60,ex_pfad$(nr&) ex_pfad$(nr&)=UPPER$(ex_pfad$(nr&)) IF (NOT EXIST(ex_pfad$(nr&))) AND ex_aus!=FALSE redraw_screen PRINT ex_pfad$(nr&);" existiert nicht." extra$(nr&)="" ex_pfad$(nr&)=oldpfad$ ELSE redraw_screen menue_eintrag$(max_eintrag&+nr_extras&+1)=" "+extra$(nr&)+SPACE$(16-LEN(extra$(nr&)))+" ^"+STR$(nr&) INC nr_extras& ENDIF ENDIF RETURN > PROCEDURE start_extra(nr%) LOCAL time%,return_code% time%=TIMER IF CHR$(GEMDOS(25)+65)<>LEFT$(ex_pfad$(nr%)) CHDRIVE LEFT$(ex_pfad$(nr%)) ENDIF CHDIR MID$(ex_pfad$(nr%),1,RINSTR(ex_pfad$(nr%),"\")) return_code%=EXEC(0,ex_pfad$(nr%),"","") CHDRIVE LEFT$(main_path$) CHDIR main_path$ redraw_screen termination(return_code%,time%) RETURN > PROCEDURE delete_extra LOCAL i|,k$,nr& FOR i|=2 TO nr_extras&*2 STEP 2 PRINT AT(5,5+i|);i|/2;". : ";extra$(i|/2) PRINT AT(10,6+i|);ex_pfad$(i|/2) NEXT i| PRINT PRINT " Welches Programm soll gelscht werden (Nummer / ";CHR$(27);"pA";CHR$(27);"qbbruch ):"; REPEAT k$=INKEY$ UNTIL (ASC(k$)>=49 AND ASC(k$)<=49+nr_extras&-1) OR k$="A" OR k$="a" IF k$<>"A" AND k$<>"a" nr&=ASC(k$)-48 PRINT nr& redraw_screen FOR i|=nr&+1 TO nr_extras& extra$(i|-1)=extra$(i|) ex_pfad$(i|-1)=ex_pfad$(i|) menue_eintrag$(max_eintrag&+i|-1)=" "+extra$(i|)+SPACE$(16-LEN(extra$(i|)))+" ^"+STR$(i|-1) NEXT i| menue_eintrag$(max_eintrag&+i|-1)="" DEC nr_extras& MENU menue_eintrag$() MENU 48,ex_aus! AND 1 MENU 45,link_gfa& AND 1 ON MENU IBOX 1,4,346,632,396 GOSUB f_tasten_check ON MENU GOSUB menu_event ON MENU KEY GOSUB key_event redraw_screen ELSE redraw_screen ENDIF RETURN > PROCEDURE konvert_inline(file$) LOCAL inline$,lst$,dummy$,lstfile$,test$,nam$,laenge%,count% OPEN "I",#99,file$ inline$=RIGHT$(INPUT$(LOF(#99),#99),LOF(#99)-28) laenge%=LOF(#99)-28 CLOSE #99 inl_file$=LEFT$(file$,LEN(file$)-3)+"INL" BSAVE inl_file$,VARPTR(inline$),LEN(inline$) count%=RINSTR(file$,"\") test$=RIGHT$(file$,LEN(file$)-count%) lstfile$=LEFT$(test$,LEN(test$)-3)+"LST" lstfile$=LEFT$(file$,LEN(file$)-LEN(lstfile$))+lstfile$ nam$=LEFT$(test$,LEN(test$)-4) PRINT file$ PRINT lstfile$ dummy$=CHR$(13)+CHR$(10) laenge$=STR$(laenge%) lst$="' Assembler-Routine "+nam$+dummy$ lst$=lst$+nam$+"%=MALLOC("+laenge$+") !Speicher reservieren"+dummy$ lst$=lst$+"INLINE "+nam$+"%,"+laenge$+dummy$ lst$=lst$+"~C:"+nam$+"%() !Standardaufruf ohne Parameter"+dummy$ lst$=lst$+"~MFREE("+nam$+"%) !Reservierten Speicher freigeben"+dummy$ PRINT lst$ BSAVE lstfile$,VARPTR(lst$),LEN(lst$) RETURN > PROCEDURE m_box(text$) DEFFILL 1,0,0 PBOX 157,20,482,53 BOX 159,22,480,51 DEFTEXT 1,0,0,13 text$=LEFT$(TRIM$(text$),40) TEXT 160,42,SPACE$((40-LEN(text$))/2)+text$ RETURN FUNCTION chk_file(VAR file$) LOCAL dummy& IF LEN(file$) IF (EXIST(file$) OR ex_aus!=TRUE) RETURN TRUE ENDIF ENDIF m_box("GFA-Datei auswhlen") select_file(source_path$+"*.GFA",file$) redraw_screen f_tasten_box redraw_info_box IF MID$(file$,RINSTR(file$,".")+1)="GFA" OR LEN(file$)=0 IF LEN(file$) IF (EXIST(file$) OR ex_aus!=TRUE) menue_eintrag$(17)=" "+MID$(file$,RINSTR(file$,"\")+1,LEN(file$)-RINSTR(file$,"\")-3)+"PRG"+SPACE$(12-(LEN(file$)-RINSTR(file$,"\"))+1)+"^T" RETURN TRUE ENDIF ENDIF ELSE file$="" PRINT "File hat nicht die Extension GFA" ENDIF IF LEN(file$)>0 AND MID$(file$,RINSTR(file$,".")+1)="GFA" PRINT "File ";file$;" existiert nicht" ENDIF file$="" RETURN FALSE ENDFUNC FUNCTION file_ende(a%) IF EOF(#a%) PRINT "File GFASHELL.CNF ist unvollstndig." PRINT " Bitte Voreinstellungen berprfen und abspeichern." IF i%>=1 nr_extras&=i%-1 ELSE nr_extras&=0 RETURN FALSE ENDIF ENDIF RETURN TRUE ENDFUNC . pM.. pANLEITUNG pNBEISPIELE $pLIB DpPASMANAG103lpAUTOSPEITF1 zp eDESKTOP INF p&:READ_ME 1ST p'HREAD_ME 2ND p(. pN.. pMPASMANAGANL pO nPASMANAGDUP pkb**************************************************************************** * * * PASMANAG.PRG Version PD 1.03 * * -------------------------------- * * * * Autor : Rainer Hain / 3500 Kassel / Fiedlerstr. 78 * * Funktion : Steuern der ST Pascal Plus >= 2.00 Komponenten * * Auflsung : Logisch , Monochrom * * Beginn : 14. April 1989 * * Fertigstellung : 25. July 1989 * * Bisherige * * Versionen : 1.01 , 1.03 / Public Domain * * In * * Arbeit : 1.05 , Public Domain / 2.00 nicht Public Domain * * Erscheinungs - * * Datum : 1.05 ca. 4 Wochen nach erscheinen von 1.03 * * : 2.00 ca. Ende Oktober '89 , nur bei mir zu beziehen. * * * * (c) 7/1989 by Rainer Hain * * * **************************************************************************** Weitere Informationen ber die einzelnen Versionen , Bezugsquellen , Preise usw. entnehmen sie bitte im Anhang EXTENDED INFORMATIONS. Achtung : Die PD Version 1.03 darf nur komplett mit allen auf der Diskette enthaltenen Dateien kopiert und weitergegeben werden. Es drfen keine nderungen in den Dateien vorgenommen werden. Die Beispiel Module , sofern sie jemand verwenden kann , knnen in jedem eigenem Programm ohne Einschrnkungen meinerseits verwendet werden. Inhaltsverzeichnis : I : Bedienungsanleitung II : Installation III : ber die Entwicklung und Entstehung von PASMANAG.PRG IV : Extended Informations I : Bedienungsanleitung ------------------------- Das MENUE : ----------- Das Menue besteht aus 5 Titeln mit mehreren Eintrgen. Weiterhin sehen sie im Menue , wenn Option gesetzt , die aktuelle Uhrzeit und , immer , den aktuellen Drive. Zb. A: oder D: usw. ! Der Titel DESK : ---------------- Dieser Titel wird durch das Atari Symbol dargestellt. Wie gewohnt gibt es hier nur einen Eintrag , dieser jedoch hat es in sich! Wenn sie diesen Eintrag ' PASMANAG... ' anwhlen dann bekommen sie folgende Informationen auf den Monitor. 1 : Information ber den Autor von PASMANAG.PRG (natrlich!) 2 : Freier RAM Speicher 3 : Freier Speicher auf Diskette 4 : Belegter Speicher auf Diskette 5 : Disketten Format 6 : Aktuelles Laufwerk 7 : Datum der Fertigstellung 8 : Info ber benutzte Programmiersprache 9 : Info ber benutztes Atari ST System Weiterhin erfahren sie ob die mit PASMANAG.PRG erreichbaren Komponenten in den bei Programmstart angegebenen Suchpfaden existieren. Existierende Komponenten sind selektiert. Als erreichbare Komponenten wurden folgende Programme vorgegeben: Editor : 1 : EDIT_TOS.PRG / Public Domain 2 : CCD EDITOR.TOS 3 : CCD EDITOR.PRG 4 : CCD TEMPUS.PRG Pascal : 1 : COMPILER.PRG 2 : LINKER.PRG 3 : PASTRIX 4 : PASGEM 5 : PASLIB PASMANAG : 1 : PASMANAG.OLF (erklrung kommt noch) Diese Funktion wird bei Programmstart automatisch aufgerufen , so das sie bei Programmstart sofort ber alle wichtigen Informationen und alle Installationen informiert werden. Rufen sie diese Funktion nach Programmstart nocheinmal auf so wird der Speicher nur gemessen wenn sie eine Funktion ausfhrten die auf irgendeinen Drive zugreift. Die Installation der Komponenten wird nur dann erneut berprft wenn sie Optionen geladen / gesichert haben oder PROGRAMME FINDEN aufgerufuen haben Ist dies nicht der Fall so wird die Box mit den zuletzt angegebenen Parametern dargestellt , sie geht davon aus das noch dieselbe Diskette im aktuellen Laufwerk liegt. Tastaturkommando : I oder i (Info) Der Titel EDITIEREN : --------------------- Hier knnen sie 4 (vier) Editoren aufrufen. 2 (zwei) davon sind als TOS Editoren und die anderen 2 (zwei) als GEM Editoren definiert. Sie knnen selbstverstndlich andere Editoren benutzen als vorgegeben, jedoch die angegebenen funktionieren einwandfrei und sind getestet. Sollten sich also mit einem anderen Editor Probleme auftun so testen sie einen anderen oder benutzen sie bitte die/den vorgegebenen. In den Eintrgen PD TOS Editor und CCD TOS Editor sollten nur TOS Editoren aufgerufen werden da die Maus versteckt wird bei Aufruf eines Editors ber eine TOS Eintrag. Im Eintrag CCD GEM Editor knnen sie jeden GEM Editor ausser EDIMAX verwenden , da dieser (EDIMAX) die Maus fr sich behlt nach beenden von EDIMAX. Im Eintrag TEMPUS 2.05 sollte nur TEMPUS aufgerufen werden , da sie hier im gegensatz zu den anderen Editor Eintrgen bis zu 4 (vier) mal die File Select Box auf den Monitor bekommen. Und da sind wir auch schon bei einer Besonderheit von PASMANAG.PRG. Sie knnen TEMPUS bis zu 4 (vier) Dateien zum einladen bergeben. Sollte die dabei entstehende Commandline lnger als 124 Zeichen sein so wird solange der letzte Name abgeschnitten bis die lnge der Commandline unter 125 Zeichen ist. Es werden dann eben nur 3 oder gar 2 Dateien eingeladen. Ist die Lnge der Commandline schon bei der 3. (dritten) Dateiauswahl berschritten so erscheint die 4. (vierte) File Select Box nicht mehr. Ich hoffe dieses Featur sagt ihnen zu. Ich benutze PASMANAG.PRG schon allein aus diesem Grund. Dabei gebe ich TEMPUS als TEMPUS und CCD GEM Editor an um wenn ich nur 1 (eine) Datei einladen will die Abfrage von TEMPUS nach einer weiteren Datei zu umgehen. Das ist usserst wirkungsvoll. Geben sie im TEMPUS Eintrag aber zb. den CCD GEM Editor an so wird bei der Auswahl von mehreren Dateien die letzte eingeladen. Im Eintrag ENDE wird wie sollte es anders sein PASMANAG.PRG beendet. Auch diese Funktion ist sehr ntzlich! Tastaturkommandos : TEMPUS = T oder t CCD GEM = G oder g CCD TOS = E oder e PD TOS = p oder p ENDE = kein Tastaturkommando Der Titel AUSFHREN : Hier rufen sie folgende Programme auf: Eintrag | Programm ------------------------|------------------ COMPILER | Pascal Compiler 2.04 LINKER | Pascal Linker 1.1 , 2.00 COMPILIERE ALLE | Compileraufruf fr mehrere Compiler Files | Hier mssen sie eine Datei mit der Extension | .SCF (Source Compiler Files) ffnen , aus der | dann die entsprechenden Namen und Suchpfade | der zu Compilierenden Files entnommen werden. | Erstellt wird diese Datei ber die Auswahl | OPTIONEN / COMPILER FILES.Darber spter mehr. | LINKER OBJEKT | Das fertige Linker Ergebnis wird hier sofort | ausgefhrt.Wenn sie ACC's programmieren wird | diese Funktion mit einer Fehlermeldung | abgebrochen.Fehlermeldungen gibt es eigentlich | fr fast alle Funktion. | AUSWAHL OBJEKT | Hier starten sie ein beliebiges Programm welches | ber eine File Select Box ausgewhlt wird. | Bei beiden Aufrufen ( LINKER OBJ/AUSWAHL OBJ) | erscheint , wenn Option gesetzt , eine Mglich- | keit zur Eingabe einer Commandline von bis zu | 70 Zeichen. Bei Fehlerhaftem Compilerlauf werden sie nach Beendigung desselben gefragt ob sie die Datei zum Editor schicken wollen. Der Textcursor wird nicht an die Fehlerhafte Stelle gesetzt , daher empfiehlt es sich den Compilervorgang nicht zu Unterbrechen wenn Fehler auftauchen , da sonst die .ERR Datei nicht oder unvollstndig existiert. Tastaturkommandos : COMPILER = C oder c LINKER = L oder l COMPILIERE ALLE = A oder a LINKER OBJEKT = S oder s AUSWAHL OBJEKT = R oder r Der Titel OPTIONEN : Hier knnen sie die verschiedenen Optionen von PASMANAG.PRG oder ST PASCAL PLUS einstellen. Als Optionen gibt es folgende : Eintrag | Optionen ------------------------------------------------- COMPILER | Compiler Optionen : | --------------------- | Mglich sind : | ---------------- | Debug Modus | Stapel & Heap berprfung | Bereichsprfung | Lokale Variablen lschen | GEM Dialog darstellen | Testlauf ( ohne das .O File geschrieben wird ) | Text listen auf Monitor | Linker Aufruf ( nur 2.00 ) | Linker | Linker Optionen : | ------------------- | Mglich sind : | ---------------- | ACC , PRG , TOS , TTP , APP generieren | Zustzliche Linkfiles bis 80 Zeichen | .OLF Datei wird erkannt durch '#' Zeichen | wie im PASCAL MANAGER | Die Buttons laden,sichern im LINKER & COMPILER | Dialog sind noch nicht implementiert | Wichtig ! | Die eingabe der Linker Files erfolgt anders | als beim CCD MANAGER. | Bei PASMANAG.PRG knnen sie bis ans Ende der 1. | Zeile schreiben und in der 2. weiterschreiben. | Sie knnen aber auch in der 1. beginnen und in | der 2. Zeile. | BSP. : | A:\PASSHELL.ARB\SHELMAIN.O,D:\PAS | CAL\PASTRIX | oder : | A:\PASSHELL.ARB\SHELMAIN.O, | D:\PASCAL\PASTRIX | Das Komma in der 1. Zeile muss aber dann sein | COMPILER FILES | .SCF (Source Compiler Files) Datei erstellen | ber die dann die Funktion COMPILIERE ALLE | ausgefhrt wird. LINKER FILES | wie COMPILER FILES nur das die Namen in der .OLF | Datei zum Hauptmodul hinzugelinkt werden. | Achtung ! | Sie werden nach jedem angegebenen File gefragt | ob sie noch ein Modul angeben wollen. | Wenn nicht mssen sie die Alarmbox mit nein | verlassen , da ansonsten der Linker nach einem | Modul ' ,, ' sucht und abbricht weil er es nicht | finden kann. | Verlassen sie die Alarmbox uber Ja so mssen sie | noch ein Modul angeben oder nochmal von vorne | beginnen mit der Erstellung der .OLF Datei ! | LADEN / SICHERN | Hier laden sie die Optionen aus einer .INF | Datei. Dabei werden alle Einstellbaren Optionen | neu gesetzt. | PROGRAMME FINDEN | Hier legen sie komfortabel ber die File Select | Box die einzelnen Suchpfade von TEMPUS, EDITOR, | COMPILER usw. fest! | Hier gibt es den Button PASMANAG.OLF. | In dieser Datei stehen die Pascal Library | Suchpfade. | Zb. A:\PASCAL\PASTRIX, | B:\GEMLIB\PASGEM, | C:\STDLIB\PASLIB | | Alles klar ? | | | PASMANAG... | Hier stellen sie die PASMANAG.PRG Optionen | ein. | Als da wren : | Editoren sperren und aktivieren , somit knnen | sie die Arbeit mit einem bestimmten Editor | von vornherein ausschliessen. | Uhrzeit ein/ausschalten | Growboxen ein/ausschalten | Commandline Abfrage bei Externem Programmstart | ein/ausschalten Der Titel DATEI : ----------------- Hier knnen sie 3 Funktionen aufrufen die ihnen bekannt sein sollten. 1 : Ordner anlegen 2 : Ordner lschen ( wenn er leer ist ) 3 : Datei lschen ( ist immer ntzlich ) Der Titel SPEZIELL : Hier knnen sie alle Suchpfade auf eins von acht whlbaren Laufwerken setzen. Alle Suchpfade werden auf das Hauptdirectory gesetzt. Dieser Titel und der Titel DATEI sind eigentlich gedacht fr Programmierer die mit der Original File Select Box arbeiten. Sie ist im Erscheinen doch einfach schneller als so mancher Ersatz, obwohl jener natrlich oft ber einige ntzlich Extras verfgt. Jedenfalls brauchen sie nicht unbedingt eine andere File Select Box als die System eigene. Soviel zur Bedienung.Sollte irgendetwas nicht funktionieren oder Schwierig- keiten bereiten so setzen sie sich bitte mit mir in Verbindung ber im Text- kopf angegebene Adresse. Ideen fr Verbesserungen oder Erweiterungen nehme ich gerne entgegen und werde sie auch , sofern ich eine gute Lsung gefunden habe , in der nchsten Version bercksichtigen. Beachten sie jedoch eins. Diese Shell entstand aus dem Gedanken heraus einen Pascal Manager fr den 520 ST zu schreiben. Die Version 1.03 befrchte ich ist wohl doch etwas zu gross , weshalb ich mich entschloss extra eine Version fr den 520 ST zu Programmieren. Diese Version ( 1.05 ) wird ca.4 Wochen nach Erscheinen von 1.03 ber den PD Service , so hoffe ich , zu beziehen sein.Oder aber auch direkt bei mir. Nheres siehe EXTENDED INFORMATIONS. II : Installation ------------------- Zur Installation von PASMANAG.PRG existiert die Datei PASMANAG.INF In dieser Datei knne sie alle Optionen speichern die sie bei Programm- start eingestellt wissen mchten. Optionen die in dieser Datei abgespeichert werden : Suchpfade fr : TEMPUS.PRG EDITOR.PRG EDIT_TOS.PRG EDITOR.TOS /.TTP COMPILER.PRG LINKER.PRG PASMANAG.OLF ZUSTZLICHE LINKFILES ZUSTZLICHE LINKFIES Diverse Optionen fr ST PASCAL PLUS & PASMANAG.PRG ( Siehe Menuetitel OPTIONEN ) Sie knnen selbstverstndlich auch eine andere Datei zum Optionen speichern erffnen , jedoch nur PASMANAG.INF wird bei Programmstart eingelesen und ausgewertet. III : ber die Entstehung von PASMANAG.PRG ---------------------------------------------------- Auf die Idee kam ich als ich noch einen 520 ST mein eigen nannte. Aufgrund der Grsse des MANAGER 's von CCD und einiger Accessorys kam ich sehr schnell an die Grenze der Speicherkapazitt und so dachte ich mir , Mensch programmier doch einfach mal eine Shell fr Pascal! Es gab dann Versionen von 0.1 bis 1.00 die alle nicht verffentlicht wurden, da ich tglich neue Erkenntnisse machte , denn ich Programmiere erst seit 1 (einem) Jahr und dann gleich mit PASCAL. Ausserdem kamen mir einige neue Programme ins Haus ( TEMPUS,DRI RSC, PD EDITOREN,GFA ASSMEBLER,TURBO C ) so das ich desfteren das ganze Konzept umgeschmissen habe , anhand der Funktionsweise der anderen Programme! An der Version 1.00 arbeite ich seit dem 14.04.1989 und bin mittlerweile bei der Fehlerbereinigten Version PD 1.03 angelangt. Die Version PD 1.03 benutze ich jetzt seit dem 18.07.1989. Ich habe aber vorher schon um die Version 1.00 usw. zu Programmieren eine ltere nicht verffentlichte Version benutzt. Viele Funktionen habe ich in immer wieder optimierter Form in die nchste Version mit bernommen. So luft jetzt zb. die routine zum Ausfhren von Programmen ber ein und dieselbe Prozedur.Diese Prozedur ist zb. in 1.03 so optimiert das sie als Modul ohne globale Variablen ausgefhrt wird. Das modul wird einfach immer hinzugelinkt. Die Prozedur bernimmt alle Funktionen von Umwandeln der Commandline in den berhmten C_string , Menue deaktivieren und reaktivieren, Fehlermeldung wenn Linken erfolglos,Maus verstecken/freigeben bei TOS Editor Aufruf, Fehlermeldung wenn die Commandline lnger als 124 Zeichen ist(2.00),Dialog darstellen mit kurzfristigem Info welches Programm gestartet wird,prfen ob Programm vorhanden ist usw. Da ich nun DRI RSC 2.1 benutzte und somit die Menue's,Dialoge und Alarmboxen nicht mehr in Pascal programmiere sah ich mich vor neue Probleme gestellt nachdem zb. das DRI RSC beim starten ber T_PASCAL.PRG sein RSC File nicht fand.Weiterhin wenn es von Disk B: gestartet wurde dann wird stur 1 mal ganz kurz auf Laufwerk A: zugegriffen.Und das ist usserst lstig. Als ich dann mein erstes Programm mit RSC File starten wollte stand ich vor demselben Problem mit Ausnahme davon das sich mein Programm ordnungsgemss verabschiedete,whrend das DRI RSC ein Reset erforderlich machte. Um also nicht jedesmal , wenn ich mein Programm testen wollte , T_PASCAL.PRG verlassen zu mssen berlegte ich mir wie kann ich das RSC laden ohne auf Laufwerk A: zuzugreifen wenn es auf B: nicht gefunden wurde , es sich aber auf B: befindet ? Die Lsung ist ein Modul ohne globale Variablen das ein PASCAL RESET auf die angegeben Datei ausfhrt und wenn vorhanden wird das RSC File geladen. Wenn nicht dann musste eine extra Lademglichkeit her. Dafr nahm ich die File Select Box,eine Alarmbox die einen Alarmiert wenn RSC File nicht gefunden wurde,einen kleinen Infodialog 'RSC File laden', 'RSC File gefunden' und konnte dank der File Select Box das RSC File suchen den Namen selektieren und einladen. Doch pltzlich o'graus lud ich das RSC File vom CCD GEM Editor und siehe da ein neues Problem war geboren. Da ich bisher nur einmal diese mglichkeit zum nachladen des RSC Files hatte und dann auch noch einen falschen Namen angeben konnte war ich natrlich ab und zu in der verzwickten Situation die RESET Taste bettigen zu mssen. Herausgekommen ist nun ein Modul das wiederum ohne globale Variablen aus- kommt und in meiner Arbeits Version 2.00 implementiert ist. Dieses Modul arbeitet nun in einer Schleife die nur dann verlassen wird wenn in der Alarmbox oder in der File Select Box ABBRUCH gedrueckt wurde. Das Problem mit dem falschem Namen existiert nicht mehr.Es wird gnadenlos das Original RSC File eingeladen, egal ob sie keinen Namen,einen falschen, oder einen nicht existenten Namen angeben , der Interessiert garnicht. Das hat wiederum den Nachteil das dieses Modul jetzt eine grsse von 3880 bytes hat , jedoch auch den Vorteil das man nur noch den Ordner ffnet und OK drueckt.Der Name ist ja nicht von bedeutung. Ach ja , der automatische Zugriff auf Drive A: wird dadurch unterbunden das immer erst mit PASCAL RESET auf die Datei DATEINAME.RSC im eingestellten Pfad zugegriffen wird. Wenn das erfolgreich war dann wird die AES oder GEM (was weiss ich ?) Funktion Load_Resource(DATEINAME.RSC) ausgefhrt. Ich wei nicht ob ich richtig liege , aber ich vermute das eben diese Funktion einen Zugriff auf Drive A: verursacht , da ich seit ich mit dem neusten Modul arbeite keinerlei Probleme mehr mit dem RSC File nachladen hab. Sie werden jetzt sicher sagen , 'Ist ja alles schn und gut aber 3880 bytes?' Nun dann sage ich wem es zulang ist der kann es ja wenigstens als Programmierhilfe benutzen , denn das ist ein Superfeature zum Programmieren. Und ich beabsichtige bei der Fertigstellung dieses Modul und noch so einige andere die beim Programmieren von PASMANAG.PRG angefallen sind mit zuverffentlichen.Allerdings wird diese Diskette nur ber mich zu beziehen sein. Ich befrchte nun das die Version PD 1.03 etwas zu gross geraten ist,da ich sie ja eigentlich fr einen 520 ST Programmiert hatte. Programmiert wurde sie aber auf einem 1040 ST mit 1(ab und zu 2) Laufwerk/en und einer 430 K RAM Disk.Weiterhin hatte ich ein Accessory von ca. 2500 bytes das das Desktop aus einem gestartetem Programm heraus wieder in den Einschalt zustand setzte (ST Computer / 4/89 / S.88 / Turbo C) und ein RAM Frei ACC. ( PD ca.3300 bytes ). RAM Frei mit diesem ACC gemessen : Angabe : 295 - 308 K Gemessen mit PASMANAG.PRG : Angabe : 305XXX - 315XXX Aus dieser Befrchtung heraus beschloss ich eine neue PD Version zu schreiben die extra auf einen 520 ST zugeschnitten ist. Ich wrde mich daher ber Ideen und Zuschriften von 520 ST Besitzern ,die mein Programm benutzen mchten , freuen. Besonderes Interesse besteht natrlich an Vorschlgen und Ideen in C oder Assembler , da dies den Programmcode wesentlich verkrzen wrde. Nun ich lasse mich berraschen. Ich freue mich natrlich auch ber Kritik. IV : Extended Informations ---------------------------- n.v. = nicht Verffentlicht z.g. = zurckgezogen PD = Public Domain n.PD = nicht Public Domain n.b = nicht beendet(wird noch fertiggestellt) 1M = mindestens 1 Megabyte Versionen von PASMANAG.PRG : 1.00 n.v. 1.01 z.g. PD 1.03 PD 1.05 PD n.b. ( f. 520 ST ) 2.00 n.PD 1M Info zu 1.05 : Die Version 1.05 wird wesentlich kleiner sein als die Version 1.03. So wird sie nur noch mit einem Editor laufen der natrlich frei gewhlt werden kann.Weiterhin wird die RSC File Suchfunktion nicht mehr vorhanden sein da dies bei einem 520 ST doch zuviel Speicher schluckt. Und die Compiler Optionen werden fehlen , da , wie ich meine und auch tue , der Programmierer seine Optionen im Programmtext festlegt.Es wird dann nur noch die Testlauf Option und die Text Listen Option geben.Diese werden wiederum im PASMANAG Parameter Dialog eingestellt , da somit eine komplette Prozedur mit Dialog wegfllt.Wenn das genuegend Speicher bringt werde ich aber versuchen noch eine Kopierfunktion einzubauen.Nun , lassen wir uns berraschen. Die Linker Optionen bleiben jedoch vollstndig erhalten. Info zu 2.00 : Die Version 2.00 wird nach meiner Meinung (von seiner eigenen Idee ist man ja am berzeugtsten) ein echter Leckerbissen sein. Allerdings wir sie mindestens 1 Megabyte bentigen. Sie wird ebenfalls nur noch mit einem Editor arbeiten aber hat noch ein paar schne Zustze. So knnen sie zum Beispiel bis zu 4 (vier) Workfiles festlegen und immer 1 davon als Aktuelles Workfile setzen.Dieses File wird dann zu allen Programmen geschickt ohne das die FSB auftaucht.Diesen Modus knnen sie Umschalten in den File Select Modus wo sie dann andere Dateien ber die FSB zu den einzel- nen Programmen schicken knnen.Sie knnen diese Workfiles auch wieder Ent- fernen indem sie ein Workfile freigeben zum Neufestlegen. Damit das nicht solange dauert gibt es hierfr Tastaturkommandos und in der Menuezeile wird durch ein grosses 'W' oder 'F' angezeigt in welchem Modus sie sich befinden. W = Workfile ( wenn , dann steht daneben die Nummer , die sie sich allerdings merken mssen ) F = File Select Modus Selbstverstndlich schalten sie auch die einzelnen Workfiles ber die Tastatur um und werden neben dem 'W' ber die Nummer Informiert. Als neue Optionen kommen zb. die Option Linker Aufrufen.Dies funktioniert auch wenn sie aus dem CCD GEM Editor oder aus TEMPUS heraus den Linker an- fordern.Vorher wird Compiliert und nur wenn das erfolgreich und die Option gesetzt ist wird der Linker aufgerufen. Im GEM Editor = Menueeintrag LINKER In TEMPUS = ^2 Ziffernblock Weiterhin haben sie die Mglichkeit dem Programm einen anderen Namen zukommen zu lassen als die .PAS Datei hat.Dies ermglicht ihnen sogar ein ACC. direkt auf ein Bootlaufwerk zuschreiben ohne lstiges kopieren oder gar Umbenennen desselben.(Nur zu Empfehlen wenn Bootlaufwerk A: oder B: , ich las irgendwo einmal das das mit einer Festplatte schwerwiegende Folgen haben kann wenn das ACC dann nicht funktioniert.) Sie knnen aber nicht die lnge von 124 Zeichen der Commandline berschreiten Ebenfalls wie der Manager von CCD werden sie hier auch Dateien kopieren und Umbenennen knnen. Jetzt kommt das eigentliche: Diese Version ist nicht Public Domain und kann nur bei mir bezogen werden. Der Preis liegt vorraussichtlich bei 25 DM + Versand , aber wer anfrgt sende mir bitte kein Geld zu , da die Version 2.00 erst gegen Ende Oktober fertig ist.Sie bekommen fr das Geld aber mehr als nur PASMANAG.PRG! Es werden auf dieser Diskette einige mehr oder weniger ntzliche Module fr ST Pascal Plus vorhanden sein.Einige hatte ich ihnen ja schon vor- gestellt. Wenn sie nicht gleich 25 DM anlegen wollen knnen sie ja eine Demo Version anfordern (10 DM + Versand) die dann angerechnet wird. So das wrs eigentlich! Anregungen sind jederzeit willkommen! **************************************************************************** * * * PASMANAG.PRG Version PD 1.03 * * -------------------------------- * * * * Autor : Rainer Hain / 3500 Kassel / Fiedlerstr. 78 * * Funktion : Steuern der ST Pascal Plus >= 2.00 Komponenten * * Auflsung : Logisch , Monochrom * * Beginn : 14. April 1989 * * Fertigstellung : 25. July 1989 * * Bisherige * * Versionen : 1.01 , 1.03 / Public Domain * * In * * Arbeit : 1.05 , Public Domain / 2.00 nicht Public Domain * * Erscheinungs - * * Datum : 1.05 ca. 4 Wochen nach erscheinen von 1.03 * * : 2.00 ca. Ende Oktober '89 , nur bei mir zu beziehen. * * * * (c) 7/1989 by Rainer Hain * * * **************************************************************************** **************************************************************************** * * * PASMANAG.PRG Version PD 1.03 * * -------------------------------- * * * * Autor : Rainer Hain / 3500 Kassel / Fiedlerstr. 78 * * Funktion : Steuern der ST Pascal Plus >= 2.00 Komponenten * * Auflsung : Logisch , Monochrom * * Beginn : 14. April 1989 * * Fertigstellung : 25. July 1989 * * Bisherige * * Versionen : 1.01 , 1.03 / Public Domain * * In * * Arbeit : 1.05 , Public Domain / 2.00 nicht Public Domain * * Erscheinungs - * * Datum : 1.05 ca. 4 Wochen nach erscheinen von 1.03 * * : 2.00 ca. Ende Oktober '89 , nur bei mir zu beziehen. * * * * (c) 7/1989 by Rainer Hain * * * **************************************************************************** Weitere Informationen ber die einzelnen Versionen , Bezugsquellen , Preise usw. entnehmen sie bitte im Anhang EXTENDED INFORMATIONS. Achtung : Die PD Version 1.03 darf nur komplett mit allen auf der Diskette enthaltenen Dateien kopiert und weitergegeben werden. Es drfen keine nderungen in den Dateien vorgenommen werden. Die Beispiel Module , sofern sie jemand verwenden kann , knnen in jedem eigenem Programm ohne Einschrnkungen meinerseits verwendet werden. Inhaltsverzeichnis : I : Bedienungsanleitung II : Installation III : ber die Entwicklung und Entstehung von PASMANAG.PRG IV : Extended Informations I : Bedienungsanleitung ------------------------- Das MENUE : ----------- Das Menue besteht aus 5 Titeln mit mehreren Eintrgen. Weiterhin sehen sie im Menue , wenn Option gesetzt , die aktuelle Uhrzeit und , immer , den aktuellen Drive. Zb. A: oder D: usw. ! Der Titel DESK : ---------------- Dieser Titel wird durch das Atari Symbol dargestellt. Wie gewohnt gibt es hier nur einen Eintrag , dieser jedoch hat es in sich! Wenn sie diesen Eintrag ' PASMANAG... ' anwhlen dann bekommen sie folgende Informationen auf den Monitor. 1 : Information ber den Autor von PASMANAG.PRG (natrlich!) 2 : Freier RAM Speicher 3 : Freier Speicher auf Diskette 4 : Belegter Speicher auf Diskette 5 : Disketten Format 6 : Aktuelles Laufwerk 7 : Datum der Fertigstellung 8 : Info ber benutzte Programmiersprache 9 : Info ber benutztes Atari ST System Weiterhin erfahren sie ob die mit PASMANAG.PRG erreichbaren Komponenten in den bei Programmstart angegebenen Suchpfaden existieren. Existierende Komponenten sind selektiert. Als erreichbare Komponenten wurden folgende Programme vorgegeben: Editor : 1 : EDIT_TOS.PRG / Public Domain 2 : CCD EDITOR.TOS 3 : CCD EDITOR.PRG 4 : CCD TEMPUS.PRG Pascal : 1 : COMPILER.PRG 2 : LINKER.PRG 3 : PASTRIX 4 : PASGEM 5 : PASLIB PASMANAG : 1 : PASMANAG.OLF (erklrung kommt noch) Diese Funktion wird bei Programmstart automatisch aufgerufen , so das sie bei Programmstart sofort ber alle wichtigen Informationen und alle Installationen informiert werden. Rufen sie diese Funktion nach Programmstart nocheinmal auf so wird der Speicher nur gemessen wenn sie eine Funktion ausfhrten die auf irgendeinen Drive zugreift. Die Installation der Komponenten wird nur dann erneut berprft wenn sie Optionen geladen / gesichert haben oder PROGRAMME FINDEN aufgerufuen haben Ist dies nicht der Fall so wird die Box mit den zuletzt angegebenen Parametern dargestellt , sie geht davon aus das noch dieselbe Diskette im aktuellen Laufwerk liegt. Tastaturkommando : I oder i (Info) Der Titel EDITIEREN : --------------------- Hier knnen sie 4 (vier) Editoren aufrufen. 2 (zwei) davon sind als TOS Editoren und die anderen 2 (zwei) als GEM Editoren definiert. Sie knnen selbstverstndlich andere Editoren benutzen als vorgegeben, jedoch die angegebenen funktionieren einwandfrei und sind getestet. Sollten sich also mit einem anderen Editor Probleme auftun so testen sie einen anderen oder benutzen sie bitte die/den vorgegebenen. In den Eintrgen PD TOS Editor und CCD TOS Editor sollten nur TOS Editoren aufgerufen werden da die Maus versteckt wird bei Aufruf eines Editors ber eine TOS Eintrag. Im Eintrag CCD GEM Editor knnen sie jeden GEM Editor ausser EDIMAX verwenden , da dieser (EDIMAX) die Maus fr sich behlt nach beenden von EDIMAX. Im Eintrag TEMPUS 2.05 sollte nur TEMPUS aufgerufen werden , da sie hier im gegensatz zu den anderen Editor Eintrgen bis zu 4 (vier) mal die File Select Box auf den Monitor bekommen. Und da sind wir auch schon bei einer Besonderheit von PASMANAG.PRG. Sie knnen TEMPUS bis zu 4 (vier) Dateien zum einladen bergeben. Sollte die dabei entstehende Commandline lnger als 124 Zeichen sein so wird solange der letzte Name abgeschnitten bis die lnge der Commandline unter 125 Zeichen ist. Es werden dann eben nur 3 oder gar 2 Dateien eingeladen. Ist die Lnge der Commandline schon bei der 3. (dritten) Dateiauswahl berschritten so erscheint die 4. (vierte) File Select Box nicht mehr. Ich hoffe dieses Featur sagt ihnen zu. Ich benutze PASMANAG.PRG schon allein aus diesem Grund. Dabei gebe ich TEMPUS als TEMPUS und CCD GEM Editor an um wenn ich nur 1 (eine) Datei einladen will die Abfrage von TEMPUS nach einer weiteren Datei zu umgehen. Das ist usserst wirkungsvoll. Geben sie im TEMPUS Eintrag aber zb. den CCD GEM Editor an so wird bei der Auswahl von mehreren Dateien die letzte eingeladen. Im Eintrag ENDE wird wie sollte es anders sein PASMANAG.PRG beendet. Auch diese Funktion ist sehr ntzlich! Tastaturkommandos : TEMPUS = T oder t CCD GEM = G oder g CCD TOS = E oder e PD TOS = p oder p ENDE = kein Tastaturkommando Der Titel AUSFHREN : Hier rufen sie folgende Programme auf: Eintrag | Programm ------------------------|------------------ COMPILER | Pascal Compiler 2.04 LINKER | Pascal Linker 1.1 , 2.00 COMPILIERE ALLE | Compileraufruf fr mehrere Compiler Files | Hier mssen sie eine Datei mit der Extension | .SCF (Source Compiler Files) ffnen , aus der | dann die entsprechenden Namen und Suchpfade | der zu Compilierenden Files entnommen werden. | Erstellt wird diese Datei ber die Auswahl | OPTIONEN / COMPILER FILES.Darber spter mehr. | LINKER OBJEKT | Das fertige Linker Ergebnis wird hier sofort | ausgefhrt.Wenn sie ACC's programmieren wird | diese Funktion mit einer Fehlermeldung | abgebrochen.Fehlermeldungen gibt es eigentlich | fr fast alle Funktion. | AUSWAHL OBJEKT | Hier starten sie ein beliebiges Programm welches | ber eine File Select Box ausgewhlt wird. | Bei beiden Aufrufen ( LINKER OBJ/AUSWAHL OBJ) | erscheint , wenn Option gesetzt , eine Mglich- | keit zur Eingabe einer Commandline von bis zu | 70 Zeichen. Bei Fehlerhaftem Compilerlauf werden sie nach Beendigung desselben gefragt ob sie die Datei zum Editor schicken wollen. Der Textcursor wird nicht an die Fehlerhafte Stelle gesetzt , daher empfiehlt es sich den Compilervorgang nicht zu Unterbrechen wenn Fehler auftauchen , da sonst die .ERR Datei nicht oder unvollstndig existiert. Tastaturkommandos : COMPILER = C oder c LINKER = L oder l COMPILIERE ALLE = A oder a LINKER OBJEKT = S oder s AUSWAHL OBJEKT = R oder r Der Titel OPTIONEN : Hier knnen sie die verschiedenen Optionen von PASMANAG.PRG oder ST PASCAL PLUS einstellen. Als Optionen gibt es folgende : Eintrag | Optionen ------------------------------------------------- COMPILER | Compiler Optionen : | --------------------- | Mglich sind : | ---------------- | Debug Modus | Stapel & Heap berprfung | Bereichsprfung | Lokale Variablen lschen | GEM Dialog darstellen | Testlauf ( ohne das .O File geschrieben wird ) | Text listen auf Monitor | Linker Aufruf ( nur 2.00 ) | Linker | Linker Optionen : | ------------------- | Mglich sind : | ---------------- | ACC , PRG , TOS , TTP , APP generieren | Zustzliche Linkfiles bis 80 Zeichen | .OLF Datei wird erkannt durch '#' Zeichen | wie im PASCAL MANAGER | Die Buttons laden,sichern im LINKER & COMPILER | Dialog sind noch nicht implementiert | Wichtig ! | Die eingabe der Linker Files erfolgt anders | als beim CCD MANAGER. | Bei PASMANAG.PRG knnen sie bis ans Ende der 1. | Zeile schreiben und in der 2. weiterschreiben. | Sie knnen aber auch in der 1. beginnen und in | der 2. Zeile. | BSP. : | A:\PASSHELL.ARB\SHELMAIN.O,D:\PAS | CAL\PASTRIX | oder : | A:\PASSHELL.ARB\SHELMAIN.O, | D:\PASCAL\PASTRIX | Das Komma in der 1. Zeile muss aber dann sein | COMPILER FILES | .SCF (Source Compiler Files) Datei erstellen | ber die dann die Funktion COMPILIERE ALLE | ausgefhrt wird. LINKER FILES | wie COMPILER FILES nur das die Namen in der .OLF | Datei zum Hauptmodul hinzugelinkt werden. | Achtung ! | Sie werden nach jedem angegebenen File gefragt | ob sie noch ein Modul angeben wollen. | Wenn nicht mssen sie die Alarmbox mit nein | verlassen , da ansonsten der Linker nach einem | Modul ' ,, ' sucht und abbricht weil er es nicht | finden kann. | Verlassen sie die Alarmbox uber Ja so mssen sie | noch ein Modul angeben oder nochmal von vorne | beginnen mit der Erstellung der .OLF Datei ! | LADEN / SICHERN | Hier laden sie die Optionen aus einer .INF | Datei. Dabei werden alle Einstellbaren Optionen | neu gesetzt. | PROGRAMME FINDEN | Hier legen sie komfortabel ber die File Select | Box die einzelnen Suchpfade von TEMPUS, EDITOR, | COMPILER usw. fest! | Hier gibt es den Button PASMANAG.OLF. | In dieser Datei stehen die Pascal Library | Suchpfade. | Zb. A:\PASCAL\PASTRIX, | B:\GEMLIB\PASGEM, | C:\STDLIB\PASLIB | | Alles klar ? | | | PASMANAG... | Hier stellen sie die PASMANAG.PRG Optionen | ein. | Als da wren : | Editoren sperren und aktivieren , somit knnen | sie die Arbeit mit einem bestimmten Editor | von vornherein ausschliessen. | Uhrzeit ein/ausschalten | Growboxen ein/ausschalten | Commandline Abfrage bei Externem Programmstart | ein/ausschalten Der Titel DATEI : ----------------- Hier knnen sie 3 Funktionen aufrufen die ihnen bekannt sein sollten. 1 : Ordner anlegen 2 : Ordner lschen ( wenn er leer ist ) 3 : Datei lschen ( ist immer ntzlich ) Der Titel SPEZIELL : Hier knnen sie alle Suchpfade auf eins von acht whlbaren Laufwerken setzen. Alle Suchpfade werden auf das Hauptdirectory gesetzt. Dieser Titel und der Titel DATEI sind eigentlich gedacht fr Programmierer die mit der Original File Select Box arbeiten. Sie ist im Erscheinen doch einfach schneller als so mancher Ersatz, obwohl jener natrlich oft ber einige ntzlich Extras verfgt. Jedenfalls brauchen sie nicht unbedingt eine andere File Select Box als die System eigene. Soviel zur Bedienung.Sollte irgendetwas nicht funktionieren oder Schwierig- keiten bereiten so setzen sie sich bitte mit mir in Verbindung ber im Text- kopf angegebene Adresse. Ideen fr Verbesserungen oder Erweiterungen nehme ich gerne entgegen und werde sie auch , sofern ich eine gute Lsung gefunden habe , in der nchsten Version bercksichtigen. Beachten sie jedoch eins. Diese Shell entstand aus dem Gedanken heraus einen Pascal Manager fr den 520 ST zu schreiben. Die Version 1.03 befrchte ich ist wohl doch etwas zu gross , weshalb ich mich entschloss extra eine Version fr den 520 ST zu Programmieren. Diese Version ( 1.05 ) wird ca.4 Wochen nach Erscheinen von 1.03 ber den PD Service , so hoffe ich , zu beziehen sein.Oder aber auch direkt bei mir. Nheres siehe EXTENDED INFORMATIONS. II : Installation ------------------- Zur Installation von PASMANAG.PRG existiert die Datei PASMANAG.INF In dieser Datei knne sie alle Optionen speichern die sie bei Programm- start eingestellt wissen mchten. Optionen die in dieser Datei abgespeichert werden : Suchpfade fr : TEMPUS.PRG EDITOR.PRG EDIT_TOS.PRG EDITOR.TOS /.TTP COMPILER.PRG LINKER.PRG PASMANAG.OLF ZUSTZLICHE LINKFILES ZUSTZLICHE LINKFIES Diverse Optionen fr ST PASCAL PLUS & PASMANAG.PRG ( Siehe Menuetitel OPTIONEN ) Sie knnen selbstverstndlich auch eine andere Datei zum Optionen speichern erffnen , jedoch nur PASMANAG.INF wird bei Programmstart eingelesen und ausgewertet. III : ber die Entstehung von PASMANAG.PRG ---------------------------------------------------- Auf die Idee kam ich als ich noch einen 520 ST mein eigen nannte. Aufgrund der Grsse des MANAGER 's von CCD und einiger Accessorys kam ich sehr schnell an die Grenze der Speicherkapazitt und so dachte ich mir , Mensch programmier doch einfach mal eine Shell fr Pascal! Es gab dann Versionen von 0.1 bis 1.00 die alle nicht verffentlicht wurden, da ich tglich neue Erkenntnisse machte , denn ich Programmiere erst seit 1 (einem) Jahr und dann gleich mit PASCAL. Ausserdem kamen mir einige neue Programme ins Haus ( TEMPUS,DRI RSC, PD EDITOREN,GFA ASSMEBLER,TURBO C ) so das ich desfteren das ganze Konzept umgeschmissen habe , anhand der Funktionsweise der anderen Programme! An der Version 1.00 arbeite ich seit dem 14.04.1989 und bin mittlerweile bei der Fehlerbereinigten Version PD 1.03 angelangt. Die Version PD 1.03 benutze ich jetzt seit dem 18.07.1989. Ich habe aber vorher schon um die Version 1.00 usw. zu Programmieren eine ltere nicht verffentlichte Version benutzt. Viele Funktionen habe ich in immer wieder optimierter Form in die nchste Version mit bernommen. So luft jetzt zb. die routine zum Ausfhren von Programmen ber ein und dieselbe Prozedur.Diese Prozedur ist zb. in 1.03 so optimiert das sie als Modul ohne globale Variablen ausgefhrt wird. Das modul wird einfach immer hinzugelinkt. Die Prozedur bernimmt alle Funktionen von Umwandeln der Commandline in den berhmten C_string , Menue deaktivieren und reaktivieren, Fehlermeldung wenn Linken erfolglos,Maus verstecken/freigeben bei TOS Editor Aufruf, Fehlermeldung wenn die Commandline lnger als 124 Zeichen ist(2.00),Dialog darstellen mit kurzfristigem Info welches Programm gestartet wird,prfen ob Programm vorhanden ist usw. Da ich nun DRI RSC 2.1 benutzte und somit die Menue's,Dialoge und Alarmboxen nicht mehr in Pascal programmiere sah ich mich vor neue Probleme gestellt nachdem zb. das DRI RSC beim starten ber T_PASCAL.PRG sein RSC File nicht fand.Weiterhin wenn es von Disk B: gestartet wurde dann wird stur 1 mal ganz kurz auf Laufwerk A: zugegriffen.Und das ist usserst lstig. Als ich dann mein erstes Programm mit RSC File starten wollte stand ich vor demselben Problem mit Ausnahme davon das sich mein Programm ordnungsgemss verabschiedete,whrend das DRI RSC ein Reset erforderlich machte. Um also nicht jedesmal , wenn ich mein Programm testen wollte , T_PASCAL.PRG verlassen zu mssen berlegte ich mir wie kann ich das RSC laden ohne auf Laufwerk A: zuzugreifen wenn es auf B: nicht gefunden wurde , es sich aber auf B: befindet ? Die Lsung ist ein Modul ohne globale Variablen das ein PASCAL RESET auf die angegeben Datei ausfhrt und wenn vorhanden wird das RSC File geladen. Wenn nicht dann musste eine extra Lademglichkeit her. Dafr nahm ich die File Select Box,eine Alarmbox die einen Alarmiert wenn RSC File nicht gefunden wurde,einen kleinen Infodialog 'RSC File laden', 'RSC File gefunden' und konnte dank der File Select Box das RSC File suchen den Namen selektieren und einladen. Doch pltzlich o'graus lud ich das RSC File vom CCD GEM Editor und siehe da ein neues Problem war geboren. Da ich bisher nur einmal diese mglichkeit zum nachladen des RSC Files hatte und dann auch noch einen falschen Namen angeben konnte war ich natrlich ab und zu in der verzwickten Situation die RESET Taste bettigen zu mssen. Herausgekommen ist nun ein Modul das wiederum ohne globale Variablen aus- kommt und in meiner Arbeits Version 2.00 implementiert ist. Dieses Modul arbeitet nun in einer Schleife die nur dann verlassen wird wenn in der Alarmbox oder in der File Select Box ABBRUCH gedrueckt wurde. Das Problem mit dem falschem Namen existiert nicht mehr.Es wird gnadenlos das Original RSC File eingeladen, egal ob sie keinen Namen,einen falschen, oder einen nicht existenten Namen angeben , der Interessiert garnicht. Das hat wiederum den Nachteil das dieses Modul jetzt eine grsse von 3880 bytes hat , jedoch auch den Vorteil das man nur noch den Ordner ffnet und OK drueckt.Der Name ist ja nicht von bedeutung. Ach ja , der automatische Zugriff auf Drive A: wird dadurch unterbunden das immer erst mit PASCAL RESET auf die Datei DATEINAME.RSC im eingestellten Pfad zugegriffen wird. Wenn das erfolgreich war dann wird die AES oder GEM (was weiss ich ?) Funktion Load_Resource(DATEINAME.RSC) ausgefhrt. Ich wei nicht ob ich richtig liege , aber ich vermute das eben diese Funktion einen Zugriff auf Drive A: verursacht , da ich seit ich mit dem neusten Modul arbeite keinerlei Probleme mehr mit dem RSC File nachladen hab. Sie werden jetzt sicher sagen , 'Ist ja alles schn und gut aber 3880 bytes?' Nun dann sage ich wem es zulang ist der kann es ja wenigstens als Programmierhilfe benutzen , denn das ist ein Superfeature zum Programmieren. Und ich beabsichtige bei der Fertigstellung dieses Modul und noch so einige andere die beim Programmieren von PASMANAG.PRG angefallen sind mit zuverffentlichen.Allerdings wird diese Diskette nur ber mich zu beziehen sein. Ich befrchte nun das die Version PD 1.03 etwas zu gross geraten ist,da ich sie ja eigentlich fr einen 520 ST Programmiert hatte. Programmiert wurde sie aber auf einem 1040 ST mit 1(ab und zu 2) Laufwerk/en und einer 430 K RAM Disk.Weiterhin hatte ich ein Accessory von ca. 2500 bytes das das Desktop aus einem gestartetem Programm heraus wieder in den Einschalt zustand setzte (ST Computer / 4/89 / S.88 / Turbo C) und ein RAM Frei ACC. ( PD ca.3300 bytes ). RAM Frei mit diesem ACC gemessen : Angabe : 295 - 308 K Gemessen mit PASMANAG.PRG : Angabe : 305XXX - 315XXX Aus dieser Befrchtung heraus beschloss ich eine neue PD Version zu schreiben die extra auf einen 520 ST zugeschnitten ist. Ich wrde mich daher ber Ideen und Zuschriften von 520 ST Besitzern ,die mein Programm benutzen mchten , freuen. Besonderes Interesse besteht natrlich an Vorschlgen und Ideen in C oder Assembler , da dies den Programmcode wesentlich verkrzen wrde. Nun ich lasse mich berraschen. Ich freue mich natrlich auch ber Kritik. IV : Extended Informations ---------------------------- n.v. = nicht Verffentlicht z.g. = zurckgezogen PD = Public Domain n.PD = nicht Public Domain n.b = nicht beendet(wird noch fertiggestellt) 1M = mindestens 1 Megabyte Versionen von PASMANAG.PRG : 1.00 n.v. 1.01 z.g. PD 1.03 PD 1.05 PD n.b. ( f. 520 ST ) 2.00 n.PD 1M Info zu 1.05 : Die Version 1.05 wird wesentlich kleiner sein als die Version 1.03. So wird sie nur noch mit einem Editor laufen der natrlich frei gewhlt werden kann.Weiterhin wird die RSC File Suchfunktion nicht mehr vorhanden sein da dies bei einem 520 ST doch zuviel Speicher schluckt. Und die Compiler Optionen werden fehlen , da , wie ich meine und auch tue , der Programmierer seine Optionen im Programmtext festlegt.Es wird dann nur noch die Testlauf Option und die Text Listen Option geben.Diese werden wiederum im PASMANAG Parameter Dialog eingestellt , da somit eine komplette Prozedur mit Dialog wegfllt.Wenn das genuegend Speicher bringt werde ich aber versuchen noch eine Kopierfunktion einzubauen.Nun , lassen wir uns berraschen. Info zu 2.00 : Die Version 2.00 wird nach meiner Meinung (von seiner eigenen Idee ist man ja am berzeugtsten) ein echter Leckerbissen sein. Allerdings wir sie mindestens 1 Megabyte bentigen. Sie wird ebenfalls nur noch mit einem Editor arbeiten aber hat noch ein paar schne Zustze. So knnen sie zum Beispiel bis zu 4 (vier) Workfiles festlegen und immer 1 davon als Aktuelles Workfile setzen.Dieses File wird dann zu allen Programmen geschickt ohne das die FSB auftaucht.Diesen Modus knnen sie Umschalten in den File Select Modus wo sie dann andere Dateien ber die FSB zu den einzel- nen Programmen schicken knnen.Sie knnen diese Workfiles auch wieder Ent- fernen indem sie ein Workfile freigeben zum Neufestlegen. Damit das nicht solange dauert gibt es hierfr Tastaturkommandos und in der Menuezeile wird durch ein grosses 'W' oder 'F' angezeigt in welchem Modus sie sich befinden. W = Workfile ( wenn , dann steht daneben die Nummer , die sie sich allerdings merken mssen ) F = File Select Modus Selbstverstndlich schalten sie auch die einzelnen Workfiles ber die Tastatur um und werden neben dem 'W' ber die Nummer Informiert. Als neue Optionen kommen zb. die Option Linker Aufrufen.Dies funktioniert auch wenn sie aus dem CCD GEM Editor oder aus TEMPUS heraus den Linker an- fordern.Vorher wird Compiliert und nur wenn das erfolgreich und die Option gesetzt ist wird der Linker aufgerufen. Im GEM Editor = Menueeintrag LINKER In TEMPUS = ^2 Ziffernblock Die Linker Optionen bleiben jedoch vollstndig erhalten. . %p.. %pMFREE_RAMDUP &pRAM_UHR PAS )p UHRZEIT PAS ,pFREE_RAMO .pRAM_UHR O 1p^FREE_RAMACC 4p!UHRZEIT O 7pUHRZEIT ACC 9p~RAM_UHR ACC = 0 THEN BEGIN ACC_NAME := ' Freier Speicher'; MENU_ID:=MENU_REGISTER(AP_ID,ACC_NAME); WHILE TRUE DO BEGIN EVENT:=GET_EVENT(E_MESSAGE,0,0,0,0,FALSE,0,0,0,0,FALSE, 0,0,0,0,MSG,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY); IF MSG[0] = AC_OPEN THEN BEGIN RH_GET_RAM(RAMFREI); (* DAS IST DIE RAMFREI PROZEDUR *) ALARM:=DO_ALERT(CONCAT('[1][ RAMFREI ACCESSORY 1.0 |', '06.06.1989 BY RAINER HAIN ! |', ' |', '',RAMFREI,' BYTES FREI |', ' ]', '[ OK ]'),1); END; (* AC_OPEN *) END; (* WHILE TRUE *) END; (* APID >= 0 *) END. { ---------- BEISPIELPROGRAMM FR MODUL GET_RAM.O & TIMELIB.O ---------- } (* *) (* RAINER HAIN , 3500 KASSEL , FIEDLERSTR.78 , 05.07.1989 *) (* ST PASCAL PLUS VERSION 2.04 *) (* *) { ---------- BEISPIELPROGRAMM FR MODUL GET_RAM.O & TIMELIB.O ---------- } {$S0,A+,D-,T-,R-,P-} PROGRAM RAMFREI_ACC_MIT_UHR; CONST {$I D:\GEMCONST.INC} TYPE {$I D:\GEMTYPE.INC} VAR ALARM, MENU_ID, AP_ID, EVENT, DUMMY : INTEGER; ACC_NAME : STR255; MSG : MESSAGE_BUFFER; RAMFREI : STR255; UHRSTRING : STR255; STATUS : BOOLEAN; {$I D:\GEMSUBS.INC} {$I A:\INCLUDE\RAM_SUBS.INC} (* HIERIN BEFINDET SICH DIE DEKLARATION *) (* FR DIE RAMFREI PROZEDUR *) {$I A:\INCLUDE\TIMESUBS.INC} (* HIERIN BEFINDET SICH DIE DEKLARATION *) (* FR DIE UHRZEIT PROZEDUR *) BEGIN AP_ID := INIT_GEM; IF AP_ID >= 0 THEN BEGIN ACC_NAME := ' Ramfrei / Uhrzeit'; STATUS := TRUE; MENU_ID:=MENU_REGISTER(AP_ID,ACC_NAME); WHILE TRUE DO BEGIN EVENT:=GET_EVENT(E_MESSAGE,0,0,0,0,FALSE,0,0,0,0,FALSE, 0,0,0,0,MSG,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY); IF MSG[0] = AC_OPEN THEN BEGIN RH_GET_RAM(RAMFREI); (* DAS IST DIE RAMFREI PROZEDUR *) RH_GET_UHR(575,14,UHRSTRING,STATUS); (* UHRZEIT PROZEDUR *) ALARM:=DO_ALERT(CONCAT('[1][ RAMFREI/UHRZEIT 1.0 |', '06.06.1989 BY RAINER HAIN ! |', ' |', 'Bytes frei : ',RAMFREI,' |', 'Uhrzeit : ',uhrstring,' ]', '[ OK ]'),1); END; (* AC_OPEN *) END; (* WHILE TRUE *) END; (* APID >= 0 *) END. { ---------------- BEISPIELPROGRAMM FR MODUL TIMELIB.O ---------------- } (* *) (* RAINER HAIN , 3500 KASSEL , FIEDLERSTR.78 , 05.07.1989 *) (* ST PASCAL PLUS VERSION 2.04 *) (* *) { ---------------- BEISPIELPROGRAMM FR MODUL TIMELIB.O ---------------- } {$S0,A+,D-,T-,R-,P-} PROGRAM UHRZEIT_ACC; CONST {$I D:\GEMCONST.INC} TYPE {$I D:\GEMTYPE.INC} VAR EVENT, DUMMY : INTEGER; MSG : MESSAGE_BUFFER; UHRSTRING : STR255; STATUS : BOOLEAN; {$I D:\GEMSUBS.INC} {$I A:\INCLUDE\TIMESUBS.INC} (* HIERIN BEFINDET SICH DIE DEKLARATION *) (* FR DIE UHRZEIT PROZEDUR *) BEGIN IF INIT_GEM >= 0 THEN BEGIN STATUS:=TRUE; dummy:=do_alert(concat('[1][ Uhrzeit Accessory 1.00 |', '~~~~~~~~~~~~~~~~~~~~~~~~ |', '06.06.1989 by Rainer Hain |', 'ST Pascal Plus Version 2.04 ]', '[ Ein | Aus ]'),1); if dummy = 2 then status:=false; WHILE TRUE DO BEGIN EVENT:=GET_EVENT(E_TIMER,0,0,0,100,FALSE,0,0,0,0,FALSE, 0,0,0,0,MSG,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY); RH_GET_UHR(575,14,UHRSTRING,STATUS);(* DAS IST DIE UHRZEIT PROZEDUR *) END; (* WHILE TRUE *) END; (* INIT_GEM >= 0 *) END. `x@JLC@.I###By NA#AC!It0B BABt0B  N43rAmBAC tQ?9Hy N<3p@d ?<BgBgBgBBgBgBgBgBgBgBgBgBgBgHy HyHyHyHyHyHyND329 t(BfHy@NLNTHz?<!N\Hz?<N\Hz?<N\HzBgN\Hy@?<N\Hz?<N\HzT?<N\Hz@?<N\ _"Op?"Q?<Nd3`HyNlBgNA[ OK ] ] BYTES FREI | |06.06.1989 BY RAINER HAIN ! |[1][ RAMFREI ACCESSORY 1.0 | Freier Speicherbssanfheapheap0basepagedbugflag mainexitINIT_GEMMENU_REGGET_EVENRH_GET_RstrbufconcatDO_ALERTclose.`BJLCB.I###By NA#AC!It0B BABt0B  N43rAmAC tQt3@?9Hy N<3p@dF?<BgBgBgBBgBgBgBgBgBgBgBgBgBgHy HyHyHyHyHyHyND329 t(BfHy@NL?<??<Hy@?9@NTN\Hz*?<#NdHz?<NdHz?<NdHz?<NdHy@?<NdHz?<NdHzt?<NdHy@?<NdHzT?<NdHz@?<Nd _"Op?"Q?<Nl3`HyNtBgNA[ OK ] ]Uhrzeit : |Bytes frei : |06.06.1989 BY RAINER HAIN ! |[1][ RAMFREI/UHRZEIT 1.0 | Ramfrei / Uhrzeitbssanfheapheap0basepagedbugflag mainexitINIT_GEMMENU_REGGET_EVENRH_GET_RRH_GET_UstrbufconcatDO_ALERTclose.`C7.I# ^# b# fBy jN.A# lA pC!It0B BA"Bt0B  N|3%xrAmBAC%~tQ?9%xHy%~N3%zp@d ?<BgBgBgBBgBgBgBgBgBgBgBgBgBgHy&~Hy%tHy%tHy%tHy%tHy%tHy%tN3%v29&~t(BfHy&NNhHz?<!NzHz?<NzHz?<NzHzBgNzHy&? n0(rAW0(vCWĄDBd"n0.3@ 4. 3BN^,_ _ N/,HNVAN-HN n0.-H0(rAW0(vCWĄDBd"h /"n / ND`N^,_ _ N/,HNVtA>-HN0.=@2. =A$.-Bx?<(HnHnHnxHntNlN^,_ _PN/,HNVtA6-HN0. =@".-Ax?<rHnHnHnxHntNlN^,_ _\N/,HNVtA^-HN .-@x2.=A4.=B6.=C8.=D:.=E<. =F?<*HnHnHnxHntNlN^,_ _N/,HNVAH-HN/.?. HnHnHnHnN /.Bg?<?.?.?.?.N=B:.<=E&.$-C?<HnHnHnHnNl0.=@ n2.0"n4.2$n6.4&n 8.6(n :.8*n<.:0.N^,_ _3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu _4` _t6 Bo r aSB`2aN _4` _t"x0HgJJjDxvC8zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvC8p0 2H@0RJAfJg<-RBlCSBr aQSCaQN _"_v` _"_60`JfQ$ItRJf` _4v` _46"_JBjtJCkgCe4` BSCr axQSBkalQN _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`N*opodRNu  ^NuH _ g be ^d/LNuHy`Hy*Nt`t _"_ gR e6G$S" geb"*f&"`&A%S"`&J`а|gb<|fP"9gH$A#`:"9g6$A#`("9g$$A#` @ g"9g $A#"`"E ^&R"$b Hy NJgr"Qd2`"SjN _"_ " g be ^dgR m @ e@E"fB#@B$`p&A"+ef "'I`Z"#@B$`L$K`ư| f"#`4|f"#` |f"#` "#NHeap overruns stackPointer NILPointer not in heapH8 _0"_e /L8NuHyxN/B98F/|8FNuH8 _0 @f0"|88p` "_J@jpE8Fr4@ BbBS@kQ/L8NuH8 _4SBkt82$_rAbd0 @f0"|88p` "_J@jp6ADb6CG0IS@k$eQ/L8NuH8 _4k2SAk0"_p6B@bE0)CS@kQ/L8NuH8 _2$_r0 @f0"|88p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/L8NuH8 _4kF2SAk>0 @f0"|88p` "_J@jpJBg@b6B@oCE8FSBkQ/L8NuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"y ^e HyHNN#9N#9J .f -|8`-|8 nNн9Jf y9NNStack overruns heap09 ZNu09 \By \Nu _3 ZBy \NBy \Nu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc.  .   B 86 0 0 $"$, b":,>4@" f,tPd2 * R">:d"F:6B.x*6 *jV0b,4 "T & & (,&  H          J6  "D    * "FV ( *@ B @ (  `<JLC<.I###By NAN#AC!It0B BABt0B  N4rAmp3:N=B:.<=E&.$-C?<HnHnHnHnN0.=@ n2.0"n4.2$n6.4&n 8.6(n :.8*n<.:0.N^,_ _3| NAXNu/")x itg$H@//?) ?<@NA LJof _NuH.6 _0"_e /L.6NuHyN/B9.^/|.^NuH.6 _0 @f0"|.4.4p` "_J@jpE.^r4@ BbBS@kQ/L.6NuH.6 _4SBkt82$_rAbd0 @f0"|.4.4p` "_J@jp6ADb6CG0IS@k$eQ/L.6NuH.6 _4k2SAk0"_p6B@bE0)CS@kQ/L.6NuH.6 _2$_r0 @f0"|.4.4p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/L.6NuH.6 _4kF2SAk>0 @f0"|.4.4p` "_J@jpJBg@b6B@oCE.^SBkQ/L.6NuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"ye HypNN#/f#/b .f -|``-|` nNн/bf y/fNStack overruns heap09Nu09ByNu _3ByNByNu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc.  0 "0 ,H ,,6 8 ,2 v8 ,6 ,,T  T *jV0b,4 "T & & (,&  H           ( *@ B @ (  `&pC@.I#(D#(H#(LBy(PN.A#(RA(VC!It0B BA*Bt0B  Nb3-^rAmAC-dtQt30?9-^Hy-dN3-`p@dF?<BgBgBgBBgBgBgBgBgBgBgBgBgBgHy.dHy-ZHy-ZHy-ZHy-ZHy-ZHy-ZN3-\29.dt(BfHy.N?<??<Hy/?90N"N#NHz*?<#N#`Hz?<N#`Hz?<N#`Hz?<N#`Hy.?N^,_ _XN/,HNVtAn-HN%0.=@2.=A4.=B6.=C8.=D:.=E<.=F0.=@2. =A?<3HnHnHnxHntNRN^,_ _N/,HNVnAN-HN%0. rAl=A 0. =@".-Ar?<2HnHnzHnrHnnNR0.z=@0.N^,_ _\N/,HNVAv-HN%/.BgHnHnHnHnNBgBgBgBgBg?.?.?.?.N/.Bg?<?.?.?.?.N >/.?. N =@0.N^,_ _\N/,HNVAH-HN%/. BgHnHnHnHnN?<BgBgBgBg?.?.?.?.N8N^,_ _XN/,HNVtA.-HN% . -@x?<6HnHnHnxHntNRN^,_ _XN/,HNVAR-HN%p=@ n0.rtBg" n R@"n0.rR@=@` n 0.N^,_ _PN/,HNVA-HN% n rf6p. tBlԼ//N!0`Hм//N!0p=@r. =A`$ n "P0.S@0.rE 2Rn0.no n "Pr. tN^,_ _N/,HNVA8-HN% n0.-H0(rAW0(v CWĄD0(xDWńEBd$ /A"Op?"QN`0(tBW0(|FWA0(rAWÊC0(vCWĊDEd"h -I0(AW0(CWňEp.:)E\BDd 4)SBB tfp.R@3@/ E&Op?&QN> n0(rAW0(vCWĄDBd"n0.3@ 4. 3BN^,_ _ N/,HNVAN-HN% n0.-H0(rAW0(vCWĄDBd"h /"n / ND`N^,_ _ N/,HNVtA>-HN%0.=@2. =A$.-Bx?<(HnHnHnxHntNRN^,_ _PN/,HNVtA6-HN%0. =@".-Ax?<rHnHnHnxHntNRN^,_ _\N/,HNVtA^-HN% .-@x2.=A4.=B6.=C8.=D:.=E<. =F?<*HnHnHnxHntNRN^,_ _N/,HNVAH-HN%/.?. HnHnHnHnN/.Bg?<?.?.?.?.N?<?. NN^,_ _TN/,HNVA.-HN%0. rA?NR?<h0. rA?NN^,_ _TN/,HNVAl-HN%?. NH0. =@rAo$t=BS@=@ vCox=D@=@ ?<?.N*0.rAo?<?. NN^,_ _TN/,HNV6AD-HN%0. =@2.=A?<'Bg?<BgHnHnHnhHnPHn8BgNN^,_ _XN/,HNVA-HN%?<j?. NN^,_ _TN/,HNV8AB-HN%p=@P2. =AR?< BgBg?<HnHnHnhHnPHn8BgNN^,_ _TN/,HNVA-HN%?<?. N N^,_ _TN/,HNV2A-HN%Hn2Hn4Hn6N\BgBgNn0.=@P2.=AR4.BS@=@T=AV6.BSC=CX8. DSA=AZ:.=E\<.DSF=F^=E`0.=@b?<BgBg?<HnHnHnhHnPHn8?<N?.4?.6NN^,_ _PN/,HNV8A`-HN%0.=@P2.=AR4.BS@=@T6. CSA=AV?< ?< Bg?<HnHnHnhHnPHn8?<NN^,_ _PN/,HNVAr-HN%HnHnHnNxBgN?<NHnHnHnN\?.Nx?.?.?.?. N*?.N?.N?.NLN^,_ _PN/,HNVA8-HN%p.R@rAHnN/?. N=@0.N^,_ _N/,HNVA-HN%0.F=@2.@=A4.D=B6.B=C8.:zE=D<.8=F0.6=@2.4=A4.2=B6.0E=C8..=D <.,=F 0.*=@2.(=A4.>=B:.<=E&.$-C?<HnHnHnHnNR0.=@ n2.0"n4.2$n6.4&n 8.6(n :.8*n<.:0.N^,_ _3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu _4` _t6 Bo r aSB`2aN _4` _t"x0HgJJjDxvCAzp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvCAp0 2H@0RJAfJg<-RBlCSBr aQSCaQN _"_v` _"_60`JfQ$ItRJf` _4v` _46"_JBjtJCkgCe4` BSCr axQSBkalQN _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`N*opodRNu (DNuH" _ g(He(Dd/L"NuHy#`Hy#Nt`t _"_ gR e6G"$S" geb"*f&"`&A%S"`&J`а|gb<|fP"9"gH$A#"`:"9"g6$A#"`("9"g$$A#"` @ g"9"g $A#""`"E(D&R"$b Hy"NJgr"Qd2`"SjN _"_ " g(He(DdgR m @ e@E""fB#@B$`p&A"+ef "'I`Z"#@B$`L$K`ư| f""#"`4|f""#"` |f""#"` ""#"NHeap overruns stackPointer NILPointer not in heapHA _0"_e /LANuHy%^N/B9A./|A.NuHA _0 @f0"|AAp` "_J@jpEA.r4@ BbBS@kQ/LANuHA _4SBkt82$_rAbd0 @f0"|AAp` "_J@jp6ADb6CG0IS@k$eQ/LANuHA _4k2SAk0"_p6B@bE0)CS@kQ/LANuHA _2$_r0 @f0"|AAp` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/LANuHA _4kF2SAk>0 @f0"|AAp` "_J@jpJBg@b6B@oCEA.SBkQ/LANuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"y(De Hy&.NN#B6#B2 .f -|&`-|& nNнB2f yB6NStack overruns heap09(@Nu09(BBy(BNu _3(@By(BNBy(BNu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc.  .   N @ 86 0 0 $"$, b":,>4@" f,tPd2 * R">:d"F:6B.x*6"0 ,H ,,6 8 ,2 v8 ,6 ,,T  T *jV0b,4 "T & & (,&  H          J6  "D    * "FV ( *@ B @ (   { ---------------- BEISPIELPROGRAMM FR MODUL GET_RAM.O ---------------- } (* *) (* RAINER HAIN , 3500 KASSEL , FIEDLERSTR.78 , 05.07.1989 *) (* ST PASCAL PLUS VERSION 2.04 *) (* *) { ---------------- BEISPIELPROGRAMM FR MODUL GET_RAM.O ---------------- } {$S0,A+,D-,T-,R-,P-} PROGRAM RAMFREI_ACC; CONST {$I D:\GEMCONST.INC} TYPE {$I D:\GEMTYPE.INC} VAR ALARM, MENU_ID, AP_ID, EVENT, DUMMY : INTEGER; ACC_NAME: STR255; MSG : MESSAGE_BUFFER; RAMFREI : STR255; {$I D:\GEMSUBS.INC} {$I A:\LIB\RAMFREI.LIB\GET_RAM.INC} (* HIERIN BEFINDET SICH DIE DEKLA- *) (* RATION FR DIE RAMFREI PROZEDUR *) (* RH_GET_RAM ! *) (* *) (* SIEHE GET_RAM.ANL ! *) BEGIN AP_ID := INIT_GEM; IF AP_ID >= 0 THEN BEGIN ACC_NAME := ' Freier Speicher'; MENU_ID:=MENU_REGISTER(AP_ID,ACC_NAME); WHILE TRUE DO BEGIN EVENT:=GET_EVENT(E_MESSAGE,0,0,0,0,FALSE,0,0,0,0,FALSE, 0,0,0,0,MSG,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY,DUMMY); IF MSG[0] = AC_OPEN THEN BEGIN (* JETZT WIRDS INTERESSANT *) RH_GET_RAM(RAMFREI); (* DAS IST DIE RAMFREI PROZEDUR *) (* IN " RAMFREI " ERHALTEN SIE EINEN *) (* STR255 ZURCK DEN SIE , WIE HIER IM *) (* BEISPIEL , BERALL HINSETZEN KNNEN , *) (* WO FR EINEN STR255 PLATZ IST ! *) (* *) (* IN PASMANAG.PRG GEHT DIESER STR255 IN *) (* DEN INFODIALOG ! *) (* DAS VERWENDETE MODUL IST EBEN JENES *) (* MODUL DAS HIER AUCH VERWENDET WIRD ! *) ALARM:=DO_ALERT(CONCAT('[1][ RAMFREI ACCESSORY 1.0 |', '06.06.1989 BY RAINER HAIN ! |', ' |', '',RAMFREI,' BYTES FREI |', ' ]', '[ OK ]'),1); END; (* AC_OPEN *) END; (* WHILE TRUE *) END; (* APID >= 0 *) END. { ------------------------------ DAS WARS ------------------------------ } . Ep.. EpMRAMFREI LIBFpDISKFREILIBRpUHRZEIT LIBap. Gp.. GpGET_RAM O IpGET_RAM INC KpGET_RAM ANL MpZINT2STR O Pp.`^*JLNV/.?<HNAN^ _XN/,HNVA4-H n ?<B/p/N/N \?< n /NN^,_ _XNRH_GET_Rwrslint0INT_2_ST { --------------------- Deklaration fr RAMFREI.O --------------------- } (* freier speicher im Ram *) PROCEDURE RH_GET_RAM( var spestr : str255 ); EXTERNAL; { ---------------- Ende der Deklarationen fr RAMFREI.O --------------- } ************************************************************************* * * * * * Anleitung fr Modul/Library GET_RAM.O ! * * ------------------------------------------- * * * * * ************************************************************************* Wenn sie das Modul GET_RAM.O in ihrem Programm verwnden wollen , mssen sie per Include Anweisung die Datei GET_RAM.INC in ihr Programm einbeziehen. Die Prozedur ist folgendermassen deklariert : PROCEDURE RH_GET_RAM( var spestr : str255 ); EXTERNAL; In der Variablen SPESTR erhalten sie eine STR255 der Lnge 8 den sie nach Aufruf der Prozedur irgendwohin schreiben knnen und somit fr ihr Programm sichtbar machen knnen. Beim Linken mssen sie das Modul GET_RAM.O und ! das Modul INT2STR.O mit angeben und hinzulinken. Das Modul INT2STR.O wird bentigt , da GET_RAM.O nur einen Integer Wert liefert , um eben diesen Integer Wert in einen STR255 umzuwandeln. Dieser STR255 wird dann von GET_RAM.O zurckgeliefert. Das Modul INT2STR.O muss nach ! GET_RAM.O hinzugelinkt werden. Tun sie das nicht so ist diese Prozedur nicht sichtbar fr GET_RAM.O ! Somit drfte eigentlich alles klar sein. Und bitte blockieren sie ihren Atari jetzt nicht mit lauter Ramfrei Accessorys ! `t*JL/,HNVA`-H n pR@=@=@2.=A`4 n N ?< ?<N/?<N"_p? QRn0.noN^,_ _\NINT_2_STstrbufconcat. Tp.. TpGET_DISKO UpGET_DISKINC XpGET_DISKANL ZpoINT2STR O ]p.`R*JLNV?./. ?<6NAN^ _\NNV?<NAN^Nu/,HNVA-H np  n/N _rAA@HnBgN n?<B/ .".//N"$.//N$/N \?< n/N n?<B/ .".$.//N$ .//N /N \?< n/N n ?<B/ .".//N"$.//N$/N \?< n /NN^,_ _ONintmultwrslint0INT_2_ST { --------------------- Deklaration fr SPEICHER.O --------------------- } (* freier speicher im Ram und auf angesprochenem Laufwerk *) PROCEDURE RH_DISKFREE( var formatstr, drivestr, belegtstr, freistr : str255 ); EXTERNAL; { ---------------- Ende der Deklarationen fr SPEICHER.O --------------- } ************************************************************************* * * * * * Anleitung fr Modul/Library GET_DISK.O ! * * ------------------------------------------- * * * * * ************************************************************************* Wenn sie das Modul GET_DISK.O in ihrem Programm verwnden wollen , mssen sie per Include Anweisung die Datei GET_DISK.INC in ihr Programm einbeziehen. Die Prozedur ist folgendermassen deklariert : PROCEDURE RH_DISKFREE( var formatstr, drivestr, belegtstr, freistr : str255 ); EXTERNAL; Inden Variablen ( die Namen sagens eigentlich schon ) erhalten sie folgende Werte zurck : FORMATSTR : Disketten Format. DRIVESTR : Angesprochenes Laufwerk ( A , B , C usw. ). BELEGTSTR : Belegte Bytes auf Diskette. FREISTR : Freie Bytes auf Diskette. Diese STR255 knnen sie nun alle oder auch einzeln verwenden. Beim Linken mssen sie das Modul GET_DISK.O und ! das Modul INT2STR.O mit angeben und hinzulinken. Das Modul INT2STR.O wird bentigt , da GET_DISK.O nur Integer Werte liefert , um eben diesen Integer Werte in STR255 umzuwandeln. Diese STR255 werden dann von GET_DISK.O zurckgeliefert. Das Modul INT2STR.O muss nach ! GET_DISK.O hinzugelinkt werden. Tun sie das nicht so ist diese Prozedur nicht sichtbar fr GET_DISK.O ! Somit drfte eigentlich alles klar sein. Und bitte blockieren sie ihren Atari jetzt nicht mit lauter Diskinfo Accessorys ! `t*JL/,HNVA`-H n pR@=@=@2.=A`4 n N ?< ?<N/?<N"_p? QRn0.noN^,_ _\NINT_2_STstrbufconcat. cp.. cpUHRZEIT O dpUHRZEIT INC fpUHRZEIT ANL ip`0bJLNV?<NNN^Nu/,HNVA-HN-@ nCrQ?<N BgN?<N?< N$ .r t=@ nv H@0@0.HH@@0@ .x?=@H@0@0.HH@@0@ .Ѐ=@H@0@0.HH@@0@0. @d?.?."O"QN,N^,_ _O N00:00:00N4rAmRH_GET_UTEXT_COLTEXT_STYDRAW_MODTEXT_HEIDRAW_STRINIT_GEM (* in modul timelib.o *) PROCEDURE RH_GET_UHR( X,Y : INTEGER; VAR UHRSTRING : STR255; STATUS : BOOLEAN ); EXTERNAL; (* ende modul timelib.o *) ************************************************************************* * * * * * Anleitung fr Modul/Library UHRZEIT.O ! * * ------------------------------------------- * * * * * ************************************************************************* Wenn sie das Modul UHRZEIT.O in ihrem Programm verwnden wollen , mssen sie per Include Anweisung die Datei UHRZEIT.INC in ihr Programm einbeziehen. Die Prozedur ist folgendermassen deklariert : PROCEDURE RH_GET_UHR( X,Y : INTEGER; VAR UHRSTRING : STR255; STATUS : BOOLEAN ); EXTERNAL; In den Variablen X , Y mssen sie je einen Integer Wert bergeben damit das Modul wei wo die Uhrzeit hingeschrieben werden soll. In UHRSTRING erhalten sie zustzlich die Uhrzeit um sie auch an anderen Stellen sichtbar machen zu knnen , als den bergebenen X & Y Werten. bergeben sie in STATUS false so wird die Uhrzeit nicht an die X , Y Positionen gesetzt , und sie erhalten nur den UHRSTRING zurck. INFO : Diese Uhr benutzt die XBIOS Funktion und sieht zb so aus : 15:23:28 Diese Uhr geht im 2 Sekunden Takt. Beim Linken mssen sie das Modul UHRZEIT.O mit angeben und hinzulinken. Somit drfte eigentlich alles klar sein. Und bitte blockieren sie ihren Atari jetzt nicht mit lauter Uhrzeit Accessorys ! . mp.. mpMPASMANAGPRG np[PASMANAGRSC tp@4PASMANAGINF xp `׊a o"h#^#b#f,Ic.N//Bg?<JNA ByjN&NV?<NAN^NuNV?<NAN^NuNV?.?<NAN^ _TN/,HNVA-HAHCp=@r3NNHyHyvN@dp9vr9ȰAoBgNrHy2Hyv?NR`4N-`*@# @b@0;N z`097` Na<`(N]T`N^` @.g @/g @1g`J097`Hy6NyNn` @3g`"W@ @b@0;Nz^097rAg/97?BgN/97?97?<N09737/97?97N0BgNN^,_Nu/,HNVA@-H0972<HH@37`F/97?<NN2/97?<N0p 3>`/97?<NNw/97?<N0p 3>`v/97?<N09@dNfZ/97?<N0p3>`8/97?<N09@dNoX/97?<N0p3>`/97?<N09@dNi/97?<N0p3>`/97?<NNsF/97?<N0p3>`/97?<N09@dNh/97?<N0p3>`L/97?<NNp$/97?<N0p3>`/97?<NNqR/97?<N0p3>`/97?<NNe"/97?<N0p3>`/97?<NHy6NyNr/97?<N0p3>`z/97?<N09@dp3` p3/97?<N0p3>`./97?<N09@dp3` p3/97?<N0p3>`/97?<N09@dp3` p3/97?<N0p3>` @!g @"gZ@A @b4@0;Nn$nnnnVnnn8nv@ @b4@0;Nv0|00X000000J8 @|g"097rAg/97?BgN/97?9>?<N09>37BgNN^,_Nu/,HNVA-H09@dNNrAAA?<?<A"Op?"QNprAt B?BgBgBgHxBgBgBgBgBgBgBgBgBgBgHy7Hy7Hy7Hy7Hy7Hy7Hy7N`37rAf497` N` B g097rAfN097@d N^,_Nu/,HNVA-HBgNrHy2Hz?< NPNdrAf.Hy2NzAhO"O p QN;8`NbHy?A~C6n3%p3%r3%v3%x3%/9P?<Nr tBAf>A"C6n3%p3%r3%v3%x3%/9P?<Nr tBAf>AC6n3%p3%r3%v3%x3%/9P?<Nr tBAf>AjC6n3%p3%r3%v3%x3%/9P?<Nr tBAf>AC6n3%p3%r3%v3%x3%/9P?< Hy^N`/9P?<Hy^N`/9P?< Bg?<N/9P?< Bg?<N/9P?< Bg?<N/9P?< Bg?<N09@d(?<?<?<p.r9Ao*Hy2Hn?NAN^ _TNNV?.?. /. ?<BNAN^ _PN/,HNVnA-Hp.r|Ao*A^"Op?"Q?<N36`AR"O2t"QN/97N09@dNBgBgN\A"Op?"QHnvNHnvBgN=@tN`0.trAmB?.t?<N-@p?.tN .p/r/N" o*A"Op?"Q?<N36`r=At.=Bn`00.rA0t#Bfr@r0CRn0.nnor.RAtABvBgHnvHnHnvN-@rHl&A^"Op?"Q?<N36 n . `&A^"Op?"Q?<N36NHnp/Hzr /N4Bd$.vHôf|NbHzL?<#NtHz?<NtHz?<NtHz?<NtHz?<NtHz?<Nt _"Op?"Q?<N36Bg?<?<?<}?<?<?<BgBgBgBgBgN~/97NP09@dNN^,_ _ON[ Ok ]dere Module sichtbar sind ! ]aufgerufen werden auch fr an-|Prozeduren die als External |berprfen sie ihre Module ob |[3][Linken abbgebrochen !Bitte |LINKER.PRGNrAmNV?<NAN^NuNV?<,NAN^NuNV?.?<-NAN^ _TNNV?<NAN^NuNV?.?<NAN^ _TNNV?./. ?<GNAN^ _\NNV/.?<;NAN^ _XNNV?./. ?<NAN^ _TNNV/.?<ANAN^ _XNNV?.?. /. ?<BNAN^ _PNNV/./. ?.?<VNAN^ _O NNV/.?<9NAN^ _XNNV/.?<:NAN^ _XNNV/.?<HNAN^ _XNNV/./. /.?.?<KNAN^ _ONNV?<0NAN^NuNV?< NMN^NuNV?<NNN^Nu/,HNVA&-HNN09@d(?<?<?<?<(NtHz ?<$NtHy??<NtHz?<NtHz?<NtHz?<NtHz?<Nt _"Op?"Q?<N36/97?<N0096rAf/97?<NA "Op?"QNbHy ?O"O p QHnNHNAJC p?"QN^,_NuEDIT_TOS.PRG/,HNVA-Hp3NNHyHyN@dp9r9AoAC 2t"Qt9 H-BHy ? nC n p0`?<N nC n p0`?<N nC n p0`x?<N nC n p0`T?<N nC\ n p0`0?< N nC6 n p 0` ?< Nf nC n p 0`?< NB nC n p 0`?< N nC n p 0`?< N nC n p 0`|?<N nCx n p0`X?<N nCR n p0`4 @b,@0;N>b:^N^,_ _PNP:O:N:M:L:K:J:I:H:G:F:E:D:C:B:A:/,HNVA-HA0B BBgNrHnHn^? _ N^,_ _\N/,HNVtA&-HN?<oHnHnHnxHntNN^,_Nu/,HNVtAB-HN0.=@2. tB=A&.-Cx?<HnHnHnxHntNN^,_ _PN/,HNVtA<-HN0. =@r=A$.-Bx?< HnHnHnxHntNN^,_ _\N/,HNVtA<-HN0. =@r=A$.-Bx?< HnHnHnxHntNN^,_ _\N/,HNVA0-HN/.?. A "Op?"QBgBgNN^,_ _N/,HNVnAV-HN n pR@p2.=A n /N&-@r?<#HnHnzHnrHnnN0.z=@0.N^,_ _\N/,HNVtA4-HNp=@". -Ax?<HnHnHnxHntNN^,_ _XN/,HNVtA4-HNp=@". -Ax?<HnHnHnxHntNN^,_ _XN/,HNVtA<-HN0. =@r=A$.-Bx?<!HnHnHnxHntNN^,_ _\N/,HNVtA<-HN0. =@r=A$.-Bx?<!HnHnHnxHntNN^,_ _\N/,HNVAp-HN0.T@=@?.N-@/.? n0(rAW0(vCWĄDBd"n0.3@ 4. 3BN^,_ _ N/,HNVAN-HN n0.-H0(rAW0(vCWĄDBd"h /"n / ND`N^,_ _ N/,HNVA-HN0. H//<NV м/HnNDp=@2. SA=A` n0.p1@Rn0.no n2. r1A$.-B .N^,_ _TN/,HNVAH-HNp=@ n 0.rtBg R@=@`0.rAl=A0.=@0.N^,_ _XN/,HNVA4-HN/.N.@d0. Hм//.N*N^,_ _\N/,HNVA-HNp=@0.rdA] n 0(vCVDBd0.R@=@`0.rdAlzt=BS@=@`6 n 0.-H0(`/( n/( NN? NN`"h -I/ n/ NN? NN n/(?< NN n/(?< NN np//( N*`"h -I/ n/( NNH? NN n/( n/( NN*? NN n/( n/( NN ? NNd np//( N*`0@ @ b$@0;N xxRn0.no2.H//<NV"Ҽ//. N*N^,_ _XN/,HNVA-HN n 0.-H0.1@2.1A4.1B6.1C8.1Dz01E1E|FWrAW€B@d0.tB=@0.t B1@p1@ vCW|FWAEd2.1A :. 1E`!@ 2.zEg/. ??.NN^,_ _N/,HNVA-HNp=@ n2(tBg` n0.0(r AtBf0.R@=@` n0."n0.0)r FAA1@0.R@=@/.??.?.?.?.?.?.?.?.?. Nh0.=@0.N^,_ _N/,HNVtA>-HN0.=@2. =A$.-Bx?<(HnHnHnxHntNN^,_ _PN/,HNVtA6-HN0. =@".-Ax?<rHnHnHnxHntNN^,_ _\N/,HNVtA^-HN .-@x2.=A4.=B6.=C8.=D:.=E<. =F?<*HnHnHnxHntNN^,_ _N/,HNVAH-HN/.?. HnHnHnHnN/.Bg?<?.?.?.?.N=B:.<=E&.$-C?<HnHnHnHnN0.=@ n2.0"n4.2$n6.4&n 8.6(n :.8*n<.:0.N^,_ _NAX"_Hi ?<ANA\L|#|3| N _"_$_* g g fH/ NzLH/ apLHHi Hj Bg?<VNA LC G 0<gQ|%|5| N _"_/)#| g g f*JtgJi ka0) k @e??<>3| NAXNu/")x itg$H@//?) ?<@NA LJof _Nu _4` _t6 Bo r aSB`2aNH?9 _r ar a/L?9Nu _r aN _4` _t"x0HgJJjDxvC9zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvC9p0 2H@0RJAfJg<-RBlCSBr aQSCaQN _"_v` _"_60`JfQ$ItRJf` _4v` _46"_JBjtJCkgCe4` BSCr axQSBkalQN _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`NH 9"oA/ NʪL 9Nu _4` _t6 Bo r aSB`2aN _4` _t"x0HgJJjDxvC9zp cRЀ`|e W0R"f`6 _4` _t2xJAjDAxvC9p0 2H@0RJAfJg<-RBlCSBr aQSCaQN _"_v` _"_60`JfQ$ItRJf` _4v` _46"_JBjtJCkgCe4` BSCr axQSBkalQN _6kfv2_t Cc"4YBv` _6kfv"_t Cc4QBvSBkr a(QSCC" A0 9c^a JgYC`N*opodRNu(_"_/ A) g  f$)Jtf&H //?) ?<@NA LJovfNu$ix&i|fa`pRgf#Jx`H")x it#Hxg$H`//?) ?<@NA LJofLNu )f NuHy˥` Hy~0< LN:REWRITE required prior to WRITE or PUTDisk or directory full _$_"Wp i e)H/ NL4NH/ NLp)` _"WJ99f*J)f i e)H/ NL i d)J)fJg i dB99J)fBiQ9Nz`z _$_"WptvH/ Hy9a<299XL- -fJfVp`4  fJg*`F0e@  b:Ԃih(؄ib؄i^ԄiZԁRC  g i e) 0e 9cJg:JgD i d J)gP9Jf 6Höf4N$NHyͶ0<`Hzh0<N: _$_0"Wt&JRJ)f:H/ Hy9a`299XL i d J)P9f RBBe`Be`N Bad digit in number encounteredOverflow during READ of number(_ _/ C (g ( fJ(g J(fv`z$($IJtfpH / /?( ?<?NA LJo*fJg  f"J` g  Wf NuJg Jh gJ(f !|Nu!|NuH$hx&h|gpR@@gf!JxL`H &ht!KxJh f0abLEJ@g *f` J99g R@Bh` / /<?( ?<?NA LJlp!K|JfnL` rH@Hsp/Bg?<?NA LRA3J99g^ fSA` fL AgUH@Hz+p 3 dp` SAH@Hz$p/?<?<@NA LJ99g`z fSA` fSAH@Hzp` f>H@Hzp `H@Hzp 3 dp/?<?<@NA LQ` d4 gbЩ9@ЩHHzxp/?<?<@NA LJ99g& AfH@HzFp/?<?<@NA L NuHzR0<`Hz$0< LN:  p Exit q C^AReset required prior to Read or GetAttempt to read past end-of-file ^NuH _ gbe^d/LNuHy`Hy$NPt`t _"_ gR e6G$S" geb"*f&"`&A%S"`&J`а|gb<|fP"9gH$A#`:"9g6$A#`("9g$$A#` @ g"9g $A#"`"E^&R"$b HyNPJgr"Qd2`"SjN _"_ " gbe^dgR m @ e@E"fB#@B$`p&A"+ef "'I`Z"#@B$`L$K`ư| f"#`4|f"#` |f"#` "#NHeap overruns stackPointer NILPointer not in heapH9 _0"_e /L9NuHyrNP/B9:/|:NuH9 _0 @f0"|99p` "_J@jpE:r4@ BbBS@kQ/L9NuH9 _4SBkt82$_rAbd0 @f0"|99p` "_J@jp6ADb6CG0IS@k$eQ/L9NuH9 _4k2SAk0"_p6B@bE0)CS@kQ/L9NuH9 _2$_r0 @f0"|99p` "_J@jp@kS@kv&J$IRC4(K Vg RQBg`?/L9NuH9 _4kF2SAk>0 @f0"|99p` "_J@jpJBg@b6B@oCE:SBkQ/L9NuString overflow _pJ.g 0( hNVg4 ( hg( hH`0( hNVg ( hg hHfXgr"ODd2Sk "Sj` _"y^e HyBNPN#;$#; .f -|2`-|2 nNн; f y;$NStack overruns heapH?;( _z gBjDRE"g8jDRE$6HBJBg8HAJAf,HBJBf$ւi EdD.` $HB8`B/L?;(Nu0NvDNH;(|` H;(| _z f0NjDRE"g`jDREdJgR(`DfxJg<`DxSDbb JgHA8`"tcRЀ`xeWJg(MdD.`B/L;(Nu09ZNu09\By\Nu _3ZBy\NBy\Nu[3][][ Abort ]Copyright 1986, CCD and OSS, Inc. &\     0  r                2  0 0      6 8                                        20$                                    D "2  &* B                                                            66,       ,             `              6,               ,l              ,               ,        $$, ,"                                                    &                                                  N        `,($6," V* ,6 ,     .,      B          ,  2      B       0    0 0.* .     0 4 .     0 4                    .     0 : .2    0 *   "0  @ *      0    0    0   2H  B,  6 8 8 8 8 8 8 :0, ^  4 B    @ X 4 . n >$$*p~,2$$$$$$00$$$$$$$$$$$$$$$$>4\j4*@446 0 0 $"$,( ( 0 0 06 ,Lb8z,F b":,>4@" f,tPdv`  rV "2 * R">:d"F:6B.x*6" J " 4T ^"BBL :r >>  0 ,H ,,6 8 ,2 v8 ,6 ,,T  T* ,,  .6   *jV0b,4 "T & & (,&  H          Z6:6J"Z"Z      "$" BBb4 2JLJ ^ (  blX$Fj  "D    * "FV ( *@ B @ ( V  """$1 F1  Editieren Ausfhren Optionen Datei Speziell PASMANAG .... --------------------123456 CCD TOS Editor... CCD Editor .... CCD Tempus .... PD TOS Editor... ~~ Beenden ~~~~~~~~ Ende ~~ GEM Editoren ~~~ Compiler .... Linker .... Compiliere alle... ~~ Sofortaufruf ~~~ Linker Objekt Auswahl Objekt... Compiler... Compiler Files... Linker... Linker Files... ~~ Install. ~~~~~~ Laden... Sichern... Progr. finden... PASMANAG... ~~ Ordner ~~~~~ Anlegen... Lschen... ~~ Datei ~~~~~~ Lschen... Drive wechseln... PASMANAG . Autor : Rainer Hain .. Kassel Seriennr : PD 1.03OkTOS 86/87ATARI1040 STF-----------System Konfiguration / InformationFreier Speicher4000000BytesAkt. LaufwerkABytesDisketten Format726016Bytes belegt357358BytesBytes frei360520BytesInstallationen PASMANAG . ! CCD TOSCCD GEMPD TOSTempusCompilerLinkerPastrixPasgemPaslibPASMANAG.OLF Entw. mit ST Pascal Plus 2.04 ! Drive wechseln Abbruch Compiler Optionen Stapel & Heap berprfung !Bereichsprfung !Text listen auf Monitor !Testlauf ( ohne .O File ) !Debug Code einfgen !Gem Dialog darstellen !Lokale Variablen lschen !Fehlerdatei umleiten !________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSichernLadenAbbruchOk Linker Optionen ACCPRGTOSTTPAPPZustzliche Linkfiles________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSichernLadenAbbruchOk________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX____________________________________________________________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXProgrammaufruf Kommandozeile PASMANAG . Parameter Zeitanzeige !Grow / Shrinkboxen !Kommandozeilen Abfrage/Eingabe !Public Domain Editor TOS . !CCD Editor TOS !CCD Editor GEM . !CCD Editor TEMPUS . !OkAbbruch Komponenten finden ST Pascal PlusPascal LibraryText EditorenPD TosCCD TosCCD GemTempusPASMANAG.OLFPaslibPastrixPasgemCompilerLinkerAusgangBitte etwas Geduld !Laden von Overlay : NAME_VON.PRG bernahme in PASMANAG.OLF PASTRIXPASGEMPASLIBPASLIB bitte immer bernehmen !PASTRIX & PASGEM bei Bedarf bernehmen !OkAbbruchFrei Frei Frei Frei Frei Frei Eigene Librarys o. Module !Frei Frei Frei [3][Fehler Nr.  !|Programm Laden / Starten !|Fr diesen Aufruf reicht der|Speicher leider nicht aus !|Es wird daher abgebrochen !][Abbruch][3][Fehler Nr.  !|Neues Laufwerk whlen !|Sie whlten ein/e nicht vor - |handene/s Laufwerk/Partition !|Es wird daher abgebrochen !][Abbruch][3][Kann Ordner nicht lschen !|Ordner ist entweder voll oder |nicht vorhanden !|Es wird daher abgebrochen !][Abbruch][3][Kann Ordner nicht anlegen !|Vermutlich existiert schon |ein/e Ordner/Datei mit dem |angegebenen Namen !|Es wird daher abgebrochen !][Abbruch][3][Die angegebenen Suchpfade |sind etwas zu lang !|Die Kommandozeile kann leider|nur 124 Zeichen erfassen !|Es wird daher abgebrochen !][Abbrechen][3][Spezifizierung von Suchpfad|fr Programme usw. ist fehl -|geschlagen.Bitte neuen Such -|pfad angeben oder die Datei in|den angegeb.Suchpfad kopieren!][ Ok ][3][Fehler Nr.  / Prg.laden !|Ausgewhltes Programm ist im |angegebenen Verzeichnis nicht |existent !|Es wird daher abgebrochen !][Abbruch][3][Fehler Nr.  !|Habe Programm geladen !|Whrend des Ladevorgangs ist|irgendwas schiefgelaufen !|Es wird daher abgebrochen !][Abbruch][3][Fehler  !|Kann Installationen nicht |laden,da die angegebene Datei|nicht vorhanen ist !|Es wird daher abgebrochen !][Abbruch][3][Spezifizierung von Suchpfad |fr PASMANAG.OLF !|Wollen sie die Datei|suchen oder neuanlegen ?|Bitte Bearbeitung auswhlen !][ Suchen |Neu|Info][1][Info . Datei PASMANAG.OLF !|In PASMANAG.OLF befindet sich |die komplette Bibliothek fr|ST Pascal Plus . !|PASTRIX / PASGEM / PASLIB !][ Ok | Mehr ][1][Wenn sie zb. die Datei PASTRIX|nicht benutzen wollen dann|einfach im Auswahldialog den|Button PASTRIX deselektieren !][ Ok ][1][Bitte im nachfolgenden Dialog|die entsprechenden Dateien|selektieren die in die Datei|PASMANAG.OLF bernommen |werden sollen !][ Ok ][1][Wollen sie die Suchpfade fr|PASTRIX / PASGEM / PASLIB neu|spezifizieren oder die Ein -|stellungen bernehmen ?][ Neu | bern. ][1][Spezifizieren sie bitte in der|nachfolgenden File Select Box|den Suchpfad fr PASMANAG.OLF.|Verlassen sie die File Select |Box ber !][ Ok ][1][Fehler Nr.  !|Accessorys zu starten ist |leider nicht mglich !|Es wird daher abgebrochen !][Abbruch][1][Dateien fr TEMPUS !|TEMPUS knnen mehrere Dateien |zum Laden bergeben werden !|Mglich :  Dateien|bergabe :  Datei][ Fertig |Weiter][1][Dateien fr TEMPUS !|TEMPUS knnen mehrere Dateien |zum Laden bergeben werden !|Mglich :  Dateien|bergabe :  Dateien][ Fertig |Weiter][1][Dateien fr TEMPUS !|TEMPUS knnen mehrere Dateien |zum Laden bergeben werden !|Mglich :  Dateien|bergabe :  Dateien][ Fertig |Weiter] P p yBRB   348BC DJKLUV Wcd e#  "#$DE FNOPXYZabcjkluv w~ "5!"%78;UVYuvy7))y ))Mv)) NCC  !  : ; < M N O d e f       g    )  9 : Z Z5 $ )  5  A  L$ T+  2P  _ t "!/E[ q!,#+ $%&'()*1+F"[2-1&.p/01, 33-2 (.5  "> Z v G 5$           #(' 5 + : V!r !  6!Rn ! +  ! "#2  $N%j &"'             5 @ A@ B@ C@ D @ E @ F @ G@ Hg  29   .  J # f  9   W     w          (*(`( h(n('v(,9  F       b  ~( 4"  <  B J (  (E C#`+ =    &   B   ^     z             ! % ! 5=   &" >    5  A   A   A  A    I A   A  A   A   %&  A  A  ' & + .   /  D Z +1 Z       v  (  !  !               ;  B ! I "&')+J+-r/R/     ;  B ! I "&(z*, ,j.200     8  ? ! F  ( 0LA A A A 1  h #d'<)4+\,-$.01\3= 2.00 Komponenten * * Auflsung : Logisch , Monochrom * * Beginn : 14. April 1989 * * Fertigstellung : 25. July 1989 * * Bisherige * * Versionen : 1.01 , 1.03 / Public Domain * * In * * Arbeit : 1.05 , Public Domain / 2.00 nicht Public Domain * * Erscheinungs - * * Datum : 1.05 ca. 4 Wochen nach erscheinen von 1.03 * * : 2.00 ca. Ende Oktober '89 , nur bei mir zu beziehen. * * * * (c) 7/1989 by Rainer Hain * * * **************************************************************************** Weitere Informationen ber die einzelnen Versionen , Bezugsquellen , Preise usw. entnehmen sie bitte im Anhang EXTENDED INFORMATIONS. Achtung : Die PD Version 1.03 darf nur komplett mit allen auf der Diskette enthaltenen Dateien kopiert und weitergegeben werden. Es drfen keine nderungen in den Dateien vorgenommen werden. Die Beispiel Module , sofern sie jemand verwenden kann , knnen in jedem eigenem Programm ohne Einschrnkungen meinerseits verwendet werden. Inhaltsverzeichnis : I : Bedienungsanleitung II : Installation III : ber die Entwicklung und Entstehung von PASMANAG.PRG IV : Extended Informations I : Bedienungsanleitung ------------------------- Das MENUE : ----------- Das Menue besteht aus 5 Titeln mit mehreren Eintrgen. Weiterhin sehen sie im Menue , wenn Option gesetzt , die aktuelle Uhrzeit und , immer , den aktuellen Drive. Zb. A: oder D: usw. ! Der Titel DESK : ---------------- Dieser Titel wird durch das Atari Symbol dargestellt. Wie gewohnt gibt es hier nur einen Eintrag , dieser jedoch hat es in sich! Wenn sie diesen Eintrag ' PASMANAG... ' anwhlen dann bekommen sie folgende Informationen auf den Monitor. 1 : Information ber den Autor von PASMANAG.PRG (natrlich!) 2 : Freier RAM Speicher 3 : Freier Speicher auf Diskette 4 : Belegter Speicher auf Diskette 5 : Disketten Format 6 : Aktuelles Laufwerk 7 : Datum der Fertigstellung 8 : Info ber benutzte Programmiersprache 9 : Info ber benutztes Atari ST System Weiterhin erfahren sie ob die mit PASMANAG.PRG erreichbaren Komponenten in den bei Programmstart angegebenen Suchpfaden existieren. Existierende Komponenten sind selektiert. Als erreichbare Komponenten wurden folgende Programme vorgegeben: Editor : 1 : EDIT_TOS.PRG / Public Domain 2 : CCD EDITOR.TOS 3 : CCD EDITOR.PRG 4 : CCD TEMPUS.PRG Pascal : 1 : COMPILER.PRG 2 : LINKER.PRG 3 : PASTRIX 4 : PASGEM 5 : PASLIB PASMANAG : 1 : PASMANAG.OLF (erklrung kommt noch) Diese Funktion wird bei Programmstart automatisch aufgerufen , so das sie bei Programmstart sofort ber alle wichtigen Informationen und alle Installationen informiert werden. Rufen sie diese Funktion nach Programmstart nocheinmal auf so wird der Speicher nur gemessen wenn sie eine Funktion ausfhrten die auf irgendeinen Drive zugreift. Die Installation der Komponenten wird nur dann erneut berprft wenn sie Optionen geladen / gesichert haben oder PROGRAMME FINDEN aufgerufuen haben Ist dies nicht der Fall so wird die Box mit den zuletzt angegebenen Parametern dargestellt , sie geht davon aus das noch dieselbe Diskette im aktuellen Laufwerk liegt. Tastaturkommando : I oder i (Info) Der Titel EDITIEREN : --------------------- Hier knnen sie 4 (vier) Editoren aufrufen. 2 (zwei) davon sind als TOS Editoren und die anderen 2 (zwei) als GEM Editoren definiert. Sie knnen selbstverstndlich andere Editoren benutzen als vorgegeben, jedoch die angegebenen funktionieren einwandfrei und sind getestet. Sollten sich also mit einem anderen Editor Probleme auftun so testen sie einen anderen oder benutzen sie bitte die/den vorgegebenen. In den Eintrgen PD TOS Editor und CCD TOS Editor sollten nur TOS Editoren aufgerufen werden da die Maus versteckt wird bei Aufruf eines Editors ber eine TOS Eintrag. Im Eintrag CCD GEM Editor knnen sie jeden GEM Editor ausser EDIMAX verwenden , da dieser (EDIMAX) die Maus fr sich behlt nach beenden von EDIMAX. Im Eintrag TEMPUS 2.05 sollte nur TEMPUS aufgerufen werden , da sie hier im gegensatz zu den anderen Editor Eintrgen bis zu 4 (vier) mal die File Select Box auf den Monitor bekommen. Und da sind wir auch schon bei einer Besonderheit von PASMANAG.PRG. Sie knnen TEMPUS bis zu 4 (vier) Dateien zum einladen bergeben. Sollte die dabei entstehende Commandline lnger als 124 Zeichen sein so wird solange der letzte Name abgeschnitten bis die lnge der Commandline unter 125 Zeichen ist. Es werden dann eben nur 3 oder gar 2 Dateien eingeladen. Ist die Lnge der Commandline schon bei der 3. (dritten) Dateiauswahl berschritten so erscheint die 4. (vierte) File Select Box nicht mehr. Ich hoffe dieses Featur sagt ihnen zu. Ich benutze PASMANAG.PRG schon allein aus diesem Grund. Dabei gebe ich TEMPUS als TEMPUS und CCD GEM Editor an um wenn ich nur 1 (eine) Datei einladen will die Abfrage von TEMPUS nach einer weiteren Datei zu umgehen. Das ist usserst wirkungsvoll. Geben sie im TEMPUS Eintrag aber zb. den CCD GEM Editor an so wird bei der Auswahl von mehreren Dateien die letzte eingeladen. Im Eintrag ENDE wird wie sollte es anders sein PASMANAG.PRG beendet. Auch diese Funktion ist sehr ntzlich! Tastaturkommandos : TEMPUS = T oder t CCD GEM = G oder g CCD TOS = E oder e PD TOS = p oder p ENDE = kein Tastaturkommando Der Titel AUSFHREN : Hier rufen sie folgende Programme auf: Eintrag | Programm ------------------------|------------------ COMPILER | Pascal Compiler 2.04 LINKER | Pascal Linker 1.1 , 2.00 COMPILIERE ALLE | Compileraufruf fr mehrere Compiler Files | Hier mssen sie eine Datei mit der Extension | .SCF (Source Compiler Files) ffnen , aus der | dann die entsprechenden Namen und Suchpfade | der zu Compilierenden Files entnommen werden. | Erstellt wird diese Datei ber die Auswahl | OPTIONEN / COMPILER FILES.Darber spter mehr. | LINKER OBJEKT | Das fertige Linker Ergebnis wird hier sofort | ausgefhrt.Wenn sie ACC's programmieren wird | diese Funktion mit einer Fehlermeldung | abgebrochen.Fehlermeldungen gibt es eigentlich | fr fast alle Funktion. | AUSWAHL OBJEKT | Hier starten sie ein beliebiges Programm welches | ber eine File Select Box ausgewhlt wird. | Bei beiden Aufrufen ( LINKER OBJ/AUSWAHL OBJ) | erscheint , wenn Option gesetzt , eine Mglich- | keit zur Eingabe einer Commandline von bis zu | 70 Zeichen. Bei Fehlerhaftem Compilerlauf werden sie nach Beendigung desselben gefragt ob sie die Datei zum Editor schicken wollen. Der Textcursor wird nicht an die Fehlerhafte Stelle gesetzt , daher empfiehlt es sich den Compilervorgang nicht zu Unterbrechen wenn Fehler auftauchen , da sonst die .ERR Datei nicht oder unvollstndig existiert. Tastaturkommandos : COMPILER = C oder c LINKER = L oder l COMPILIERE ALLE = A oder a LINKER OBJEKT = S oder s AUSWAHL OBJEKT = R oder r Der Titel OPTIONEN : Hier knnen sie die verschiedenen Optionen von PASMANAG.PRG oder ST PASCAL PLUS einstellen. Als Optionen gibt es folgende : Eintrag | Optionen ------------------------------------------------- COMPILER | Compiler Optionen : | --------------------- | Mglich sind : | ---------------- | Debug Modus | Stapel & Heap berprfung | Bereichsprfung | Lokale Variablen lschen | GEM Dialog darstellen | Testlauf ( ohne das .O File geschrieben wird ) | Text listen auf Monitor | Linker Aufruf ( nur 2.00 ) | Linker | Linker Optionen : | ------------------- | Mglich sind : | ---------------- | ACC , PRG , TOS , TTP , APP generieren | Zustzliche Linkfiles bis 80 Zeichen | .OLF Datei wird erkannt durch '#' Zeichen | wie im PASCAL MANAGER | Die Buttons laden,sichern im LINKER & COMPILER | Dialog sind noch nicht implementiert | Wichtig ! | Die eingabe der Linker Files erfolgt anders | als beim CCD MANAGER. | Bei PASMANAG.PRG knnen sie bis ans Ende der 1. | Zeile schreiben und in der 2. weiterschreiben. | Sie knnen aber auch in der 1. beginnen und in | der 2. Zeile. | BSP. : | A:\PASSHELL.ARB\SHELMAIN.O,D:\PAS | CAL\PASTRIX | oder : | A:\PASSHELL.ARB\SHELMAIN.O, | D:\PASCAL\PASTRIX | Das Komma in der 1. Zeile muss aber dann sein | COMPILER FILES | .SCF (Source Compiler Files) Datei erstellen | ber die dann die Funktion COMPILIERE ALLE | ausgefhrt wird. LINKER FILES | wie COMPILER FILES nur das die Namen in der .OLF | Datei zum Hauptmodul hinzugelinkt werden. | Achtung ! | Sie werden nach jedem angegebenen File gefragt | ob sie noch ein Modul angeben wollen. | Wenn nicht mssen sie die Alarmbox mit nein | verlassen , da ansonsten der Linker nach einem | Modul ' ,, ' sucht und abbricht weil er es nicht | finden kann. | Verlassen sie die Alarmbox uber Ja so mssen sie | noch ein Modul angeben oder nochmal von vorne | beginnen mit der Erstellung der .OLF Datei ! | LADEN / SICHERN | Hier laden sie die Optionen aus einer .INF | Datei. Dabei werden alle Einstellbaren Optionen | neu gesetzt. | PROGRAMME FINDEN | Hier legen sie komfortabel ber die File Select | Box die einzelnen Suchpfade von TEMPUS, EDITOR, | COMPILER usw. fest! | Hier gibt es den Button PASMANAG.OLF. | In dieser Datei stehen die Pascal Library | Suchpfade. | Zb. A:\PASCAL\PASTRIX, | B:\GEMLIB\PASGEM, | C:\STDLIB\PASLIB | | Alles klar ? | | | PASMANAG... | Hier stellen sie die PASMANAG.PRG Optionen | ein. | Als da wren : | Editoren sperren und aktivieren , somit knnen | sie die Arbeit mit einem bestimmten Editor | von vornherein ausschliessen. | Uhrzeit ein/ausschalten | Growboxen ein/ausschalten | Commandline Abfrage bei Externem Programmstart | ein/ausschalten Der Titel DATEI : ----------------- Hier knnen sie 3 Funktionen aufrufen die ihnen bekannt sein sollten. 1 : Ordner anlegen 2 : Ordner lschen ( wenn er leer ist ) 3 : Datei lschen ( ist immer ntzlich ) Der Titel SPEZIELL : Hier knnen sie alle Suchpfade auf eins von acht whlbaren Laufwerken setzen. Alle Suchpfade werden auf das Hauptdirectory gesetzt. Dieser Titel und der Titel DATEI sind eigentlich gedacht fr Programmierer die mit der Original File Select Box arbeiten. Sie ist im Erscheinen doch einfach schneller als so mancher Ersatz, obwohl jener natrlich oft ber einige ntzlich Extras verfgt. Jedenfalls brauchen sie nicht unbedingt eine andere File Select Box als die System eigene. Soviel zur Bedienung.Sollte irgendetwas nicht funktionieren oder Schwierig- keiten bereiten so setzen sie sich bitte mit mir in Verbindung ber im Text- kopf angegebene Adresse. Ideen fr Verbesserungen oder Erweiterungen nehme ich gerne entgegen und werde sie auch , sofern ich eine gute Lsung gefunden habe , in der nchsten Version bercksichtigen. Beachten sie jedoch eins. Diese Shell entstand aus dem Gedanken heraus einen Pascal Manager fr den 520 ST zu schreiben. Die Version 1.03 befrchte ich ist wohl doch etwas zu gross , weshalb ich mich entschloss extra eine Version fr den 520 ST zu Programmieren. Diese Version ( 1.05 ) wird ca.4 Wochen nach Erscheinen von 1.03 ber den PD Service , so hoffe ich , zu beziehen sein.Oder aber auch direkt bei mir. Nheres siehe EXTENDED INFORMATIONS. II : Installation ------------------- Zur Installation von PASMANAG.PRG existiert die Datei PASMANAG.INF In dieser Datei knne sie alle Optionen speichern die sie bei Programm- start eingestellt wissen mchten. Optionen die in dieser Datei abgespeichert werden : Suchpfade fr : TEMPUS.PRG EDITOR.PRG EDIT_TOS.PRG EDITOR.TOS /.TTP COMPILER.PRG LINKER.PRG PASMANAG.OLF ZUSTZLICHE LINKFILES ZUSTZLICHE LINKFIES Diverse Optionen fr ST PASCAL PLUS & PASMANAG.PRG ( Siehe Menuetitel OPTIONEN ) Sie knnen selbstverstndlich auch eine andere Datei zum Optionen speichern erffnen , jedoch nur PASMANAG.INF wird bei Programmstart eingelesen und ausgewertet. III : ber die Entstehung von PASMANAG.PRG ---------------------------------------------------- Auf die Idee kam ich als ich noch einen 520 ST mein eigen nannte. Aufgrund der Grsse des MANAGER 's von CCD und einiger Accessorys kam ich sehr schnell an die Grenze der Speicherkapazitt und so dachte ich mir , Mensch programmier doch einfach mal eine Shell fr Pascal! Es gab dann Versionen von 0.1 bis 1.00 die alle nicht verffentlicht wurden, da ich tglich neue Erkenntnisse machte , denn ich Programmiere erst seit 1 (einem) Jahr und dann gleich mit PASCAL. Ausserdem kamen mir einige neue Programme ins Haus ( TEMPUS,DRI RSC, PD EDITOREN,GFA ASSMEBLER,TURBO C ) so das ich desfteren das ganze Konzept umgeschmissen habe , anhand der Funktionsweise der anderen Programme! An der Version 1.00 arbeite ich seit dem 14.04.1989 und bin mittlerweile bei der Fehlerbereinigten Version PD 1.03 angelangt. Die Version PD 1.03 benutze ich jetzt seit dem 18.07.1989. Ich habe aber vorher schon um die Version 1.00 usw. zu Programmieren eine ltere nicht verffentlichte Version benutzt. Viele Funktionen habe ich in immer wieder optimierter Form in die nchste Version mit bernommen. So luft jetzt zb. die routine zum Ausfhren von Programmen ber ein und dieselbe Prozedur.Diese Prozedur ist zb. in 1.03 so optimiert das sie als Modul ohne globale Variablen ausgefhrt wird. Das modul wird einfach immer hinzugelinkt. Die Prozedur bernimmt alle Funktionen von Umwandeln der Commandline in den berhmten C_string , Menue deaktivieren und reaktivieren, Fehlermeldung wenn Linken erfolglos,Maus verstecken/freigeben bei TOS Editor Aufruf, Fehlermeldung wenn die Commandline lnger als 124 Zeichen ist(2.00),Dialog darstellen mit kurzfristigem Info welches Programm gestartet wird,prfen ob Programm vorhanden ist usw. Da ich nun DRI RSC 2.1 benutzte und somit die Menue's,Dialoge und Alarmboxen nicht mehr in Pascal programmiere sah ich mich vor neue Probleme gestellt nachdem zb. das DRI RSC beim starten ber T_PASCAL.PRG sein RSC File nicht fand.Weiterhin wenn es von Disk B: gestartet wurde dann wird stur 1 mal ganz kurz auf Laufwerk A: zugegriffen.Und das ist usserst lstig. Als ich dann mein erstes Programm mit RSC File starten wollte stand ich vor demselben Problem mit Ausnahme davon das sich mein Programm ordnungsgemss verabschiedete,whrend das DRI RSC ein Reset erforderlich machte. Um also nicht jedesmal , wenn ich mein Programm testen wollte , T_PASCAL.PRG verlassen zu mssen berlegte ich mir wie kann ich das RSC laden ohne auf Laufwerk A: zuzugreifen wenn es auf B: nicht gefunden wurde , es sich aber auf B: befindet ? Die Lsung ist ein Modul ohne globale Variablen das ein PASCAL RESET auf die angegeben Datei ausfhrt und wenn vorhanden wird das RSC File geladen. Wenn nicht dann musste eine extra Lademglichkeit her. Dafr nahm ich die File Select Box,eine Alarmbox die einen Alarmiert wenn RSC File nicht gefunden wurde,einen kleinen Infodialog 'RSC File laden', 'RSC File gefunden' und konnte dank der File Select Box das RSC File suchen den Namen selektieren und einladen. Doch pltzlich o'graus lud ich das RSC File vom CCD GEM Editor und siehe da ein neues Problem war geboren. Da ich bisher nur einmal diese mglichkeit zum nachladen des RSC Files hatte und dann auch noch einen falschen Namen angeben konnte war ich natrlich ab und zu in der verzwickten Situation die RESET Taste bettigen zu mssen. Herausgekommen ist nun ein Modul das wiederum ohne globale Variablen aus- kommt und in meiner Arbeits Version 2.00 implementiert ist. Dieses Modul arbeitet nun in einer Schleife die nur dann verlassen wird wenn in der Alarmbox oder in der File Select Box ABBRUCH gedrueckt wurde. Das Problem mit dem falschem Namen existiert nicht mehr.Es wird gnadenlos das Original RSC File eingeladen, egal ob sie keinen Namen,einen falschen, oder einen nicht existenten Namen angeben , der Interessiert garnicht. Das hat wiederum den Nachteil das dieses Modul jetzt eine grsse von 3880 bytes hat , jedoch auch den Vorteil das man nur noch den Ordner ffnet und OK drueckt.Der Name ist ja nicht von bedeutung. Ach ja , der automatische Zugriff auf Drive A: wird dadurch unterbunden das immer erst mit PASCAL RESET auf die Datei DATEINAME.RSC im eingestellten Pfad zugegriffen wird. Wenn das erfolgreich war dann wird die AES oder GEM (was weiss ich ?) Funktion Load_Resource(DATEINAME.RSC) ausgefhrt. Ich wei nicht ob ich richtig liege , aber ich vermute das eben diese Funktion einen Zugriff auf Drive A: verursacht , da ich seit ich mit dem neusten Modul arbeite keinerlei Probleme mehr mit dem RSC File nachladen hab. Sie werden jetzt sicher sagen , 'Ist ja alles schn und gut aber 3880 bytes?' Nun dann sage ich wem es zulang ist der kann es ja wenigstens als Programmierhilfe benutzen , denn das ist ein Superfeature zum Programmieren. Und ich beabsichtige bei der Fertigstellung dieses Modul und noch so einige andere die beim Programmieren von PASMANAG.PRG angefallen sind mit zuverffentlichen.Allerdings wird diese Diskette nur ber mich zu beziehen sein. Ich befrchte nun das die Version PD 1.03 etwas zu gross geraten ist,da ich sie ja eigentlich fr einen 520 ST Programmiert hatte. Programmiert wurde sie aber auf einem 1040 ST mit 1(ab und zu 2) Laufwerk/en und einer 430 K RAM Disk.Weiterhin hatte ich ein Accessory von ca. 2500 bytes das das Desktop aus einem gestartetem Programm heraus wieder in den Einschalt zustand setzte (ST Computer / 4/89 / S.88 / Turbo C) und ein RAM Frei ACC. ( PD ca.3300 bytes ). RAM Frei mit diesem ACC gemessen : Angabe : 295 - 308 K Gemessen mit PASMANAG.PRG : Angabe : 305XXX - 315XXX Aus dieser Befrchtung heraus beschloss ich eine neue PD Version zu schreiben die extra auf einen 520 ST zugeschnitten ist. Ich wrde mich daher ber Ideen und Zuschriften von 520 ST Besitzern ,die mein Programm benutzen mchten , freuen. Besonderes Interesse besteht natrlich an Vorschlgen und Ideen in C oder Assembler , da dies den Programmcode wesentlich verkrzen wrde. Nun ich lasse mich berraschen. Ich freue mich natrlich auch ber Kritik. IV : Extended Informations ---------------------------- n.v. = nicht Verffentlicht z.g. = zurckgezogen PD = Public Domain n.PD = nicht Public Domain n.b = nicht beendet(wird noch fertiggestellt) 1M = mindestens 1 Megabyte Versionen von PASMANAG.PRG : 1.00 n.v. 1.01 z.g. PD 1.03 PD 1.05 PD n.b. ( f. 520 ST ) 2.00 n.PD 1M Info zu 1.05 : Die Version 1.05 wird wesentlich kleiner sein als die Version 1.03. So wird sie nur noch mit einem Editor laufen der natrlich frei gewhlt werden kann.Weiterhin wird die RSC File Suchfunktion nicht mehr vorhanden sein da dies bei einem 520 ST doch zuviel Speicher schluckt. Und die Compiler Optionen werden fehlen , da , wie ich meine und auch tue , der Programmierer seine Optionen im Programmtext festlegt.Es wird dann nur noch die Testlauf Option und die Text Listen Option geben.Diese werden wiederum im PASMANAG Parameter Dialog eingestellt , da somit eine komplette Prozedur mit Dialog wegfllt.Wenn das genuegend Speicher bringt werde ich aber versuchen noch eine Kopierfunktion einzubauen.Nun , lassen wir uns berraschen. Die Linker Optionen bleiben jedoch vollstndig erhalten. Info zu 2.00 : Die Version 2.00 wird nach meiner Meinung (von seiner eigenen Idee ist man ja am berzeugtsten) ein echter Leckerbissen sein. Allerdings wir sie mindestens 1 Megabyte bentigen. Sie wird ebenfalls nur noch mit einem Editor arbeiten aber hat noch ein paar schne Zustze. So knnen sie zum Beispiel bis zu 4 (vier) Workfiles festlegen und immer 1 davon als Aktuelles Workfile setzen.Dieses File wird dann zu allen Programmen geschickt ohne das die FSB auftaucht.Diesen Modus knnen sie Umschalten in den File Select Modus wo sie dann andere Dateien ber die FSB zu den einzel- nen Programmen schicken knnen.Sie knnen diese Workfiles auch wieder Ent- fernen indem sie ein Workfile freigeben zum Neufestlegen. Damit das nicht solange dauert gibt es hierfr Tastaturkommandos und in der Menuezeile wird durch ein grosses 'W' oder 'F' angezeigt in welchem Modus sie sich befinden. W = Workfile ( wenn , dann steht daneben die Nummer , die sie sich allerdings merken mssen ) F = File Select Modus Selbstverstndlich schalten sie auch die einzelnen Workfiles ber die Tastatur um und werden neben dem 'W' ber die Nummer Informiert. Als neue Optionen kommen zb. die Option Linker Aufrufen.Dies funktioniert auch wenn sie aus dem CCD GEM Editor oder aus TEMPUS heraus den Linker an- fordern.Vorher wird Compiliert und nur wenn das erfolgreich und die Option gesetzt ist wird der Linker aufgerufen. Im GEM Editor = Menueeintrag LINKER In TEMPUS = ^2 Ziffernblock Weiterhin haben sie die Mglichkeit dem Programm einen anderen Namen zukommen zu lassen als die .PAS Datei hat.Dies ermglicht ihnen sogar ein ACC. direkt auf ein Bootlaufwerk zuschreiben ohne lstiges kopieren oder gar Umbenennen desselben.(Nur zu Empfehlen wenn Bootlaufwerk A: oder B: , ich las irgendwo einmal das das mit einer Festplatte schwerwiegende Folgen haben kann wenn das ACC dann nicht funktioniert.) Sie knnen aber nicht die lnge von 124 Zeichen der Commandline berschreiten Die Lnge wre zb. so : A:\TEST.ORD\TEST.PRG=A:\TEST.ORD\TEST,B:\MODULE\TESTMOD1,@A:\LIBRARY\PASMANAG.OLF #a000000 #b000000 #c7770007000600070055200505552220770557075055507702111103 #d #E 98 F3 #W 00 00 28 04 13 14 07 D:\*.PRG@ #W 00 00 00 04 13 14 00 @ #W 00 00 14 04 13 14 00 @ #W 00 00 3C 04 13 14 00 @ #M 00 00 00 FF A DRIVE A@ @ #M 02 00 00 FF B DRIVE B@ @ #M 04 00 00 FF D  RAM D @ @ #T 07 00 02 FF TRASH@ @ #T 07 03 02 FF TRASH@ @ #T 03 03 02 FF TRASH@ @ #F FF 04 @ *.*@ #D FF 01 @ *.*@ #G 03 FF *.PRG@ @ #G 03 FF *.APP@ @ #F 03 04 *.TOS@ @ #P 03 04 *.TTP@ @  Achtung : Bitte Monochrom Monitor benutzen ! Danke ! Achtung ! Alle auf dieser Diskette befindlichen Module , zum hinzulinken in eigene Programme , sind ausschliesslich fr die Gem umgebung konzipiert ! Bitte beachten ! Danke. . p).. pTC_SHELCRSC p*STC_SHELLPRG p?ITC_SHELLRSC p`STC_SHELLSET pu0TC_SHELLTXT pvREAD_ME TXT p) (J $SKSCompiler OptionenWarnungenRestoreDefaultAbbruchOk-Akeine Nicht-ANSI Erweiterungen-MStrings zusammenlegen-Cverschachtelte Komentare-PPC-relativ springen-GGeschwindigkeit optimieren-RRegistervariable verwenden-JSprnge optimieren-SStandartstack erzeugen-Kdefault char ist unsigned-Zkein berfl. Registerladen___Abbruch nach ___999___Fehlern, ___999Warnungen;___Maximale Bezeichnerlnge ___999Compiler :________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchFehlerdatei :________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchHeaderdateiverzeichnis:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchAusgabeverzeichnis :________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchMakrodefinition :________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-D definiere Makro________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-U entferne Makro________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TC-Shell File Projekt Make Settings About TC-Shell ------------------ Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Edit >________.___ --------------------- Edit file... Edit .C file... Edit .S file... Edit .H file... --------------------- Quit >>> ________ <<< Make Run Make all ---------------- Run Programm Debug Programm ---------------- Make Projekt Select Projekt Run Programm ... Debug Programm ... -------------------- Compile ... Assemble ... Link .lnk ... Link ... -------------------- Utitity ... RCS ... Projekt -------------- Editor Compiler Linker Assembler Debugger -------------- RCS -------------- Dateipfade -------------- SaveDatei Info:Name :12345678.123Lnge:123456Datum:12/34/56Zeit :12/34nichtgeschtztOkLinker OptionenRestoreDefaultAbbruchOk-GSymboltabelle mit globalen Symbolenerzeugen-LSymboltabelle mit lokalen Symbolenerzeugen-VAusfhrliche Linkinformationen______Stackgre: ______999999BytesUndefinierte Labels:____________________XXXXXXXXXX____________________XXXXXXXXXX____________________XXXXXXXXXXLinker:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchLinkfehlerdatei:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchAssembler OptionenRestoreAbbruchOkOptionen :einaus-BBinrdatei unterdrcken-LDebug lokale LabelsListing-/Fehlerdatei:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchAssembler:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchNeuer Name:___________________.___FFFFFFFFFFFOkAbbruchAbbruchSpeichernOk12345678901234567890123456789012345678______________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCopyDelInsertNew11111111111________.___FFFFFFFFFFF 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123NameTyp*.*PROG*.LIB*.O*.C*.S*.HProjekt OptionenAbbruchOksaveFehlende Datei miachten beiHeaderdatei (.h)C-Source (.c)Ass.-Source (.s)Start-Projektdatei:aktuell________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchDisketten Info:Diskgre :1234frei :1234belegt :1234Ok1234567890123456789012345678901212345678901234567890123456789012345678______________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx11111111111________.___FFFFFFFFFFF 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxxOkAbbruchTypNameOrdnerRenameLschenFS-Box V1.1 (c) 4.3.1988 by TMMWMorus WalterCompiler Warnungen012RestoreAbbruchOkdupRedefinition nicht identischambzweideutiger Ausdruck ()!retreturn-Value uneindeutigampberfl. Adreoperatorstrxxx kein StrukturmitgliednodFunktion nicht deklariertstuStruktur xxx nicht definiertproFunktionsaufruf ohne Prototypsusverdchtige ZeigerumwandlungstvStruktur als Wert bergebenvoivoid-Funktion hat Ergebnisusexxx deklariert, nicht verw.zstStruktur der Lnge Nullaptnicht portable Zeigerzuweisungauszugew. Wert wird nicht verw.clnlong-Konstantedefxxx uninitialisiert verwendetcptnicht portabler Zeigervergleicheffwirkungsloser CoderngKonst. zu gro in VergleichpiaZuweisung falsch ?sigVerlust sign. ZiffernrchProgrammcode unerreichbarucpGemischte ZeigerrvlFunktion sollte Wert liefernrptnicht portable UmwandlungAbbruchOkDateipfad/-name:Search________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx12345678901234567890123456789012345AbbruchOkKommandozeile:________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEditor OptionenAbbruchOkEditor aufrufen nachCompilerfehler :jabedingtneinCompilerwarnung :jabedingtneinLinkerfehler :jabedingtneinAssemblerfehler :jabedingtneinEditor:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchTurbo C Shell V1.0Gem-ShellfrTEMPUS EditorTURBO C CompilerLinkerDEVPAC AssemblerDebuggerMEGAMAX ResourceConstruction Set(c) 1989 by Morus Walter12. 4.1989Okfreier Speicher: kByte16384StandartdateisuchpfadeAbbruchOkEdit :________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchEdit .H :Compile :Edit .CAssemble :Edit .SLink :Make .LNKRun Prog.:Utility :Make proj:??????????????????????????f D0)F&F F F F Ff F G G F| pt 8))ah))En))))!:c))'))c))B))    ! , 7 J s ))   0)) Y ` 4)) ] d p ))    El'' ]ef))Pw''  "(.4:@FL|" /X))))#L))u|)).W))))  4])))) :c))))@i)) 2M$6 @&H0P9XC[ ^ }( .  (.(.(.5 8 R( U.    2    N/   ! j (" C #i $  (% C &' (( C)!(*!.C+",!J(-!fC./!(0P1!(2(!(PP) k  u  |     1P     # 8Net&%  !" #$+%=L 1'0 (])p*+,-./0& 2>! 3 4 5 6 $7 /8 89 D: O; _< e = u > 1                            ' 8    % . " % #  I-  R  U #  x,   #!   ! "" "*-  B "F ("b+   "~(%"+ 8 a t |$ . "            " (",  e " (%# ,   #&  $'')J*0/-#B&H#z    Q AQ BQ C Q D Q E Q F Q G Q H 5  @@@@@ @#  QQQ(Q8QHQXQhQxQQ " ! !Q Q #Q $Q %Q &Q #'Q *(Q 1)Q 8q ?+0! ,8/ B= .@ #^(/@ 10@ 9@ B322.1)644.3)19 . :@,988@,7@5@, 7;B* <Q(=Q(>Q(?Q(@Q(AQ(BQ(:Q( 5 !+ * 8# I2 #) #(%#+    '',3(0/ $&H$"    Q AQ BQ C Q D Q E Q F Q G Q H   @@@@@ @$>  QQQQ.Q>QNQ^QnQ~Q * ) !Y $Z"Y $v#Y $$Y $%Y $&Y $'Y %(Y %)Y %:Y %V+R ,U/-. .Q ],Q a0@ f1@ m2@ t3%r! % ;M$)/9C   ' - 5'9-OSm'q-'-  ' -   .'  2- !N "R #j' $n- % & '' (- )*+',--. /'0"-1>2B3U'4Y-5o6s7'8-9:;' -5!+(%(%+;#1'(%(5 :J!R+U2 j,|$ ,   $, $ ,$ 2% (%&+  }               $ /2 OCU*l.t8w &6(&R+  7 &n( &+  &( &+  &(&+ '('2+ 'N('j+ ' (' ('+ '+   ' ( (.     A"2@J8R-OLJK(JLF426P?8`t h``>>> TURBO-C <<<< for ATARI-ST Release 1 (C) 88 Borland International G#~J$VH3~ k  Ј<.@// ?<?<JNAO pBAA4|`g |`.gg4TB|"O4SBQBt SAe!dB)SAe !eHiR@`/ R@Hzd"k, ON0? 9tg @N 9t g @NNf?<LNAH.O8$Hv jNMKIt^E|0oY@l8BR|gxpDN$`ANnz W fr0/ jNo0/| |4b@0;Nj$,4:BJPV\bhnt|pNl( "<Nk/"L j hN]XOB@ jNF` MN`pNp`pNf`pN\`B@NR`BC`pN`N`N`N`N>`N`pN`~pCAN<`lB@N#l`bpN#d`ZN%`T VN`L VNx`DN(`>N `8N*`2N($`,N/f`&N;` NA.`pN-`B@N-|` NC`NGjJCfB@ jNmNOLtNuOHytjCteAN8XOJ@gANOO&H6*IMJ@l(E J"KN_p\ JN_B(H gCuiAN_`0HCHEf Cum JN_~ ?f*f Cum JN_fpA. g" Jp\N^(H f "M JN_D` "MAN_8 oZNBHo<"N JNCPXO oL|Nu//&(Jl0NVb`gAutpNhp`B@(&NuH8O?@j/HfGbNe7@AB@NfNNEt^NfJ@fAnpNgNNfS@f yt$|C yt$NgJ@fApNgN KrB@NgArB@NgArB@NgA r B@NgArB@Ng|Ar B@NgpAr B@NgdAr B@NgXA rB@NgLA$r B@Ng@A(rB@Ng4A,rB@Ng(ABAB@NgArB@Ng ArB@NfArB@NfB@AI>`2A@AC4J) R@| mB@ANe">|f ApNf` L0NH LNA ojo ofNr`A&N]FJgA&N\B@Nfp SNfOlLNuH 6$HNTfJ@mXA~"<0Nc"<NJ@fBD`$0H rr0NcnrNJ@g0Nc`RD| m0NcNT LNuNdNuNdB@NNuH>O/H6Kt(G@452IBIC/IfCum oN\ o ?f(f CumN[pA+ o <rNc:'H f pNeB` $ kA2'HIA2(BUMBVB"k kBD` p2 TB0RD|o S!k S!kB@N0H S!u $ S!uTE S"h<$"hT# R"oN[FCtb yN[6NcZtxrA`8:HʀJg&:EDM SCP /I  SpP SpP RDR:E4| n&H|Qm`0@DH Sp Sp RD| oByx"`0@DH Sp RD|)oBy Sh" Sh 3HWHoHo C SNcO ??/?/?/ ?/?/ 4/2/B@NcFO ??/?/?/ p??4/ H…o2/HopNcO NK2B@C8 SNK?@Bo "RANYBB2/0/ C8 SNJ??/?/4/ r B@ SNb<\Op SNb?@ |?@NJ ofpo2/ @lRo ` of0/ oSo ` of`Ho Ho C A NctPOHo C p SNaXO0/ o oo ro4/ Aox?A `po 0/ ldBo `^ ofn o oftrp SNbH/ <2/H N_*П/@ 0/H "/ N^"<N_?@ t2/0/ C8 SNH` om@ o n82/0@AH SC /I R4/ |gH|@ SND` o"mP o)nH RNXx R/H ` o \g S o bR 2/0@AH S"p o NW`h of RNG`V om on0/o |?@ 2I@I 78f RNW R/H ` o  \g S  o d"o A NWvR 2/ 0HAHA9/H Bo ` o g < g "o R R Ro  o mC  o NW$`p4/ 2IBIC9 yNW2/ 0HAHCB yPHNV??/?/4/ BAp SN_P\O`B o fBy` o!f3B/` o9fpU2@lRV` o6f 0oSV` o7fTHo Ho C A N`~POHo C p8 SN^XO0/ o oPVrU4Ao<`QV0lBV` o8fJ UoDtr8p7 SN_H/ <2HQN\HП/@ 0HQ"/ N["<N\*<`< o.g o;m oBn0/ |gx;`p2ADI Sp fRD|Bo0D|;?@ r4BDJ Sp gܰUlz2"T1Pf28`p2"TC2 TNU o,g o+f. kf&r?Bg?<?<BgBB S0/BAN\RO Bo o,g o*g o+f??/?/?/ p??4/ H…o2/HoN\>O ??/?/?/ ?/?/ 4/2/pN\O 2/0@AH SBp oB|*g8JCf2 <NZ4/H  g0BHytb"kN.XOHytbCv o N.XOBD`bp2 TNRJgHytbp2"T o N.XOp2 TNt/H Hf p2"TB1 o Sg Cf o ORDUmB@ kNZ?@ NIJ@m4 o NRj"/ o NR^"0/ o NY"N*J@f0/ NY&NIJ@m o NY o,f "k oNQ kN/H CvNQ <NY/H  f pN[ ` o BHyv"kN-XOBD`*p2 TNQJgHytbp2"T o N-XORDUmB@ kNY$?@ NHJ@mF o NQ~"/ o NQr"0/ o NX"N>J@g 0/ NX<`0/ NX2NHJ@l o NX`6 o NX o,f&"k oNPJCf oN/H CvNP kNXO L|8NuH86:NH4J@m.Et^ApNYް|g|fpNBt2pNX\(NGJ@mFBB2pNXHNGJ@m4pЄNW&H fpNY`B3H K"0NW"NHJ@g KNX0NWB`0NW8NGC KNP(H|fVL"L yNO?<?<BgBBrp3 yNXJ\OJEfDCNP`8 LNOr(d ApNX` LN Hf *fRL0 LNZJ@gCNP@(H f KNWpL8NuH8O6C yN?E"y JNO>p\ JNN&H f&J`RKC KNO"It^ JNO\r(dApNX^` JN&H0HCt@"qNNJ@fR"J yNN?<?<BgBBrp1 yNW>\OB@ JNV8|g2N yf C KNNC KNN4J@gCh KNN&J@gC KNNJ@f*"J yNN\?<?<BgBBrp3 yNV\O`0 JN OPLNuHV`""R2)>H3AR"R4)>JH…3BV4(BA`(v2 j6CAK"R#H"RiRBRA|mJ@g0?<?<BgBBrp7 RNT\O?<?<BgBBrp: RNTh\OL NuH 6Et*RmQ@m&pC4r@jotj40lBRpN`n8R|;Ep2ADI Rp gt?Bg?<?<Bg0BA4NT0O p2 j2ADI"R# ?<?<BgBB R0BANS\OLNu/ EJ@f jB?<?<BgBBrp1 jNS\O jB?<?<BgBBrp3 jNSh\OB@` r2 RB0R@|oByt(Byt*pN&$_NuHO6HywHAw8"pA0NXOJ@gj|g|fXIC LNJtp\ LNI&H fGIS@fPv`LpDgF jfvJFg8A0NR(`, jf$0HAwH ppNR >S@fv|fxJCg?<?<BgBg?<?<BBBApNQO C~ANHpC_ANGANH*x>` 3 @fAp@pRDRG|~lp`B@f3@g$gB`B7pANp`P0<NRp ybNQBrB@NR8XO?<?<BgBg?<?<BBBApNPO 0<NQ0OLNuOpANXgAB@N6OO*H:BCEBG~IwMrk.gC JNEpk.g C JNDpk.g C JNDA0NEJcbC JNDCA0NE J@f4"M NNEhp. NND. g C NER` C NND"N JND` C0 JNDzCa JNDp"M JNDh"JANE JNEV"NAB@N8J@g8 k,gJEg ApNN> k,g k,fAMpNN$|fv0<NNp ybNNLBrB@NNXO?<?<BgBg?<?<BBBApNMO 0<NNJCgF?<?<BgBg?<?<BBBApNMVO "M NNDHC` NNCC0 NNC| NN`N0<NN2p ybNMBrB@NNNXO?<?<BgBg?<?<BBBApNLO 0<NM0OL|8NuOHyzCzpANXOJ@gpNNANB@NNOEG`*"J0@G@ sphN6J@m"/d/RRG0@G@ 3hg`jNJ@f0@G@ 3hf "J sphNx6J@md4(`.0@G@ 3cfn"J spcNH6J@mC2AGA sNj?@ J@mlJCf"dd$/dd*`0@G@ sNR6J@f6|x`0@G@ 3sf`"J spsN6J@m C2AGA sN?@ J@mJCf"dd`*`\B@2AGA sN6J@f|`>0@G@ 3og 3lf&JFf""J0@G@ spoNF6J@md*RG0@G@3fN|6J@f`JFf"J kpxN 6NVJ@fFJFfJCncB@AN6J@f*`0/f AzpNHjNJ@f0/g kNOL Nu/0<NF&<fAzpNH,0<NEJfp`JfB@&NuH BCE`>0@C@ 2cf rN8`0@C@ 2sf rB@N8JDf&RC0@C@2fNt8J@f AB@NLNu?/ O86&HN6J@l/ "ywPAN6XOApNGl0O&_6NuH8O6&H(IE J"KN= JN&HC{#N=JCg"L JpoNJ8` "L JpxN<8JDlHo"ywPAN6&XOApNF` |fBBD0OLNuHYO8&IB@NE\6|f4A~|hf2(f|cf0(f|sf0(f|xfp`J0N4J@m(BA0ANDN4J@l0NDH`0ND@N4J@lp`p0/rt4Ђ&B@XOLNu/ / O$HGwT g KN=/ JN= Пrdd& KN<"KAN<g,ApNBJ@g` gg Cy5 KN;"J KN;B@O&_$_NuOB@AN gANOZAN>N.J@m@B@A{N>6N.J@m*A~r*0N>r*N J@g0N> ` 0N>N.|O LlNuH:O6EHA{&"R#p$"R i/PJCfC oN6`|fC oN6MIGHWHoHo "K RN?O ????BgBg40/ H@20H@B@N?t\Op RN>8r?Bg?/??4 RBAN>O |fHy{C{vp RNdXO|g|f|f(JCf"oA N5`|f"oAN5v????BgBg40/ H@26HÇCpN>LO ????BgBg40/ H@26HÇCpN>O O L\NuH>OA~NMrHWHoHo C VN>O ??/?/?/ BgBg4/0/ H@2/0/H@B@N=O ??/?/?/ BgBg4/0/ H@2/0/H@pN=jO KG{vE??/?/4/ r B@ VN<\Op& VN=$6r?Bg?/?/?/ 4/ VBANp\ MN-(H gC|pAN."` C|p MN.B@ MN5>N%J@mRt2pN5.N%J@mFBB2pN5N%vJ@m4pЇN5&*H fpN70`B5x M"0N4"NJ@g MN50N4`0N4N%*C|x MN.P(H`BE` 4;Pg 4*Pg 4-PfRE 4WPfd~G 4-PfBGRE||:npp2AFI S"p APN-J@fRJGg0@FH Sp `:0@FH Sp `& 4DPg 4UPf,|l&p(CP4B2ABI R h\ PN DRD` 4HPf,|l&p(CP4B2ABI R h PN RC` 4NPfp(CP R h PN` 4EPfpCP R h PN`z 4FPfpCP R h PN`\ 4LPfpCP R h PNf`@p 4-PfB@|`4P4BFJ R"p )f1 TF|o` RE4PfRC|xN,(H f8 MN3O>LOMrE~ V"h "QATN+ V"hT"QA~N+r <N2&H f pN4`Bv.K{v`D0@CH V"p (Q LN+|Jg( -f" ,Dg ,Uf"L KN*\C KN*RTC|2ov&` Hy|{0@CH V"p "Q KNXOTC|(oHy|~ V"h"Q KNXOHy| V"h"Q KNXOHy| V"h"Q KNXOHy| V"h"Q KNXOv`<0@CH V"p KN)p2ACI Vp f C KN)C KN)TC|ovMv`Hp2ACI Vp g C KN)\` C KN)P0@CH V"p KN) MN-`OOMzE~ V"h"QAN%, V"hL"QAN% <N,f&H f pN.p`BI{vp Vhg CW KN$.p Vhg C\ KN$p Vh*g Ca KN$ V"h\*QHy| MN$JfC`"M KNXOBC`"Hy|0@CH V"h"Q KNXORC|mCAN$`p\AN#*HCM/ gA`A"_N$BCI`*0HCHC<42ABI T p PN zTWRC WoKMHoHoHoC TN)O ???/ ?/BgBg4/0H@2/0H@B@N)O ???/ ?/BgBg4/0H@2/0H@pN(O G???/ 4/r B@ TN(H\Op TN(82A@I Tp W@gv|gpA}N^0@DH T"p"Q KN ?f+f C|i KNjpA9B/ HWC KN|XO Wf"K0@DH T p PN2|g|fD|f8>BC`*20@AH T"p "Q4JCJAOX/H*IEG"R i<& iT%PBD` 5a@m 5z@n5 @RD5@f,jBD6`0RCRD 5.0g|mRC` RD|mBD`0RCRD|mB"o SN>N fN#^vxrA`24HĀg"4BDJ,RM  Rp  Rp RDR4B6| n&H|Qm`0@DH Rp Rp RD| oBjx `0@DH Rp RD|)oBj RhZ RhBBjHWHoHo C RN#O ??/?/?/ ?/?/ 4/2/B@N#XO ??/?/?/ p??4/ H…o2/HopN#"O I2B@"L RN 6BD"SA NBB20"L RN 2??/?/4/ r B@ RN"Z\Op RN":|?@N o*gb o+gX ofpC@lRD` of JDoSD` ofNHoHoC AN#POHoCp RN!XO0/oo| rCAof8`b| JDlZBD`V of`| oZtrp RN#H/ <2H NXП/@0H "/N"<N6(t20"L RN ` om> o n62/0@AH RC /I,S4|gH|@ RN` o mR o)nJ SN S/H` o \g S obR2/0@AH R"p "Q oN,`< of SN`* om on0/D|?@2I@I 4f SN"?@  S/H ` o  \g S  o d"o ANR 2/0HAHA/H Bo ` o g < g "o R R Ro  o mC o NZ`jp4/2IBIC jN2/0HAHC jPHN"??/?/4/ BAp RN\O` o/f@C jNHoC}HA N\XOA pN *S@fAN NX` o0fHC  jNv"j j ,h< VNHoHoHo C j NO ?/?/?/ ?/ p??4/ H…o 2/ Ho pNFO ?/?/?/ 4/ r B@ j N\Op j N?@2A@I j Bp ?/?/?/ ?/ t??4/ H…o 2/ Ho pNO p o?r o?to ?to  RB@r N \O ofC j ,h< VNRC A B@NN `| o1fVC jN(HoC}A N XOA pNS@fHAN?@|f AN?@0/N ` o.fBj` o-f 5|B/ og"SA NJ@gHNp"L RN6BD??/?/4/ 2 RpN.\Ot20"L RN"SA N` of0|g RNN`0|g om on??/?/?/ p??4/ H…o2/HoN*O ??/?/?/ ?/?/ 4/2/pNO 2/0@AH RBp "S oN"M jN o*g om on o 0 o+f o BPpO L|8NuH>O/HANFEr R hT?/ / "/NT"/NLr _2Nfr R h?/ /"/N("/N r _2N:r R h?/ / "/N"/Nr _2N GIKMHoHoHo"N RN O ????p??4H…U2HVpNO ???4r B@ RN\OB@ RN2A@I RBp ????p??4H…U2HVNbO p S?r T?tU?tV oB@r N\OOL|NuH>O/HN (HEC jNpANJ@mC R hTNr R h ,N6,K|?8,p lr R hp0NC} R hNGr Kp0N"K R hNzl6,K|8,p l|Pr R hp0NvC} R hNr Kp0NZ"K R hNC} R hNxr Kp0N2"K R hN`,f Rh` RhGIKMHoHoHo"N RNO ????p??4H…U2HVpNO ???4r B@ RN\OB@ RN2A@I RBp ????p??4H…U2HVNfO p S?r T?tU?tV oB@r N\OO"L|8NuB@`  gа|f.RHR@| mBNuH8$HNJG` \gSKcI` \gSLc \fRKRL"K LNp`B@LNuH<$H(I6<>BE8K}`^0@EHA&h2IDI 4f C KN~` C KNr0HDHC KN0@EHAhRDRE| m| n Bj5j`"0*H5@4*2IBAH5AJGg0?<?<BgBBrp JNv\O?<?<BgBBrp JN^\OLO,H&I8N$H yNH(y` \g SLdCA(N C} n PN C( n PN C} n PN JDg?<?<BgBBBAp NN\OK09g.?2A@I U40 |??<?<Bg NBA4NO v`N0@CHI yf44<vf*?rv ??<?<Bg N0BA4NO 3RC| of09g,?2A@I U40 |??<?<BgBA4NO v `P0@CH U"p "QA(N TJ@f2?p2ACI Up ??<?<BgBB0BAN@O 3RC|)o`K09g,?2A@I U40 |??<?<BgBA4NO v"`N0@CH U"p A(N J@f2?p2ACI Up ??<?<BgBB0BANO 3RC|)o yH|ANNVJ@mP"yTIAN AN (` 7\@gSDJDnB7@AN6|f yNlJ@f0NJ@lB@` BEpNjpA}N8J@mz *fZ *.gR0HEHIBC8`@RDRC 2.@g|m` RC|mBC`@RDRC|mBRENJ@l|o0 KN<C}A(N lJ@fpA}NJ@mAN(HC}N @J@g C} LN 0J@gC} LN J@fR0HEHIBC8`@RDRC 2.@g|m` RC|mBC`@RDRC|mBREN(J@ln`jpA(NJ@mx0HEHIBC8`@RDRC 2.@g|m` RC|mBC`@RDRC|mBRENJ@l0FS@o0F2IFIAN<6`0HCHB3C}AN nRC| mޑB@Nn0OPL|xNuH O$H:BC`pxC`d0HDHC2ICIANbJ@oB0HCHAC"""""2IDIAC"""""AC"""""RDDnRCpE@mOL8NuH<&H$I09fNX`:(K`RL .gf*J`RM .gf"M LN.6J@f "J KN 60L<Nu?6|l D@|N06Nu OfNh] h@f6 hf,#_/(/( ?9?<@Hy_~@`.y_ yN OfNh] hf#_Hh /<?9?<@Hy_~@`/YOM,C HzaZXOXO,_NuH@B@H@C~VraJ@kNu.Vp`/YOM, IC HzaXO VBXO,_Nu"VS@eQ,NuH8]O$H&I(o&BCx%p JR@gfJ@g@NBEgBA< <b;k`|<*f<`&<0< b ACp a$Wb<gt<.f6<*f4`$<0< b ACp a$Wb~4gv<lf gfgr@dV|?@0;NFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [0`AB(`0AB(` [2"La@``JEj `p0?4 LaTO@`@JEj `0H?4 La`TO@` JEj `p0?4 LaTO@`JEj `p0?4 LaTO@`@N0\OLxNup`H Ov Jj|-?|D`g|+?|`g| ?|`~?|`vH Ov ?|`dH Ovf?|`L|0f|x?|`2|X?|`$H Ovf?|` |0?|$H>C8jxA a:A pJWF@?@gA 2SAk ae(Q2/@4/(jt@jtBgf 0Ao@@Alx?B?D`XH0$H&IvJWFCJBj4Cb6xJAkCc8Cf K0a0 JN` 0 JN0 Kap0DL Nu6x0/g f@ JaP0/g@AN0/g@ Ja,0/g@A N0/g g@ Ja0OLNuH0E6`H0E4&H6g8Kg SC JpNQ J0|gNL Nu00000000 H:$H&I(Sx&gBJg>+g@,k $ڹd SfRe`&// Ka*$"J@f(S`& L\Nu3 tp`H&H(k6+"+g0DtaJk+fT"SA"L Ip Wf(| ?/ " 0aX"_2JkJAp QH@" 0a6LJj`&0" La |g&'LB@LNup`|g$//??<@NAO JkNua\3tpNu// &H&g??<NAXOSb&_&Nu|b$??/?<BNAO JkNua3tpNu0<`D@| |"b;NupNu   / G g/ &S?<INA\O`G g/ &S?<INA\O`&_Nu JgJgJgJgJg JgJgJfSHggggg ggf @Nug fC`Jg INuSHNugHf8g@f0g8f(g0f g(fg fgfgg!epNupNuJfpNu g<g8g4g0g,g(g$g ggggg ggf @Nu"HJgJgJgJgJg JgJgJf SNu"Jg JgJgJfSHSefB ANuSeg ge pNuJfpNupNu"SefBJgSf ANu$ fJ~~g` y~~f p#~~`L$Igf`#~~S~~f y~~p#~~`$IgfB( 9~~#~~ @$BNu`H0$H|g|$brGgJ3kSJtgtJ@f"p <0f:pgb<߶<Xf(pf"`N|f<0fg><߶<Xfg.G43d"3d&HCHCJCfԃԁd` & gSJ"L Nu3"tp` 3!tp& g"`//"4UB|"bZC"t&HCJCf&HC;0NRBH@B@H@f`$?&8BCHC06H@0HC;0&RBJf8QB" _&Nu3!t`0123456789abcdefghijklmnopqrstuvwxyz|A:0|@Nu<0< SHNu|A0|Nu|A0Nu  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@@@@@@@@@@@@@@@@@@@@@@@@@@@::::::8888888888888888888866666644444444444444444444@  !"#  !"#$HBJBf$HBJBfNuHBЂNuHBЂNu$jD BJjD$HBJBf"$HBJBf $jDNuHBЂ$jDNuHBЂ$jDNu$jD"BJjD$HBJBf4$HBJBfH@B@H@$ jDNuB@H@HB0@0H@0H@$ jDNu AH@r2B@tЀӁd҈рӁQF@$ jDNu?<NATONu//??<?NAO Nu?/?<NNAPONu?<NATONu?</NATO @Nu?<ONATONu??<NAXONu??<NAXONu??<>NAXONu/?< NA\ONu/?<9NA\ONu/?<HNA\O @Nu/?<;NA\ONu/?<ANA\ONu??/?<WNAO Nu//??<@NAO Nu/ /??<VNAO Nu/?<:NA\ONu?/?<6NAPONu?/?<GNAPONu?/?</ #p6a0"_2"o2"o2"o 2Nu#3p4`3p5`#pn`/A00ppa"_"Nu#3p`#A00p `#A00p!`/ E$$3p"a|$_Nu#A000pL``#3pN`N/ /pOaD"_2"_2"o2"o2NuA000000 pi`3pk`3@@A CB@22220<"<r2NBA0Nu$ uvvvvvvw/w3utw5%5ldPROGProgramm ausfhrenTTP[0][ Rckgabewert des Programms:| %d != 0][ Ok ]Programm debuggenTOS E%s %s H%s %s PRGE%s %s e TC_SHELL V1.0 Taste drcken! f*.*?:\*.*[1][ TOS-Fehler:| Es wurden zu wenig Daten | gelesen / geschrieben][ Ok ]TC_SHELL.RSC[1][ |TC_Shell luft nicht | |in niedriger Auflsung ][ Ok ][1][ |Fehler beim Laden der | | Resource-Datei !][ Ok ]TC_SHELL.SET[1][ | TC_SHELL.SET nicht gefunden! | | Keine Voreinstellungen !!!][ Ok ]*.PRJ*.LNKProjektdatei erstellenLinkdatei erstellen=-O=[0][ Datei einlesen ? ][Ja|Neu| Nein ] [1][ Name zu lang ! ][ Ok ]LIBOHwwwwxxz[*.**.H*.C*.SEditor aufrufen Edit >Compilieren[1][ Compilerfehler ! | | Make wird abgebrochen ][ Ok ][1][ Compilerfehler ! | | Editor aufrufen ? ][Ja| Nein ][1][ Compilerwarnung ! | | Make wird abgebrochen ][ Ok ][1][ Compilerwarnung ! | | Editor aufrufen ? ][Ja| Nein ][1][ Compilerwarnung ! | | Editor aufrufen ? ][Ja| weiter|Nein] *.LNKLinken-I=TLINK.LNK -I=[1][ Linkerfehler ! | | Make wird abgebrochen ! ][ Ok ][1][ Linkerfehler ! | | Editor aufrufen ? ][Ja| Nein ]Assemblieren-L2 -B -D -P.LST[1][ Assemblerfehler ! | | Make wird abgebrochen ! ][ Ok ][1][ Assemblerfehler ! | | Editor aufrufen ? ][Ja| Nein ][1][ Makefehler bei Datei |%s |Make wird abgebrochen !][ Ok ]*.PRJProjektdatei auswhlen >>> ________ <<< >>> <<<[1][ Alles ok ! ][ Ok ][0][ Make wurde unterbrochen ][ Ok ]O{{PROGEditor auswhlen*.PRJProjectdatei auswhlenTC_SHELL.SETRCS OptionenDebugger OptionenProgramm auswhlen\INCLUDE\2510032Compiler auswhlen*.ERRFehlerdatei auswhlenHeaderdateiverzeichnis auswhlenAusgabeverzeichnis auswhlen?:\*.*TCC.CFG -H-N-E-F-L--W-W-4096Linker auswhlenLinkfehlerdatei auswhlenTLINK.LNK-G -L -V -S=-U=*.LSTListingdatei auswhlenAssembler auswhlenPfadname auswhlen[0][ Name zu lang! ][ Ok ]}[3] Wollen Sie den Ordner | %s| wirklich anlegen ?][Ja|Nein][3][ Wollen Sie die Datei | %s| wirklich lschen ?][Ja|Nein]*.*:.  \*.*PROGPRGTTPTOS~~~~V~i~i~i~j~}~}~}~~h "FV&>6""($ ~""~2$,$.|(,"@6(Z,F0HNBN" >*| |>|"&F,DV&^2xBJ$ؘ, r,l  ,R&.p\X( ,F:~8*Ĉ " .FJL   ~  & ,$   , X(J $SKSTurbo C Shell V1.0Gem-ShellfrTEMPUS EditorTURBO C CompilerLinkerDEVPAC AssemblerDebuggerMEGAMAX ResourceConstruction Set(c) 1989 by Morus Walter12. 4.1989Okfreier Speicher: kByte16384Compiler Warnungen012RestoreAbbruchOkdupRedefinition nicht identischambzweideutiger Ausdruck ()!retreturn-Value uneindeutigampberfl. Adreoperatorstrxxx kein StrukturmitgliednodFunktion nicht deklariertstuStruktur xxx nicht definiertproFunktionsaufruf ohne Prototypsusverdchtige ZeigerumwandlungstvStruktur als Wert bergebenvoivoid-Funktion hat Ergebnisusexxx deklariert, nicht verw.zstStruktur der Lnge Nullaptnicht portable Zeigerzuweisungauszugew. Wert wird nicht verw.clnlong-Konstantedefxxx uninitialisiert verwendetcptnicht portabler Zeigervergleicheffwirkungsloser CoderngKonst. zu gro in VergleichpiaZuweisung falsch ?sigVerlust sign. ZiffernrchProgrammcode unerreichbarucpGemischte ZeigerrvlFunktion sollte Wert liefernrptnicht portable UmwandlungDatei Info:Name :12345678.123Lnge:123456Datum:12/34/56Zeit :12/34nichtgeschtztOkAssembler OptionenRestoreAbbruchOkOptionen :einaus-BBinrdatei unterdrcken-LDebug lokale LabelsListing-/Fehlerdatei:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchAssembler:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchNeuer Name:___________________.___FFFFFFFFFFFOkAbbruchLinker OptionenRestoreDefaultAbbruchOk-GSymboltabelle mit globalen Symbolenerzeugen-LSymboltabelle mit lokalen Symbolenerzeugen-VAusfhrliche Linkinformationen______Stackgre: ______999999BytesUndefinierte Labels:____________________XXXXXXXXXX____________________XXXXXXXXXX____________________XXXXXXXXXXLinker:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchLinkfehlerdatei:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchProjekt OptionenAbbruchOksaveFehlende Datei miachten beiHeaderdatei (.h)C-Source (.c)Ass.-Source (.s)Start-Projektdatei:aktuell________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch12345678901234567890123456789012345Kommandozeile:OkAbbruch________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXCompiler OptionenWarnungenRestoreDefaultAbbruchOk-Akeine Nicht-ANSI Erweiterungen-MStrings zusammenlegen-Cverschachtelte Komentare-PPC-relativ springen-GGeschwindigkeit optimieren-RRegistervariable verwenden-JSprnge optimieren-SStandartstack erzeugen-Kdefault char ist unsigned-Zkein berfl. Registerladen___Abbruch nach ___999___Fehlern, ___999Warnungen;___Maximale Bezeichnerlnge ___999Compiler :________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchFehlerdatei :________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchHeaderdateiverzeichnis:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchAusgabeverzeichnis :________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchMakrodefinition :________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-D definiere Makro________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-U entferne Makro________________________________________________________________________________XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXDisketten Info:Diskgre :1234frei :1234belegt :1234OkEditor OptionenAbbruchOkEditor aufrufen nachCompilerfehler :jabedingtneinCompilerwarnung :jabedingtneinLinkerfehler :jabedingtneinAssemblerfehler :jabedingtneinEditor:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchStandartdateisuchpfadeAbbruchOk________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearch________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchEdit :Edit .H :Compile :Edit .CAssemble :Edit .SLink :Make .LNKRun Prog.:Utility :Make proj: TC-Shell File Projekt Make Settings About TC-Shell ------------------ Desk Accessory 1 Desk Accessory 2 Desk Accessory 3 Desk Accessory 4 Desk Accessory 5 Desk Accessory 6 Edit >________.___ --------------------- Edit file... Edit .C file... Edit .S file... Edit .H file... --------------------- Quit >>> ________ <<< Make Run Make all ---------------- Run Programm Debug Programm ---------------- Make Projekt Select Projekt Run Programm ... Debug Programm ... -------------------- Compile ... Assemble ... Link .lnk ... Link ... -------------------- Utitity ... RCS ... Projekt -------------- Editor Compiler Linker Assembler Debugger -------------- RCS -------------- Dateipfade -------------- SaveAbbruchOkDateipfad/-name:________________________________________________________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxSearchAbbruchSpeichernOk12345678901234567890123456789012345678______________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCopyDelInsertNew11111111111________.___FFFFFFFFFFF 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123NameTyp*.*PROG*.LIB*.O*.C*.S*.H1234567890123456789012345678901212345678901234567890123456789012345678______________________________________xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx11111111111________.___FFFFFFFFFFF 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123 X 12345678.123__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxx__________xxxxxOkAbbruchTypNameOrdnerRenameLschenFS-Box V1.1 (c) 4.3.1988 by TMMWMorus Walter??????????????????????????f D0)F&F F F F Ff F G G F| 8a)))),8E "DOZ ep{  ))*1Cl)) H P Q z ))   ; d))     3 O x ))   <)) e l ))1Z))))%>g))))Y)),))U\))+T))}))1Z)))) 7`)))) =f)) W))>''ejz ''(5 AT %+17=CIOU[agmsy"  $7  A EUg n              ;M$)/9%C ( , I' M- gk'-'-  ' - !>'B-^ b }'  - ! " #' $- % & '' (- ) * +2' ,6- -V.Z/m'0q-123'4-5 6 7' 8- 9:;' -  0 < C  P W  ^ e   n  u   {   '8$."           ( 2,   N (% j,     Q'T8\lt|%.  # -    # ,  # )/   "  -  ! (!.+ 2 !J(%!f+  5!+     ##  42 !) !(%!+; #  1 '(!(2M    & 0 9 C     (  .     ( . 2 5 P( S. n  q  (  .    ( .! "   "*/   7 !"F (""bC #  $"~ (%"C & m'"(("C)"(*# C+,#&(-#BC.&/#^(01#z(2G(#(   '5 *!2+52 J,\_g$ l, ~  $ , $,$ 2# (%#+ C]*t.|8 7 #($+ $"( $>+  $Z( $v+  $( $+ $($+ %(%+ %: (%V+ %r (%+    %  % %     PP)       & ,  1P  6 G [p  '9Kb&% p !"#$% 1'0 ()*&+<,J-Y.i/t0& 2>! 3456789:;< = ># 1 3 5:;!C+F%(%&+)J*0-&6&H&n    Q AQ BQ C Q D Q E Q F Q G Q H 5  @@@@@ @&  QQQQQQQQ#Q3QC " ! !Q ]Q b#Q f$Q j%Q k&Q p#'Q v*(Q z1)Q ~8q ?+! ,/ = .@ &R(/@ k10@ o9@ vB322.1S)644.3T)19 . :@,988@,7@5@, 7;B*<QU(=QV(>QW(?QX(@QY(AQZ(BQ[(:Q\(3(0 &&H&    Q AQ BQ C Q D Q E Q F Q G Q H   @@@@@ @&  QUQeQuQQQQQQQ * ) !Y &"Y '#Y '2$Y 'N%Y 'j&Y ''Y '(Y ')Y 'Y '+ ,/-. .Q ,Q 0@ 1@ 2@ 3(!  (. N/;2jA(J6G7<)20>5RH:\TC_SHELL.PRJD:\TEMPUS.PRGD:\TC\TCC.TTPD:\TCC.ERRLINK.TTPD:\TC\TLINK.TTPD:\TLINK.ERRRGB:\GENST2.PRG:\MONST2.PRGB:\MONST2.PRGGB:\RESOURCE.PRG??????B:\*.*?*.*_*.TXT*.C_*.H_*.S_*.DUPPROG*.ERR*.PRJ*.LNK ************************************************************************** ************************************************************************** *** *** *** T C _ S H E L L V1.0 *** *** *** *** *** *** GEM-SHELL fr TURBO C *** *** *** *** *** *** 14. 4.1989 *** *** *** *** *** *** (c) 1989 by TMMW Morus Walter *** *** *** *** *** *** Written by *** *** *** *** Morus Walter *** *** *** *** *** ************************************************************************** ************************************************************************** Dieses Programm ist Public Domain. Es darf frei kopiert und weitergegeben werden. Inhaltsverzeichnis: 1.0 Einleitung 2.0 Allgemeines 2.1 TC_Shell-Fileselectorbox 2.2 Edit 2.3 Projekt 2.4 Make 2.5 Einstellungen 1.0 Einleitung Turbo C ist wohl der zur Zeit schnellste C-Compiler fr den ST. Vom Editor kann ich das allerdings nicht sagen. Ich kann einfach mit einem Programm, bei dem man erst eine ganze Sekunde auf die Maustaste drcken mu, bevor das Programm etwas davon merkt, nicht arbeiten. Auerdem finde ich es doch ziemlich unpraktisch, wenn man fr jedes Programm einen eigenen Editor verwenden mu ( ein Editor fr Turbo C, ein Editor fr den Assembler, Basic hat sowieso einen eigenen und zum Schreiben von Texten nimmt man eine Textverarbeitung (oder gleich zwei wegen Signum!) ), wobei natrlich auch noch jedes Programm andere Tastaturkommandos hat. Wozu besitzt man schlielich Tempus? So schn die integrierte Entwicklungsumgebung in Bezug auf Turnarround-Zeiten auch sein mag, und auch bei der Korrektur von Fehlern mag das integrierte Konzept Vorteile haben, die Verwendung eines eigenen Editors ist mir doch lieber. Freundlicherweise hat Heimsoeth ja neben der integrierten Version auch noch die Kommandozeilenversion mitge- liefert. Da ich aber Kommandozeileninterpreter auch nicht so besonders schtze, und insbesondere auf die Vorzge eines komfortablen Make- Utilities nicht verzichten wollte, habe ich eine alternative Shell fr Turbo-C entwickelt. Das Ergebnis ist heit TC_Shell, ist vollstndig in GEM eingebunden und dient der komfortablen Arbeit mit folgenden Programmen: Tempus Editor (andere Editoren ebenfalls mglich) TC Compiler TC Linker Devpac Assembler Devpac Debugger (die Verwendung eines anderen Assemblers/Debuggers ist, wenn auch mit Einschrnkungnen mglich) Megamax Resource Contruction Set (ein anderes RCS kann problemlos verwendet werden) 2.0 Allgemeines TC_Shell luft in der hohen (monochromen) und der mittleren Auflsung. Die niedrige Auflsung wird nicht untersttzt, da ich aber auch keine brauchbaren Editoren kenne, die in dieser Auflsung vernnftig arbeiten ist das keine allzugroe Einschrnkung; auch die Original TC-Shell arbeitet ja nicht in dieser Auflsung. Fr die beiden mglichen Auflsungen werden zwei verschiedene Resource- files verwendet (TC_SHELL.RSC fr die hohe und TC_SHELC.RSC fr die mittlere Auflsung). Beim Programmstart mu sich die entsprechende Resourcedatei im gleichen Ordner wie TC_SHELL.PRG befinden. Wird die Resourcedatei nicht gefunden, so gibt TC_Shell eine Meldung aus und das Programm wird abgebrochen. Das Programm belegt im Speicher etwa 60 Kbyte. Die Arbeit mit einer 420K Ramdisk hat bei der Entwicklung des Programms (~100 Kbyte Quelltext in 4 Sourcfiles) zu keinen Speicherplatzproblemen gefhrt ( 1M Ram, keine Accessories). 2.1 Die TC_Shell File-Selector-Box (FSBox) TC_Shell verwendet eine eigene FSBox, die ber folgende Mglichkeiten verfgt: - Auswahl von bis zu acht Laufwerken mit der Maus; dabei werden nur vorhandene Laufwerke anzeigt. - Auswahl von 10 Fileextensions per Mausklick; der Text der Extensions kann beliebig eingestellt werden; die Pseudo-Extension 'PROG' vereint die drei Extensions '*.PRG','*.TOS','*.TTP'. - Sortieren der Files nach Filenamen oder Extension - Anzeige eines Disketteninfos mit Diskettengre, belegtem und freiem Speicherplatz der Diskette - Fileinfo mit Filename, Filegre, Erstellungsdatum und -zeit sowie Anzeige des Protectmodus - Absturzsicherheit gegen Eingabe von Underscores ('_') - von der FSBox aus knnen Ordner angelegt und Dateien gelscht oder umbenannt werden Im folgenden beschreibe ich kurz, wie man mit dieser FSBox arbeitet: Nach dem Laden der Directory und dem ffnen der FSBox prsentiert sich diese wie eine erweiterte Standart-FSB, das heit, man kann mit dem Pfadnamen und dem Filenamen genauso umgehen, wie man es bisher gewhnt ist. Auch das Auswhlen von Filenamen und das ffnen und Schlieen von Ordnern funktioniert weiter genauso wie bisher. Die FSBox wurde jedoch um wesentliche Funktionen erweitert. Die Infozeile oben in der FSBox zeigt an, wozu die FSBox aufgerufen wurde, wozu also ein File ausgewhlt werden soll. Die Laufwerkbuttons (am linken Rand) dienen der nderung des Laufwerkes von dem die Directory gezeigt werden soll. Es werden die ersten acht Laufwerke (soweit vorhanden) dargestellt. Klickt man einen dieser Buttons an, so wird das gewnschte Laufwerk in den Pfadnamen eingetragen, die Directory geladen und angezeigt. Dabei werden bei jedem Laufwerkwechsel alle geffneten Ordner geschlossen. Die Extensionbuttons (auf der rechten Seite) sind vorbelegt, sie knnen aber auch verndert werden, wenn man sie mit den Cursortasten anfhrt. Mit ihnen kann man die Suchmaske einstellen, so da nur eine Teildirectory mit allen Ordnern und mit den Files, die der Suchmaske entsprechen (die Wild- cards '?' und '*' sind zugelassen), angezeigt wird. Mit den beiden Buttons 'Name' und 'Typ' links unten kann man whlen ob nach dem Filenamen oder den Extensions sortiert werden soll (im zweiten Fall wird natrlich bei gleichen Extensions nach den Filenamen nachsortiert). Soweit die Erweiterungen die zur Vereinfachung der Fileauswahl dienen. Da- neben kann man mit dieser FSBox aber noch Informationen ber die einge- legte Diskette und einzelne Dateien aufrufen und einfache Diskettenmani- pulationen durchfhren. Mit einem Doppelklick auf das eingestellte Lauf- werksbutton kann man eine Laufwerkinformation aufrufen. Sie enthlt die Gre, sowie den belegten und den freien Speicherplatz der Diskette. Mit einem Doppelklick auf den Filenamen kann man analog eine Dateiinformation zu der gerade eingestellen Datei aufrufen, die den Filenamen, die Filegre und das Erstellungsdatum enhlt, sowie anzeigt, ob die Datei schreib- (und lsch-) geschtzt ist (also hnlich der Funktion 'Info zeigen' im Desktop). Mchte man einen Ordner anlegen so schreibt man den Ordnernamen in das Feld fr den Filenamen und klickt 'Folder' an. Es erfolgt noch eine Sicherheitsabfrage, besttigt man die Funktion, so wird der neue Ordner im aktuelle Directory (also auch innerhalb bestehender Ordner) neu angelegt. ACHTUNG! Wenn auf der Diskette eine gleichnamige Datei besteht, so wird diese ohne Warnung zerstrt! Mit dem Button 'Rename' kann man Dateien umbenennen. Klickt man diesen Button an, so erscheint eine Dialogbox, in der der in der FSBox eingestellte Filename angezeigt wird und verndert werden kann. Klickt man den Button 'Delete' an, so wird die eingestellte Datei nach einer Sicherheitsabfrage gelscht. 2.2 Edit Im Edit-Men wird - wie der Name schon sagt - der Editor aufgerufen. Der erste Meneintrag (" >________.___ ") wird erst aktiv, wenn der Editor schon einmal ber den Meneintrag "Edit .C file" oder "Edit .S file" gestartet wurde. Es wird dann der Name der dabei aufgerufenen Datei im Meneintrag dargestellt und beim Anklicken wird der Editor mit diesem Namen aufgerufen (es wird immer der vollstndige Dateipfad mit angegeben, auch wenn er nicht angezeigt wird). Diese Funktion dient dazu, den Editor fr hufig gebrauchtes Source-File schnell und ohne Umweg ber die FSBox aufzurufen. Die Menpunkte "Edit file ", "Edit .C file ", "Edit .S file ", "Edit .H file" unterscheiden sich (auer in der Wirkung auf den ersten Meneintrag) lediglich im Aufruf der FSBox. Bei "Edit" ist die voreingestellte Extension '*.*', bei "Edit .C" '*.C' usw. Natrlich kann man jeweils auch Dateien auswhlen, die nicht dem voreingestellten Extension entsprechen. Der Menpunkt "Quit" dient ( schwer zu raten ) dem Verlassen von TC_Shell. Eine Sicherheitsabfrage findet nicht statt. 2.3 Projekt Die Philosophie der Projektdateien in TC_Shell entspricht im wesentlichen der von Turbo C. TC_Shell ermglicht allerdings keine lokalen Compiler- und Assembleroptionen und erlaubt keine Kommentare in Projektdateien. Damit sind TC_Shell Projektdateien in Turbo C verwendbar, umgekehrt gilt dies allerdings nur sehr eingeschrnkt. Fr die Bearbeitung von Projekt- dateien mit TC_Shell (Funktion 'Make Projekt') ist zustzlich wichtig, da alle Dateien in Grobuchstaben geschrieben sind. Eine zustzliche Ein- schrnkung stellt die Beschrnkung der Projektdateien auf maximal 30 Eintrge dar, eine Gre, die man nicht so schnell erreichen drfte. Auf der anderen Seite gibt es auch eine Erweiterung: in Projektdateien knnen (wie bei Megamax C) Headerfiles angegeben werden, wobei es zwei Mglichkeiten gibt, globale und lokale Headerdateien. Um die Kompatibili- tt zu Turbo C zu wahren, werden Headerdateien mit vorangestelltem '*', also gewissermaen als Kommentare angegeben. Globale Headerdateien gelten fr alle C-Sourcefiles der P rojektdatei und mssen direkt nach dem '=' in der dritten Zeile der Projektdatei beginnen; sie enden mit der ersten nicht-Headerdatei. Dies ist normalerweise der Startupcode, so da sich die lokalen Headerdateien des ersten C-Sourcefiles problemlos unterscheiden lassen (soll kein Startupcode gelinkt werden und ist die erste nicht-Headerdatei ein C-Sourcefile, so knnen fr diese Datei keine lokalen Headerdateien angegeben werden). Lokale Headerdateien stehen direkt vor dem zugehrigen C-Sourcefile und gelten nur fr diese Datei. Sind Headerdateien angegeben, so wird ein C-Sourcefile nicht nur compiliert, wenn es jnger als die zugehrige Object-Datei ist, sondern auch wenn dies fr die jngste Headerdatei des Sourcefiles gilt. Dadurch ist es etwa mglich, ein Programm komplett (oder auch nur teilweise) neu compilieren zu lassen, wenn etwa die Resourcedatei und damit die zugehrige Headerdatei gendert wurde. Im folgenden stelle ich nochmal beispielhaft den Aufbau einer Projektdatei vor (die Kommentare drfen natrlich in der Projektdatei nicht auf- tauchen): A:\PROGRAMM.PRG Name des zu erzeugenden Programms (mit Extension!) = aus Kompatibilittsgrnden ntig (mu auch stets in der zweiten Zeile stehen) *A:\GLOBAL1.H Globale Headerdatei *A:\GLOBAL2.H eine weitere globale Headerdatei D:\LIB\TC_START.O Turbo C Startupcode; unbedingt ntig, da hier der Programmeinsprung erfolgt, kann aber auch durch eigene Routinen ersetzt werden. A:\CSOURCE1.C erste Source-Datei, ohne lokale Headerdateien *A:\LOKAL.H lokale Headerdatei fr die nchste Source-Datei A:\CSOURCE2.C zweite Source-Datei, mit lokaler Headerdatei A:\ASS_S.S Assemblersource-Datei B:\OBJECT.O Objectdatei D:\LIB\LIB1.LIB Bibliothektdatei Projektdateien knnen mit der TC_Shell komfortabel erstellt und editiert werden, es ist nicht ntig sie mit einem Texteditor zu erstellen, so da man sich auch nicht um alle Einzelheiten kmmern mu. Es ist allerdings wichtig zu wissen, da TC_Shell zu jeder Projektdatei (XXX.PRJ) eine gleichnamige Linkdatei (XXX.LNK) erzeugt, die den Namen des zu erzeugenden Programms und die zu linkenden Object- und Bibliotheksdateien enthlt (im von TLINK.TTP verarbeitbaren Format, jeder Eintrag steht in einer eigenen Zeile; TC_Shell verwendet beim Linkeraufruf prinzipiell diese Dateien). Man darf deshalb die Projektdatei nie mit einem Texteditor verndern, ohne auch die Linkdatei anzupassen. Dabei ist - um eine sptere Verarbeitung mit der TC_Shell zu gewhrleisten - auch darauf zu achten, da hinter den Eintrgen keine Zeichen (auch keine Leerzeichen) stehen, und da die Groschreibung beachtet wird. Aber wie gesagt: TC_Shell ermglicht die Erstellung und Vernderung von Projektdateien, so da ein Editieren mit dem Texteditor absolut nicht ngtig ist. Nun aber genug der Erklrungen ber Projektdateien, kommen wir zu den Funktionen des Projektmens: Der oberste (inaktive) Eintrag enthlt den Namen der aktuell geladenen Projektdatei. TC_Shell hlt jeweils eine Projektdatei im Speicher, auf die sich alle Projektfunktionen beziehen, und die mit "Projekt auswhlen" gewechselt werden kann. Beim Start von TC_Shell kann eine Projektdatei entweder ber die Kommandozeile (Anmelden von TC_Shell im Desktop mit .PRJ und Start von TC_Shell durch Doppelklick auf die gewnschte Projektdatei; erweitert man anschlieend mit einem Editor in der DESKTOP.INF Datei den Filenamen von TC_Shell um den vollstndigen Path, so mu die Projektdatei nicht mehr notwendigerweise im gleichen Directory stehen wie TC_Shell) oder durch eine Voreinstellung in TC_Shell (su.). Eine Angabe in der Kommandozeile hat jedoch in jedem Fall Vorrang. Mit den folgenden Menpunkten ("Make", "Run" und "Make All"), kann ein Projekt compiliert und gelinkt werden. Bei "Make All" werden alle angegebenen C- und Assembler-Sourcefiles bersetzt; anschlieend wird das Programm gelinkt. Bei "Make" und "Run" werden nur genderte C- und Assembler-Sourcefiles bersetzen und nur bei Bedarf (also wenn sich eine Objectdatei oder Bibliotheksdatei gendert hat) gelinkt. Dabei ist es mglich, die Funktion durch Drcken von 'ESC' abzubrechen, wobei eine entsprechende Meldung ausgegeben wird. Entschliet man sich zu Abbruch whrend gerade der Compiler oder Linker luft, so kann die 'ESC'-Taste bereits whrend des Programmlaufs gedrckt werden (der Compiler oder Linker wird dadurch natrlich nicht sofort unterbrochen), wobei man die Taste allerdings mehrmals drcken sollte, da nicht sicher ist, ob der Rechner den Tastendruck registriert (selbst bei wiederholtem Drcken von 'ESC' ist der Erfolg zweifelhaft). Es werden in jedem Fall alle Tasten aus dem Tastatur- puffer gelscht (auch solche die etwa vor 'ESC' stehen und alle 'ESC'). Bei "Run" wird zustzlich das erstellte Programm ausgefhrt. Die Menpunkte "Run Programm" und "Debug Programm" fhren das Programm das in der Projektdatei festgelegt ist aus, beziehungsweise rufen den Debugger dafr auf. Mit "Select Projekt" lt sich eine neue Projektdatei auswhlen und mit "Make Projekt" kann man Projektdateien erstellen: Dazu dient eine Dialogbox, deren linker Teil der Auswahl der Dateien dient und im Aufbau der Fileselectorbox entspricht. Lediglich die Extension- buttons sind an anderem Platz (unter dem Feld fr die ausgewhlten Dateien) zu finden, auch kann man die Extensions hier nicht ndern. Der Fileselctorteil erlaubt das Anzeigen von Datei- und Diskinfos wie die FSBox (Datei lschen, umbennen oder Ordner anlegen ist allerdings nicht mglich), abweichend vom FSBox-Aufruf wird Sortieren nach Dateitypen voreingestellt. Rechts neben dem Fileselectorfeld findet sich das Feld fr die ausgewhl- ten Dateien, die in die Projektdatei aufgenommen werden sollen. In den beiden oberen, abgesetzen Zeilen wird der Name der Projektdatei und der Name des zu erstellenden Programmes dargestellt. Darunter findet sich ein Feld, in dem jeweils acht Eintrge der Projektdatei gezeigt werden, und das rechts einen Scrollbalken wie die FSBox besitzt, mit dem in den Eintrgen geblttert werden kann (natrlich nur bei mehr als acht Eintrgen). ber diesem Feld befinden sich die vier Button "Copy", "Del", "Ins" und "New", die zum Editieren dienen, in der obersten Zeile drei Ausgang- Button, "Abbruch", "Save" und "Ok". Wie erstellt bzw. editiert man nun mit dieser Dialogbox Projektdateien? Nun das Prinzip ist ganz einfach, da man im Fileselctorteil (links) Dateien auswhlt und an den Projektteil (rechts) bergibt. Im Projektteil werden die Dateien mit vollstndigem Path angezeigt, der gesammt Name darf dabei jeweils nicht lnger als 40 Zeichen sein, lngere Namen lassen sich nicht auswhlen. Zum Auswhlen gibt es mehrere Mglichkeiten: besteht die Datei bereits, so kann man sie durch Doppelklick auf den Dateinamen im Fileselector-Feld direkt bergeben, man kann sie aber auch durch Einfach- klick selektieren, so da sie im Name-Feld erscheint und durch Mausklick auf den Button "Copy" in die Projektdatei bernehmen. Um Dateien, die auf Diskette noch nicht existieren, in die Projektdatei zu bernehmen schreibt man einfach ihren Dateinamen in das Namensfeld und klickt Copy an (dabei gilt natrlich der eingestellte Path). Wird eine Datei an den Projektteil bergeben, so geschieht je nach Dateityp (erkannt am Extension) folgendes: Wird eine Projektdatei (.PRJ) ausgewhlt, so wird der Name in die oberste Anzeigezeile bernommen. Existiert die Datei schon, kann sie eingelesen werden. Dazu erscheint eine Dialogbox, in der man angeben kann, ob die Datei eingelesen werden soll, wobei man Wahl zwischen zustzlichem Einlesen und Ersetzen der bisherigen Eintrge hat. Ist anschlieend das Feld fr den Programmnamen leer, so wird hier der Name der Projektdatei mit in .PRG gendertem Extension eingestellt. Dieser Name lt sich durch bergeben von Programmnamen (erkenntlich an den Extensions .PRG, .TOS und .TTP) jederzeit ndert. Bei der bergabe von Header-Dateien (.H) Source-Dateien (.C bzw .S), Objectdateien (.O) und Bibliotheken (.LIB) wird der Name in den ersten freien Eintrag im Projektfeld eingetragen (der nicht unbedingt sichtbar sein mu!), wobei auer bei Headerdateien Mehrfachangaben von Dateien unmglich weil unsinnig sind. Sie werden einfach ignoriert, das heit ohne Fehlermeldung bergangen. Dabei gilt es auch als Mehrfachangabe wenn zu einer Sourcedatei auch noch die Objectdatei angegeben wird (und umge- kehrt). Die Reihenfolge der Dateien im Projektfeld ist relevant, das heit die Dateien werden so in die Projekt- (und Link-) Datei bernommen, wie sie hier vorliegen (was insbesondere fr den Startup-Code wichtig ist). Deshalb gibt es zwei Funktionen zum Lschen bzw Einfgen von Eintrgen im Projektfeld. Gelscht werden kann erstens durch Auswhlen eines Eintrages und Anklicken von "Del" (Delete = Lschen) und zweitens durch Doppelklick auf den Eintrag. Dabei wird jeweils zunchst der Eintrag in einen Leereintrag umgewandelt, der durch einen weiteren Lschvorgang entfernt werden kann. Einfgen lassen sich Leereintrge ber dem Ausgewhlten Eintrag durch Anklicken von "Ins" (Insert = Einfgen). Der Button "New" dient zum vlligen Lschen des Projektfeldes. So nun bleiben noch die Mglichkeiten zu Verlassen: Abbruch drfte klar sein; man verlt die Dialogbox ohne da die erstellte Projektdatei gespeichert wird. Genau dies (das Speichern) erreicht man durch den Button "Speichern" (klar nicht?). Aber wozu dient dann noch "Ok"? Ganz einfach: mit "Ok" wird die Projektdatei nicht nur gespeichert, sondern auch noch als aktuelle Projektdatei bernommen, so da man sofort mit ihr arbeiten kann. 2.4 Make Im Men Make finden sich die Funktionen zum Aufruf von Programmen, Debugger, Compiler, Linker, Resource Construction Set und Utilities unabhnging von der geladenen Projektdatei. Die Menpunkte im einzelnen: Mit 'Run Programm ...' kann man ein beliebiges Programm in der FSBox auswhlen und starten. Bei .TTP-Programmen erscheint eine Dialogbox zum Eingeben der Kommandozeile, bei .PRG oder .TOS-Programmen, kann man dies durch Drcken der Control-Taste (beim Beenden der FSBox) erreichen (gilt brigens auch fr 'Run Programm' und 'Run' im Projektmen). Ach ja da fllt mir noch ein: beim Starten von Programmen stellt TC_Shell in der ersten (GEM-Programme) bzw in den ersten beiden (TOS-Programme) Bildschirmzeilen den Programmnamen und die bergebene Kommandozeile dar; dies geschieht bei allen Programmaufrufen, also auch beim Aufruf von Editor, Compiler .... Mit 'Debug Programm ...' wird der Debugger aufgerufen, wobei ihm der Name des zu debuggenden Programms bergeben wird. Mit 'Compile ...' compiliert man ein einzelnes Sourcefile, mit 'Assemble ...' ruft man den Assembler auf. Nun zum Linken, das sich etwas schwieriger gestaltet. Da eine Kommando- zeile hchstens 127 Zeichen lang sein darf, knnte es leicht zu Problemen kommen, wollte man alle zu linkenden Dateien in der Kommandozeile angeben, schlielich hat man ja - neben den eigenen Objectfiles - allein schon bis zu fnf Standartbibliotheken und den Startup-Code anzugeben. TC_SHELL verwendet beim Linken deshalb ausschlielich Kommandodateien (das Format ist im TC Handbuch beschrieben). Deswegen gibt es auch zwei Menpunkte zum Linken: 'Link .lnk' verwendet man, wenn schon eine Kommandodatei (xxx.LNK) existiert, in der FSBox wird dann einfach die Kommandodatei angegeben. 'Link ...' verwendet man, wenn noch keine Kommandodatei besteht, oder die Kommandodatei gendert werden soll. Es erscheint dann die gleiche Dialog- box wie bei 'Make Projekt' und das dort gesagte gilt entsprechend. Noch ein Wort zu Compiler- und Linkeraufruf: Compiler und Linker geben ihre Fehlermeldungen standartmig auf den Bild- schirm aus; dies ist natrlich nicht optimal, wenn man aufgetretene Fehler spter im Editor korrigieren will. Versuche mit I/O-Umleitung brachten nicht die gewnschten Resultate (beispielsweise strzte der Linker ab, warum auch immer) und haben den grundstzlichen Nachteil, da dann keine Meldungen mehr auf den Bildschirm ausgegeben werden. Deshalb verwendet TC_Shell ein anderes Konzept: es hngt sich (nur whrend des Compiler-/ Linkeraufrufs) durch Verbiegen des TRAP #1-Vektors ins Gemdos und schreibt alle Ausgaben zustzlich in eine Datei, deren Name mit den Compiler-/ Linkeroptionen (su.) eingestellt werden kann. Wird im Fehlerfall der Editor aufgerufen, so wird diese Fehlerdatei als erster Parameter ber- geben (beim Compiler folgen die Namen der compilierten Sourcedateien). Als Dateiname ist brigens auch "PRN:" fr einen Drucker an der Centronics-Schnittstelle und "Aux:" fr die serielle Schnittstelle mglich. Auch "CON:" wre erlaubt, fhrt aber nur zu Doppelausgaben auf den Bildschirm (merkwrdigerweise buchstaben- weise). ACHTUNG! Fehler in der Routine zum Schreiben der Fehlerdateien werden gegenwrtig nicht beachtet (in der Gemdos-Routine ist das etwas diffiziel). Einen Absturz drfte das normalerweise nicht zur Folge haben, allerdings habe ich bei einer vollen Ramdisk festgestellt, da dann die Ausgabe stark verlangsamt wird. Man sollte also etwas aufpassen, was man als Fehlerdateinamen angibt. Im allgemeinen ist die Wahrscheinlichkeit fr das Auftreten von Fehlern aber nicht zu gro. Der Menpunkt "Utility ..." entspricht mit einer Ausnahme dem Menpunkt "Run Programm ...". Die Ausnahme betrifft die Verwendung eines anderen Paths (siehe auch Einstellungen). Geplant ist das so, da der Path von "Utility" auf ein Directory zeigt, in dem Programmierutilities stehen, whrend der Path von "Run Programm ..." auf das entstehende Programm zeigt (man mu dann nicht immer in der FSBox den Path wechseln). "RCS" dient dem Aufruf des Resource Construction Set; da das von mir verwendtete Megamax RCS die Kommandozeile nicht auswertet, wird kein Dateiname bergeben. 2.5 Einstellungen Mit der TC_Shell knnen im Men 'Settings' so gut wie alle Turbo C Para- meter verndert werden, teilweise sogar mehr als mit der Original- TC-Shell. Da wren zunchst die Einstellungen fr die Projektverwaltung. Neben dem Namen der beim Start mitzuladenden Projektdatei (sie wird nur geladen, sofern in der Kommandozeile keine andere Datei angegeben wird; wird kein Name angegeben, so wird keine Projektdatei geladen) kann man das Verhalten von 'Make' (nicht 'Make all') bei fehlenden Sourcedateien einstellen. Werden die entsprechenden Button aktiviert, so geht die TC_Shell beim Fehlen einer C- oder Assembler-Sourcedatei einfach davon aus, es wre eine Objectdatei eingetragen (deren Existenz berprft wird). Headerdateien knnen total bergangen werden. Es ist allerdings sinnvoller, die Projektdatei zu ndern, da das Suchen nach nicht vorhandenen Dateien auch seine Zeit braucht. Zum Einstellen der Start-Projektdatei gibt es noch zwei Hilfen: 'Search' dient zum Auswhlen der Projektdatei mit Hilfe der FSBox. Diese Funktion steht auch in den anderen Einstellungsdialogen bei allen dateibe- zogenen Angaben zur Verfgung, auch wenn ich sie im folgenden nicht mehr nennen werde. 'aktuell' bernimmt den Namen der aktuellen Projektdatei. Zum Verlassen der Dialogbox gibt es (hlich wie bei 'Make Projekt' drei Mglichkeiten, 'Abbruch', dh. Beenden ohne bernahme der genderten Daten, 'ok', dh. Beenden mit bernahme der genderten Daten und zustzlich 'Save', wobei die Daten bernommen werden und gleichzeitig der Name der Start-Projektdatei (und nur dieser) in die Systemeinstellungen bernommen wird. Editor Optionen: Zu den Editor-Optionen gehren neben dem Filenamen des Editors die Einstellungen fr das Aufrufen des Editors nach Compiler- fehlern oder -warnungen sowie nach Linker- und Assemblerfehlern. Dabei kann jeweils zwischen Editor nicht aufrufen (nein), Editor immer aufrufen (ja) und Editor nach Abfrage aufrufen (bedingt) gewhlt werden. Im letzten Fall erscheint eine Dialogbox, um in der konkreten Situation zu entscheiden, wobei bei 'Make' neben Editor-Aufruf ja/nein (jeweil mit Abbruch von Make) auch noch 'weiter' zum Fortsetzen von Make mglich ist (vor allem im Fall von Compiler-Warnungen). Bei Make wird brigens unabhngig von der hier getroffenen Einstellung im Fehlerfall stets eine Meldung ber das Abbrechen von Make ausgegeben. Der Editordialog kann (wie alle folgenden) mit 'Ok' oder 'Abbruch' verlassen werden. Als nchstes kommen wir zu den umfangreichsten Einstellungen: den Com- pileroptionen. Dabei mchte ich die Linkeroptionen gleich mitbehandeln, da fr sie praktisch das gleiche gilt. Die mglichen Einstellungen werden leicht klar, wenn man sich im TC-Handbuch die Optionen von TCC (Anhang B) bzw die von TLINK (Anhang C) ansieht. Zustlich kann lediglich der Name des Compilers/Linker und der jeweiligen Fehlerdatei angegeben werden. Wird keine Fehlerdatei angegeben, so wird auch keine erzeugt. Die gewhlten Compileroptionen (auer Name des Compilers und der Compiler- fehlerdatei) werden nicht mit den allgemeinen Einstellungen von TC_Shell in der Datei TC_SHELL.SET gespeichert, sondern in der Datei TCC.CFG (ASCII-Datei, siehe Handbuch). Diese Datei wird von TC_Shell nur im Bedarfsfall, dh. fr das Einstellen der Compileroptionen geladen. Fr die Linkeroptionen gilt im Prinzip das gleiche, nur das hier dem Linker der Name der Kommandodatei (TLINK.LNK) beim Aufruf explizit angegeben werden mu (macht TC_Shell natrlich automatisch). Beide Dateien mssen im gleichen Directory stehen wie der Compiler bzw Linker. Zustzlich zu den Einstellungen gibt es noch zwei Button: 'Default' und 'Restore'. Mit 'Restore' werden die Einstellungen durch erneutes Laden von TCC.CFG bzw. TLINK.LNK zurckgesetzt, mit 'Default' lassen sich die Standart- einstellungen aufrufen. Im Compilerdialog gibt es noch den Button 'Warnungen' mit dem sich die Dialogbox zur Einstellung der Compilerwarnungen aufrufen lt. Es lassen sich alle Warnungen einzeln ein bzw ausschalten, mit den Button '0', '1' und '2' lassen sich die entsprechenden Warning-Level der TC-Original-Shell einstellen. In der Assemblerdialogbox lassen sich - um die Zusammenarbeit mit anderen Assemblern als dem von mir verwendetem Devpac zu ermglichen - die Optionen ein- und ausschalten. Bei ausgeschalteten Optionen wird dem Assembler nur der Name der zu assemblierenden Datei bergeben. Die anderen Einstellungen ergeben sich aus dem Handbuch des Devpac (und funktionieren natrlich auch nur bei diesem). Sowohl fr den Debugger wie auch fr das RCS lassen sich nur die Programm- namen einstellen, somit kommen wir (endlich) zum vorletzten Punkt, den Dateipfaden. TC_Shell verwendet im Zusammenhang mit der FSBox acht verschiedene Dateipfade, die auf verschiedene Directories zeigen knnen. Wo die einzelnen Dateipfade jeweils verwendet werden ist der Dialogbox zu entnehmen; in ihr knnen Voreinstellungen vorgenommen werden. Dabei kann ein ? als erster Buchstabe fr das aktuelle Laufwerk dienen, besteht der gesammte Dateipfad nur aus dem ?, so wird er zu '?:\*.*' ergnzt. Letzter Punkt: das Speichern der Voreinstellugnen: Es geschieht mit dem Menpunkt 'Save'. Die zugehrige Datei heit immer 'TC_SHELL.SET', so da bei Anklicken dieses Menpunktes sofort gespeichert wird, wobei der Dateipfad und das Laufwerk vom Programmstart verwendet wird. Zusammen mit den gerade besprochenen Systemeinstellungen werden auch die Extensions der FSBox gespeichert. Beim Starten von TC_Shell wird TC_SHELL.SET geladen. Fehlt die Datei (oder konnte sie aus einem anderen Grund nicht geladen werden), so ist TC_Shell erst einsatzfhig, wenn man die ntigen Angaben in den Dialogboxen im Settings-Men gemacht hat (Programmnamen ...). ********************************************************************** * * * * * * * T C S H E L L * * * * Version 1.0 * * * * * * * * * * written by Morus Walter * * * * 16.04.1989 * * * * * * (c) 1989 by TMMW Morus Walter * * * * * * * * * ********************************************************************** Inhalt des Ordners TC_SHELL: - TC_SHELL.PRG die Shell - TC_SHELL.RSC Resourcefile fr hohe Auflsung - TC_SHELC.RSC Resourcefile fr mittlere Auflsung - TC_SHELL.SET Einstellungen fr TC_Shell (Compiler, Linker, Headerdateien und Bibliotheken auf Ramdisk (D), Utilties auf Diskette in Lauf- werk B, Sourcefiles und Programm Laufwerk A) - TC_SHELL.TXT Anleitung im ASCII Format Der Ordner TC_SHELL ist Public Domain, er darf als Ganzes beliebig kopiert und weitergegeben werden. . p.. pTHYSHELLANL p uTHYSHELLPRG pETHYSHELLDEF pP THYSHELL.PRG V. 1.0a Eine vielseitige Shell fr den Atari ST In GFA-Basic (V. 2.02) geschrieben und mit dem GFA-Basic- Compiler (V. 2.02) kompiliert von Rainer Thiel Knigsteiner Str. 3 D-6200 Wiesbaden, bei dem auch alle Rechte verbleiben. Dieses Programm ist jedoch PUBLIC DOMAIN. Es darf daher frei benutzt, kopiert und weitergegeben, nicht aber verkauft, gegen eine Gebhr verliehen oder berlassen oder sonst in irgendeiner Weise kommerziell genutzt werden. 1. Einfhrung THYSHELL.PRG ist beileibe nicht das erste Programm seiner Art. Es gibt bereits eine ganze Anzahl von Shells fr den Atari-ST. Die meisten davon sind auf ganz bestimmte Pro- grammpakete spezialisiert, deren bequeme Benutzung sie ermglichen. Es gibt aber auch schon einige solcher Pro- gramme, die sich an die speziellen Bedrfnisse des Anwenders anpassen lassen. Zu dieser Gruppe gehrt auch THYSHELL; THYSHELL erlaubt eine solche Anpassung in ganz besonders hohem Mae. Gleich zu Beginn mchte ich ein mgliches Miverstndnis ausrumen: THYSHELL ist k e i n Command-Line-Interpre- ter, der fr den Atari-ST eine MS-DOS-hnliche Oberflche herstellte, sondern eine GEM-Shell, die auch den direkten Aufruf von Accessories erlaubt. Sie kann und will daher auch hervorragende Programme wie etwa GULAM nicht erset- zen. THYSHELL ist vielmehr fr alle diejenigen gedacht, die eine Festplatte besitzen und eine Reihe von Programmen - gleichgltig welche - regelmig benutzen und diese bequem aufrufen mchten. THYSHELL bietet dabei eine Reihe ntzli- cher Funktionen, die dem Programmierer ebenso wie dem reinen Anwender zustatten kommen, die ich aber in jedem anderen PD- Programm dieser Art vermit habe. Deshalb habe ich THYSHELL geschrieben. Mgen auch andere an dem Nutzen teilhaben! Die Qualitt einer Shell erweist sich erst durch ihre Benutzung. THYSHELL hat eine ganze Reihe von Funktionen, die es meines Wissens bisher in keiner anderen Shell dieser Art gibt. Lesen Sie bitte auch den Abschnitt "Besondere Eigen- schaften von THYSHELL", um darber Nheres zu erfahren. 2. Die Mens Zwei Mens stehen ihnen in THYSHELL stets zur Verfgung: Zum einen das "Desk"-Men mit dem Copyright-Info und den Accessories, die Sie jederzeit und ohne Einschrnkungen aufrufen knnen. Versuchen Sie, ein Programm aufzurufen oder THYSHELL zu verlassen, whrend ein (Fenster-) Accessory aktiv ist, so erscheint eine Warnmeldung, da dies naturgem in aller Regel zu Problemen (bis hin zum Systemabsturz) fhrt. Sollten Sie aber einmal gute Grnde haben, das Accessory aktiv zu lassen, so ist dies mglich. Zum anderen das "File"-Men. Hier finden Sie den Men- punkt "Run *.PRG (Tab)", ber den Sie beliebige Programme mit einer Fileselect-Box aufrufen knnen. Diese Funktion erreichen Sie auch durch Drcken der [Tab]-Taste. Auerdem finden Sie hier den Menpunkt "Quit (Esc)" (eigentlich berflssig, oder?), um THYSHELL zu verlassen. Wie blich erfolgt zuvor eine Sicherheitabfrage. Dasselbe erreichen Sie durch Drcken der Taste [Esc]. Alle weiteren Mens knnen Sie frei definieren. Wie dies mglich ist, erfahren Sie im nchsten Abschnitt. 3. Konfiguration von THYSHELL Sie knnen die Mglichkeiten von THYSHELL erst dann voll nutzen, wenn Sie Ihre eigenen Bedrfnisse dem Programm in einer Textdatei namens THYSHELL.DEF mitteilen. Diese Datei mu im selben Verzeichnis wie THYSHELL.PRG stehen. In dieser Datei knnen Sie festlegen, welche Programme Sie von THY- SHELL aus ber Pulldown-Mens und evtl. auch ber Tastatur aufrufen wollen. Diese Datei knnen Sie mit jedem Texteditor (1ST_WORD oder Nachfolgeprogrammen, aber auch jedem PD-Texteditor) erstellen. THYSHELL.DEF hat folgenden Aufbau: Die Datei ist zeilenweise organisiert. In jeder Zeile steht ein Mentitel oder ein Meneintrag mit dem Namen des Programms, das durch Anwhlen dieses Meneintrags aufgerufen werden soll; auerdem kann noch ein Command-String folgen, der dem Programm bei jedem Aufruf bergeben werden soll. Jeder Zeile, in der ein Mentitel steht (auer der/dem ersten) mu eine Leerzeile vorangehen. Eine Zeile, in der ein Meneintrag steht, enthlt: 1. den Text des Meneintrags, also z.B. " SIGNUM-Editor " oder " GFA-Basic-Interpreter ". Aus sthetischen Grn- den ist es sinnvoll, den Text des Meneintrags mit einem Leerzeichen beginnen und enden zu lassen. - Wenn Sie das Programm auch ber Tastatur aufrufen wollen, so mu der Meneintrag mit einem Leerzeichen enden. Direkt davor mu dann in runden Klammern das Zeichen stehen, durch das der Aufruf erfolgen soll, also z.B. "(s)". Beachten Sie, da Grobuchstaben und Kleinbuch- staben unterschieden werden: "(s)" und "(S)" werden unterschieden! Hinter der schlieenden Klammer mu aber unbedingt ein Leerzeichen stehen, damit der Aufruf funktioniert. Natrlich knnen Sie auch einen beliebigen Text als Meneintrag angeben, ohne da durch dessen Anwhlen ein Programm aufgerufen werden soll. Dann entfllt, was gleich unter (2) und (3) gesagt werden wird. 2. Soll durch Anwhlen des Meneintrags ein Programm aufgerufen werden, so mu hinter dem Text des Eintrags (evtl. mit Leerzeichen) zunchst ein Komma, dann der vollstndige Dateiname mit Laufwerksbuchstaben und Pfadnamen stehen. Zwischen Komma und Name darf (das macht man leicht falsch!) kein Leerzeichen stehen. 3. Hinter dem Namen kann (das bleibt Ihnen berlassen) - durch genau e i n Leerzeichen getrennt - (nicht 0, nicht 2, nicht 3 ...) ein Text folgen, der dem aufzurufenden Programm b e i j e d e m A u f r u f als Command-String bergeben wird. Vergleichen Sie zu Nherem den Abschnitt ber "Besondere Eigenschaften von THYSHELL". Gro- oder Kleinschreibung spielen bei (2) und (3) keine Rolle. Das alles hrt sich komplizierter an als es ist. Daher ein paar Beispiele: Nehmen wir an, Sie benutzen Signum2, 1st_Word und 2nd_word und programmieren daneben in GFA-Basic 2.0, besitzen schon den Interpreter V. 3.0 und verwenden auch Omikron-Basic. In GFA-Basic 3.xx haben Sie ein hervor- ragendes Programm geschrieben (Sie haben es SUPER.GFA ge- nannt), das Sie oft verwenden, aber vorlufig, bis zum Erscheinen des Compilers, mit dem Run-Only-Interpreter auf- rufen mssen. Dann knnte Ihre Datei THYSHELL.DEF etwa folgendermaen aussehen: Texte Signum-Editor (s) ,E:\SIGNUM2.PRG Signum-Druck (S) ,E:\SPRINT.PRG S-Zeichensatzed. ,E:\CHSETS\DCS24N.PRG ------------------- ASCII-Editor (1) ,C:\1ST_WORD\1ST_WORD.PRG *.HEX ==> *.DOT ,C:\1ST_WORD\INSTALL.PRG *.DOT ==> *.HEX ,C:\1ST_WORD\CFGALYSE.PRG ------------------- 2nd Word (2) ,E:\2ND_WORD\2ND_WORD.PRG ------------------- Super (y) ,D:\GFABASIC.304\GFABASRO.PRG super Basic GFA-Basic-Interpreter V. 2.02 (b) ,D:\GFABASIC.202\GFABASIC.PRG init Run-Only-Interpreter V. 2.02 ,D:\GFABASIC.202\GFABASRO.PRG GFA-Basic-Compiler V. 2.02 (B) ,D:\GFABASIC.202\GFA_BCOM.PRG ---------------------------------- GFA-Basic-Interpreter V. 3.04 (I) ,D:\GFABASIC.304\GFAB_304.PRG init Run-Only-Interpreter V. 3.04 (i) ,D:\GFABASIC.304\GFABASRO.PRG ----------------------------------- Omikron-Basic (o) ,D:\OMIKRON.300\OM-BASIC.PRG Beachten Sie die Leerzeichen vor dem Komma: Absolut ntig sind sie nur dort, wo davor ein Zeichen in Klammern steht, damit durch Drcken der entsprechenden Taste das Programm nach dem Komma auch aufgerufen wird. Auf diese Weise knnen Sie den Signum-Texteditor mit "s" (Taste 'S' o h - n e [Shift]), das Druckprogramm mit "S" (Taste 'S' m i t [Shift]) aufrufen. Jedes ber die Tastatur erreichbare Zeichen kann zum Aufruf eines Programms verwendet werden - wie Sie an 1st- und 2nd-Word sehen, auch etwa Ziffern. Aus sthetischen Grnden lasse ich jeden Meneintrag auch mit einem Leerzeichen beginnen; ntig ist das aber nicht. Hinter dem Komma steht der vollstndige Name des Programms (s.o.). Dazu brauche ich wohl nichts weiter zu sagen. Bei den beiden GFA-Basic-Interpretern folgt nach dem Dateinamen noch das Wort "init". Dabei handelt es sich um die Kommandozeile, die dem Programm bei jedem Aufruf berge- ben wird. hnliches gilt fr Ihr Programm SUPER.GFA: Wenn Sie den Menpunkt "Super" aufrufen oder "y" drcken, so wird der Run-Only-Interpreter aufgerufen und ihm zugleich die Kommandozeile "SUPER" bergeben. Er ldt daher "SUPER.GFA" (falls es im selben Ordner steht) und fhrt es aus. Wenn Sie das Programm SUPER.GFA mit dem Befehl Quit beenden, knnen Sie es so von THYSHELL aus wie ein gewhnliches ausfhrbares Programm benutzen. Vielleicht wundern Sie sich, da ich dem GFA-Basic- Interpreter V. 3.04 einen neuen Namen gegeben habe, obwohl er doch in einem anderen Ordner steht als der Interpreter V. 2.02. Die Auflsung des Rtsels steht - neben weiteren Bemerkungen zur bergabe von Command-Strings (dort erfahren Sie etwa auch, wie man einem jeden beliebigen Programm eine Kommandozeile bergeben kann) - in dem Abschnitt ber "Besondere Eigenschaften von THYSHELL". An dieser Stelle bleibt mir nur noch zu bemerken, da ich nur der bersicht halber die Command-Strings in Kleinbuch- staben, den Dateinamen aber in Grobuchstaben geschrieben habe. Das Programm unterscheidet Klein- und Grobuchstaben im Dateinamen und im Command-String nicht. Beachten sollten Sie aber, da g e n a u e i n Leerzeichen den Command- String vom Dateinamen trennen mu; eventuell noch folgende Leerzeichen werden sonst als Bestandteil der Kommandozeile interpretiert. Eine Beispieldatei THYSHELL.DEF, die erprobt ist und bei mir stndig Anwendung findet, habe ich beigegeben. 4. Besondere Eigenschaften von THYSHELL In diesem Abschnitt gehe ich auf einige Funktionen und Eigenschaften des Programms ein, die Ihnen die Arbeit erheblich erleichtern knnen und zum grten Teil weit ber den Standard derartiger Shell-Programme hinausgehen. An einigen Stellen gehe ich auch auf das eine oder andere programmtechnische Detail ein. Werden Sie daher nicht mut- los, wenn Sie - falls Sie nicht selbst programmieren - nicht alles verstehen: Ich habe mich jedenfalls bemht, alles, was zur vollen Nutzung von THYSHELL ntig ist, so einfach wie mglich darzustellen. a) Speicherplatz Das Programm reserviert sich fr eigene Zwecke 10000 Bytes Speicherplatz, die zur Speicherung der Konfigura- tion und zur Aufrechterhaltung der Verwaltung ntig sind. Dieser Speicherplatz sollte in aller Regel gengen. Definieren Sie aber sehr umfangreiche Mens mit vielen Eintrgen, so kann es schon einmal zu Problemen kommen. In diesem Falle haben Sie die Mglichkeit, mehr Speicher fr THYSHELL anzufordern. Dies knnen Sie tun, indem Sie a l s e r s t e Z e i l e in die Konfigura- tionsdatei THYSHELL.DEF eine mit dem Zeichen "#" begin- nende (dezimale) Zahl einfgen, die grer als 10000 sein sollte (andernfalls bleibt es bei 10000 Bytes). So fhrt die Zeile: "#30000" dazu, da sich das Programm 30000 Bytes fr die Verwaltung reserviert. Die Zahl "#30000" (oder was immer Sie wnschen) mu (natrlich ohne Anfh- rungszeichen, aber mit '#') am Anfang der ersten Zeile stehen. Alles, was hinter der Zahl folgt und sich nicht als Zahl interpretieren lt, wird ignoriert. - Beachten Sie jedoch, da es nicht mglich ist, den von THYSHELL verbrauchten Speicher zu verringern: Geben Sie eine Zahl an, die kleiner als 10000 ist, so reserviert sich das Programm dennoch 10000 Bytes. b) Kommandozeilen Command-Strings (Kommandozeilen) sind Befehlszeilen, die einem Programm bei dessen Aufruf bergeben werden knnen. Dadurch ist es mglich, die Arbeitsweise eines Anwenderprogramms zu beeinflussen - selbstverstndlich nur dann, wenn das Programm den Command-String auch ausliest und bercksichtigt. Sicher wissen Sie, da man fr ein Programm eine "Anwendung anmelden" kann - dies geschieht ber den gleichnamigen Menpunkt im Desktop. So kann man etwa erreichen, da durch Anklicken einer "*.SDO"-Datei SIGNUM2.PRG gestartet und die entsprechende Datei geladen wird - vorausgesetzt, die Datei und das Programm stehen im selben Verzeichnis oder das Programm im Hauptverzeichnis. Klickt man vom Desktop aus eine Datei an, fr die eine Anwendung angemeldet ist, so bernimmt das Betriebssystem freundlicherweise die Auf- gabe, einen entsprechenden Command-String an das Programm zu bergeben. Beim Aufruf aus einer Shell wie THYSHELL mu dies natrlich das Shell-Programm tun. ==> Es folgen einige programmtechnische Errterungen, die Sie auch berlesen knnen; lesen Sie dann bei *** weiter! Das Desktop-Programm bergibt die Kommandozeile auf zwei vllig verschiedene Weisen: Zum einen schreibt es ihn mit der AES-Funktion SHEL_WRITE in einen Puffer, aus dem ihn das aufgerufene Programm mittels SHEL_READ wieder auslesen kann; zum anderen schreibt es ihn in die zweite Hlfte der Basepage des aufgerufenen Programmes, von wo man ihn ebenfalls relativ einfach wieder auslesen kann (in GFA-Basic unter Verwendung der Systemvariablen BASE- PAGE). In beiden Fllen sollte die Kommandozeile - allen Programmierern sei's ans Herz gelegt - folgenden Aufbau haben: Anzahl der folgenden Bytes als ASCII-Code, Komman- dozeile, Nullbyte; in GFA-Basic also: command_string$=CHR$(LEN(cmd$))+cmd$+CHR$(0) wenn cmd$ die Information ist, die man dem aufgerufenen Programm bermitteln will (etwa der Dateiname "BRIEF.SDO"). An dieses Format sollte man sich unbedingt halten, wenn man mit solchen Aufrufen arbeitet. Zumeist wird die Kommandozeile von Anwenderprogrammen aus der Basepage ausgelesen. Es ist daher nicht verwunderlich, da die meisten Shells - soweit sie berhaupt die bergabe von Command-Strings erlauben - diese ausschlielich ber die GEMDOS-Funktion p_exec bergeben, die ja ohnehin aufgeru- fen werden mu, wenn man ein Programm ausfhrt. Leider gibt es bemerkenswerte Ausnahmen, etwa SIGNUM. Nachdem es in SIGNUM1 gar keine Mglichkeit gab, den Editor per "Anwendung anmelden" zum Laden des gewnschten Dokuments zu berreden, ist dies jetzt in SIGNUM2 problemlos mglich. Dabei handelt es sich aber wohl um ein "Abfallprodukt" des gegenseitigen Aufrufs von Editor und Druckprogramm mittels SHEL_WRITE (weshalb auch beide im selben Verzeichnis stehen mssen). Deshalb wird in SI- GNUM2 der Command-String auch mittels SHEL_READ ausgele- sen, eine bergabe durch p_exec fhrt nicht zum Erfolg. THYSHELL bergibt alle Kommandozeilen, die bergeben werden knnen, sowohl mittels SHEL_WRITE als auch mittels p_exec, wie es auch das Desktop tut. *** Da THYSHELL sich bei der bergabe von Kommandozeilen genauso verhlt wie das Desktop, werden aus THYSHELL bergebene Kommandozeilen auch von allen Programmen erkannt und bercksichtigt, die sich mit "Anwendung anmelden" starten lassen. Aus THYSHELL aber lassen sich - im Gegensatz zum Desktop, nicht nur einfache Dateinamen ohne Pfadangabe, sondern beliebige Command-Strings bergeben. So ist es problemlos mglich, etwa SIGNUM2.PRG, gleichgltig wo es steht, mit einer Zeile wie: e:\diss\txt_bsg\stas1txt.sdo aufzurufen. Vorsicht aber bei Umlauten in Dateinamen: Da sie als Sonderzeichen gelten, ist es im Unterschied zu sonst nicht gleichgltig, ob Sie als Gro- oder als Kleinbuchstaben dastehen. ==> Solange Sie nicht in GFA-Basic 3.xx programmieren, knnen Sie den folgenden Abschnitt berlesen und bei "***" weiterlesen. Leider ist es beim GFA-Basic-Interpreter V. 3.04 D (dies ist die Version, die ich besitze) nicht mglich, ein *.GFA-File durch "Anwendung anmelden" zu starten. Zwar wird der Editor/Interpreter gestartet, findet aber anschlieend die Datei nicht, durch die er aufgerufen wurde. Dies gilt mglicherweise auch fr alle frheren Interpreter-Version ab 3.00. Meine Anfrage bei GFA-Basic ergab, da dieses Problem ab dem nchsten Update besei- tigt sein wird. Das Problem beruht offenbar auf dem Fehler, da das fhrende Byte des Command-Strings, das die Anzahl der folgenden Bytes enthalten sollte, flsch- lich als erstes Byte der eigentlichen Kommandozeile interpretiert wird, was zu der Fehlermeldung "Datei nicht gefunden" fhrt. In THYSHELL wird dieser Fehler umgangen, indem der Command-String entsprechend abgendert wird, wenn eine entsprechende Version des Interpreters aufgeru- fen wird. Damit THYSHELL wei, da es sich um einen solchen, fehlerhaft arbeitenden Interpreter handelt, mu dieser den Dateinamen "GFAB_304.PRG" tragen. Wird ein Programm dieses Namens von THYSHELL aus aufgerufen, so wird die eventuell bergebene Kommandozeile entsprechend angepat. - Der zugehrige Run-Only-Interpreter arbeitet brigens korrekt und braucht nicht umbenannt zu werden. Sicher ist die bergabe von Command-Strings beim Run- Only-Interpreter auch interessanter. Ich habe oben ("3. Konfiguration von THYSHELL") angedeutet, wie man so ein GFA-Basic-Programm von THYSHELL aus nutzen kann, als wre es ein eigenstndiges ausfhrbares Programm (Run-Only- Interpreter mit dem entsprechenden Dateinamen als Komman- dozeile aufrufen, aber einen eigenen Meneintrag vorse- hen). Aber auch bei den Editor/Interpretern ist dies sinnvoll, wenn man bei Arbeitsbeginn Voreinstellungen im Interpreter vornehmen mchte, die man nicht patchen kann oder mchte. Dazu kann man ein Programm schreiben, dessen Namen man beim Aufruf des Interpreters als Kommandozeile bergibt und das sich am Schlu mit NEW selbst lscht. Fr den Interpreter V. 2.02 habe ich z.B. folgendes Programm geschrieben, das ich bei jedem Aufruf abarbeiten lasse: CHDIR "\GFABASIC.202\PROGRAMS.ALG" DEFLIST 0 NEW Fr V. 3.04 D dagegen hatte ich anfangs folgendes Programm verfat, mit dem die Variablentypen auf Integer festgelegt, einige Funktionstasten definiert und DEFLIST 2 eingestellt wird: CHDIR "\GFABASIC.304\PROGRAMS" DEFINT "a-z" KEYDEF 1,CHR$(27)+"RUN " KEYDEF 11,CHR$(27)+"SAVE " KEYDEF 2,"~INP(2)" KEYDEF 3,"CLS"+CHR$(13) NEW Zwar kann man die Voreinstellung fr DEFLIST auch patchen, doch ist das nicht jedermanns Sache. Auerdem ist in der Dokumentation, die zur Version 3.04 D des Interpreters auf Diskette mitgeliefert wurde, das Datei- Offset fr diesen Patch falsch angegeben. Statt "SEEK #1,80" mu es - diese Information habe ich von GFA- Systemtechnik und habe sie schon erfolgreich angewandt - "SEEK #1,96" heien - wohlgemerkt fr den Patch der Voreinstellung von DEFLIST und die Version 3.04 D. Selbstverstndlich kann ich keinerlei Haftung fr diese Information bernehmen - experimentieren Sie nur mit Sicherheitskopien! Durch beide *.GFA-Programme wird auch automatisch ein Ordner zum aktuellen gemacht, in dem gerade entwickelte Programme liegen (dies ist hilfreich z.B. beim Nachladen von Dateien - *.RSC u.. - durch die Programme). *** Die bergabe von Kommandozeilen ist beim Aufruf eines Programms von THYSHELL aus in folgender Weise mglich: - bei Aufruf ber das Men oder ber die Tastatur, indem in der Konfigurationsdatei THYSHELL.DEF hinter dem Datei- namen, durch genau ein Leerzeichen getrennt, ein Command- String vermerkt wird; dieser wird dann b e i j e d e m A u f r u f des betreffenden Programms bergeben, wenn nicht ein anderer Command-String explizit angegeben wird. Vgl. oben unter "3. Konfiguration von THYSHELL". - durch explizite Angabe einer Kommandozeile, die berge- ben werden soll. Dies ist bei jedem Aufruf eines Pro- gramms mglich, sei es ber Tastatur, sei es ber das Men, sei es ber "Run *.PRG". Hierbei mssen Sie unterscheiden, ob es sich um ein "*.PRG"- bzw. "*.TOS"- bzw. "*.APP"-File oder aber um ein "*.TTP"-File handelt. Bei "*.TOS"-, "*.APP" und "*.PRG"-Files wird gewhnlich keine Kommandozeile abgefragt. Drckt man jedoch whrend des Aufrufs die rechte Maustaste, so wird man dazu aufgefordert, eine Kommandozeile (von max. 128 Zeichen Lnge) einzugeben. Umgekehrt wird bei "*.TTP"-Files gewhnlich ein Command-String abgefragt. Drckt man beim Aufruf die rechte Maustaste, so unterbleibt diese Abfrage. A n m e r k u n g : Beim Aufruf ber das Men ist es problemlos mglich, zustzlich zur linken auch die rechte Maustaste zu drcken. Beim Aufruf ber die Fileselect-Box ("Run *.PRG") mu man auf den gewohnten Doppelklick verzichten und zunchst das Programm (mit einfachem Klick) anwhlen, dann die rechte Maustaste festhalten und schlielich mit [Return] besttigen. Diese etwas umstndliche Verfahrensweise ist sicher zu vertreten - wenn Sie ein Programm hufig mit Kommandozeile aufrufen, werden Sie es ohnehin in die Konfiguration aufnehmen. - Bei der automatischen Ausfhrung eines Programms beim Start von THYSHELL.PRG - s.u. 4 e) c) Signum Da ich SIGNUM2-Anwender bin, werden Sie schon gemerkt haben. Wie in dem vorigen Abschnitt bereits erwhnt, knnen sich der Editor und das Druckprogramm von SIGNUM2 (mittels SHEL_WRITE) gegenseitig aufrufen; dabei wird die zuletzt bearbeitete Datei automatisch wieder geladen. Dies funktioniert auch bei Shells (man mu zwar das jeweilige Programm neu aufrufen, doch das Dokument wird automatisch geladen) doch gibt es ein Problem: Verlt man SIGNUM mit "beenden" oder "abbrechen", so ignorieren dies die meisten Shells, beim nchsten Aufruf von SIGNUM wird die Datei dennoch wieder geladen. Nicht so bei THYSHELL, das sich hier wieder wie das Desktop verhlt. brigens ist es bei Verwendung einer Shell auch ohne weiteres mglich, SIGNUM2 mit "-> Druckprogramm" zu verlassen, ein anderes Programm oder ein Accessory aufzu- rufen und wieder in SIGNUM2 zurckzukehren: Das zuletzt bearbeitete Dokument wird automatisch wieder geladen, bis Sie Editor oder Druckprogramm mit "beenden" oder "abbrechen" verlassen. Voraussetzung ist natrlich, da nicht ein anderes Programm zwischendurch mit SHEL_WRITE arbeitet. Aber das tun die wenigsten, und im schlimmsten Falle mssen Sie ihr Dokument eben wieder von Hand laden. d) SHIP.PRG Da THYSHELL sich wie das Desktop verhlt, hat auch einen Nachteil: Wenn Sie ein Programm zum Parken Ihrer Festplatte aufrufen, so kann es (bei vorheriger Verwendung von SHEL_WRITE, z.B. mit SIGNUM2) sein, da nach der Rckkehr von Ihrem Parkprogramm das Verzeichnis einer Festplattenpartition gelesen wird. Dies umgeht THYSHELL dadurch, da nach Ausfhrung eines Programms namens SHIP.PRG stets eine Alert-Box erscheint, die Sie zum Ausschalten der Gerte auffordert. Mchten Sie dies nicht, so knnen Sie mit "NEIN" protestieren: Die daraufhin erscheinende Fehlermeldung "Daten auf Laufwerk ... defekt ..." mu Sie nicht beunruhigen: Es ist dieselbe, die auch erscheint, wenn Sie das SHIP.PRG von Atari vom Desktop aus von einer Festplattenpartition gestartet haben. Hat Ihr Parkprogramm einen anderen Namen, so benennen Sie es am besten in SHIP.PRG um. So knnen Sie es aus THYSHELL bequem von der Platte aufrufen. e) automatischer Start von Programmen Es gibt noch eine weitere Mglichkeit, die Konfigurationsdatei THYSHELL.DEF zu erweitern. Hinter der letzten Zeile mit Meneintrgen knnen sie eine Zeile "*****" (fnf Asterisken ohne weitere Zeichen, auch keine Leerzeichen!) anfgen. In allen Zeilen, die danach folgen, wird ein vollstndiger Dateiname (mit Laufwerksbuchstaben und Pfad) und eventuell (optional), durch genau ein Leerzeichen getrennt, wieder eine Kommandozeile erwartet. Die dort angegebenen Programme werden beim Start von THYSHELL.PRG automatisch in der Reihenfolge gestartet, in der sie in der Datei THYSHELL.DEF stehen. Dies kann jedoch unterbunden werden, indem beim Start von THYSHELL.PRG die [Control]-Taste gedrckt und festgehalten wird, bis die Menleiste von THYSHELL zu sehen ist. Sinn dieser Einrichtung ist es, die Verwendung des GFA-Starters zu ermglichen. Dieser lscht nmlich offen- bar Herrn Patzels unverzichtbare Fileselect-Box bei jedem Aufruf eines GEM-Programms (werden da Zeiger verndert?). So haben Sie nun die Mglichkeit, THYSHELL.PRG von diesem (oder auch einem anderen) Autostart-Programm starten zu lassen und danach erst Patzels Fileselect-Box zu instal- lieren, indem Sie sie von THYSHELL automatisch ausfhren lassen. Hier kann es eben auch einmal sinnvoll sein, den automatischen Aufruf zu unterbinden, etwa wenn Sie THY- SHELL verlassen und dann wieder starten (warum eigent- lich?). Sonst wird immer neuer Speicher fr residente Programme verwendet, die eigentlich schon installiert sind. Denken Sie daran, da der automatische Aufruf von Programmen beim Start von THYSHELL durch D r c k e n d e r [ C o n t r o l ] - T a s t e verhindert werden kann. f) Aufruf von Programmen von Diskette Sicherlich ist eine Shell wie THYSHELL in erster Linie etwas fr Festplattenbesitzer. Aber welcher Festplatten- besitzer hat sich noch nicht ber ein Problem gergert, das bei den meisten Shells regelmig auftritt, wenn man ein Programm von Diskette aufrufen will, aber gerade die falsche Diskette eingelegt hat. Da das Betriebssystem (genauer das GEMDOS) intern ein Verzeichnis des Inhalts der Laufwerke A: und B: verwaltet, dieses Verzeichnis aber nicht stndig aktualisiert wird, fhrt auch das Einlegen der richtigen Diskette nicht zum Erfolg, da das GEMDOS noch das alte Verzeichnis fr gltig hlt und gar nicht erst versucht, auf Diskette zuzugreifen. Dieses Problem kann man in den meisten Shells nur umgehen, indem man eine Fileselect-Box aufruft (falls irgenwo eine zur Verfgung steht; es gibt nmlich Shells, die es nicht einmal erlauben, ein beliebiges Programm aufzurufen!) und dann "zu Fu" das Verzeichnis fr A: oder B: aktualisiert. In THYSHELL kann dieses Problem nicht auftreten, da bei jedem Zugriff auf A: oder B: das entsprechende Verzeichnis aktualisiert wird [GFA-Basic-Programmierern sei verraten: mit "VOID DFREE(dr%)"]. Die dafr erforder- liche Zeit fllt bei Diskettenzugriffen nicht ins Gewicht (bei Festplattenzugriffen wird die unntige Aktualisie- rung natrlich nicht durchgefhrt) und ist jedenfalls weit weniger nervttend als das andauernde Aufrufen von "Run *.PRG", wenn 'mal wieder die falsche Diskette im Laufwerk war. 5. Schlu Ich hoffe, da Ihnen THYSHELL von Nutzen ist. Ich verwende das Programm stndig, so da ich zuversichtlich bin, da es keine groben Fehler mehr enthlt. Ich bin froh ber jede Zuschrift, besonders aber ber solche, die mich auf noch nicht erkannte Fehler aufmerksam machen oder zu weiteren Verbesserungen anregen. Bei Problemen helfe ich gerne - bitte schreiben Sie mir, wenn Sie Schwierigkeiten haben. Der (vorlufig noch nicht dokumentierte) Quelltext in GFA-Basic V. 2.02 ist gegen Einsendung von DM 10,-- und einer formatierten Diskette oder gegen Einsendung von DM 20,-- bei mir erhltlich. Rainer Thiel `D8fQ` Efv*oM$* m HPHUBg?<JNA(m)m -:gS)@ -OK1PC#HN2Hx?<HNA@)@l/?<HNA)@h&@)@XЬl)@d)@`ARCpr Ѝ"QHNFALNJHz2?< NA\pdAxr0XQ)K\NN `NN ,`NuJrBjNuHz?<&NN\NCAp$L Qp N9lrBlJpNNpMN9@pdAr 0Q0tr N9lNtNupealp`NuaNJHz?<&NNBWNANC2A@p222NrҌ0<NB0,rNurA9Ar`v C9Cr`rt9@9A9BNrrҌpsNB0,Nu9@N`rDҌpsNBNuC2 @ e @}bA@p222Nr,Ҍ0<NBNu pa4|a@:>< |a6RGk0Gg`a(0GVfA1G<ap??<?<NM\Nu??< NMXNuHn. 2$4BBNuAd RdQRB BbABJk 0NuJBjBBXNu 0Nu 2$NuE`B<gJEgEjCDEDF Fe( F dF8BCHC` F0bFHC8v` HD8HDkDуdQRBNuDdBDA@kgAр[SBk0NuJlJBk&Nu0g H@rB JkЀ[` BbNuJBj prtNuHPAJgPpr$< _Nup _NtNu&8*JEgJBgJjBEB:HC҅H@:|ۆ҄ۆ<HC>H@ЃdHA@B@H@хk HAҁHAрSB BbNuN4pNNuCDEJEgJBgJjBEBQ*HE?<>0rHGGdHGGdSWDуdi\?<>0rHGGdHGGdSWDуdiN?<>0rHGGdHGGdSW2 H@N?<,>CEdGH@0r`?<`JBgVB&8TTDуdQRBNuDAр&AdRAрAрDуNuprt|=|H  g +g -f .g20  b 0e 9b da`RF` .f 0e 9b dajSF` Eg efX +g -f 0e 9oSH`00  b&Hz0  b E Do`HJjDDDS4</NJFkSFk&aQN`Ha"FFaQL8N6.HJgtBnHNupr$<NuJBk4<rpAC v JBgJjv-| Bb BkH>aaNRFBdL8?N<JBga2SF Be BgQRB`ApdR e <rRF&0xafEv+0JFjDFv-Hƌd0BFHF 0HF0ANuprt|`2:HQ A dNAXJ@jNNurAt`t Add.A0Hk"JjJBft??/?<BNA JjNNuS@k ??<NAXNu?Hl?<6NAP0,NuNJ@g,A,BBgHQ?<=NAP FJ@k??<>NAXtNutNuN` A$ HJo d*b` QjNuQjNubNN /N.,*Q(,l؅kb/,h?<INA\/?<HNA\Jg< l`"ld۬d۬`)Dl$I& `&bۛp0R@@b&C CX`~/,l?<HNA\p=N$_*(<HREHRa" EHRa DHRa??<KNNANNuN @ep~QBNuvN)@p `H@)@prtNAHplrtNB 2pNpNpapaprapalpalpalpaTpaTpaTBp'a?<NNT@B){L9|0<rtNpapap9@p`pvNv`v`vj`v `v`v`v`?Aa*` Al 2l 4)lVH)lRprtNAl 2l 4HVNu9Cp rtNAv` Av `Avl 2l 4)lVHN.aBp0,l 2Nua40,HNua*p0,l 4Nuaprt0,l 22,l 44,NuN9||BlBlrҌpsNBNu@((?<NN.?<NNX@LvA HA HNupmrtA)HA)HN(* 9AJA)H@@[000][ˈN Evz`* [g" ]g |g QSz` zQSpQ][ɈN Dvx`* [g" ]g |g QSx` xQSpQ]Bp4NHNu2(g"P@g2RADAH""l`r2oZAe 1@#)I`Nuk1@Nup NNN"l`dpNAtrdJhk\QpaNH ld$l`"Hg0 k&@ S`g k#&@0+S@H3 Q&f)I`LNuApNNn$N6$BS@kH2QNupC ұd"X0Pg"RA$D#Nu"X0NuNJ@gpNu _0HpN _0HpNp"_0HqNE ұeHHQ0)N$_$ZR@H`2QNu$Y0gHR@@"D%$X0P2g# R@%NupE $ $X0dP.gRG,D%pr Y2dP.gRG,D!p4Ae4v`VfANuNpWHNuNpVHNu Ihd*N6$E$RR@H`2QˈN ENu Ihd"*N6$E8*$R`"QˈN ENu2)A IJAfr4(Ae*RBBc0*SA?N6$E$R`QˈN ENup`(* 0(iN6$E 4R`Q$D 4R`QˈN DN ENua NuN IHPg"B  g &gNJBjt BNut`Rptr ae OgT Xgj HgSRB ae Fb$0k  c_  c b退`tSJBkNRB0 b b瀀`RB0 fрd`2p <0N6`QNu0g< @g4:8(g* b.&N6SD`Q0$C$RQLjN CNuNpN6p N?Hl?<GNAPA"HJf SNpC 0(gFd"P$I` *N6$E$R(S@jv A(Wf( ae zb Q DNur ,* N& ( EN C"Sj|AcJ@fCAHPBHQ?NA\ _JjNNuHpx$ ld$l`"Hg8" &Ak eѐ S`g"" k#&Aeё2+SAI3 Q&f)I`LNuHpx$&ր ld$l`"HgR" k&Ac b S` S`g4" k#&AcbrkX`ޑ2+SAI3 Q&f)I`LNuHRp` HRpJQfpNNq Y Qfd ЀЀNuNN @$_& if"QdփփHRNNN ~,Nq8DRzXEEg"7PNqR$HBJBgpNJgJigp`eetЂ`"ЀeЁdp`ЀeЀe"Ѕe$W.H@@/ l\N6 NNL"2` NqR YEjrd0` SjNp"X4g S`"QNuNuNJPgBP, d eЀЀ``Ѐ"ЀЁE H FNL l ,"X2geb J"F\N xdtdD& pk<HCJCf2 INB|d& xfN."Nud & f2Nup@Nxd& tkHCJCfN@"@Ed ddeƐdH@J@f  @  "002Nu" KC`e NN`d \N l\Ӭ\ NupNd d3 d# d# # d# # # # d# # # # # # # # dB` # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # QNudd2d"d""d""""d""""""""dB` """"""""""""""""""""""""""""""""QNuPj0,lf$J,nk l*fp?Np N9|nN`A0,l2J,jk 0"fZRAR@ 0"g 0 f` 0 g 0,f9@lTll`BllA"H"g"A4`Q"AA 0! NuS@R@ 0 g 0,f9@lRll`R@ 0 fQj`<,*?Hj\F FfNl`H FfNd`RGFc8>`4A g6 g0 g` gTlfelhgFf2pRGRFa`a,` `?~ap ap a 0NuCpE`bf`FgRGJGgRSGSFFgCpE`Yf`Nua@Jf gH@ fa(@ fza0 b @ Ee0Nu?<?<NMXNur9A(HNLNu0,^2,`NHzEfpaRppaNAEg0PaľEfa4RE`p a2a*Efp a(N.ldeS@f lbfSl`9Ab9FdNupapqr`p`C l ", Ⲭ dfѬ SA 0! Nup"Nak NupNuakfpNupNtddA0oH?<?B?<BNA Jk.,?<?B?<BNA *kBg?/?<BNA JkNuN<(`|HP?N<pg2JFg W"X2@e2<A`QN^CpR@ 1 fA 0! "_N, HHHNup`pNu)H9@Jp4NP'J&f H LNu P&NuQ'` J,'fJ,&gHA#ȇeC! B,&LNu-W)K20, 8k8@ gJl&f"Nu , 8g"P 8 @/, 8N  8fQ 8J,'gNupB <``L@ H)l26)z @W , Jf`CfSHj-D@Hd0H@H 0H@0`fSC\fS , @a"C]fApNNNެHP?< NA\NuH@aa/a a Nu@0 9c^Nu| PC>$Fehler # ][Abbruch]\f.B &lX)K\)ld` lp ,BQjNup(NXtHB9BL@@TAt )l g.A( f hgSASAgRB`9BJNSAgNu)l g,vARC( g9CJ9|Lp!,N FPeNuޖA JpBQA/)H )l gBlJpNB Aprt0 0BBB R@ @efA000 0PB0 *00 000\0X0 *0000 0P0BX0, *@00p1| 1|QBX0 $HTH0P &0 *0,NupNSk [0NupNuHPaH8 _&X Pf/|~ K!zag @ ep 24C"2 S@ػ Td BTA3A0C4$I2a222B"0@2A\xvaRg<2#M 4B3BS@ -f ػ Td>BAAb8RGRC`3RSG5GC5C J1DcaRF F e`RG GcdNuXASF1F41R 1h4 x1EDgVA)H)H 9|J?<NNTU@g,ACg dRhdRh(gpL8Np>L8Np*HEAJ0?C bL000H?A/.)HpNLrHH/>Bl/,ff.f.ffNu l /.g&, ^`D&, N`>&, R`8&, V`2&, Z`,2,/4WAARA0,/6A hfRAS@f9A/,&, Jo ? CN 0`@k Ap0(/.NuA Nu)G RHA)A v9@ zNup)@JphNLtH &JKBCH .A/~0 1PP1P1PA L? &<@>AFG0000X0000X0000X0000C ~AJ0g0  pi, N"F QNu?S@k&8L &LeBLe,C`(A? fHa)_ 2TNuBlJ`l *bl ,bH .N0S@k@>A PC/~. 0(JgRJ)@g1@CJ2fP2HP" &" *pdN0,r W1@AJ00 piN9|L@NpiN _CL""pe`9| LpiN9|LphNLtH 2H/`SBSC@AHH/jP 6P/^P0<rtNpapapapaL/jr`S@k6@ A 9PJg8BPpfNpgN9| LphN9@JfdBlJa\Q 6BB 2`NuS@k @ A 9pJg a$Bp`NuHS&I. FV 7p&N 9l/h8,:,L/d4,pĴ@cS@9@p4,rŴAcBSA9Ar`8pJ, 7fnJ/^k0 Eg$2,/h pg  qfH9A/hpjN`ޖYp-KNu"l`Yd&-KNNN"l`YepN&#k"C-KN"Cփk փk2##`փk"`2`& $Y8gHRDD*D%H8#$c2g# HRDD%H`p"l`Qd&&| NuNN"l`QepZNt"l`]d6&|0NuNN"l`]epZNC ҳfHP0(N6$W$RR@H`2Q"H _$l` dd" $X&0BP6Y&|Hg R@@%E ҳeHQ0)N$_$RR@H`2QNu$Y 0P1@Hg R@@%NuNN$l` epZN,jJk `BffAge Jj 2$NuJjNu/\ga `6f -K. @Nua \dp\N&#k gH`Nu"Cփk փk2##`փk##`3#`$Y8gHRDD*D%H8#$c2g# HRDD%H` <NH?<NATR+@`pNCNN THYSHELL.DEFNNZJBfN08pINHPN THYSHELL.DEFr"_NpNzNCNHmp"_NHPp#N"_NJBfN0*HmANNH <r$<L8NN."_NNN.+@d -d 'nN0$ -dNHN02prN\N0HxN"Datei THYSHELL.DEF|nicht gefunden!HPN WEITER |ABBRUCHr"_ N&+@h -hUgN0AAN p NC NHmA "_NJBfN0p\NCNpdC퀚NdpdC퀠NdBlpAlN*N6CNHmA "_NJBfN1H/-lp NHPA"_NvHPp N"_NvC퀚N N)|3 J)|@ Nd?<?<NNX\r @ ?Hm Hm6p"_NNN"_NvHPp N"_NvHP -lNN"_NvHPp N"_NvC NNX`NqN N A퀀N DA z@Fd^  L668\J,#20000 Texte Signum (s) ,E:\SIGNUM2.PRG Druckprogramm (S) ,E:\SPRINT.PRG Zs.-Editor ,E:\CHSETS\DCS24N.PRG ------------------ TEMPUS (t) ,C:\TEMPUS\TEMPUS.PRG STARWRITER (w) ,E:\STARWRIT.PRG ------------------ Necmanager (n) ,D:\GFABASIC\PROGRAMS.304\GFARO304.PRG necm_2_2 Druckertest ,C:\DISKUTIL\DRU_TEST.PRG Steve (e) ,E:\STEVE\STEVE.PRG Sprachen GFA-Basic V. 2.02 (b) ,D:\GFABASIC\GFAB_202.PRG programs.202\init Run-Only V. 2.02 ,D:\GFABASIC\PROGRAMS.202\GFARO202.PRG Compiler V. 2.02 (B) ,D:\GFABASIC\GFA_BCOM.PRG --------------------- Interpr. V. 3.04 (i) ,D:\GFABASIC\GFAB_304.PRG programs.304\init Run-Only V. 3.04 (I) ,D:\GFABASIC\PROGRAMS.304\GFARO304.PRG --------------------- No-Cls-Patch (c) ,D:\GFABASIC\NO_CLS.PRG Accessory-Patch () ,D:\GFABASIC\ACCPATCH.PRG Killcommand (k) ,D:\GFABASIC\PROGRAMS.304\GFARO304.PRG rembo --------------------- Modula 2 (m) ,D:\MODULA_2\M2LOADER.PRG --------------------- RCS2 (r) ,D:\RCS\RCS2.PRG RCS ,D:\RCS\RCS.PRG RSC-Convert (R) ,D:\GFABASIC\RSC_CONV.PRG --------------------- Weller-Tools GFA (W) ,D:\WT_GFA20.PRG Utilities Flexdisk (F) ,C:\AUTO\FLEXDISK.PRG Termine (T) ,C:\TERMIN\TERMIN.PRG Arc ,E:\ARC.TTP Arcshell (A) ,E:\ARCSHELL.PRG Diskinfo ,C:\DISKUTIL\DISKINFO.PRG Hide (h) ,C:\DISKUTIL\HIDE.TTP Hyperformat (f) ,C:\DISKUTIL\HYPFM307.TOS SED (d) ,C:\DISKUTIL\SED_306.PRG Variocop (v) ,C:\DISKUTIL\VARIO301.PRG Virenschutz (V) ,B:\SAGROTAN.410\SAGROTAN.PRG ---------------- Harddisk-BAK (H) ,B:\HDU\HDU_2_1.PRG HDX ,B:\HARDDISK.VAR\HDX.PRG HInstall ,B:\HARDDISK.VAR\HINSTALL.PRG SHIP (p) ,C:\SHIP.PRG ***** C:\DISKUTIL\SWITCHER.TOS ?>~|<?~~~~?`f ff|f<<3`<~~8<><<f<|~>~~~~ff~ff~ff8ffff~ffffff9~f`ffffffff~>`>ff`y~f`f~f~ffff|~`~~~`qff`f`f'`ffff`f`f```qff`f`f3`f~ff`f`f```af~`~~fÁ1~~~f~`~`~~~`Af>`>>fÃ9|>`>>>`~|n|{)e[33x^ ?ßV_ko',?E_[U*T>?{(}mQn/f}_?K}fl TG3!qNMΖӫ*\6gQq^"Y~.K'??3DTSwHCqoO75<4s{q\******"***(******?'?aGY9i?e9MfpǗTTTTTTDDTTTTTT&8m]^T~5Jp3_?"*"f8A'z?j?O,x;hDTT>=w^?gnsuζ?7nODD@?ѡ``;~.r2!}(* *(9χq"0܏5F{'?x^7_P_r+JE:}?m'9^ݦ,{קߵ{9޶aMs`68ty3JWGz?6Ӂ寍o>0G?7s3?/d?6~g8g Gs?pwТp->Gw«Uw哞>vMkݟu__>əegpxJG/_Oeg5a9ߖ%SpYtj~@/|<|8<|<<4kQ/۳w!E(p s~~8~~~~%E/<{M:Y#?'S{<{?~Gffffff\!xoم2Jq~wȚofff`ff.?{>#">oΙp?Q?off~`~faoP y~muݕ<ff```fP͘/ݰ =ISnWWff```f9pe{2{= "_ܫ]sނe~~<~`~fs2zSf%w;`uM<|<>`>fr+?a[oM0ݜ˟I`rymߓp}=k0|)O_Ӿħ`%7p6o}p ۷g+t ~G贓rocyݼ#W<.xY⾵>2Wsi <7[0|NRЛgk<>:``}q gj8w˜&1[x``0Y {I) zfL>jvp``'Y߽Po?N-u&~Ț<|8<|<<kow59e_wַcugf~~~|~8~~~~)"`9n0ÿvoOrYofff``fffff#;8uK>>4O_f F*ff`p`fffff 1?' l>Npf~`<`f~f~fxxޞ$>8˨>oGO [<```f`f`fG?րgO#?O\P#<```f`f`fx_u`:Gks|7~`~~f<~~~f ?㷍SkO>a w>_>`|>f<>|>f_C+?K:^zp x$?߿ _ktx:_KSf|2_`?ڍ$?P~ 3:ŀV?W[g|`lgoG c~5="~Gg=`/\>bc^ mfl|<<<<<<<o{Qg;&aw? /f~~~~~~~~wB\xp`5~ n@>fffffffff'?FL̜lp`= ~fffffffff??s_ٝޫuշk?<?5ff~f~ff~f1OOԏ;~o}8K}0eff`f`ff`f_ V3kW{kNCLwff`f`ff`f`@w_#s+n]*P w~~~f~ff~f?@ _p9L}0//3Ϣ}zX>|>f>ff>f0-?^:OHe1qzݙ%0R纺іC?G[~?׮y7|ƿ9p_c3q}H y,a=?Eέ׾/8s̥tˑ/| 8f`OQ ^&w8f`7m/6fzVWgH07?`{_s/佷%<><|<<u~- O?D;{߼O~~|~~~Fg|q 㷇 )`>?/gf``fffgPm#N?dzgT4fp`fffmb3wOd{џMq>w?f<`f~f!';Yg[ׂ@f`f`f1F7]7ːnwܸw睳f`f`fK_^I?1LHl@d?o<<|>f>f`OQ`e&@Nz7T'`ʿnݘ<7\;?c81_r.֊ôvy?d~uVp+Ӷ,|R̟;߀ U9x ?/gP?`Tp>46?xYQБ2^ƿײl ٷ'~f~~~8~f~ůɾ;.3r?13~ffff }?vf`ffc'=L:_T)~os?f`ffn ons >sf`<~~?11+>uf`<|>H3_z`>k݇WGԬxN[~E?'x&`//83xeG3G2q>-s /(w[8o{yMoT=Tೃ,;3|E_*T!3cp{~]8{_DTTTDH|򼷺w{~O****"(**(***"****w}=?c}>TTTTDDD@DDDTTTT;sw=;}" " " "@R9x`1=7}D@T@D@D??S՜޽~y" " "?7MėL7}FD@@@D@T 64utM 9(( ** * *_ԇ W ä ǃoqP@@OA1}.<7a*`C=0Л\GT|9p-Ev?SOju7vg_?*UwY5n5Vo?7l 淚=MKxK/}vYcacxl?n_<|~<<<1~]6{%8&~~~~f~~~4I9ff fffffV~Vp3f`fffff{8J߿y,xw?Ã~`~ff~f{>:#t<``0`ff`fLv?} _~``0`f~`f?a ?,ً;b`~`~~~>~f{{)?o5B)=у9o/ >`~>>>f{{2?yqĖөq~{{{oc}1bp?~|{{{@R1j??{{{?㯿oQx+Oa{{{vչx{Gjýu8f`{{{˹Y<~>8f`xx{?ܻh5~B^Ã `8{Oj<|<<N=iͽ!Xe7¾~~|~~~?qw8  =_7of``fffKuH,{6fp`fffcB 0~?p~ <Df<`f~fN7@h=[no@88;f`f`f:qZwMÉf`f`f>9=7ps~~`?<~~~f~fŰE{=sU0sps<<|>f>fW _s u';~nJs"x}يX3gA>gW 1s澿=އ_ |AmZvp@@=t o[xu٣?@DDTDwyh|5s**** *"********``qjρ1x?3ހTTTT@DTTDDPTTTTToow{|Nk>2@< *"" oovsvxv>1@TDTT@Poo{ܷ;yM "" o=~o3et͟ @DDD@@Do<=й=J?:ώ7**** =oIm]+SQn8vT@D=k^w޲#0|=jfj9pc6{= mi]|=x'hُ3Uw9?Ͻڒ1Q5x88mdp1tǵce 88=='o=='ܜ.?䧐o~-??<~f<<>?o==g_p~f~~~o<=O׏?Twr<fff`o_z? >fffpoo>xn ~f~~<oo1c_6_gO8ff``oo<=?+?kxoh`<s~~~<<~~o{K{{]>>><<>|o{Ϗ\׮s/y{}uVj_?x?__wOYUy?5?Fff|_{hf}Iv~KN~fE&+/Qa~>f'>k};oج2}wjCquǷR9y-Ui"~p69~]>?9321~?τ|cX8{ s hcߓx~g>3c]7|oƇGrc<~?ѿ)!K< p/*****************~ןϰa1wb?7oyO~>ρ > ޛ]/ n>?5[E`.8So'yo~xx/8O_6YO858~?;O'?><~Q7?6YxOs/t|><4C3~'x]|L=O_xpG&>~|`Bٞ&frî~~<~`?%_w9p?~>``~f`Mj~k[&{f<``ff<~<|Ùý3?O/y"[O7<?~7px*n|f~f>~|~vwqޝp85n|f~f`fw W]po 9<3f`~~>`f))i6W`_/c<3f`~|~`f))?='?iݓ3gqB|?YW~<f`f`f`f99?4~}3]l?9̿~`f`~~f99 9ǏI;9<`f`>>f99h]qOݑ˃ɏ~n_qvMyݙ>7|_qkos|5^?W8I9RT~tp灁矟—sy8<o)珏 |N)Á `){sgvox8럇3owcߞaK7iڿG>tA3|TYy05,{< ȱ|ps?1=Ãǿ>u:ÙÁ8Á~w1vÙ_BÀkoϿyv?Wz~5M|~f?V~awo}atc~̿2Çqux^ek?0#k+ff9<=|=bڪesxm~~뎒cU- K}?zͻ~»>_e-7彿G3c~~~~3ǁǃ|w:pҸ9x0y+6';ÙÁx>ᕟ4uÙß9{}>>}__9r_>x >ySܘ?s>{93o?،֛_9sx~wc9??/kL91Ï?u꫶LÃx9fw{apν?gdqyos?aPCbe_P.?{$ahÛ^SukUo#?$G؀go?><u? ȿp~</<_-ӟ~C]<o??/O{s// >[ K? ??G|<]˿?>MUGq=aѿ?|JUM?qgMOߚǧ9|? JLsϯX?Ї_"תej|^z3}/eIbx39?7$y|\b@ g|p{|}1?&Ə?;Cde^?&N Q%s~W}uc_#k}c~}0~j7#43wgo=<;;?o?`8Aۇ{??-L?|\?._G$f?]r~?eT/?)7o_}kl~mR/5s2|y xؿ_׿^8N@fq p\3vC_o߲?K|Tqco(p`cXoaN8/8şgq0?88'p3v9?k/9I'p8yw+`;op? ϣO{`?ǛG7?Os?ݬ&|QÝC3gp+;/_㙵1m'?n`)N87?+?1?L~kIΏ <=v {52%ϧθb?Oك!=w;Eyq)_^0w);wǃĀc嵰'aٜ?_n&@Hq_1_Na f۷!jڣlU(yO1=,0o~cK>K3(7GowԿ~~会/o?~ 3z{W?`^v?Z?9DݷϿ:WG 7b>'g~Ͽo~_9_W7| mxx}`7>l溿yꕋ8 }=(WlϿo9b _a?R0?=6p%U;Jyyـ^7X|0-sVpms-TI~a={ ُ}/p~~P(j~p<sxjqǏ?>CWc>Gp\2_?/~FK{x|kO_7Qxp? C}~2d_NJ~>x?`w8>*Wݞ?>o?n<X{ko x>M0<:>`Nx\.xk(ًw3|>㎗px%G`>p?a <>]_`x?CY\ pkn>>>?gpvO ???pͿڦ>w>]=p?Ogp?6̿p<'<9w0xp~o|p8 ?8x}ɇox;K?Ξu8bt__>8R# aä<{?G͇߿p;;@m~??9O?+ /uü'?{t3>?L?2!@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@UUUWUUT@@UUUVUUT@@UUUV ǀUUT@ ǀǏ@UUUV     UUT@  π   Ǎ@UUUVό  ό  UUT@ό  όό   @UUUV   à   UUT@    @UUUV   UUT@   @UUUV LJUUT@ Ϗǀχ@UUUV UUT@ @UUUVUUT@@UUUVUUT@@UUUVUUT@=@ 8@UUUV0A@@y8A Dxs1N<FE0888UUT@19EC!BED_D9PEQ%@UUUV1@D|A!DDED1P<AE}ETQ UUT@yx< UUp U_T@`na` c~~@UW`fU`0U\a`UUp UUpf` UUp U_T@|f0amf`@UW|fU`0U\aUUpo UUp`p UUp U_T@`fͬ0a` fo`8@UW`fU`ͬ0U\a`UUp g UUp` UUpÁ U_T@`f͌0a0 g`@UW`nU`͌0U\a0UUp fl UUpf UUp U_T@~|~͌0 flfa@UW~x~U`U\UUp flg UUp~~ UUpa U_T@xy flg<|@UWU`U\UUp UUp UUp U_T@@UWUU_UUUUUUp U_T@ꪪ@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_T@ꪪ@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_T@ꪪ@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_T@ꪪ@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_T@ꪪ@UWUUWUUUUU`_T@@UVU5UVUp UUp UU`_T@:@UVU5UVUp`~| UUp<<| UU`_T@ǀ:ߏ`~~~~~@UV U5UV ٌUp`f UUpfff UU`_T@ : ٌ`ffff@UV όU5UV ٍUp`~ UUp`~f~ UU`_T@ ό: ߍ`|`~f|@UV U5UV Up`f UUp`ff UU`_T@ : `f`ff@UV U5UV Up`f UUpffff UU`_T@ : `fffff@UV U5UV Up~~~ UUp~~~~ UU`_T@ : ǀ~~|<<|<@UVU5UVUp UUp UU`_T@:@UWUUWUUUUU` _T@ @UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`_T@ꪪ@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU` _T@ꪪ @UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU` _T@ꪪ @UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`_T@ꪪ@UWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`_T@@UVuUUWUUUUU`_T@j@UV|>~uU`UVUp UUp UU`_T@~~~~777UU]wwwuUUUU]UUUUUUUUUUUUUUUUUUT@33333?3;;; fmff``@UWWwWwwWU_UUX33333UU]wwwWuWuUUUU]UUUUUUUUUUUUUUUUUUT@333p33333 f ffa`@UWWWwWWwwWUuU_UUX33333UU]w]wwWuUUUU]UUUUUUUUUUUUUUUUUUT@????? gg@UWWUUU_UUXUU]wwUuUUUUUUUUUUUUUUUUUUT@@UUUUUUUUUUUUU_UUXUUUUUUUWUUUUUU]UUUUUUUUUUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU]UUUUUUU]UUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_UUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTUUUUUUUUUT@@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUT@@@@ ******************************************************************** Deze diskette is samengesteld door de Stichting ST, Postbus 11129, 2301 EC Leiden. Onze bibliotheek van public domain programma's omvat op dit moment (winter 1990) al zo'n vier honderd disks. Daarop vindt u programma's op elk gebied, van tekstverwerker en database tot de leukste spelletjes, de fraaiste tekenprogramma's en de handigste utilities. Ook bevat onze bibliotheek een speciale afdeling voor public domain disks met Macintosh software, die te gebruiken zijn onder de ALADIN emulator. Deze MAC-PD serie bevat tot nu toe ongeveer vijfendertig disks. ******************************************************************** U vindt in het twee maandelijks tijdschrift "ST" (Onafhankelijk tijd- schrift van en voor gebruikers van Atari ST computers) een overzicht en een bespreking van de inhoud van de nieuwe public-domain diskettes. Dit tijdschrift bevat tevens een bestelkaart zodat U vlot over de software kunt beschikken. De Stichting ST geeft ook een speciale PD catalogus disk uit. ************** Deze public domain disk is geproduceerd en gedistribueerd door: Stichting ST afd. Software Bakkersteeg 9A 2311 RH LEIDEN ************** Ondanks onze controle komt het af en toe voor dat een diskje niet goed is gecopieerd.Mocht U dit overkomen, aarzel dan niet en stuur de defecte disk aan ons terug. U krijgt dan direct een vervangende disk toegestuurd. ************************************************************************ Teneinde het voor ons mogelijk te maken om productie fouten op te sporen en vervolgens in de toekomst te vermijden, zijn alle disks, geproduceerd door de Stichting ST, voorzien van een groen productie nummer. ************************************************************************ In diesem Shell-Paket sollte fr jeden ST-Anwender etwas dabei sein. Flexdesk und Thyshell sind zwei Shells, bei denen Sie Programmnamen in GEM-Leisten unterbringen knnen, um sie von dort aus zu starten. Sehr praktisch zum Beispiel, wenn Sie immer die gleichen Programme benutzen. Die Corona-Shell ist ein Command-Line-Interpreter, mit dem Sie die Befehle, die Sie normalerweise auf dem Desktop ausfhren, per Hand eingeben knnen. Geeignet fr die fleiigen Tipper, die nicht gerne mit der Maus umgehen. Zwei GFA-Shells sind fr den GFA-BASIC 3.0-Compiler geschrieben worden. Wenn Ihnen das mitgelieferte MENU.PRG zu wenig bietet, sind Sie mit diesen Shells wesentlich besser bedient. Mit dem gleichen groen Befehlsumfang und Komfort sind auch jeweils eine Shell fr Turbo C und Pascal enthalten. Endlich mssen Sie nicht mehr alle Compiler, Linker und Hilfsprogramme per Hand aufrufen!