Уголок Plus D, часть 3: Beta DOS

Scene+ #10

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

Дорогие друзья Plus D! Сегодня я хочу представить вам другую (и лучшую) операционную систему для Plus D: BETA DOS!

Некоторые из вас, возможно, помнят мой обзор в журнале Profi-Club-Heft 1/94. Я решил снова рассказать о BETA DOS в рамках «Уголка Plus D». Во-первых, потому что эта тема сюда отлично подходит, а во-вторых, со временем накопились некоторые подробности, о которых мне хотелось бы поведать. Кроме того, теперь и члены Spectrum User Club смогут «насладиться» этой статьёй. В общем, причин для чтения более чем достаточно (я надеюсь).

BETA DOS была написана в 1990 году доктором Эндрю Райтом (Dr. Andrew J.A. Wright, BETASOFT). Кто такой «Энди» Райт? Ну, многие из вас наверняка знают BETA BASIC. А пользователи SAM (читают ли они мой «Уголок Plus D»?) обязаны Энди созданием SAM ROM! MASTER DOS и MASTERBASIC также должны быть известны каждому пользователю SAM. Да что я тут расписываю очевидные вещи — имя BETASOFT и так должно быть знакомо каждому из вас, разве нет?

Но перейдём наконец к сути дела:

CATALOGUE

Команда CAT 1 (или CAT 2) стала более информативной. В дополнение к свободному месту на диске отображается количество занятых и свободных записей каталога (слотов). Вывод команды CAT 1 может выглядеть, например, так:

- * MGT PLUS D DISC 1 CATALOGUE *
1 +SYS 2a 14 CDE 8192,6656
2 TEST 20 BAS
No. of Free K-Bytes = 763
2 File(s), 78 Free Slots

Команду CAT теперь можно использовать и саму по себе — она эквивалентна команде CAT 1! или CAT 2!. Если ввести просто CAT, опрос пойдёт к последнему использовавшемуся дисководу.

CAT, CAT 1! и CAT 2! работают намного быстрее, чем в G+DOS. Каталог сортируется по алфавиту. Сортировку можно отключить с помощью команды POKE. С помощью ещё одной команды POKE можно задать количество колонок для вывода CAT (то есть «простого» каталога) — в одну, две или три колонки. Делать больше колонок, по понятным причинам, нет смысла, разве что вы загрузили другой шрифт меньшего размера или перенаправили вывод CAT на принтер.

FORMAT

Форматировать можно даже тогда, когда в памяти Spectrum находится программа. В G+DOS это всегда было рискованно, так как часть памяти затиралась служебной информацией FORMAT. BETA DOS использует для форматирования только свободную память. Кстати, не имеет значения, где установлен RAMTOP — время форматирования от этого не меняется. Однако в памяти всё же должно оставаться хоть немного места, иначе появится знакомое сообщение об ошибке «4 Out of memory».

Дискета, отформатированная в BETA DOS, работает примерно на 10% быстрее обычной, и её можно использовать и под G+DOS. Правда, каталог в этом случае должен иметь стандартный размер на 80 файлов.

И здесь мы подходим к следующей особенности BETA DOS: можно задавать количество дорожек, выделяемых под каталог! Это значит, что вы можете создать каталог, например, на 200 файлов! Правда, под данные тогда останется всего 750 Кб. Каждая дорожка каталога вмещает 20 имён файлов и занимает 5 Кб на диске. Минимум — стандартные 80 файлов (4 дорожки, 20 Кб), а максимум — 780 файлов (39 дорожек, 195 Кб). При таком огромном каталоге для данных остаётся всего 605 Кб. Это означает, что если вы хотите полностью заполнить каталог, размер отдельных файлов не должен превышать даже 1 Кб! Есть ли для этого разумное применение? Напишите мне, если знаете!

(Прим. LCD: Как насчёт шрифтов? Да ещё и сжатых?)

SAVE file TO file

Можно копировать ВСЕ файлы, включая снапшоты и т.д. После копирования BETA DOS не делает сброс памяти (NEW), как это происходит в G+DOS. Файл, который копируется в данный момент, отображается на экране. Всё вместе — существенное улучшение.

SAVE OVER

С помощью SAVE OVER можно перезаписывать файлы напрямую, без вывода запроса «Overwrite? (y/n)». Это удобно, например, при перезаписи SCREEN$, который не хочется «повредить», или при пересохранении (reSAVE) программ, состоящих из нескольких частей.

LOAD @ / SAVE @

Появилась возможность читать и записывать несколько секторов за один проход (multiple sectors). Это происходит очень быстро. Посекторные LOAD и SAVE используются также в программе резервного копирования (см. раздел «BACKUP UTILITY»).

Синтаксис:
LOAD @ привод, дорожка, сектор, адрес, количество секторов

То же самое касается и SAVE @. В принципе, всё точно так же, как в G+DOS, только в конце добавляется количество секторов.

SERIAL FILES / MOVE / RANDOM ACCESS FILES

Я никогда всерьёз этим не занимался и потому разбираюсь не очень хорошо. Руководство по BETA DOS описывает эти функции очень подробно. Но мои знания английского, увы, ограничены, так что ничего конкретного сказать не могу. К тому же тема эта весьма сложная и явно выходит за рамки данной статьи.

KEYBOARD LOCK UP

Те, кто много работает с Plus D, знают: время от времени после обращения к диску клавиатура Спектрума зависает. В G+DOS помогает только Reset или хитрости вроде Multiface и т.п. В BETA DOS проблема остаётся, но зависание можно снять нажатием кнопки Snapshot и клавиши «0» (ноль).

(Прим. LCD: Рекомендую SNAPOUT от M.K.!)

BACKUP UTILITY

Это дополнительная утилита, целиком написанная на BASIC. Как следует из названия, это программа для создания копий дискет. Дискеты копируются целиком, то есть не отдельными файлами, а посекторно. Однако у неё есть особенность по сравнению с другими программами посекторного копирования: копируются только занятые секторы! Это, естественно, экономит кучу времени.

Программу BACKUP и тему копирования дискет я уже затрагивал во второй части этой серии статей, так что не буду здесь повторяться. Добавлю лишь немного информации для пользователей +2A/B и +3:

Программа поддерживает и 128K RAM DISC, что сводит смену дискет к минимуму. Это гигантский плюс, если у вас всего один дисковод. Однако BACKUP нельзя использовать на +2A/+2B в 128K-режиме (+3 DOS). То же относится и к +3. Тот, кто использует +D в режиме 128K на компьютере +3, знает, что там возникают и совсем другие трудности. Но это отдельная тема. Даже переписывание программы под специальный синтаксис RAM DISC компьютеров Amstrad (из-за +3 DOS) ничего не даёт: +2A/+2B вместо RAM DISC пытается писать на ленту! Полнейший идиотизм! Но я сталкивался с этим и в других экспериментах независимо от BETA DOS. +2A/+2B с подключённым +D попросту отказывается здесь работать нормально. Проблема эта уже широко известна, но в чём её причина, мне до сих пор никто так и не смог объяснить.

PEEKING и системные переменные

Можно просматривать («пикать») ROM/RAM интерфейса +D, также добавилось несколько новых системных переменных. Не буду углубляться в детали — это заняло бы слишком много места.

SQUASH

С помощью этой утилиты можно сжимать снапшоты (SNAPS). В интерфейсе +D не хватает памяти, чтобы встроить SQUASH прямо в BETA DOS, поэтому она выполнена в виде отдельной EXECUTE-программы, загружаемой в RAM интерфейса +D. При этом сортированный каталог и новые функции отключаются (например, BACKUP перестаёт работать). Всего сразу иметь нельзя. SQUASH может быть очень полезен, если вы, например, любите играть и хотите время от времени сохранять текущее состояние игры. Или при программировании, скажем, на ассемблере: можно быстро сохранить текущую сборку и позже (например, после зависания или если напортачили) снова загрузить последнюю версию. Это происходит куда быстрее, чем заново собирать и загружать все части проекта по отдельности.

Степень сжатия, конечно, зависит от того, что именно находится в памяти Spectrum в момент создания снапшота. Но, как правило, выигрыш получается колоссальным. Напомню: независимо от того, как мало данных находится в памяти Спектрума, обычные снапшоты всегда сохраняют полные 48K или 128K — точнее говоря, 97 или 258 секторов. Логично, что при использовании SQUASH на диск помещается гораздо больше снапшотов, а за счёт меньшего размера файлов реальное время загрузки существенно сокращается.

Стоит отметить, что загрузить «SQUASH SNAPS» можно только в том случае, если предварительно был загружен SQUASH. Обычные снапшоты загружаются в любом случае. Кроме того, сжатие можно отключить командой POKE @127,0. Это позволяет загрузить сжатый снапшот, а затем сохранить его обратно как обычный. Команда POKE @127,1 снова включает сжатие.

RUN

С помощью RUN можно заново перезагрузить операционную систему. Это позволяет легко загрузиться с другой дискеты (например, содержащей autoload-файл). В G+DOS сначала приходится выгружать старую DOS — простого Reset (к счастью) недостаточно. Вынуть диск, выключить компьютер, включить, вставить диск обратно и наконец набрать RUN... Довольно утомительно, не правда ли? Так что здесь это настоящее улучшение.

(Прим. LCD: Команды POKE @7652,0 тоже вполне достаточно, чтобы сбросить систему. Выключать компьютер вовсе не обязательно).

BUGS

Как написал мне Энди Райт, лично ему известно только об одной ошибке в BETA DOS: якобы невозможно отформатировать дискету во втором дисководе (FORMAT d2). У меня же всё работает безупречно! Возможно, дело в типе используемого привода.

Но это далеко не всё! Пожалуй, худшая ошибка в BETA DOS заключается в том, что специфические программы для +D, использующие вызовы DOS из машинного кода, с BETA DOS не работают! К ним относятся, например, Tasword 3, Tasword 128, Tasword PLUS 2, ORGANISER от Betterbytes и THE COPIER. Есть и ряд других шероховатостей. Но я не стану перечислять их все, а лучше укажу на первоклассную PD-программу:

BETA DOS BUG FIX от Miles Kinloch!

Каждый, кто пользуется BETA DOS, просто обязан иметь этот патч (значение слова «патч» я объяснял во второй части этой серии). С ним работают абсолютно все программы (во всяком случае, из тех, что есть у меня).

Кроме того, добавляется крайне полезная команда: с помощью LOAD dn или SAVE dn (где n — номер дисковода, 1 или 2) можно элементарно переключать текущий дисковод. Если, к примеру, активен дисковод 1, а мне нужно загрузить программу с дисковода 2 командой LOAD P20, то в обычном случае мне пришлось бы сначала ввести CAT 2 или CAT 2!, и только потом LOAD P20. С помощью LOAD d2 и затем LOAD P20 это делается намного быстрее, поскольку вызов CAT всегда отнимает время.

...требуется. При вводе новой команды LOAD d1 или LOAD d2, в принципе, ничего не происходит. То, что теперь активен другой дисковод, видно по контрольному индикатору привода (один загорается, другой гаснет). Боже мой, это наверняка можно было объяснить и проще. В принципе, команда совершенно элементарная, но зато очень полезная.

«BETA DOS BUG FIX» можно найти в любом хорошем PD-сервисе. К нему прилагается текстовый файл от Miles (к сожалению, только на английском), в котором описаны ошибки BETA DOS. Он, кстати, перепечатан в клубном журнале Spectrum Profi Club (выпуск 7.96). Может быть, кто-нибудь (кто знает английский лучше меня) возьмёт на себя труд перевести этот текст на немецкий!?

Теперь мне хотелось бы ещё заметить (раз уж пришлось к слову), что ошибки есть и в G+DOS. Но и для неё существует патч от Miles с сопутствующим текстовым файлом. Его я уже кратко описывал в Profi Club Heft 6.94. Тот, кто не пользуется BETA DOS, в любом случае должен раздобыть «G+DOS FIX». Тоже PD!

В этом месте: MANY THANKS, MILES!

Советы

Под конец ещё два важных указания:

BETA DOS нельзя сохранить на дискету напрямую с помощью команды SAVE, как G+DOS — её необходимо копировать командой SAVE TO. То есть, например, так:

SAVE d1 "+sysBeta" TO d2

Для создания системного файла BETA DOS ("+sysBeta") требуется системный файл G+DOS (например, "+SYS 2a"). Этот системный файл G+DOS ни в коем случае не должен быть пропатченным. Так что всегда используйте оригинал из программы инсталляции +D!

Заказ

Кому же теперь интересна BETA DOS? Ну, в конечном счёте каждый должен решать сам. Основные преимущества BETA DOS я здесь описал. Всё остальное — это скорее для фанатов и программистов. Обычному пользователю, скажем так, для домашнего применения, G+DOS вместе с G+DOS FIX, по сути, вполне достаточно.

Я приобрёл BETA DOS в ноябре 1993 года напрямую у Betasoft и не знаю, доступна ли она сейчас. Тогда она стоила 9.95 фунтов. Лучше всего заранее отправить еврочек на 10 фунтов (с пометкой «Nur zur Verrechnung»!). Дополнительных денег на почтовые расходы не требуется. Я тогда заплатил на 1 фунт больше, и мне вернули его вместе с посылкой. Превосходный сервис. Обновлений нет (или больше нет). Как мне тогда написал Andy, он потерял исходный код! Я, во всяком случае, использую версию 1.3 и не знаю, были ли вообще в обращении более старые версии. BETA DOS я получил на 3.5-дюймовой дискете.

Betasoft
24 Wyche Avenue
Kings Heath
Birmingham B14 6LQ
Great Britain

Этот адрес я взял из SUC-SESSION за апрель 1996 года (Spectrum User Club). А в июльском выпуске SUC-SESSION я вычитал, что Betasoft передала распространение своих программ фирме Format Publications. Их адрес вы найдёте на задней обложке SUC-SESSION или в журнале Profi Club Heft выпуск 7.96 вверху страницы 5. Кстати, за Format Publications скрывается британский клуб пользователей Spectrum и Sam — INDUG, который также продаёт SAM для West Coast Computers.

И напоследок добавление ко второй части этой серии статей. В таблицу закралась небольшая ошибка: Beta-Dos Backup Utility я, разумеется, тестировал как в режиме 48K, так и в 128K. Так что измените в колонке «TEST IN MODUS» в строке с «0.43» и «3 Swaps» значение с 48K на 128K! Любопытно, заметил ли это кто-нибудь ещё.

По любым вопросам и предложениям я, как всегда, к вашим услугам:

Guido Schell
Auf dem Stocke 37
D-32584 Löhne
Tel. 05732 8

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