Nun zu den beiden Zusatzmakros BRIEF.EDRC und CASSETTEN.EDRC !! Da ich DME, außer zum normalen Editieren auch zum Briefe schrieben und Kassetteninlead bedrucken benutze, habe ich mir die speziellen Einstellungen, die dafür notwendig sind, bzw die speziellen Makros, die ich mir dafür geschrieben habe, die in dem Normalen Editor aber nichts zu suchen haben, in extra Files geschrieben, die dann beim Starten von DME per Flag '-f' übergeben werden. Da ich grundsätzlich im CLI mit der CSHELL (übrigens auch von Matt Dillon) arbeite, habe ich mir für die Shell zwei kleine ALIASes geschrieben, mit denen ich DME dann auf die eine, oder andere Art starten kann. Für CSHELL Benutzer liste ich sie hier auf: alias ddme "set a $_cwd;cd texte:;dme -fs:brief.edrc;cd $a;cm" alias cdme "set a $_cwd;cd texte:Kassetten;dme -fs:cassetten.edrc;cd $a;cm" 'cm' ist ein weiterer ALIAS, mit dem mein Programm CLEARMEM (auch auf dieser TIME) mit der Option '-c' aufrufe. Dieses Tool zwingt den AMIGA seine Speicherresourcen aufzuräumen, was gerade bei Programmen, die große Datenmengen verwalten, Speicher an das System zurückgibt, der sonst verloren wäre. Dies bringt zwar (bei mir) nur ca. 5 - 30 kByte, aber selbst diese Mengen sollte man nicht verschenken. Der ALIAS für 'cm' sieht folgendermaßen aus (für CSHELL selbstverständlich !!) alias cm "clearmem >null: -c" Die Makros im Speziellen: BRIEF.EDRC Keine Tabs abspeichern; der Text läßt sich so besser in andere Textverarbeitungssysteme exportieren savetabs off Der Text soll vernünftig formatiert werden. Blocksatz muß allerding nachträglich mittels SHIFT F7 absatzweise durchgeführt werden. wordwrap on Deutschen Tastaturtreiber aktivieren (SHIFT F5 ist in .EDRC definiert !) s-f5 Da es bei Briefen nicht sehr gut aussieht, wenn der Text links am Rand klebt, wird hier eine Variable gesetzt, die allerdings noch nachträglich verändert werden kann (Voreinstellung ist 10, was ich als angenehm empfinde). Da DME noch keinen linken Rand beachtet, muß der rechte Rand auf den Maximalwert minus linkem Rand gesetzt werden. Nachdem der Text vollständig formatiert wurde, wird mit SHIFT ALT CONTROL F7 oder dem neuen Menüpunkt "Linken Rand einrücken" der gesamte Text um die linke Randbreite nach rechts geschoben (das dauert leider ein wenig); dabei wird der WORDWRAP Modus automatisch abgeschaltet. set LeftMargin 10 Der, um den linken Rand verringerte, rechte Rand. Bei dieser Einstellung wird der Text zwar unsymmetrisch nach rechts verschoben, wenn das Blatt aber gelocht abgeheftet wird, ist der optische Eindruck wieder OK (Das war für mich auch der Grund diese Option einzubauen !!) margin 65 Dieses Makro verschiebt den gesamten Text um $LeftMargin nach rechts. Es werden zwei Definitionen aus der .EDRC Datei zwingend benötigt, nämlich das Makro TAB und die Variable $tabs. map sac-f7 (unblock top block bottom downadd up block wordwrap off tabstop \$LeftMargin -tab tabstop \$tabs unblock) Taste um den linen Rand zu setzen. SHIFT CONTROL m wurde gewählt, weil mit CONTROL m schon der rechte Rand gesetzt werden kann. map sc-m (escimm (set LeftMargin )) Das Menü FORMAT wird auch noch um die beiden neuen Kommandos erweitert menuadd Format (Linken Rand einrücken sacf7) sac-f7 menuadd Format (Linken Rand setzen sc-m) sc-m CASSETTEN.EDRC Dieses Makropaket habe ich mir geschrieben, weil ich satt hatte meine Kassettteninleads mit meiner Sauklaue zu bekrakeln. Es gibt zwar auf PD Kassettenbeschriftungsprogramme, die sogar teilweise als Datenbank aufgebaut sind, mir waren sie aber einfach zu unflexibel bzw zu kompliziert zu bedienen. Es lag also nahe sich eine Eingabemaske zu erstellen, in die man dann einfach den Text eingibt und diese Maske danach druckt. Leider hat DME keine MASKENfunktion (wäre mal eine Anregung für Matt) und so mußte ich mir überlegen, wie man die Eingabe in eine fertige Textmaske so vereinfacht, daß man nahezu problemlos den Kassettentext eingeben kann. Da ich die Makros entwickelt habe, sage ich natürlich, daß die Eingabe jetzt sehr einfach ist; wie andere das sehen, weiß ich nicht, da ich niemanden kenne, der seine Kassetten mit dem Ducker beschriftet. Zuerst einmal die Makros: Der Text darf auf keinen Fall Tabulatoren enthalten, da der Ausdruck sonst gewaltig daneben aussieht savetabs off Damit die Maske nicht durch das Eintippen beschädigt (verschoben paßt besser, denn überschrieben werden, kann die Maske immer noch) wird, ist der Überschreibmodus aktiviert. insertmode off Textformatierung muß selbstverständlich ebenfalls verboten werden. wordwrap off Damit man, wenn man sich vertippt hat, Zeichen löschen kann, ohne die Maske zu zerstören, wird die BACKSPACE-Taste [ <- ] so umprogrammiert, daß sie das Zeichen links von Cursor mit einem Space überschreibt, solange es sich dabei nicht um einen Maskenrand [ | ] handelt. WICHTIG: Zum Editieren darf auf gar keinen Fall den DEL Taste benutzt werden, da sie nicht umprogrammiert ist und so die Maske zerstört. Sollte das dennoch einmal geschehen sein, dann muß man sie halt per Hand wiederherstellen ( F8 wechselt zwischen Einfüge- und Überschreibmodus hin und her ) # Mein Backspace map bs (left if !c=124 (( ) left)) Die nachfolgenden drei Makros sind Unterprogramme der neuen RETURN Tastendefinition. Sie löschen jeweils eine Eingabezeile ( a-nk0 / a-nk1 ) und helfen DME bei Return genau zu wissen, welche Art von Zeile gelöscht werden muß und wo sich diese befindet. Es ist hierfür überaus wichtig, daß die MASKE nicht verändert, oder gar verschoben wird. Es ist sonst möglich, daß die Formatierung nicht mehr funktioniert. #Clear bis ESC map a-nk0 (ping 0 while c<>27 (( )) pong 0) #Clear 22 Zeichen map a-nk1 (ping 0 repeat 22 (( )) pong 0) #Teste Uebergang zu den Titeln map a-nk2 (while x>48 left if x<30 (ping 0 up first while x<24 right ifelse c=124 (pong 0) (down))) Hier nun das letzte und wichtigste Makro, die neue RETURN-Taste. Diese Definition sorgt dafür, daß der Cursor immer in der richtigen Spalte um eine Zeile nach unten gesetzt und die Zeile dann auch gelöscht wird. Die Definition für a-nk2 ist etwas komplizierter als notwendig, weil ich dasselbe Makro auch für eine andere Bildschirmmaske benutze, die ich aber keinem zumuten kann (diese ist schon schlimm genug !!) map return (down a-nk2 left while c<>124 left right ifelse c=27 (repeat 5 right a-nk0) (ifelse c=45 (first repeat 13 right down if c<>45 a-nk0) a-nk1)) Wie sieht nun diese hochgelobte Maske aus ? | | | |A: DOLBY C 11.11.90|B: DOLBY C 11.11.90| -> |[4"z INXS |[4"zBon Jovi | | |[4"zKICK / The Swing |[4"zBlaze of Glory | | |New sensation |Billy get your guns | | |Devil inside |Miracle | | |Need you tonight |Blaze of glory | | |Meditate |Blood money | | |The loved one |Santa Fe | | |Never tear us appart |Justice in the barrel | | |Mystify |Never say die | | |Kick |You really got me now | | |Calling all nations |Bang a drum | | |Tiny daggers |Dyin' ain't much of ~ | | |Original sin | a livin' | | |I send a message |Guano city | | |----------------------------------------------| | | TDK |[4"zINXS : KICK / The Swing | -> |SA 90 |[4"zBon Jovi : Blaze of Glory | |----------------------------------------------| |A: DOLBY C 11.11.90|B: DOLBY C 11.11.90| |[4"z INXS |[4"zBon Jovi | |[4"zKICK / The Swing |[4"zBlaze of Glory | |----------------------------------------------| Gedruckt wird dieser Text dann in der Schriftart ELITE, die bereits in der Maske als Steuerkette implementiert ist (Also einfach mit CONTROL p aus DME heraus drucken). Auf dem Papier sieht das dann recht anständig aus. Im Markenfeld ist ausreichend Platz um auch den langen Namen MAXELL unterzubringen. Was hier auf dem Bildschirm so schön aussieht, erscheint in DME etwas anders. Da DME ja leider alle Steuerzeichen mit anzeigt, sieht die Maske dann etwas verschroben aus. Es bei der Eingabe der Texte übrigens darauf zu achten, daß keine Steuerkommandos überschrieben werden (das sieht sonst auf dem Drucker verdammt danaben aus). Der zweite Headerpart (Der Teil mit Seitenangabe, DOLBY usw.), bestehend aus drei Zeilen, muß aus dem oberen herauskopiert werden. Damit der kopierte Part dann auch vernünftig aussieht, müssen noch die beiden Steuerketten für UNDERLINE ON (ESC [4m) und UNDERLINE OFF (ESC [24m) am Ende der Gruppennamen- und Titelzeile entfernt werden. Das mag ein wenig kompliziert klingen, ist aber eintlich recht einfach. Als Beispiel empfiehlt es sich die Demomaske "PrettyWoman.CAS" in DME einzuladen und diese dann mit der Maske "KassettenCover.Klein" zu vergleichen. Als weitere Hilfe habe ich die Bereiche markiert, in denen die neue RETURN-Taste arbeitet. Was außerhalb dieser Bereiche geschieht, habe ich noch nicht ausprobiert. Ich hoffe, daß diese Anleitung ausreichend ist. Wenn nicht, dann sollte etwas herumprobieren helfen (Papier ist ja nicht teuer !!). So viel Spaß mit DME wünscht Dirk Traenapp von APS -electronic- PS: Verbesserungen sind natürlich herzlich willkommen !! Siehe auf den AUFRUF im TIME Menü !!!