úÇMàLé} ¬­ X­¬®ð c0¬±C)HÈCð±CH Mh¨hÝ©À h ¨`­eC¨¥Di„C…DŒ` Œ  ©R­y„H©PŒ©€ÊÃEð ® Ð® à *  1ŒÆH0®芢@)Т€Ž Yäˆ0æ¦.Ș`ÿi í#(PMLMRTÒ€\ \b Æ Pg©i»©¼¢Ž ¶ ½Ë0 š ð  ¹%Ãe ™ˆ÷½ËÉ@°¼Ã / ÊÐÕ ®Š™`ˆÐúîd­ ç¬ ¢ì Þè0˜øÈÊîŒèèèè½ðÉDÐô©D©Ô©LŒÿx€ qqà  <130XE+ Makro-Assembler, Version 2.1 Q Qt=ty y} €}à 6Copyright (c) 1992 by Torsten Karwoth J Jo-ou €Dieses }ÇProgramm läuft nur auf Rechnern der Atari XL/XE-Serie und benötigt eine RAMDisk von mindestens 64KB. Diese Version sollte}ÃX nur mit MyDOS be- nutzt werden (wurde mit anderen DOS-Versionen nicht "härtegetestet").] €Das Copyright für den 130XE+}Ç Makro-Assembler liegt bei mir, Torsten Karwoth. Trotzdem erlaube ich hiermit die Weitergabe dieses Programmes aussc }Çhließlich auf der Installationsdiskette, sofern folgende Bedingungen erfüllt werden, sonst darf das Programm nicht kopiert }à werden: €1) Alle Dateien, auch Texte, welche sich auf der Installationsdiskette be- finden, dürfen nicht verändert od }Çer entfernt werden. Dies gilt insbe- sonders für die Copyright-Notizen im Programm und in der Anleitung. Ausnahme: }Ç Alle Autoren, welche ein paar Module programmiert haben (für den Monitor oder Toolbox) und diese weitergeben wollen, sollten }Ç eine Funktions- beschreibung als Textfile beilegen, eventuell in einem zusätzlich erzeugten Verzeichnis "D1:EXPANSIONS". Di}Çe einzigen änderbaren Dateien sind das Kon- figurationsfile SETUP.CFG sowie PAGESEQ.DAT! 2) Das Programm trägt nicht den S}Çtatus oder Titel "Public Domain", es darf jedoch im Public-Domain-Bereich weitergegeben werden ("Free Ware"). Nicht erlaubt}Ç ist der gewerbliche Verkauf. Dies gilt für die (gedruckte) Anleitung sowie für das Programm. 3) Das Copyright }Çder mit dem 130XE+ Assembler erstellten Programme oder Quelltexte liegt bei den jeweiligen Autoren. Dies gilt auch für z}Gusätz- liche Programme in der Toolbox bzw. für Overlay-Kommandodateien, welche nicht zu diesem Assembler gehören. Hier}Çbei ist das Copyright der Autoren zu berücksichtigen und von Diesen eine schriftliche Genehmigung zur Weiter- gabe einzuholen}Ã. €Braunschweig, im Januar 1992 berücksichtigen und von Diesen eine schriftliche Genehmigung zur Weiter- gabe einzuholen%Ç Wenn ein anderes DOS als MyDOS 4.50 benutzt wird müssen folgende Punkte be- achtet werden: - MEMLO muss kleiner als $1FF0 s}Çein! - Das RAM unter dem OS-ROM darf nicht benutzt werden! - Die Toolbox-Funktion benutzt den XIO 39/40 von MyDOS zum Laden v}Çon Binär- files. Diese Funktion fällt also bei anderen DOS-Versionen weg! - Ebenso kann die "Quickloadfunktion" des Monitor}Çs nicht genutzt werden, in der ein File durch Angabe des Namens ("D1:Name.Ext") geladen werden kann. - Die auf dieser Syste}Ã`mdiskette vorhandenen Unterverzeichnisse lassen sich "höchstwahrscheinlich" nicht ansprechen.d €Eine Arbeitsdiskette (a}Çuf welcher sich nur der Assembler befindet) kann einfach hergestellt werden (haben Sie schon eine Kopie der Systemdiskett}Çe gemacht?). Alle Leute, welche nach dem Konfigurieren keinen Speicher mehr haben (für die RAMDisk) müssen eine Arbei}Çtsdiskette erstellen, da die RAMDisk des MyDOS auf der Systemdiskette NICHT abgemeldet werden darf! Die- sen Satz sollte sich}Ç jeder an die Wand nageln! 1 - Die Kopie der Systemdisk booten und das Konfigurationsprogramm starten. 2 - Nachdem das Kon}Ã8figurationsfile erzeugt wurde, gehen Sie in das DUP.SYS < €("DOS"). Konfigurieren Sie das DOS wie im Konfigurationsprogra}Ãmm be- Sschrieben. Schreiben Sie das geänderte DOS allerdings NICHT auf die W €Systemdiskette, wenn Sie keine RAMDisk }Ã" MEHR zur Verfügung haben (130XE- & €User). Dann läuft das Installationsprogramm nämlich nicht mehr! 3 - Formatieren Sie e!}Ã6ine FREIE Diskette und schreiben Sie das DOS auf die- : €se Diskette (mit "H")! 4 - Booten Sie die Systemdiskette neu, und "}Ã!wählen Sie "Arbeitsdiskette ein- % €richten". 5 - Befolgen Sie die weiteren Programmanweisungen. e Systemdiskette neu, und cà  ?Konfigurieren des Makroassemblers: W Wy=y} €$}G Vor dem Systemstart sollten Sie sich eine Sicherheitskopie bzw. Arbeitskopie der doppelseitigen Systemdiskette anfertigen%}%Ç und Die Original-Systemdiskette an einem sicheren Ort aufbewahren. Dies sage bzw. schreibe ich garantiert nicht umsonst! &}Ç Alle folgenden Änderungen sollten nur auf dieser Arbeitskopie erfol- gen! Das Programm benötigt beim Systemstart eine'}Ç RAM-Disk! Das MyDOS auf der Systemdiskette ist auf eine 130XE-Kompatible 64kB-RAMDisk konfiguriert. Wenn Sie im Verl(}Çauf der Installation zum Abmelden der RAMDisk im MyDOS-Menü aufge- fordert werden, dürfen Sie in keinem Fall das DOS zurück a)}Çuf die Installations- diskette schreiben! Sollten Sie so wenig Speicher haben, daß keine RAMDisk mitbenutzt werden kan*}Çn, so müssen Sie sich eine Systemdiskette einrichten und das MyDOS (mit der abgemeldeten RAMDisk) NUR AUF DIESE DISKETTE spei+}Çchern! Damit das Programm korrekt arbeiten kann, muß es an das vorhandene System ange- paßt werden. Dies betrifft vor alle,}Çm die RAMDisk-Ansteuerung. Dazu dient das Basicprogramm CONFIG.BAS im Verzeichnis SYSTEM auf der Systemdiskette. Es muß al-}Çs allererstes gestartet werden. Wählen Sie also nach dem booten den Menü- punkt "E - Konfigurieren" an. Das Konfiguratio.}Çnsprogramm wird gestartet. BITTE BEACHTEN: DAS PROGRAMM LÄUFT NUR MIT EINER 130XE-KOMPATIBLEN SPEICHERER- WEITERUNG, D.H. /}ÇSIE MUß ÜBER "PORTB" ($D301) ANGESTEUERT WERDEN! Zuerst werden Sie nach dem RAMDisk-Typ gefragt, der in Ihren Computer einge0}Çbaut ist. Wenn Sie sich im unklaren über Ihren RAMDisk-Typ sind, starten Sie das Programm PAGEFIND, ebenso wenn sie mehr 1}Çals eine 256 K-Byte RAMDisk haben! Das Programm findet JEDE mögliche Kombination um eine RAMDisk anzusprechen. Zu- sätzl2}Çich wird die RAMDisk auch noch getestet. Weitere Informationen zu diesem Programm finden Sie in dem Abschnitt "PAGEFIND.BAS3}Ç"! Wenn Sie im Besitz der ABBUC-Erweiterung (192 KB) sind, drücken Sie die Taste <3> und . Das Programm kennt in4}Çtern die Pagesequenz für diese RAMDisk und beginnt mit dem Test. Wenn Ihre RAMDisk nicht im Menü auftaucht, können Sie d5}Çie Pagesequenz auch selber eingeben (wenn Sie sie kennen). Waehlen Sie dazu Punkt 0 - Manual/file input. Sollten Sie vorh6}Ger PAGEFIND gestartet haben, wird die von PAGEFIND erzeugte Pagesequenz verwendet. Wenn Sie dieses nicht wollen, müssen 7}7Ç Sie die Datei "D1:PAGESEQ.DAT" löschen! Dies geschieht auto- matisch wenn PAGEFIND gestartet wird; beenden Sie PAGEFI8}Ã]ND sofort ohne die Pagesequenz abzuspeichern. Sie können auch vom BASIC aus mit dem Befehl t €XIO 33,#19}Ç,0,0,"D1:PAGESEQ.DAT" die Datei löschen und das Programm mit RUN starten. Wenn Sie jetzt "manual/ file input" wählen, :}Ç müssen Sie die Pagesequenz in 2-Stelligen Hexadezi- malzahlen eingeben. Das Programm testet die komplette RAM-Disk, lö;}Çscht also auch alle Daten in ihr! Nach dem testen meldet das Programm den gefundenen Speicher und schlägt Ihnen verschieden<}Çe Konfigurationen vor. Erläuterungen zur "Hashing Page": Diese Version des Assembler verwaltet die Symboltabelle mit e=}Çinem Hashing- algorhytmus und erreicht dadurch eine sehr gute Geschwindigkeit beim Assemb- lieren. Die "normale" Symbo>}Çltabelle liegt unter dem OS-ROM. Sie bietet ca. 772 freie Einträge, und ihr Inhalt wird beim Aufruf der Menüleiste zerstö?}Çrt! Wenn Sie also eine "Hashing Page" wählen, hat die Symboltabelle Platz für 2048 (Zweitausendundachtundvierzig) Symbole un@}Çd diese Symbole bleiben natürlich (bis zum nächsten Assembliervorgang) erhalten. 772 Symbole reichen für zwei bis drei Pages A}ÇQuelltext aus). Wenn Sie über genügend Speicher verfügen oder mehr als 3 Pages für den Quelltext konfigurieren, sollten Sie B}Çauf jeden Fall eine Page für die Symboltabelle nehmen! Die Frage des Programmes, wieviele Pages für den Assembler reserviC}Çert werden sollten, bezieht sich nicht nur auf den Quelltextspeicher, sondern auf den kompletten Speicherbedarf des AssD}Çemblers! Wenn Sie also 8 Pages benutzen wol- len, so belegt das Programm selber eine davon. Wenn Sie nocht eine Page fürE}Ç die Symboltabelle nehmen, haben Sie sechs Pages für den Quelltext. Dies ist auch ab einer 192kB RAMDisk die StandartkonfF}Çiguration. Sie können auch 7 Pages für den Quelltext reservieren, allerdings nur mit der kleinen Symboltabelle. Dies ist G}Çaber nicht empfehlenswert, es sei denn Sie benutzen sehr wenig Symbole in ihrem Quelltext! Ich habe in einen 48 kByte-H}GSourcecode schon über 700 Symbole benutzt, und das ist noch recht wenig - wie ich meine. Wenn Sie nur 4 Pages (oder wenigeI}IÇr) für den Assembler benutzen dann antworten Sie bitte auf die Frage, ob eine Page für die Symboltabelle benutzt werden J}Çsoll, mit N (für Nein). Wenn Sie mehr Pages (bis zu acht) benutzen, mit J (Ja)! Anschließend fragt das Programm, unter welcK}Çher Laufwerksnummer die RAMDisk an- gesprochen werden kann. Hier ist für MyDOS-Benutzer der Wert 0 (für Autokon- fig) vorgL}Çegeben. Folgender Absatz gilt nur für nicht-MyDOS-Benutzer: Wenn keine RAMDisk mehr vorhanden sein M}Çsollte (weil der komplette Erweiterungsspeicher für das Programm benutzt wird), geben Sie eine "1" ein, sonst geben SieN}Ç bitte die Laufwerksnummer der RAMDisk ein. Erklärung: Das Programm kann unter MyDOS selbst feststellen, auf welcheO}Ç Laufwerksnummer die RAMDisk eingestellt ist. Daher auch der Wert 0 für die Autokonfiguration. Da diese Funktion bei anP}Çderen DOS-Versionen versagt, muß hier die RAMDisk- Nummer UNBEDINGT eingegeben werden wenn ein anderes DOS benutzt wird!Q}Ç Wird hier also ein Wert ungleich Null eingegeben, wird die interne Autokonfiguration umgangen und die eingegebene LaufwerksR}Çnummer verwendet! Die "1" für "keine RAM- Disk" entspricht ja einem Zugriff auf Laufwerk #1. Option für alle Besitzer dS}Çer EPROM-Disk von R. David: Als nächstes werden Sie nach der EPROMDisk-Nummer gefragt. Wenn Sie keine EPROMDiT}Çsk haben oder den Assembler nicht von der EPROMDisk booten wollen drücken Sie bitte nur , ansonsten geben SU}Çie die Laufwerksnummer ein, welche die EPROMDisk nach dem vollständigen Booten erhalten soll! Erklärung: Nach dem BoV}Çoten von der EPROMDisk verdeckt diese ja das Diskettenlaufwerk #1. Mit dieser Funktion wird die EPROMDisk nach dem kompletteW}Çn Bootvorgang auf die angegebene Laufwerksnummer gesetzt. Dadurch ersparen Sie sich das manuelle Um- schalten mit dem AffenX}Çgriff. Wird der Assembler mit der Quit-Funktion verlas- sen, so wird die EPROMDisk auf jeden Fall auf die Nummer zurückgeseY}Çtzt, welche vor dem Hochfahren des Assemblers eingestellt war! Als nächstes legen Sie bitte die Systemdiskette in LauZ}Gfwerk #1 ein um das Konfigurationsfile auf die Diskette zu schreiben. Sollte eine alte Konfigura- tion schon bestehen, wir[}[Çd sie "geupdatet", d.H. nur die Speicherkonfiguration wird überschrieben (die alten Informationen wie Farben und die\}Ç anderen Einstellungen bleiben erhalten), erkennbar an der Meldung "Updating!". Anmerkung: Sollte das Konfig]}Çurationsfile noch nicht existieren, erhalten Sie nach dem La- den des Assemblers die Meldung "Setup I/O failure!". Dies lie^}Çgt daran, das in dem Konfigurationsfile noch keine Systemeinstellungen gespeichert sind. Gehen Sie in das Setup-Menü und w_}Çählen Sie "Save Setup" (nachdem Sie Ihre Lieblings- einstellung eingegeben haben), um ihre Einstellungen dauerhaft zu sichern`}Ç. Anschließend gibt Ihnen das Programm die neue MyDOS-Konfiguration vor. Diese sollten Sie sich UNBEDINGT FEHLEa}ÇRFREI NOTIEREN (Die Page-Sequenz-Tabelle)! Eine kleine Fehleingabe kann später stundenlange Arbeit zunichte machen! Erkb}Çlärung: Das MyDOS muß an die geänderte RAMDisk angepaßt werden. Das MyDOS läßt sich ja an (fast?) jede beliebigc}Çe RAMDisk anpassen. Die Ansteuerung der RAMDisk erfolgt dabei über eine "Page-Sequence-Table". Diese Tabelle ist vom Bd}Çenutzer fast uneingeschränkt änderbar, und diese Änderung muß mit größter Vorsicht geschehen, da sonst Daten in der RAMDe}Çisk verloren gehen können, evtl. sogar der Quelltext zerstört wird! Beachten Sie bitte, das die Page-Sequence def}Çs MyDOS nur 64 Byte umfaßt. Sollten Sie zu den Leuten gehören, die eine SEHR große RAMDisk haben, dürfen Sie nur max. 6g}Ç4 Werte eingeben. Die "0" schließt das Ende der Tabelle ab! Nachdem das MyDOS vollständig konfiguriert ist muß es mit dh}Çer Funktion "H - Write DOS files" auf die Systemdiskette geschrieben werden. Jetzt steht einem Test nichts mehr im Weg. i}Ç Booten Sie das System neu hoch. Schalten Sie dazu den Computer aus und nach ein paar Sekunden wieder ein, damit ALLE Daten j}Çin der RAMDisk gelöscht werden. Anmerkung zum RAMDisk-Speicher: Ich habe einmal fälschlicherweise eine Konfiguration angek}Çgeben, in welcher ich eine notdürftige Spar-RAMDisk mit 2 Pages (32 k-Bytes) vorschlug. Dies ist aber ein Irrtum meinerl}Gseits gewesen, da in einer 32kB RAMDisk kein Inhaltsver- zeichnis angelegt werden kann - Dieses liegt nämlich in den Sektorm}mÇen 360-368. Eine 32kB RAMDisk hat aber nur 256 Sektoren zu je 128 Byte. Erst eine 48 kB RAMDisk bietet Platz für das Diren}Ã%ctory (384 Sektoren zu je 128 Bytes).* *J WPAGEFIND.BAS w w}=€o}Ã=€ Das Programm PAGEFIND dient zum Herausfinden der Größe der RAMDisk, dem Testen der RAMDisk und zum Erzeugen einer p}ÇPagesequenz-Tabelle für das Konfigurations- programm. Nach dem starten werden Sie mit einem Auswahlmenü konfrontiert. Wählq}Çen Sie als allererstes Punkt 1 - finde Pagesequenz: Das Programm gibt einen Hinweistext aus, anschließend beginnt es mit dr}Çem Test der RAMDisk. Dieser Vorgang dauert dank Maschinensprache nur wenige Sekunden. Dabei wird auch gleich noch das Ts}Çimingverhalten überprüft. Bei diesem Test (wie auch allen anderen) darf kein Fehler auftreten! Sollten dennoch Probleme mit}Çt dem Timing auftreten, können Sie mir schreiben. Um aber helfen zu können, benötige ich eine Fehlerbeschreibung, eine u}Ç genaue Angabe des RAMDisk-Types sowie einen ausreichend frankierten und adressierten Rückumschlag. Eine Ga- rantie auf v}Ç100%-ige Fehlerbehebung kann ich nicht geben, aber Tips zum beheben von Timingproblemen (z.B. Klaus-Peters RAMDisk, hatte dw}Ça selber Probleme, die ich aber mit Einbau von zwei zusätzlichen Widerständen beheben konnte. Ich habe hier z.B. in dix}Çe CAS-Leitung zu den neuen und den alten RAMs jeweils ei- nen 470-Ohm Widerstand zwischengeschaltet und seitdem keine Probly}Çeme mehr ge- habt. Dies könnte auch bei anderen RAMDisktypen funktionieren). Nachdem Ihnen daß Programm die Größe der Rz}ÇAMDisk "verraten" hat, starten Sie bitte den "Short RAM-Test": Das Programm schreibt in alle RAMDisk-Seiten (Pages) ein bes{}Çtimmtes Muster und liest es wieder aus. Sollte ein Fehler auftreten, teilt Ihnen das Programm das mit. Wenn Sie viel Zeit|}Ç haben, können Sie auch den "Deep RAM-Test" starten, welcher etwas länger dauert. Bei diesem Test wird ein bestimmtes Bitmus}}Çter im Speicher verschoben und verglichen usw. Sollte ein Fehler auftreten, bricht das Programm ab. Mit <5> speich~}Gern Sie die Pagesequenz-Tabelle auf D1: und starten das Konfi- gurationsprogramm erneut. Wählen Sie dann "0 - manual/file inp}Çut". Das Programm liest die Pagesequenz aus dem File. s Konfi- gurationsprogramm erneut. Wählen Sie dann "0 - manual/file inp6à  chreiben, um den Akkumulator mit dem Wert $FF zu laden (-1 = $BF€, der ATMAS macht sich aber nichts aus dem 16-Bit-Wert). B µ}µÇeim 130XE+ Makro-Assembler spart diese Technik nichts! Man sollte sich angewöhnen $FF zu schreiben wenn man $FF meint. ¶}Ç Ausserdem ergibt ein "LDA #-1" bei meinem Assembler eine Fehlermeldung, da hier versucht wird ein 8-Bit Register m ·}Çit einem 16-Bit Wert zu laden. Diese Fehlermeldung ist kein "harter" Fehler, sondern als Warnung zu deuten. Diese Warn ¸}Çungen können aber im Setup auch verhindert werden, so daß keine Meldung auftritt und das Assemblieren nicht abgebrochen wird ¹}Ã. €Bedingt mit dem neuen Tokenformat wurde eine neue Old-Routine eingebaut, um einen Quelltext nach einem harten Absturz º}Çzu retten. Mit SHIFT/CAPS wird diese Routine aufgerufen, sie wirkt nur ab der Zeile, in der der Cursor steht. Diese Ol »}Çd-Routine sollte nur im Notfall aufgerufen werden, wenn z. B. in der Zeile lauter Control- oder Grafikzeichen erscheinen (n ¼}Çach einem Absturz). Diese Routine kann aber auch die aktuelle und darauffolgende Zei- len kaputtmachen. Nach ihrem Aufruf muß ½}Ç übrigens die "normale" Old-Funktion aus dem Menü aufgerufen werden, damit einige interne Zeiger korregiert wer- den. Sonst k ¾}Çönnen Sie z. B. nicht mehr hochscrollen usw.! Anmerkung: Es wird nur die aktuelle Zeile zerstört wenn in ihr irgendwo ein ¿}ÇByte vor- kommt indem alle Bits gesetzt sind. Dies ist z.B. bei Zahlen wie "255", "$FFxx", "$(xx)FF" usw. der Fall. In À}Çdiesem Fall wird die Zeile an dieser Stelle aufgeteilt und der Rest der Zeile erscheint als neue Zeile. Beispiel: Geben S Á}Çie im Editor die Zeile "LDA #222+255" ein. Diese Old- Funktion wird die Zeile zerstören, da der Wert 255 als Zeilenheader Â}Çinter- pretiert wird (hat was mit dem internen Aufbau des Quelltextes zu tun). Wenn Sie diese Funktion am Ende des Quelltext Ã}Çes aufrufen kann es vorkommen, daß der Rest eines alten Quelltextes (der vorher bearbeitet wurde) ange- hängt wird. Diese Ä}Çr muß dann als Block markiert und wieder gelöscht werden. Quelltextes (der vorher bearbeitet wurde) ange- hängt wird. Diese :EúÅà # 2Der Assembler: R R`=`d €Der Assembler wird ausÆ}Ç dem Editor mit CONTROL/Y gestartet und kehrt nach der Übersetzung des Quelltextes wieder zum Editor zurück. Sollte eiÇ}Çn Fehler aufgetreten sein, so wird der Fehler im Klartext angezeigt. Nach der Assemblierung werden die Endadresse, die AÈ}ÃZnzahl der Symbole und Makros sowie der freie Speicherplatz in der Symboltabelle angezeigt.^ oMakro-Fähigkeit: }-€É}Ç-- Es können maximal 7 numerische Parameter an Makros übergeben werden. Makros können nicht verschachtelt werden. MaÊ}Çkros müssen vor ihrem ersten Aufrufen definiert werden! Soll ein Makro benutzt werden (bzw. aufgerufen), so muß das deË}Çm Editor "gesagt" werden indem dem Mako-Namen einen Punkt vorangestellt wird. Wenn das Makro also "Test" heißt, so müsseÌ}Ãsn Sie ".TEST" eingeben. Der Editor schreibt Makro- aufrufe grundsätzlich in Großschrift. Definieren von Makros: }-€Í}à -€ Eine Makrodefinition beginnt mit dem Namen des Makros, gefolgt von der di- rektive (Anweisung an den AssemblerÎ}Ç) "MAC" und der Anzahl der zu übergeben- den Parameter. Letzteres kann auch entfallen wenn keine Parameter an das Makro zuÏ}ÃD übergeben sind. Mit "END" wird die Makrodefinition beendet. Name:I €MAC (Anzahl der Parameter) ... Assembler Quelltext .Ð}Ã.. ,END Beispiel für Makros: Poke1 7MAC 2 @ €LDA #?2 ; Lade Accu mit High-Byte h €STA ?1+1 ; Schreibe aÓ}à n Adresse+1  END Loop:# 9MAC ; ohne Parameter B VLDY #0 Maclp@: DEY _ €BNE Maclp@ ; @ ist der KlammerÔ}Ãaffe für locale Symbole ! €END Achtung! Symbole dürfen nur 8 Zeichen lang sein! Bei lokalen Symbolen wird an dasÕ}Ç Symbol eine 2-Byte-Integerzahl drangehängt (wenn möglich). Der "Klammeraffe" wird nicht überschrieben, da er Später zu UnÖ}C9terscheidung in der Symboltabelle benötigt wird: Maclp@A €Ok, Gesamtlänge des Symboles ist 6 Zeichen (+2 Byte-Integer)×}×à Testlp@ DGeht auch, allerdings "nur" 256 mal möglich. Testsym@J €Falsch, da kein Platz mehr für die Nummerierung istØ}Ç! Als Local deklarierte Symbole können auch ausserhalb von Macros verwendet werden (sollte aber nicht sein). Es wird keinÙ}Ã?e Fehlermeldung ausgegeben. Einsatz von Makros im Quelltext: _-g start:m €.POKE $D301,$FF Ú}à .DPOKE 560,DLIST ) €.SCHLEIFE Die Anzahl der übergebenen Parameter muß mit der in der Definition angÛ}Çe- gebenen Anzahl übereinstimmen, ansonsten erhalten Sie beim assemblieren die Fehlermeldung "Macro error!". Mathematische Ü}à Operatoren: %-€ Ein "Ausdruck" (Expression) darf aus maximal 7 Klammerebenen bestehen. Folgende RÝ}Çechenoperationen sind möglich (in Reihenfolge ihrer Priorität): # ... EXKLUSIV-ODER Verknüpfung & ... Binäre UND VerknüpfunÞ}Çg ! ... Binäre ODER Verknüpfung * ... Multiplikation / ... Division + ... Addition - ... Subtraktion Mit ">" oder "H:"kanß}Çn das High-Byte eines Wertes selektiert werden, mit "<" oder "L:" das Low-Byte. Der Fehler in der alten Matheroutine à}Çkonnte behoben werden, die Selektion klappt jetzt auch bei verschachtelten Aus- drücken. Beispiel: Adress: DFB >(tab1+oá}Ã(ffset),H:(tab2+offset)... Konstanten: 3-€ ` ... ATASCII-Code des nachfolgenden Zeichens (Beispiel: CMP #`A) 10 ..â}Ç. dezimale Konstante $F ... hexadezimale Konstante %1 ... binäre Konstante ^x ... Bit-Konstante. ^0 entspricht 1 , ^7 entã}Ãspricht 128 und ^15 ent- Fspricht $8000. Negative Konstanten: Z-€ Konstanten und Symbolen kann auchä}Ã@ ein Minuszeichen vorangestellt werden. Assembler-direktiven: U-€ - ORG Al(,Ap) Festlegen der Anfangsaå}Çdresse eines Programmes. Al = logische Adresse Ap = physikalische Adresse ORG $4000 assembliert das Programm nach Adressæ}Çe $4000. Dort ist es auch lauffähig. ORG $4000,$6000 assembliert das Programm nach $6000. Lauffähig ist es aber ab Adresseç}Ç $4000 ! - EQU oder "=" Zuweisung einer Konstanten oder eines Rechenergebnisses an ein Symbol. Achtung: Die ATMAS-Direkè}CYtive EPZ (welche EQU entspricht) wurde aus Platz- gründen nicht mit übernommen! Rtclock:] €EQU $14 "rtclock=$14" wird zu "é}éÃrtclock: TEQU $14" - DFB, DFW Definieren von Konstanten im Objektcode. Bittab:Y €DFB 1,2,4,8,16,32,64,128 ; Daten in ê}ÇBytebreite (8-Bit) AdressTb: DFW $b800,$bc00,$9430... ; Daten in Wortbreite (16-Bit) - ASC Text = Stringë}Ç-Trennzeichen (" / \ % $) Achtung: Das STZ kann nicht mehr im Text vorkommen! " = Text im ASCII-Code einfügen / = Inverserì}Ç ASCII-Code \ = ASCII-Code, aber (nur) beim letzten Zeichen Bit 7 gesetzt (Ende-kennung) % = Interner Bildschirmcode $ = Inteí}Çrner inverser Bildschirmcode Beispiel: ASC "ATASCII-Code" oder ASC %Bildschirmcode% - OPT Option beim assemblierenî}Ç des Quelltextes setzten. ist dabei ein Ausdruck, von welchem nur die unteren 8 Bit Verwendung finden. Hier habe iï}Çch ein neues Verfahren eingebaut. Bit 7 bestimmt, ob die anderen Bits in dem Assemblerinternen Option-Flag gesetzt oder gelöð}Çscht werden. Am Anfang der Assemblierung ist dieses Flag immer 0. Beispiel: OPT %x0010011 x = 1 ... Die Bits 0,1 und 4 werdeñ}Çn gesetzt! x = 0 ... Die Bits 0,1 und 4 werden gelöscht! Die anderen Bits bleiben unbeeinflußt. Dies hat den Zweck, an verscò}Çhiedenen Stellen während der Assemblierung gezielt bestimmte Bits zu setzen. Bedeutung der Bits (wenn gesetzt): 6 - Quickó}ÃA mode. Nach der Assemblierung wird sofort gestoppt ohne die Be- G €legung der Symboltabelle anzuzeigen , alle anderen ô}ÃOptionen werden  €ebenfalls ignoriert (auch die GEN-direktive)! 5 - Non-Query. Normalerweise wird bei der Ausgabe der Sõ}Ãymboltabelle immer  _nach 16 Zeilen gestoppt und der Anwender muß eine Taste drücken um e €die nächsten 16 Zeileö}Ã.n angezeigt zu bekommen. Wird dieses Bit ge- 4 €setzt, scrollt die Ausgabe bis der Anwender eine Taste drückt, noch- ÷}Ç maliger Tastendruck läßt das Listing weiterlaufen. 4 - Send Report. Nach dem (fehlerfreien) Assembliervorgang wird derø}à An- Qwender nach einem Ausgabegerät gefragt. Dies ist normalerweise das W €unter "Printer-device" voreingestelle ù}à Gerät. Auf Diesem wird dann die & €Symboltabelle ausgegeben, siehe auch nachfolgende Bits. 3 - Head-Line. Wenn Bit 4 (ú}C-Send Report) gesetzt wurde, wird eine Titel- 3 yzeile ausgegeben. Der Text muß dazu in einer Kommentarzeile in der } €û}ûÃH 1. Seite stehen. Diese Kommentarzeile muß die erste Zeile im Quell- N €text sein und als erstes Zeichen ein ">" enthalü}Ãten! Beispiel:  €" ; > Dieses ist die Titelzeile! Hier kann der Programmname stehen." 2 - Liste Makro-Namen. Die deý}Ã)finierten Makros werden mit ihrem Status / €angezeigt. 1 - Liste Symbole. Alle definierten (globalen) Symbole werden mþ}à it ihrem  mStatus angezeigt. 0 - Mark labels. Alle Symbole, welche definiert werden solange dieses Bit s €gesetzt iÿ}Ã" (z. B. "D8:LIBRARY>SYMBOL.LIB") GENerate dient zum abspeichern der "markierten" Symbole. }Ç Diese können dann in andere Quelltexte mit der LIB-direktive übernommen werden. Achtung, My- DOS unterscheidet zwischen Gro}Çß- und Kleinschreibung! - LIB "" Mit LIBrary können Symbole aus anderen Programmen in eigene Prog}Çramme über- nommen werden. Wichtig, wenn man ein Programm in zwei oder mehrere Quell- texte aufteilt. So kann man z.B}Ç. eine Unterprogrammbibliothek assem- blieren , mit GEN alle Unterprogramm-Label abspeichern und auf diese Routinen }Çdann über ihre Namen von einem anderen Programm aus zugreifen. Zweckmäßigerweise sollten die Libraries in der RAM-Disk abg }Çelegt werden. - HLT Hält das Assemblieren in der aktuellen Seite an und macht in der nächsten Seite weiter (wenn möglich }Ç). Den Assemblierungsvorgang kann man mit der ESC-Taste unterbrechen! und macht in der nächsten Seite weiter (wenn möglichHà  AFunktionen der Menüleiste des 130XE+ Assemblers: O O}=€ }C== €Die Menüleiste wird vom Editor aus mit der Tastenkombination CONTROL/ESCape aktiviert. In der obersten Bildschirmz } Çeile erscheint dann anstelle der Titelzeile die Menüleiste. Diese Menüleiste enthält 16 Menüpunkte, aus denen mit den Cu}Çrsortasten oder den Pfeiltasten "größer als" bzw. "kleiner als" einer ausgewählt werden kann. Der gerade ausgewählte Menü}Çpunkt wird invertiert dargestellt. Um die gewählte Funktion zu aktivieren, ist die - Taste zu drücken. Mit ESCa}ÃXpe kommt man wieder in den Editor. Anmerkungen zur Fileauswahl in der Fileselect-Box: }-€}à -€ Sollte irgendeine Diskettenoperation angewählt werden so erscheint eine Datei-Auswahlbox. In dieser Bo}Çx wird ein Teil des Inhaltsverzeichnises, die Laufwerknummer sowie der freie Speicherplatz auf der Diskette ange- zeigt. }Ç In den ersten beiden Zeilen wird die Verzeichnistiefe bzw. der Direktory- pfad angezeigt. Unterverzeichnisse werden mi}Çt einem ":SUB" anstelle der Sektorenlänge gekennzeichnet. Zum Einladen muß ein File mit den Cursortasten ausgewählt w}Çerden und gedrückt werden. Der Filename erscheint jetzt in der unteren Zeile der Box. Zum laden drücken Sie n}Çochmals oder wählen Sie ein anderes File. Die Dateiauswahl kann mit der ESCape-Taste abgebrochen werden. Zum}Ç Abspeichern einer Datei wählen Sie den Namen aus dem Inhaltsverzeichnis wie beim laden (zum überschreiben einer bereits ex}Çistierenden Datei) oder geben Sie einen neuen Namen ein. Dann drücken Sie (nochmals) . Sollte eine abzuspeicher}Çnde Datei bereits auf der Diskette vorhanden sein, so werden Sie gefragt, ob Sie die Datei überschreiben oder den Vorgang ab}Ç- brechen wollen. Die Laufwerksnummer können Sie mit "SHIFT" & Zahlentaste wählen, also z.B. "SHIFT/8" für die RAM-Disk.}Ç Es erscheinen nicht immer alle Filenamen in der Dateiauswahlbox. Quelltexte im internen Format haben den Extender ".A}ÇSM", z.B. "D8:FASTLOAD.ASM", Quelltexte im ASCII-Format haben den Extender ".SRC", z.B. "D1:IOLIB.SRC" ! In den jewe}Çiligen Boxen erscheinen daher auch normalerweise nur Dateien mit den jeweils passenden Endungen. Diese Endung (z.B. ".}GSRC") wird auch in der Dateiauswahlbox angezeigt. Mit der TABulator-Taste kann aber zwischen der normalen Endung und de}Çm kompletten Inhaltsverzeichnis gewechselt werden. Mit SHIFT/TAB kommt man aus einem Unterverzeichnis in das vorherige Ver }ÃLzeichnis (Parent-Funktion). Nun aber zu den Funktionen in der Menü-Zeile: y-€ 1!}Ç. Inhaltsverzeichnis 2. Quelltext laden 3. Quelltext speichern 4. ASCII-Text laden 5. ASCII-Text speichern 6. Text druck"}Çen 7. Suche nach ... 8. Sprung zum Disk Operating System (DOS-Menü) 9. Toolbox -> Assembler-Hilfsprogramme laden und start#}Çen. 10. Preferences / Voreinstellungen 11. Block merken ("abfotografieren") 12. Block einfügen ("ankleben") 13. Block ausschn$}Çeiden (löschen und zwischenspeichern) 14. Block löschen ("wegradieren") 15. Quelltext reparieren / retten (Old-Funktion) 16. %}Ã,Quelltext löschen 1. Inhaltsverzeichnis: C-k - ohne Worte - 2. Quelltext laden: }-€&}Ç-- Es erscheint die Datei-Auswahlbox. Wählen Sie die gewünschte Datei oder brechen Sie die Funktion mit ESCape ab. Soll'}Çte die einzuladende Datei kein Quellcode im internen Format sein, erscheint eine Fehlermeldung und ein evtl. im Speicher(}Ç stehender Text bleibt erhalten. Achtung! Es erscheint keine Warnung, falls dieser Menüpunkt versehentlich angewählt wird)}Ã_ und ein im Speicher stehender Text noch nicht gesichert wurde! 3. Quelltext speichern: w-€ Es *}Çerscheint eine Datei-Auswahlbox. Wählen Sie eine Datei aus oder geben Sie einen Namen über die Tastatur ein. Drücke+}ÃHn Sie , der Speichervorgang beginnt. 4. ASCII-Text laden: ]-€ Vorgehen wie bei Punkt 2,}Ç (Quelltext laden). Der ASCII-Text wird Zeilenweise an der Qursorposition in den evtl. vorhandenen Quelltext ein-}Çgefügt. Sollte der Speicherplatz in der aktuellen Quelltextebene nicht ausreichen, wird NICHT auf die nächste Seite umgesch.}Ã#altet. 5. ASCII-Text speichern: <-€ Dateiauswahl wie bei Punkt 3 (Quelltext speichern). Hi/}Çer gibt es allerdings zwei verschiedene Möglichkeiten: Wenn mit der Blockmarkierungs- funktion ein Textblock markiert 0}Gwurde (der so markierte Text erscheint invertiert), so wird nur der so markierte Bereich abgespeichert. Sonst wird der1}1Ç Text ab der Cursorposition (Zeile, in der der Cursor steht) bis zum Ende der aktuellen Seite gespeichert. 6. Text druck2}Ãen: -€ Textmarkierung siehe Punkt 5 (ASCII-Text speichern). Der Text wird auf dem Drucker oder ein anderes D3}Çevice geschrieben (wählbar). Der wohl wichtigste Unterschied ist, das bei diesem Menüpunkt alle Leerzeichen mit ausgegeben4}Ç werden während bei Punkt 5 der Text im "kurzen" ASCII-Format ausgegeben wird. Voreingestellt als Ausgabegerät ist de5}Çr Drucker bzw. das im Pre- ferences-Menü eingestellte Gerät. Dises kann auch ein beliebiger Schnitt- stellentreiber sein (6}Çz.B. "R:600,8N1" für eine RS-232-Schnittstelle). Die Voreinstellung kann natürlich auch geändert werden. Beispiel für das 7}ÃAusgabeformat: .-€ Ausgabe auf Diskette nach Punkt 5 ("_" = Leerzeichen): _Symbol:LDA_(Pointer)8}Ç,Y ; mit Quelle laden _INY ; nächster Wert Ausgabe nach Punkt 6 auf ein beliebiges Gerät (formatierte Ausgabe): _Symbol:__9}Ã_*LDA (Pointer),Y ; mit Quelle laden ;_eINY ; nächster Wert 7. Suche nach ... w-€ Der :}Ç Suchbegriff kann eingegeben bzw. geändert werden. Mit drücken von wird ab der Cursorposition gesucht. Bei e;}Çrfolglosem Suchvorgang steht der Cursor am Textende, ansonsten wird die Zeile, in der eine Übereinstimmung stattfind<}Çet, invertiert dargestellt. Soll weiter gesucht werden ist wieder die - Taste zu drücken, ansonsten kann mit=}Ç ESCape der Suchmodus verlassen werden. Während der Suche kann man mit der - Taste den Suchvorgang abbrechen. 8.>}Ã# Sprung zum Disk-Operating-System: H-€ Das DUP.SYS-Menü wird in den Computer geladen ?}ÃJund gestartet. Achtung, Quelltext sichern nicht vergessen! 9. Toolbox U-€ Hier können (selbstprogrammierte) Hil@}Çfsprogramme zum Assembler geladen und gestartet werden. Es können auch "normale" Maschinenprogramme geladen wer- den. Lesen A}ÃXSie bitte den gesonderten Abschnitt "Toolbox"! 10. Das Setup-Menü / Voreinstellungen: }-€B}G- Hier können Sie folgende Einstellungen vornehmen: 1 - Printer-Device (Default-Gerät bei Anwählen des Drucker-Symbols). C}CÇ 2 - Farben einstellen (mit "<", ">", "+" und "-"). 3 - Den Zeichensatz wählen, der nach dem Booten eingeschaltet sein soll.D}Ç 4 - Den Modus für die Direktory-Sortierroutine wählen. 5 - Das INVERSE-Menü-Flag setzen (von den Farben abhängig). 6 - DeE}Çn IO-Sound an- oder abschalten. 7 - Die erweiterte Schreibweise für Binärzahlen einschalten. 8 - Die erweiterte SchreibweisF}Çe für Hexadezimalzahlen einschalten. 9 - Das Ausgabeformat für die High/Low-Kennzeichnung wählen. 10 - Den Layout-Modus des G}ÇEditors aktivieren. 11 - Die Warnungen des Assemblers unterdrücken. Die geänderten Einstellungen können mit "Save SetupH}Ç" abgespeichert, mit "Exit & use" nur benutzt oder mit "Load Setup" die vorhandene Einstellung geladen werden. 1 - PrintI}à er-Device: -€ Wenn Sie keinen Drucker haben, den Sie über den Gerätetreiber "P:" ansprechen könnJ}Çen, aber z.B. ein "RS-232"-Treiber haben, so können Sie diesen vom Monitor aus einladen und initialisieren. Tragen SieK}Ç dann hier die Gerätetreiberbezeichnung ein (z.B. "R:300,8N1"). Der hier einge- tragene Gerätename wird später auch aL}ÃTls default für die Reportfunktion des Assemblers benutzt. 2 - Farben einstellen: k-€ Stellen Sie hierM}Ç die Farben ein, welche der Assembler nach dem Booten haben soll. Manche Leute wollen lieber ein popelgrünes Bild, ichN}Ã4 bevorzuge schwarz-weiß. 3 - Zeichensatz wählen: L-€ Hier können Sie einschalten, ob sie lieber dO}Çen normalen Zeichensatz oder den mit den internationalen Sonderzeichen haben wollen. Der Fileselektor aktiviert automatisP}Çch den Standartzeichensatz, da er ein paar der Grafik- zeichen benötigt. Im Normalfall sollte auch der Standartzeichensatz Q}Çeinge- schaltet sein. In einer früheren Version des Assemblers wurde der Zeichen- satz mit der Symboltabelle überschriebeR}Çn, was nicht gerade besonders gut aussah. in dieser Version kann der Speicher der Symboltabelle auch in eine RAMDisk-Bank gS}Çelegt werden, hier entfällt dann daß flackern. Der Interna- tionale Zeichensatz wird aber nur zum Speichern des InhaltsverT}Gzeichnisses vom Fileselektor benötigt, dann ist aber eh der normale Zeichensatz einge- schaltet. Sollte man den AssemblerU}UÃx auf "normal hashing" konfiguriert ha- ben, so sollte der internationale Zeichensatz benutzt werden. 4 - Index Sort: }-€V}à -€ Hier kann zwischen den drei Modi "Full", "Name" und "None" umgeschaltet werden. Im Modus "Full" werden UW}Çnterverzeichnisse vor den Dateien ange- zeigt während bei "Name" nur nach den Namen sortiert wird. Bei "None" wird natürlichX}Ã3 überhaupt nicht sortiert. 5 - Inverse Iconbar? H-€ Abhängig von den gewählten Farben ist es nötigY}Ç, dieses Flag zu setzen. Dieses hat nur einen optischen Sinn (ausprobieren). Die Auswirkung die- ses Flags werden allerdiZ}ÃQngs erst beim nächsten Aufruf der Menüleiste sicht- bar. 6 - Serial IO-sound? f-€ Mit diesem Flag ka[}Çnn das Ladegeräusch aus- oder eingeschaltet werden. Einige Speeder berücksichtigen dieses Flag allerdings nicht. 7 - Ex\}à pand Binary? -€ Hiermit kann die "erweiterte" Schreibweise von Binärzahlen im Editor einge- schaltet werden]}Ç. Ist dieses Flag auf "Yes", werden Binärzahlen immer in 8- oder 16-Bit-Gruppen ausgegeben, d.H. ggf. wird mit Nullen ^}Ã#aufgefüllt! Beispiel: %1101 oder %'0@1101. 8 - Expand Hex? P-€ Ist diese Eintellung aktiviert, werden _}Ç Hexadezimalzahlen ("Sedezimal- zahlen") Zwei- oder Vierstellig angezeigt. Beispiel: $1/$01 oder $123/ $0123. 9 - Ex`}Ãpand High/Low? $-€ Erweiterte Schreibweise der High- und Lowbyteselektion einschalten. Die "normale" a}ÇSchreibweise ist "<" für Lowbyte oder ">" für Highbyte, z.B. "LDA #>Test" läd den Akkumulator mit dem Highbyte des Symbolb}Çes "Test". Ist diese Option eingeschaltet wird statt "<" ein "L:" ausgegeben und statt ">" ein "H:", also "LDA #H:Test". c}ÃI Der Editor akzeptiert beide Möglichkeiten beim eingeben. 10 - Layout? U-€ Wenn der Layoutmodus eingeschaltet isd}Çt, kann man den Cursor im Editor frei und ohne Einschränkungen bewegen. Im Normalmodus wird beim Verlassen einer Zeile der e}Ç Cursor an das Ende der neuen Zeile gesetzt, wenn die Cursor- position rechts von diesem Ende ist. Einfacher ausgedrücktf}G: Ist die neue Zeile, in die der Cursor bewegt wird, kleiner als die Cursorspalte, so wird der Cursor an das Ende dieser Zeig}gÃ#le zurückgesetzt. 11 - Warnings? 1-€ Dies ist eine zusätzliche Option für den Assembler. Warnungen sinq}ÃÄbeÿ€€ÃYbREADME DOCbREADME2 DOCb]#KONFIG DOCbE€EDITOR DOCbFÅASSEMBL DOCb| MENU] €DOCbnMONSHELLDOCbgþBATCHENHDOCC bIePLINK DOCb®MEMMAP DOC€qÇd "Fehler, die man eigentlich auch vernachlässigen kann". Einige Program- mierer benutzen z.B. gerne "LDA #-1" anstelle r}Çvon "LDA #$FF", um den Akku- mulator mit $FF zu laden. Dies ist besonders bei Editoren angebracht, die den Quelltext Zeics}ÃRhenweise speichern, um Platz zu sparen. Der Ausdruck "-1" entspricht ja "$VF€". Dies ergibt aber einen "Operant}Çd too big"-Fehler, da mein Assembler halt hier einen Fehler erkennt (ein 8-Bit Register wird mit einem 16-Bit Wert geladu}Çen). Andere Assembler mögen sich ja einen Dreck darum kümmern. Ausserdem wird ein "ZP-boundary" Fehler gemeldet, wennv}Ç man z.B. bei einer "Indirect-Y" Adressier- ung einen größeren Wert als $FF angibt. Bei dieser Adressierungsartw}Ç sollte der Programmiere eigentlich wissen, das es hier keine 16-Bit Adresse gibt! Deswegen wird auch hier kein Fehler ax}Gusgegeben, wenn "Warnings?" abgeschal- tet wird. Bei den Punkten 3 - 11 wird die Einstellung mit geändert. In dery}yÇ letzten Zeile wird mit zwischen "Load Prefs", "Save Prefs" und "Quit Prefs" umgeschaltet. Ein Punkt kann z}Ç mit oder ESCape übersprungen werden (Bei Load, Save oder Quit Prefs führt zur Ausführung der Funk{}Çtion (z.B. Save Prefs) und dann zu einer Rückkehr in den Editor, während man mit ESCape wieder bei Punkt 1 landet). Anmer|}Çkung zu den folgenden Block-Funktionen: Da kein Platz mehr im Rechnerspeicher war (ein Block kann bis zu 16 K-Bytes groß se}}Çin), wird er als File abgespeichert. Dieses File heißt "CLIP.BLK". Sollte eine RAMDisk vorhanden sein, wird das File in der~}ÃY RAMDisk abgelegt, ansonsten im Hauptverzeichnis auf Laufwerk #1!!! 11. - Block merken k-€ Der im Editor }Ã] markierte Block wird abgespeichert. Der Text wird nicht geändert. 12. - Block einfügen q-€ Ein vorhe€}Çr abgespeicherter Block wird an der Cursorposition (Zeile) einge- fügt. Sollte der Speicher nicht ausreichen, gibt es einen }Ã#Rüffel! 13. - Block ausschneiden ;-€ Der markierte Block wird abgespeichert und aus dem Quelltext ent‚}Ãfernt! 14. - Block löschen 0-€ Der markierte Block wird (nur) aus dem Quelltext gelöscht. 15. - Quelltexƒ}Ã%t reparieren / retten (Old-Funktion) W-€ Diese Funktion kann nach dem versehe„}Çntlichem Löschen eines Quelltextes bzw. nach dem Booten aufgerufen werden, um einen noch im Speicher stehenden Quelltext…}Ç zurückzuholen. Diese Funktion wirkt nur auf die aktuelle (ange- wählte) Page und muß ggf. auf mehrere Seiten angewendet w†}Ã!erden! 16. - Quelltext löschen 8-€ Der Quelltext in der aktuellen Seite wird gelöscht! Wird diese ‡}ÃjFunktion mit gedrückter SHIFT-Taste aufgerufen, so werden ALLE Seiten gelöscht und die Page 1 angewählt!n €Allgemeine Anmeˆ}à rkungen: =€ - Bei der PARENT-Funktion des Fileselektors kann es bei einem größeren Pfad passieren, da‰}Çß in der Menüleiste Grafik-Schrott angezeigt wird. Dieses Verhalten hat aber keinen Einfluss auf die Funktionen; beim ernŠ}Geuten Aufruf der Menüleiste erscheint die Grafik wieder normal. Dieser Fehler läßt sich auch nur beseitigen, wenn für den G‹}‹Çrafikpuffer ein eigener Speicherbereich reserviert würde, was aber nicht vorgesehen ist. Zur Zeit teilt sich der GrafikpufŒ}Çfer den Speicher mit anderen Puffern, z.B. Filenamen usw. - Der Sprung ins DUP-Menü muß mit "Y" bestätigt werden, da ein}Çe Rückkehr vom DUP-Menü zum Assembler nicht vorgesehen ist (vom MyDOS). Nun, Backadr. zum Assembler ist $2800 - für alle Ž}ÇMEM.SAV-fetischisten. Ein Sprung ins DUP-Menü ist eigentlich auch nicht nötig (ausser zum kopieren, und da wird MEM.SAV so}Ç- wieso ungültig), da fast alle dort vorhandenen Funktionen auch mit dem XIO Kommando im Monitor durchgeführt werden können. }à  6Die Monitor Shell V2.1 R Rh=hm €Bei der Entwic‘}Çklung des Monitors für diese Version des Assemblers mußte ich einen neuen Weg gehen. Da der zur Verfügung stehende Spe’}Eú’Çicherplatz für den Monitor nur 2 k-Bytes "groß" ist, war es mir nicht möglich, einen komfortablen und speicherresidenten Mon“}Çitor zu programmieren. Daher besteht der eigentliche Monitor nur aus der "Shell" (Hülle, Umhüllung oder Schale...). Diese S”}Çhell hat nur 4 residente Kommandos: DIR, BYE, GO und CONT. Alle anderen Befehle sind als sogenannte "Overlay-Kommandomod•}Çule" ausgelegt. Das sind kleine Programme, welche beim Aufruf in den Monitor geladen werden. Wird zum Beispiel das Kom- m–}Çando "LIST" eingegeben versucht die Shell, die Datei "LIST.OVL" im Verzeichnis OVERLAY in der RAMDisk zu öffnen und einzule—}Çsen. Sollte es diese Datei nicht geben, gibt die Shell einen "unknown command!"-Fehler aus. Durch diese Technik lassen sic˜}Çh theoretisch bis zu 64 Kommandos erstellen (in ein Verzeichnis pas- sen ja maximal 64 Dateien). Weiterhin werden die ben™}Çötigten Parameter nicht mehr mit dem Kommando übergeben (z.B. "SAVE $4000 $5FFF D1:TEST.COM"), sondern im Dialogbetrieb abš}Çgefragt. Der Benutzer gibt also "SAVE" ein, und der Com- puter fragt im Dialog nacheinander die Adressbereiche und den Na›}Ã?men ab. Dies ist eine recht komfortable Lösung, wie ich meine.C NAnmerkung: X-€ Ein Kommando wird zuerst auf der œ}ÇRAMDisk gesucht (wenn vorhanden). Sollte es nicht in der RAMDisk stehen, wird es "eventuell" auf der EPROMDisk gesucht }Ç(wenn konfiguriert), und als letztes von Laufwerk #1! Dabei wird zuerst ver- sucht, das Verzeichnis "OVERLAY" in dem ž}Ç jeweiligen Laufwerk anzusprechen. Sollte es nicht vorhanden sein wird versucht, das Kommando aus dem Hauptver- zeichnis dŸ}Çes jeweiligen Laufwerks zu laden! Zum "eventuell" bei der EPROMDisk: Sollte der Assembler auf der EPROMDisk installier }Çt sein (wird im Konfi- gurationsprogramm eingestellt) wäre es natürlich Platzverschwendung, wenn man die Overlay-Kommando¡}Çmodule zusätzlich in die RAMDisk kopiert. Dann werden also Kommandos zusätzlich auf der EPROMDisk gesucht, sonst (wenn von¢}à Disk gebootet wurde) nicht! LDie residenten Kommandos der Monitor-Shell: w=€ - D£}CIR €(Directory, Inhaltsverzeichnis) Nach Eingabe diese Kommandos erscheint die Meldung "Index of". Drückt man¤}¤Ç nur , so wird das Inhaltsverzeichnis von "D:*.*" ausgegeben. Dieses ist beim MyDOS das "default"-Verzei¥}Çchnis, d.H. es kann mit einem CIO-funktionscode ein Verzeichnis als aktuelles Verzeichnis gewählt werden, und au¦}Çf dieses wird dann mit "D:" (ohne Laufwerksnummer!) zugegriffen, siehe auch "PATH". Beispiel: "PATH D3:DEMOS>XE_ONLY" setzt das aktuelle Verzeichnis. Alle Filenameneingaben mit "D:" ohne Nummer beziehen sich auf dieses Verzeichn¨}Çis. "LOAD D:PAGEFLIP.COM" würde dann das Programm "PAGE- FLIP.COM" von der Diskette in Laufwerk 3 aus dem Verzeichnis "©}ÇXE_ONLY" laden; dieses liegt im Verzeichnis "DEMOS" und dieses wiederum im Hauptverzeichnis! Nun, man könnte ja auch "Lª}ÇOAD D3:DEMOS>XE_ONLY>PAGEFLIP.COM" einge- ben... Auf die Meldung "Index of" kann ein kompletter Pfadname eing«}Çegeben werden. Hierbei ist allerdings die Einschränkung zu beachten, das die Eingaben nur 25 Zeichen lang sein können! ¬}Ã- BYE €(Verlassen der Monitor-Shell und Rückkehr in den Editor) Mit diesem Kommando kommt man wieder in den Edito­}Ãr zurück. - GO €(Starten von Maschinenprogrammen) Nach diesem Kommando muß auf die Meldung "Address:" die A®}Çdresse eingegeben werden, an der ein Maschinenprogramm gestartet werden soll. Die CPU-Register Accu, X und Y werdem ¯}Ç mit den Systemvariablen AX, XR und YR initialisiert (siehe auch Kommando "REGS"), d.H. es können auch Werte in den Regis°}Ã1tern an ein Programm übergeben werden. - CONT; €(Continue, fortfahren nach Programmunterbrechung) Mit CONT kann±}Ç ein Progamm, welches unterbrochen (nicht beendet!) wurde, fort- gesetzt werden. Nach der Eingabe fragt der Computer nach ²}Çder Adresse, an der das Programm fortgesetzt werden soll. Im Allgemeinen ist hier nur zu drücken um an der ³}ÇAbbruchstelle fortzufahren. Die Adressabfrage ist nur für Profis interessant, Assemblerneulinge sollten die Finger von di´}Çeser Mög- lichkeit lassen, da bei unbedachter Anwendung das System abstürzen kann! Beim Unterbrechen wird der Dispµ}Glayliststatus gesaved und die "normale" Dis- playlist eingeschaltet. Bei CONT wird die alte Displaylist wieder einge- ¶}¶Ç schaltet,bevor die Programmausführung fortgesetzt wird. Wurde ein Programm beendet (d.H. mit RTS abgeschlossen), so k·}Çann natürlich kein CONT ausgeführt werden. In diesem Fall erscheint "Can´t continue"! Ein Programm kann auf zwei ar¸}Çten Unterbrochen werden: Mit dem Maschinen- sprachebefehl "BRK" oder, wenn die Interrupts nicht gesperrt wurden, mit ¹}Ç der Tastenkombination "SHIFT/BREAK". Es erfolgt die Meldung "Stopped at ". Wurde das Programm mit einem º}ÇBRK unterbrochen, so wird mit CONT ohne Adressangabe zu der nächsten Anweisung gesprungen (also hinter den BRK- Befehl!)»}Ç, sonst (bei Angabe einer Adresse, oder wenn das Programm mit SHIFT/ BREAK unterbrochen wurde) wird zur Abbruchadresse ges¼}Ãprungen. 4Mitgelieferte Overlay-Kommandodateien: Z=€ Hier eine Auflistung der mitgeli½}ÃHeferten Overlay-Kommandodateien und eine Kurz- beschreibung: Kommando:O ]Beschreibung: f=fm mz=€ P¾}ÃATH OSetzten des "Default" Directorys "D:" (für MyDOS). PATH D8: _ €und DIR D:*.* ergibt den Inhal¿}Ã"t von D8: bzw. dem evtl. ange- 2 Kgebenen Verzeichnis. XIOX €Ausführen eines beliebigen CIO-KommanÀ}Ãdos. Es wird nach dem Kom- + kmando, den beiden Steuerbytes AUX1 und AUX2 sowie nach dem Ge- { €räÁ}Ã>te/Filenamen gefragt. Nach einer Sicherheitsabfrage wird das N hKommando ausgeführt. REGSt €Anzeige dÂ}Ã7er Register und Statusflags. Alle Register und Flags G dkönnen geändert werden! LISTp €Gibt ein ListÃ}Ã3ing ab der angegebenen Adresse aus (Disassembler). C €Wird als Startadresse nur gedrückt, nimmt der ComÄ}Ãputer  Vden aktuellen PC (Program-Counter) als Startadresse. Wird als f €Endadresse nur ohne weitere Eingabe gedrückt, so gibt 9 yder Computer immer 13 Zeilen aus. Auf Tastendruck werden wei- } €Æ}à Dtere 13 Zeilen ausgegeben, mit ESCape wird abgebrochen. T €Wenn eine Endadresse eingegeben wurde, soÇ}C wird ohne unterbrech- ' gung vom Anfang bis zum Ende gelistet, mit einem Tastendruck w €kann È}ÈÃ:das Listen unterbrochen werden, nochmaliger Tastendruck J €(außer ESCape!) läßt das Listing weiterlaufen. É}à Der Computer  ]fragt dann noch nach einem Ausgabegerät, wohin das Listing m €gesendet werden Ê}Ã0soll. Es kann ein Gerätename oder ein komplet- @ €ter Dateiname eingegeben werden. Wird nur gedrückt, Ë}Ãso  Aerfolgt natürlich keine externe Ausgabe. SAVEM €Dieser Befehl speichert einen Speicherbereich alÌ}Ãs Binärfile ab. `Der Computer fragt nach Start- und Endadresse. Eine Datei kann p €auch "adressÍ}Ã3versetzt" gespeichert werden. Hierzu ist bei der C €Frage "Into:" die Zieladresse einzugeben, an die das BinäÎ}Ãrfile  Vspäter geladen werden soll. Folgt dem Filenamen ein "/A", so f €wird an das (existierenÏ}Ãde) File angehängt! WRITE% eSpeichert einen Speicherbereich als normale Datei ab, also ohne u €BinärfilÐ}Ã8eheader! Einzugeben ist die Start- und Endadresse sowie H €der Filename. Folgt dem Filenamen ein "/A", so wird Ñ}à an die be-  Lstehende Datei angehängt (Append-Funktion). LOADX €Mit diesem Kommando kann ein BinärfiÒ}Ãle geladen werden. Es er- + kfolgt ein "Filetrace", d.H. die Adressbereiche des Files wer- { €deÓ}Ã>n angezeigt. Wird nur der Filename eingegeben, so frangt das N €Programm nach ob die jeweiligen Init- oderÔ}à Autorunvektoren ! aausgeführt werden sollen. Folgt dem Namen ein "/L", wird nur q €geladen, d.Õ}Ã4H. Init/Autorun wird NICHT ausgeführt! Wenn dem D €Namen ein "/R" folgt, wird nur der Autorunvektor ausgefühÖ}Ãrt und  WInit wird ignoriert. Als vorletzte Möglichkeit gibt es "/I", g €welche alle Initialis×}Ã*ierungsaufrufe ausführt, aber den Autorun : €nicht! Ein "/A" steht hier für "Automatisch", d.H. Init und Au- Ø}à Mtorun werden automatisch ausgeführt. Wenn dem Namen keine Op- ] €tion folgt, werden Sie jedesmalÙ}C ( wenn ein solcher Init- oder 0 pAutorunvektor auftaucht) gefragt, ob er ausgeführt werden soll. } €Ú}ÚÃ0 Dies muß mit bestätigt werden! SCAN< €Durchsucht den angegebenen Speicherbereich nach einer Bytefolge Û}à Ooder einem String. Also Joker kann man beim Suchen nach einer _ €Bytefolge eine $00 eingegebÜ}Ã"en werden, beim Suchen nach einem 2 rString kann der "Klammeraffe" (SHIFT/8) als Joker verwendet } €Ý}à Ewerden. Beim Suchen nach einem String wird noch gefragt, ob U €zwischen Klein- und Großbuchstaben untÞ}Ãerschieden werden soll. ( hWird diese Funktion nicht gewünscht, muß hier mit "N" geant- x €worteß}Ã;t werden! Ist diese Funktion aktiv, findet sie auch Bild- K €schirmcode. Als Default für die Startadresse wirdà}à der aktuelle  ^PC genommen, für die Endadresse ist der Default $BC00. Ist die n €Suche abgeschá}Ã1lossen, kann in einem anderen Adressbereich A €weitergesucht werden ohne den Suchstring (bzw. die Bytefolâ}Ãge)  5nochmal eingeben zu müssen. EDITA €Dies ist ein recht komfortabler Speichereditor. Es kann in ã}ÃHex  Teditiert werden und in ASCII (oder im internen Bildschirmcode). d €Der Editor zeigt linksä}Ã' die Adressen, in der Mitte jeweils 8 7 wHexzahlen pro Zeile und rechts die Daten im internen } €å}à JBildschirmcode oder im ASCII-Code an. Oben wird der aktuelle Z €Modus angezeigt ("Int" für "Interneæ}Ãr Bildschirmcode" oder "ASC" - mfür "ASCII-Code". Die Anzeige kann jederzeit mit der Tasten- } €ç}Ã@kombination CONTROL/INVERSE zwischen Int und ASC umgeschaltet P €werden. Mit der TABulatortaste wechselt man è}Ãzwischen dem "Hex- # cfeld" und dem "Int-" bzw. "ASC-" Feld. Wenn man sich im "Zei- s €cheneditieé}Ã6rmodus" befindet, werden keine inversen Zeichen F €angezeigt (damit man den Cursor besser sieht). Der Curê}à sor wird  Ymit den Cursortasten (mit CONTROL) gesteuert. Mit SHIFT-CON- i €TROL-CursorUp/Down ë}C,kann um jeweils $80 Bytes gescrollt werden. < €Wird im Hexfeld gedrückt, wandert der Cursor ein Byte ì}ìà Oweiter (entspricht "Cursor-Right"), während im ASC/Int Mode der _ €Cursor in die nächste Zeile beí}Ã"wegt wird. Achtung: Eingegeben- 2 rer Text wird gemäß des eingestellten Modes im internen oder im } €î}à -ASCII Code in den Speicher geschrieben! = €Wird keine Taste gedrückt bzw. keine Eingabe getätigt, so ï}à Perfolgt automatisch ca. 5 mal in der Sekunde ein Refresh des ` €Bildschirms, d.H. der Bildsð}Ã#chirminhalt (Hexwerte und Zeichen- 3 scodes) werden neu aufgebaut. Somit werden auch interrupt- } €ñ}à Fbedingte Änderungen in den Speicherstellen sofort sichtbar. V €Ansonsten erfolgt ein Neuaufbau des Sò}Ãcreens bei jedem Tasten- ) 5druck. READA €Dieses Kommando dient zum Einlesen von Daten (nicht-Binärfiló}Ães)  Tan eine beliebige Adresse. Es kann die Adresse sowie die maxi- d €male Länge angegeben werdô}à en. FILL UFüllt einen Speicherbereich mit dem angegebenen Byte. Wird als e €"Fillbyte" nur õ}Ã( gedrückt, so wird mit 0 gefüllt. Wird 8 xeine Wert größer als 255 eingegeben (also ein WORT (16 Bit)), } €ö}à .so wird in Wortgröße gefüllt! MOVE: €Dient zum verschieben (kopieren) eines Speicherbereiches in ei- ÷}à Mnen Anderen. Quell- und Zieladresse dürfen sich natürlich dabei ] qüberschneiden. INFO} €ø}Ã@Gibt eine Aufstellung der momentan verfügbaren Kommandos und P €wartet auf die Eingabe einer Kommandobezeù}Ãichnung. Wird nur # c gedrückt so wird eine Kurzerläuterung zu den resident- s €en Kommandú}Ã6os ausgegeben, ansonsten wird ein Hilfstext zum ange- F _gebenen Modul angezeigt. o €Anmerkung: INFû}Ã2O gibt nur die Kommandos aus, die in dem gleichen B xVerzeichnis stehen wie das INFO-Kommando selbst! CALC} €ü}à GZeigt das Ergebnis des eingegebenen Wertes (bzw. der eingege- W €benen Formel) hexadezimal, binär und ý}CGdezimal an. das Ergebnis des eingegebenen Wertes (bzw. der eingege- W €benen Formel) hexadezimal, binär und  þà  9Batchfile Enhancement V1.7 T To=os s} €ÿ}à 2Copyright (c) 1991 by Torsten Karwoth H Hm-p } €}Ã3 Geschrieben für MyDOS, getestet mit Version 4.508 €Was ist das "Batchfile enhancement"? Nun, ganz einfach: Eine art }Ç"Interpre- ter" für sogenannte Batch-files. PC`s und andere Rechnern können beim System- start eine Textdatei "ausführen", }Çin welcher verschiedene Kommandos stehen. So werden z.B. deutsche Tastaturtreiber geladen usw.! Nichts anderes ist das}Ç Batchfile enhancement - grob gesagt. Das MyDOS ist ja schön und gut, aber man vermißt doch schon eine Funktion mit der di}Çe RAMDisk initialisiert werden kann oder ein Menü dargestellt werden kann. Das BFE (so nenne ich es mal in Zukunft) wird a}Çls AUTORUN.SYS auf eine MyDOS- Diskette kopiert. Es belegt den Speicher von $8000 bis $9FFF. Es sucht als erstes eine Te}Çxtdatei "D:AUTOEXEC.BAT" und führt die dort enthalteten Kommandos aus. So kann mit COPY eine Datei in die RAMDISK oder mit XC}ÇOPY sogar ein ganzes Verzeichnis kopiert werden, ein Menü angezeigt werden, Dateien geschützt werden usw. Befehle können auc}Çh bedingt ausgeführt werden. Ein Direktmodus ist eben- falls vorhanden und alle ROMDisk-benutzer können auch aufatmen! Nun  }Ç zu den einzelnen Befehlen mit den Parametern. Filenamen werden, außer bei RENAME, mit einem Leerzeichen getrennt. Z.B. "C }ÇOPY D1:README.TXT D8:READ.ME", aber "RENAME D1:alter Name,neuer Name"! Die RAMDisk kann im Batchfile mit RD: angesprochen  }Çwerden. Ausserdem gibt es eine Variable (%), bei "D%:*.TXT" wird dann die dem %-Zeichen zugewiesene Laufwerksnummer ein }Çgesetzt. IF - ENDIF Strukturen sollten der Lesbarkeit halber immer eingerückt werden. Sollte kein AUTOEXEC.BAT auf der  }ÇDisk sein, oder wurde es ausgeführt, kommt man in den Direktmodus. Beim starten eines Batchfiles befindet sich das Syste}Çm immer im "ECHO ON"-Modus, d.H. die gerade ausgeführten Befehle werden angezeigt. Siehe auch ECHO ... Auch Basicprogramme }Gkönnen gestartet werden. Alle in Klammern angegebenen Texte usw. sind optional, d.H. nicht zwingend erforderlich. Sie}Ç haben nur eine bestimmte Funktion. Es wird nur das erste Zeichen erkannt! "U", "Update" oder "Unparteiisch" sind gleich!}Ç - EXEC Mit EXEC kann eine andere Batch-datei ausgeführt werden. Ein GOSUB ist nicht möglich. Bei EXEC wird a}Çutomatisch ein ECHO ON ausgeführt. - ECHO ON Aktiviert die List-Funktion. Alle Befehle des Batchfiles werden bei ihrer}Ç Ausführung angezeigt. - ECHO OFF Schaltet die Anzeige der Befehle ab! (Nur in einem Batchfile sinnvoll). - ECHO (Text)}Ç Der angegebene Text wird ausgegeben (mit allen Leerzeichen). - MAKEDIR Erzeugt ein neues Verzeichnis. Beisp}Çiel: MAKEDIR RD:SUBDIR MAKEDIR RD:SUBDIR>NOCHEINS - ASK FOR Wartet, bis eine der angegebenen }ÇTasten gedrückt wird (oder ESCape). ECHO Ja oder Nein? ASK FOR JN - IF EXIST Überprüft das}Ç Vorhandensein einer Datei und führt die nachfolgenden Befehle bedingt aus (bis zum ENDIF) wenn die Bedingung erfüllt war.}Ç - IF NOT EXIST Beispiel: IF NOT EXIST D1:DUP.SYS ECHO Kann nicht ins DOS, keins da! STOP }Ç ELSE EXIT ENDIF - IF ANSWER = Führt die nachfolgenden Befehle bedingt aus, }Çwenn in einer vorangegangenen ASK FOR-Anweisung diese Taste gedückt wurde. Beispiel: ASK FOR JN IF ANSWER = J DELETE D1:*.TXT ELSE ECHO Nichts wurde gelöscht! ENDIF - IF RAMDISK (-) IF }Ç RAMDISK prüft auf das vorhandensein einer RAMDisk! Ohne die Option "-" wird auch ein Hardwartest (130XE-kompatibel) du}Çrchgeführt, d.H. sollte zwar im DOS eine RAMDisk konfiguriert sein, muß sie hardwaremäßig auch da sein! IF RAMDISK - }Çprüft nur, ob die RD konfiguriert ist. Dies ist für nicht-130XE RAMDisks. Ist eine RD da werden die nachfolgenden Befehle }Çbedingt ausgeführt. - IF NOT RAMDISK (-) Beispiel: IF NOT RAMDISK ECHO Keine RAMDisk vorhanden! S }ÇTOP ENDIF - ENDIF Beendet eine bedingte Ausführung. IF-ENDIF Konstruktionen können übrigens 8-fach!}G verschachtelt werden! - ELSE Kehrt die Bedingung auf dem Stapel um (wenn möglich). Zwei mal ELSE ergibt wieder den ""}"Ã7Normalzustand". Beispiel: ASK FOR AB IF ANSWER = A ; gECHO Sie haben die Taste A gedrückt! ELSE k €ECHO Sie drückten #}Ãauf die Taste B! ELSE2 Y; Nur als Beispiel (eigentlich unsinn) ] pECHO Wieso nicht B?z €; J$}Çetzt wieder Bedingung für "A"! ENDIF Wenn die Taste A gedrückt wird, erscheint der Text "Sie haben die Taste A ged%}Çrückt!" und "Wieso nicht B?"! - LOAD (Chan) (Q/L/I/R) Mit Load wird das angegebene Binärfile geladen. Die Opti&}Ã[onen sind: Q(uit) - Wird ein File geladen und mit RTS beendet, wird nicht zum BFE h €zurückgesprungen sond'}Ã.ern in das DUP.SYS (oder ins BASIC). Das File ; €wird geladen und alle Init/Autorun-Vektoren ausgeführt! L(oad) (}Ç- Das File wird nur geladen, weder INIT noch RUN werden ausgeführt! R(un) - Das File wird geladen und der Autorun ausge)}Çführt, Init NICHT! I(nit) - Alle Initialisierungsaufrufe werden ausgeführt, Autorun NICHT! Mit (Chan) kann optionel*}Çl ein Kanal gewählt werden, über den die LOAD- Funktion ausgeführt werden soll. Werte von 0 bis 7 sind möglich, Ka+}Çnal 0 wird allerdings vom Editor benötigt! (Chan> muß vor der Option stehen (wenn benutzt)! Dies ist z.B. nötig we,}Çnn Programme geladen werden sollen, welche das Laden "mittendrin" selbst übernehmen. Dies ist z.B. bei Turbo-BASIC, dem C-}Çompiler und dem Runtime-Modul der Fall. Diese setzten vorraus, daß das Programm von Kanal 1 geladen wird. Im Batchfil.}Çe-Enhancer werden Kanal 5,6 und 7 benutzt, bei XCOPY auch Kanal 4! Beispiel: LOAD D1:TURBOBAS.COM 1 Quit - COPY /}Ç () Dient zum Kopieren eines einzelnen Files. Dateiangaben im MyDOS-üblichen Format. Siehe auch TYPE. Fehlt wird automatisch der Editor genommen! - SETDIR Damit kann das "Defaultverzeichnis" von MyDOS angesprochen w1}Çerden. Beispiel: SETDIR RD:TEXTE>PRIVAT TYPE D:ELKE.TXT P: entspricht in etwa TYPE RD:TEXTE>PRIVA2}ÇT>ELKE.TXT P: ! Nach SETDIR kann mit D: auf das Verzeichnis zugegriffen werden. - FORMAT DISK Dient3}G zum formatieren einer Diskette. Achtung: Es findet keine Sicherheits- abfrage statt! Beispiel: FORMAT DISK D2: 4}4Ç - TYPE () Wurde nur aus optischen Gründen implementiert und sollte zum Anzeigen von Texten usw. benutzt w5}Çerden. Siehe auch COPY. - GOTO