Уголок Plus D, часть 5

Scene+ #19

+D ECKE 05

Stand: 07.09.97

Die Plus D - Ecke Teil 5

Liebe +D Freunde, heute soll es nun endlich mal an's "Eingemachte" gehen. Die meisten von Euch wissen sicher, daß es beim +D Befehle und auch noch einige nützliche Tricks gibt, die nicht im Handbuch stehen. Vereinzelt stand hier und dort schon mal was geschrieben. Da wäre z.B. "Hidden Secrets of the Plus D" von Miles Kinloch (ich kann nichts dafür, aber bei der Recherche für die +D Ecke, läuft mir immer dieser Mann aus Schottland über den Weg!).

Eine weitere wichtige Quelle ist natürlich FORMAT, das Clubmagazin von INDUG und auch AlchNews. Ich habe mir nun vorgenommen, daß eine oder andere aufzugreifen und im Rahmen der +D Ecke an Euch weiterzugeben. Die meisten Beiträge aus den genannten Quellen sind sehr "technisch", manchmal ohne Kommentar und oft auch noch in Englisch. Ich behaupte, für viele ist das Grund genug, sich nicht mit diesen Dingen zu beschäftigen. Das ist dann doch schade, weil viele Tips wirklich nützlich sind. Und das nicht nur für Programmierer, die so ihre Programme verbessern können! Daher werde ich das ganze, wo es angebracht ist, mit Beispielen und zusätzlichen Infos versehen. Genug geredet, let's go!

"AUTOLOAD" und "+SYS 2a"

Wie ihr sicher wißt, sind das zwei spezielle Files. Das eine ist der Systemfile, der nach Einschalten des Computers mit RUN geladen wird. Das zweite ist ein Basicprogramm, welches nach dem Laden des Systemfiles geladen wird. Das könnte z.B. ein LOADER für ein Textverarbeitungsprogramm sein, welches gleich geladen werden soll. Wenn AUTOLOAD nicht nur geladen, sondern auch gleich gestartet werden soll, muß man LINE mit dranhängen.

Also zum Beispiel: SAVE d1 "AUTOLOAD" LINE 1.

Nicht im Handbuch steht, daß der File nicht zwingend "AUTOLOAD" heißen muß. Wichtig ist nur "AUTO". Der Rest ist egal! Das gleiche gilt für den System-File. Nur "+SYS" ist wichtig, der Rest ist auch hier egal! Vielleicht habt Ihr Euch beim Studieren des Handbuchs über den Beispiel-CAT auf Seite 9 gewundert. Da steht als File Nummer 1 nämlich "+SYSTEM". Im MGT Handbuch (ISSUE No 2, JUNE 1988) steht der Beispiel CAT übrigens auf Seite 6.

Beispiele: "AUTOTASW", "autoMATIK" oder auch nur "AUTO" sowie "+sysTEM", "+SYS 2Afix" oder auch nur "+sys". Dem System-File unterschiedliche Namen zu geben, kann sehr nützlich sein, wenn man unterschiedliche (z.B. gepatchte) System-Files verwendet. Wie in meinen Beispielen zu sehen ist, können auch Kleinbuchstaben verwendet werden.

LINE

Programme, die nicht mit LINE gespeichert sind, kann man trotzdem nach dem Laden sofort starten lassen: LOAD p1: RUN (ENTER) anstatt LOAD p1 (ENTER) und dann RUN (ENTER). Ich sehe da keinen Vorteil, aber es geht jedenfalls.

Noch ein paar Beispiele:

LOAD d1 "NAME":RUN
LOAD p1: GOTO 2
LOAD d* "NA*":GOTO 10

MASCHINENCODE-FILES MIT AUTOSTART!

Das +D bietet die Möglichkeit, CODE-Files nach dem Laden automatisch starten zu lassen. So kann man einen Basic-Loader sparen. Um zu erklären, wie es funktioniert, zitiere ich hier einmal einen Teil der deutschen Übersetzung des Berichts "Hidden Secrets of the Plus D":

"Durch das Hinzufügen eines dritten Parameters kann ein CODE File nach dem Laden automatisch gestartet werden, z.B.:
SAVE dn "filename"CODE 300,12345,320
oder
LOAD dn "filename"CODE 30,12345,320

Zuerst wird ein 12345 Bytes langes Codefile ab Adresse 300 abgespeichert, wobei es nach dem Laden ab Adresse 320 automatisch starten soll. Danach wird das File geladen und auf diesem Weg gestartet. Dieses Feature kann sehr nützlich bei Utilitys sein, die sich im Bildschirmspeicher befinden, da durch die dritte Adresse ein weiteres Aufrufen unnötig wird. Solch ein Autostart läßt sich natürlich auch wieder verhindern. Eine gute Adresse für diesen Zweck ist 82, eine ROM Adresse die eine RET Anweisung beinhaltet. Das folgende Beispiel unterdrückt den Autostart eines im Bildschirmspeicher befindlichen Programms:
LOAD dn "filename"CODE 16384,6912,82
Zitat Ende."

Der englische Originaltext stammt übrigens von Miles Kinloch. Ich empfehle einfach mal ausprobieren!

MOVE

Auch hier möchte ich zunächst aus "Hidden Secrets of the Plus D" zitieren:
"Dieser Befehl kann vier mögliche Formen annehmen, wobei nur zwei davon im Handbuch erwähnt werden. Der komplette Satz der Möglichkeiten ist:

  1. MOVE dn "filename" TO dn "filename"
  2. MOVE dn "filename" TO #a
  3. MOVE #a TO dn "filename"
  4. MOVE #a TO #b

In allen Fällen wird das erste File (Strom) Byte für Byte gelesen und ins zweite File (Strom) geschrieben. Bei den Möglichkeiten 2 und 4 wird nach Abschluß des Befehls ein CLOSE # Befehl benötigt. Es muß noch erwähnt werden, daß der MOVE Befehl nur für das Kopieren von OPENTYPE Files bestimmt ist. Bei allen anderen Files muß SAVE E. TO benutzt werden. Die Ursache liegt in der Struktur der PLUS D Files. Zitat Ende."

Ergänzen möchte ich das ganze nun durch ein paar praktische Beispiele. Vorab aber noch ein paar Infos: Wer eine DISK unter G+DOS mit Hilfe von Wild-CARDS (siehe unten) kopiert, sollte daran denken, daß OPENTYPE Files nicht mitkopiert werden. Die Fehlermeldung "File NOT FOUND" erscheint nämlich nur, wenn gar kein anderes File (BASIC, CODE etc.) der eingetippten Bedingung entspricht. Andernfalls merkt man das vielleicht gar nicht. Man wundert sich nur, warum das Kopieren so schnell ging. Übrigens gibt es diverse Kopierprogramme, die OPENTYPE Files kopieren. Wer BETA DOS benutzt, kennt diese Problematik sowieso nicht.

Ich behaupte einmal, im normalen "Hausgebrauch" wird niemand von Euch OPENTYPE Files verwenden. Oder? Allerdings gibt es wenigstens zwei Anwendungsprogramme, die OPENTYPE nutzen. Das ist TASWORD 128 und TASWORD PLUS TWO jeweils in der PLUS D Version. "Was geht mich das an? Ich habe diese Programme nicht!" werdet Ihr vielleicht sagen. Und dann bekommt Ihr die neueste PD Softwareliste von irgendwem als OPENTYPE File und könnt nichts damit anfangen. Oder doch? Jawohl! Doch! Und nun wird es endlich praktisch: Mit MOVE d* "filename" TO #2 kann ich diesen File auf den Bildschirm umlenken und lesen! Das ist schon toll, aber bei einer 32 Zeichen Darstellung sieht das nicht sehr schön aus. Wer einen Drucker hat, ist fein raus: Mit MOVE d* "filename" TO #3 geht es zum Drucker. Hinweis: Angeblich kann man mit POKE @ 9,0 den linken Rand beim Drucken auf "0" setzen. Bei mir geht es nicht. Woran kann das liegen?

ROM-версия +D должна быть 1a. Это важно, если вы хотите использовать BETA DOS. См. руководство по BETADOS, страница 1 (INTRODUCTION). Версия ROM кратковременно появляется на экране при загрузке G+DOS по команде RUN.

Тем, у кого трудности с английской инструкцией к +D, можно помочь! Heinz Schober из Дрездена любезно перевел ее на немецкий язык. Руководство существует в виде текстового файла и должно быть доступно в любом хорошем PD-сервисе! Heinz также был так добр, что перевел текстовый файл к BETA DOS BUGFIXES/ENHANCEMENTS (см. «Уголок +D», часть 3). Этот перевод имеется у меня в рукописном виде. Когда у меня будет время и желание, я наберу этот текст.

Вот еще совет от Peter Rennefeld: при подключении к +2A/B или +3 интерфейс Plus D немного висит в воздухе. Из-за этого при нажатии кнопки Snapshot система может зависнуть. Peter сказал мне, что поэтому он вывел кнопку наружу. Лично я не любитель паять и мастерить, поэтому просто приклеил снизу к +D пару дополнительных резиновых ножек, чтобы компенсировать разницу по высоте. Впрочем, тонкий блок бумаги, подложенный под Plus D, тоже подойдет.

Бывает: набрал длиннющую программу, хочешь наконец сохранить ее на диск, и тут обнаруживаешь, что забыл загрузить систему +D командой RUN. Что делать? С помощью RUN 19 можно загрузиться задним числом! Но внимание! На дискете не должно быть файла с автозагрузкой (Autoload)! Иначе он загрузится, и программа в ОЗУ Спектрума пропадет! Строки 19 в набранной программе, естественно, тоже быть не должно. Логично!

Иногда хочется загрузить через RUN другой файл +sys. Если G+DOS уже находится в памяти +D, это, как известно, не сработает. С помощью POKE @7652,0 можно сделать сброс памяти +D (RAM Reset). Такие POKE по опыту сложно удержать в голове. К тому же набирать их вручную утомительно. Тем, кто делает это часто, стоит сохранить на диске самозапускающийся BASIC-файл с коротким именем, содержащий этот POKE:

10 POKE @7652,0
SAVE d1 "R" LINE 10

«R» у меня означает RESET, вы, конечно же, можете взять любое другое короткое имя. Набрав LOAD d1 "R", вы очень быстро получите сброс +D RAM. Но это имеет смысл только тогда, когда вам действительно нужно загрузить другой +sys. Чтобы просто запустить AUTOLOAD-файл, можно ввести и LOAD d1 "auto*" (ENTER). Если взять за привычку сохранять специальные файлы вроде AUTO и «R» на своих дискетах всегда в одном и том же порядке (с одинаковым номером в каталоге), появится преимущество быстро загружать их командой LOAD px. Здесь «x» означает номер файла в каталоге.

Nele Abels-Ludwig пишет в письме читателя (Spectrum Profi Club 4.97), что не всегда целесообразно оснащать +2A/B старым 128K ROM. При этом теряется доступ к параллельному порту и удобным командам BASIC для управления интерфейсом RS-232. Я хотел бы заметить, что сделал это утверждение в рамках «Уголка Plus D». Для Plus D такая переделка дает скорее преимущества. Тот, кому не нужен или кто не использует последовательный порт и порт принтера в +2A/B, в любом случае выиграет от этой модификации. А у кого есть +D, тот, скорее всего, предпочтет использовать именно его интерфейс принтера. Ведь вполне логично, что в специализированных или переписанных под +D программах для печати задействуется именно этот порт. 128K режим (+3DOS), правда, можно неплохо использовать и с подключенным +D при помощи известных POKE, но у него все же остаются недостатки (например, синтаксис RAM-диска). Как я уже писал, есть и возможность установить два переключаемых ROM. Пожалуйста, не воспринимайте все это как оправдание с моей стороны, я очень рад любым откликам на то, о чем пишу. А разве последовательный порт после переделки вообще нельзя использовать? Я этим вопросом никогда не занимался. Как я всегда повторяю? Все зависит исключительно от того, что вы собираетесь делать со Спектрумом!

И напоследок кое-что к 4-й части «Уголка Plus D». Я проверил: +D, как и следовало ожидать, отлично работает даже на 16K Спектруме (тестировалось на ISSUE 3)! Советов по +D есть еще великое множество, и изначально я планировал написать больше. Но боюсь, что тогда вообще никогда не закончу. Так что на этом пока всё. Пока!

Guido Schell, Auf dem Stocke 37, Löhne
Телефон: 05732 8769


Извини, Guido, что я немного переформатировал текст, но я пока еще не написал конвертер из WORDMASTER в Tasword II, поэтому приходится делать все вручную, что порой отнимает очень много времени, а встреча в Штутгарте уже завтра! — L.C.D.

Поделитесь вашим мнением о статье