★ APPLICATIONS ★ DIVERS ★ Pagemaker Directory ★ |
Pagemaker Directory/Directory Pagemaker (CPC Amstrad International) | Applications Divers |
Dem Directory an den Kragen Ladeanweisungen per CAT auf dem Bildschirm!? Zauberei?! Nein, durch eine kleine Software-"Trickserei" wurde dieses Kunststück erreicht. Wir zeigen Ihnen, wie das möglich ist. Grundlagen Um das System, mit dem gearbeitet wird, zu verstehen, muß man sich erst einmal die Funktionsweise des CAT-Befehls klarmachen: Zuerst werden die vier Sektoren in den Speicher gelesen, dann gemäß dem aktuellen USER aussortiert. Sie können also theoretisch zu jedem USER eine Ladeanweisung erstellen. Nun werden die übriggebliebenen Dateinamen alphabetisch geordnet und der aktuelle Bildschirmmodus ermittelt, demzufolge wird errechnet, wie viele Dateinamen auf dem Bildschirm nebeneinander dargestellt werden können. Damit Sie nun Ihre Dateinamen in gewohnter, sortierter Reihenfolge begutachten können, müssen sie entsprechend ausgegeben werden. Gehen wir zum Beispiel von MODE 2, also von vier Spalten, für das Directory aus. Nehmen wir auch einmal an, daß 16 Dateinamen auszugeben sind, dann stehen in der ersten Spalte Nummer 1 bis 4, in der zweiten 5 bis 8 usw. In der ersten Zeile aber werden nebeneinander die Nummern 1, 5, 9 und 13 ausgegeben! Das Betriebssystem leistet also einiges bei der Ausführung des CAT-Befehls.
Tabelle I: CALL-Befehle. die im Pacemaker benutzt werden Will man sich über dieses System hinwegsetzen, so muß man zu einem Trick, nämlich zu den Steuerzeichen, greifen: Vor jedes Textstück, die ja alphabetisch sortiert werden, einen LOCATE-Befehl setzen, damit die tatsächliche Darstellungsfolge gleich ist. Durch den LOCATE-Befehl gehen natürlich bei jedem Directory-Eintrag von elf (acht und drei) drei Zeichen (Steuerzeichen für LOCATE, x-,y-Koordinate) verloren. Doch es kommt noch schlimmer: CAT gibt nach dem achten Zeichen des Namens einen Punkt aus, der die drei Zeichen der Extension abtrennt. Um diesen Störenfried zu entfernen, wird der Cursor nach dem Punkt ein Zeichen zurückgesetzt (CHR$(8)), damit ersterer einfach überschrieben wird. Somit ist auch das neunte Zeichen vergeben und übrig bleiben sieben. Richtig! CAT teilt einem ja auch die Länge einer Datei in kByte mit. Diese Mitteilungen zu überschreiben, wäre zu kompliziert. Man muß also deren Darstellung verhindern: CHR$(21) schaltet den Bildschirm ab, CHR$(6) wieder an. Das letzte Zeichen eines jeweiligen Eintrags schaltet den Bildschirm ab, das erste des nächsten schaltet ihn wieder an. Es bleiben also noch fünf Zeichen, die genutzt werden können. Nun kommt noch der Luxus, der auch nicht vergebens ist! Will man nämlich verschiedene PEN-Farben benutzten, so reicht eine einmalige PEN-Anweisung nicht aus, denn Silben vorhergehender Wörter, die aufgrund der alphabetischen Sortierung genausogut erst viel später ausgegeben werden können, würden sonst ebenfalls mit der neuen PEN-Farbe dargestellt werden. Bei dem Silbensalat, der beim Pagen entsteht, wäre das Ergebnis sicher zu bunt! Man kann demzufolge nicht umhin, das PEN-Kom-mando in jeden Directory-Eintrag unterzubringen. Fünf minus zwei macht drei! Von den ursprünglich elf Zeichen verbleiben drei, die für den tatsächlichen Text zur Verfügung stehen. Aus diesem Grunde werden Sie auf einer Diskette nicht 16 oder mehr komplette Bildschirmseiten unterbringen, ebensowenig wie auch nur eine Seite auf einer Diskette, die nur noch zirka zehn von den 64 Einträgen frei hat. Das Programm Das Programm generiert zuerst ein kurzes Maschinenspracheprogramm. das für das Lesen und Schreiben von Sektoren zuständig ist (siehe Tabelle 1). Nach dem Bildaufbau wird die zu bearbeitende Diskette in Laufwerk A: angefordert, ihre Formatierung festgestellt und die vier Sektoren, die das Directory enthalten, werden in den Speicher ab Adresse &9000 geladen. Nun sucht das Programm freie Directory-Einträge und fragt nach der Usernummer, die den erstellten Einträgen vorangestellt werden soll (0 bis 255). Bei den nun folgenden Parameterabfragen sind optionale mit einer vorherigen J/N-Frage versehen. Wollen Sie den betreffenden Parameter nicht verändern, so drücken Sie "N". Die erwarteten Parameter sind jeweils angegeben. Bei Farbfunktionen. die zwei INK-Farben erlauben, ist die zweite (in eckigen Klammern) optional, das heißt, sie muß nicht angeben werden. Zwischen den einzelnen Parametern ist ein Leerzeichen und kein Komma zu setzen. Bitte beachten Sie beim LOCATE-Kommando, daß die Spaltenanzahl vom gewählten MODE abhängig ist. Im unteren Fenster werden die momentan freien Plätze angezeigt. Während der Texteingabe läuft nur die Anzeige für freie Zeichen zur Kontrolle mit. CD, CPCAI
|