Inferno #07
31 мая 2005
  Софт  

Others - Перенос программного обеспечения на ZX Spectrum с PC.


Программное обеспечение Дискуссии и размышления

           Speccy Soft on PC:
        The history of converting

   Уже ни для кого не секрет,что тотальное
нашествие  IBM PC  совместимых компьютеров
(обычно  называемых  ПЦ), а  также засилье
INTERNET'а (далее ИНЕТ) приводит  к их ши─
рокому распространению среди пользователей
компьютера ZX Spectrum.
   К полезным сторонам данного явления мо─
жно отнести  широкое распространение прог─
раммного обеспечения для данного компьюте─
ра именно посредством вышеназванных неста─
ндартных  носителей. Можно долго спорить о
достоинствах и недостатках подобного мето─
да распространения.Но поскольку данное яв─
ление стало массовым, приходится принимать
его, как есть.
   Другое дело, что соприкосновение с чуж─
дой платформой не на уровне игр, а на уро─
вне  системных программ является серьезным
шагом в ознакомлении с ПЦ и его,прямо ска─
жем,"возможностями". Здесь выявляется пра─
ктически органическая несовместимость этих
двух платформ.
   Итак, наиболее актуальной проблемой яв─
ляется лёгкий и быстрый  перенос  програм─
много обеспечения  для  ZX Spectrum  с ПЦ.
Источником его могут послужить ИНЕТ и раз─
личного рода  CD-ROM'ы, буквально  забитые
СПЕКовским и не очень софтом.
   Как  же  перенести драгоценные файлы на
реальный диск (или кассету) реального Спе─
ктрума? Скажу  прямо, для этого понаписано
немало программного обеспечения как на ПЦ,
так и на СПЕКе. Проблемой  является только
достать  его. Но опять же, и в ИНЕТе, и на
компактах  таких  программ  предостаточно.
Надо  только  знать, как  ими пользоваться
(см. инструкции) и что ими можно конверти─
ровать.
   Для начала отметим (не)большой недоста─
ток ПЦ: далеко не  все  разновидности  его
имеют 5'25-дюймовый  дисковод.  Но  сейчас
эту  проблему легко решают: либо  поставив
относительно дешёвый 5-ти дюймовик  на  ПЦ
(если он стоит дома на тумбочке),либо нас─
кребают денег на 3-х дюймовый дисковод и с
великими муками и глюками подключают его к
СПЕКу. (Ред.: Блок питания на 5В,собранный
на одной ЕНке, нельзя использовать для од─ 
новременного питания компьютера и 3,5" ди─ 
сковода.) Другие варианты...Да вроде,и нет 
таких...
   Но это ещё не всё. Дело в том,что на ПЦ
любят  сохранять  совместимость  со старым
хардом и софтом, в результате чего они во─
обще плохо работают. А именно:стандартными
являются только 40-дорожечные диски на 180
и 360 Кб (и в этом духе), причём это дейс─
твительно  40-дорожечная  совместимость, в
отличие от Спектрумовских TR-DOS и iS-DOS:
диск  прекрасно  себя чувствует и в старых
40-дорожечных дисководах, и в новых 80-до─
рожечных, потому как на последних формати─
рование  идёт через дорожку (одна формати─
руется,другая пропускается).А вот диски на
720 и 840 Кб так просто не читаются. Неко─ 
торые ПЦ никакой разницы не чуют и прекра─
сно работают.В других нужно в autoexec.bat
прописывать  некий дополнительный драйвер:
pu_1700.com, 800.com, 900.com  или  какой- 
нибудь  другой, есть много разных других -
тут ПЦшники постарались сами.
   Особая  проблема  возникает, если  диск
поформатирован  на 800 Кб и более. Вот тут
совсем начинаются извраты. Дело в том, что
на одной дорожке такого диска находится 10
секторов и последний из них  физически  не
влазит  на  диск, или же контроллер не мо─
жет его прочесть. Данная проблема решается
 хорошей программой форматирования.
   Ред.: Форматировать 800k следует на ZX,
например,программой CacheVox (она даже пы─ 
тается  перемещать  сектора  по дорожке до 
лучшей читаемости). 
   Аналогично  и с дисками  TR-DOS. TR-DOS
использует  "несколько упрощённый" формат,
по её следу такой формат используют и мно─
гие  дисковые утилиты. А посему диски надо
опять  форматировать  не  любой попавшейся
RDS, а опять же,учитывающей такую проблему 
 софтиной.
   Ред.: Важен пробел  перед первым секто─
ром на дорожке. RDS, может  быть, и подхо─ 
дит, но  значительно надёжнее (с перемеще─ 
нием секторов) форматируют FUT и AIDS 0.2. 
   Кроме того, большое разнообразие схемо─
техники и ПЗУ на обеих платформах приводит
к тому, что  диски  и программы, нормально
работающие на одних компьютерах, абсолютно
не работают на других.
   В частности, на  ПЦ  существует доволь─
но  много  программ, работающих  с дисками
TR-DOS. Но многие из них  работают  далеко 
не на всех ПЦ (они,например,любят с диском
работать не напрямую, портами, а всё изго─
ляются  с ПЦшной ПЗУхой - BIOS'ом). Но тут
хотя бы  подразумевается поддержка той или
иной системы. А на Спектруме,как известно,
никто MS-DOS и в глаза не видел.
   В  общем, для форматирования желательно
использовать  прогу, заверенную автором на
такие случаи. Конкретные  программы  будут
затронуты чуть ниже.
   В простейшем случае можно  отформатиро─
вать  диск для MS-DOS на 360 Кб. Прочитать
его на СПЕКе можно  будет  массой  древних
программ, которые найдутся на любом старом
системном диске. Но они,как правило,требу─
ют, чтобы все файлы были записаны последо─
вательно, а не так, чтобы один стёр,другой
оставил,и к нему подписываются другие: лу─
чше всего писать файлы на абсолютно чистый
диск! Если большие файлы порежутся на кучу
маленьких,то их желательно склеить соотве─
тствующей прогой.

   Поскольку ПЦшная MS-DOS по файлам никак
не совместима с TR-DOS по многим причинам,
то  Спектрумовские файлы на ПЦ находятся в
каком-либо специфичном транспортном форма─
те,и полезно различать разные виды файлов.

   Для  начала пару слов об архивации. Бо─
льшинство  файлов для Спектрума запаковано
тем  или  иным архиватором. Проблема будет
заключаться  в распаковке. Если  в доступе
есть ПЦ,то проблема только одна - научить─
ся  пользоваться  архиватором. Ещё полезно
знать,что некоторые умники на ПЦ любят пе─
реименовывать  архивные (и не только) фай─
лы,а точнее,менять расширение (например,на
".hob" ).Реальное расширение можно узнать, 
посмотрев первые символы файла: для ".zip"
там будет "PK", для ".rar" - "Rar" и т.п.

   Произведем беглый осмотр форматов Спек─
трумовских файлов для IBM.

   Во-первых,это куча так называемых снап─
шотов.  Их  легче  всего  представить  как
функциональные  аналоги  MAGIC -файлов для
TR-DOS. Их  довольно  удобно  использовать 
для различного рода программных эмуляторов
ZX Spectrum на ПЦ. Существует великое мно─ 
жество  форматов  таких  файлов: SNA, Z80,
SLT и множество других. Файлы .Z80 с  тру─ 
дом  можно  запускать  и на реальном Спек─
труме. (Ред.: .Z80 запускаются  программой
RUN_Z80  by  Reanimator & Vlad, 1999/2000. 
.SNA 48k можно  запустить  через DNA_OS by 
ZET-9, 2005.) Более удобным решением явля─ 
ется  использование  программы  UNSNAP  by
HalfElf, 98-99. Она преобразует  снапшот в 
некое  подобие МАДЖИКа с лоадером. Она от─
гружает  несколько страничек памяти в дру─
гом распростанённом формате,более подходя─
щем для конверсии на СПЕК - хобетном.
    Этот вид файлов применяется в програме:
                HoBeta v2.0
    InterCompex, Soviet-Swiss JV, 1990
и в её более поздней версии
               HoBeta v2.15
          by SP-Cube Co, 1990,92
   Судя  по названию данной программы и её
издателю, можно предположить,что она имеет
какое-то отношение к компьютеру ХОББИТ той
же фирмы,имеющему возможность организовать
сеть  с ПЦ. С помощью этой программы можно
писать  эти  файлы  на реальные СПЕКовские
диски.В комплект входит и программа-форма─
тер,но посекторная разбивка в ней - далеко
не  FAST!  Судя  по  всему, осуществляется
непосредственная  работа с портами ПЦшного
контроллера, и совместимость весьма велика
(идёт и на 286 ), но не идеальна.

   Внешней особеностью хобетного файла яв─
ляется  расширение  вида: знак "$" + буква
реального расширения файла.
   Файлы  данного формата представляют со─
бой  посекторную  копию  реального   файла
TR-DOS, с добавлением 17-байтного (17=#11) 
заголовка: 15 байт  реального  TR-DOS'ного
 заголовка + контрольная сумма.
   Ред: Контрольная сумма S считается так:
S=0; потом для каждого  из 15 байтов заго─ 
ловка TR-DOS:  S=S+257*D[i]+i, где  D[i] - 
значение байта, а i - его номер (от нуля). 
   Простейший  способ  конверсии очевиден:
скопировать файл на диск и  убрать  первые
17 байт. Такую операцию проделывают многие 
программы  на СПЕКе: HOBETA by DR.SQUIZER/
XPJ (Ред.: существует  и  HOBETA  by Alien 
Factory ), GODZILLA, IZX by TIME KEEPER... 
    А кроме того:
           Dos To Dos Copyer v2.0
         Code - Alexey Porfiryev
 Idea, Design, Graphics & Organized - Glen 
        (RED Limited Drunkards Group)
   Она неплохо копирует и хобету,и простые
файлы, а также  сама форматирует диски для
 MS-DOS. 
   Ред.: Лучшим  копировщиком  хобет  с/на
MS-DOS, кажется,остаётся TRMSHOB2 by Ruby, 
2000 (хотя  есть  ещё  PC-Navigator 1.0 by 
ART, 2001). 

   Развитием  хобетного  формата  является
формат ".SCL", иначе называемый  HOBETA98,
 предложенный в программе
                 AMD Copier
             by Paul Pavlov,
которая  также  может работать с реальными
 дисками (но уже на 486 :).
   Ред.: Именно через  AMD, несмотря на её
глюки, следует перегонять софт с ZX на ПЦ. 
К сожалению, она не работает под Win2000 и 
выше,но ничто не мешает запускать AMD, за─ 
грузив ПЦ с дискеты.Другие программы имеют 
большие  недостатки: так, эмулятор Шалаева 
перепутывает  сектора  при  копировании со 
Slow дисков, Spectrum Navigator без вопро─ 
сов  игнорирует  плохо читаемые сектора, а 
rd-trdos после сеанса  работы зачем-то пе─ 
репутывает стороны дисковода.Ещё,вероятно, 
можно  копировать  через  эмулятор RAMSoft 
Real Speccy, а также  через  TeleDisk  или 
makefdi - с последующим конвертированием в 
.trd (можно  конвертировать через эмулятор 
Unreal Speccy ). Не изменяйте .scl в Spec─ 
trum Navigator'е! Он непредсказуемо портит 
информацию при изменении .scl! В нём можно 
создавать .scl за одну  операцию копирова─ 
ния, можно  вынимать  файлы из .scl, но не 
больше! Ковыряться  же  внутри  .scl нужно 
через плагины к Far'у, написанные упомяну─ 
тым  HalfElf'ом ( xSCL и др. - ставьте все 
сразу). Важно отметить,что цитировать тек─ 
сты из .SCL/.TRD удобнее всего через те же 
плагины:нужно указать на нужный файл и на─ 
жать Ctrl+Shift+F4 - появляется  текстовый 
редактор (к сожалению, открывается почему- 
то ЗАХОБЕЧЕННЫЙ файл), где  можно пометить 
нужный фрагмент и загнать его в clipboard. 
Ещё важное замечание: чтобы эти плагины не 
спотыкались  на  дисках, содержащих архивы 
zip/rar, переименуйте xscl.dll в !xscl.dll 
и т.п. (тогда эти плагины будут вызываться 
до  плагина MultiArc ). Существуют плагины 
и для  Total Commander'а ( inTRD, inSCL by 
PushPC/Spectrodyne ), но пользоваться  ими 
неудобно: они  либо перемешивают все файлы 
на  образе, либо  прилепляют к имени некий 
номер, который при копировании не исчезает 
- нужно убирать вручную. 

   Данный  формат  поддерживает  уже  нес─
колько  TR-DOS'ных файлов: практически ар─
хив  методом store (без сжатия), даже кон─
трольная  сумма есть. Такое решение позво─
ляет  сохранить  порядок  файлов на диске,
что немаловажно для современных  программ.
Но на Спектруме  формат  менее  поддержан:
 важно упомянуть программу
               CONVERTER v2.1
      by ART (Базаркин Артем), 1999,
которая ещё копирует и обыкновенные файлы,
 и хобету.
   Ред.: .SCL можно извлекать Extractor'ом
by Jerri/Alien Factory (эта программа нео─ 
днократно  публиковалась  в  Inferno ). Те 
.SCL, которые  не  переваривает Extractor, 
нужно обрабатывать программой  SCL v0.1 by 
-C.D.L.- Lab (Denis Tsigancov), 2000. .SCL 
и хобеты,лежащие внутри .zip или .rar, мо─ 
жно автоматически развернуть соответствую─ 
щими  разархиваторами  на ZX ( PKUNZ1.41 и 
UNRAR0.57 ). 
   Кроме  того, эта  программа, как и AMD,
поддерживает ещё и совсем иной вид  файлов
- образы дисков,точнее,представитель этого
вида с расширением ".TRD". 
   Файлы  этого  вида представляют из себя
 полную посекторную копию реального диска.
   ".TRD" содержит  непосредственно  образ
стандартного диска TR-DOS ( 16 секторов по
256 байт),как правило, DS/DD ( 2544 секто─ 
ра). Данный формат весьма распространен на
эмуляторах и широко  поодержан  различными
утилитами (очень много наименований). Есть
и программы для работы с реальным  диском,
но  их совместимость оставляет желать луч─
 шего. На Спектруме есть такая утилитка:
                   TR_MS
           by Cardinal/PlayGear
        (в приложении к Deja Vu #4)
   Оная утилита также позволяет копировать
реальные  диски  в файлы ".TRD" на  MS-DOS
 (диски только на 720 Кб!!!) и обратно.
   Ред.: Покойный  >>RRA>> / Alien Factory
написал  маленькую  утилиту,  раскрывающую 
.TRD прямо  на TR-DOS диске. .TRD, лежащие 
внутри архивов zip/rar, опять-таки автома─ 
тически разворачивают соответствующие раз─ 
архиваторы. 

   Кроме  того сужествует масса других об─
разов  дисков: ".FDI",  ".FDD",  ".IMG"  и
другие, поддерживаемые некоторыми эмулято─
рами и утилитами: например, можно скопиро─
вать ".FDI" в ".TRD" (Ред.: если .FDI  со─
держал именно TR-DOS диск) и обратно. Дан─ 
ные образы дисков содержат копии дисков не
только от TR-DOS, поскольку в них  хранит─
ся информация о количестве и размерах сек─
торов  на  каждой  дорожке.  На  Спектруме
поддержка таких дисков затруднительна.Воз─
можна работа с такими файлами (да и любыми
другими) при помощи эмуляторов, работающих
 и с образами и с реальными дисками.
   Ред.: Не существует  программ, напрямую
пишущих .FDI  на неподготовленную дискету. 
Проблему  решают конверторы из .FDI в .TD0 
(для  программы TeleDisk ): они называются 
trx2x by Alex Makeev  и fdi2td0 by SMT. Но 
они спотыкаются на некоторых .FDI! Поэтому 
лучше пользоваться эмулятором UnrealSpeccy 
by SMT: загрузить .FDI, записать .TD0. 

   Коротко о кассетных файлах: их тоже су─
ществует несколько видов, но самые распро─
странённые - ".TAP" и ".TZX".
   Файлы ".TAP" бывают нескольких разнови─
дностей, но все они представляют собой по─
байтные копии кассетных файлов - по неско─
льку файлов в одном ".TAP", без всяких за─
щит и турболоадеров.
   Файлы ".TZX"  бывают  разных  версий, и
предназначены для загрузки с разными защи─
тами (Блиплоки, Спидлоки, и возможна  даже
однобитная  ОЦИФРОВКА совсем уж наворочен─
ных файлов).
   На  ПЦ для таких файлов утилит написано
немало, а на СПЕКе, кроме TapBeta и прочей
такой  штуки, существует  TAP v0.3  by Den
'CDL' (от 05.4.2000), каковая непохо пере─ 
 варивает такие файлы.
   Ред.: Сравнительно  недавно (июль 2003)
появилась  программа  PlayTZX (tzx1_03) by 
Las Jackwolf / Flash inc., позволяющая  на 
реальном  ZX  проигрывать звук  из .TAP  и 
.TZX -файлов (в результате этот звук можно 
записать  на кассету, а можно подключить к 
выходу одного СПЕКа другой СПЕК). 

   Кроме того,на ПЦ существует такая поле─
 зная и многофункциональная программа, как:
           ZX Spectrum Navigator
      RomanRoms Software Co., 1997-99
    Mihal Soft° Оpехов Михаил, 1998,99,
которая поддерживает большинство из  выше─
перечисленных форматов и работает с реаль─
ными дисками (правда,фигово!).

   Для форматирования дисков хороши FUT by
MI&DI  и FLOPPY FORMAT by Иван Рощин. Пос─ 
ледняя поддерживает широкий набор дисковых
разбивок, но,по моему,не очень качественно
форматирует (или проверяет).
 

   И ещё раз скажу:на ПЦ полным-полно вся─
ких  конвертеров  и утилит. Немало их и на 
СПЕКе. Поэтому изобретать велосипед можно, 
только  если существующие программы совсем 
уж не подходят для дела. А крайними мерами 
(типа  дискового  доктора) пользуются в уж 
совсем  критических случаях. Имея доступ к 
ПЦ, не завести таких программ - это как-то 
 нелогично. 
   Тем не менее, пожелаю всем использовать
ПЦ только под СПЕКовские нужды:архивы,оци─ 
фровки и сетки! 

Nuts 
01.02.01 



Другие статьи номера:

Классика - Альманашник. А. С. Пушкин.

For Coderz - Распознавание и вычисление арифметических выражений по их символьной записи.

Inferno - Авторы журнала.

For Coderz - О дисциплине при создании больших проектов.

Интервью - Вопросы Константину Свиридову (Conan) о сайте zxnext.narod.ru.

Ликбез - Принципы конвертирования графики PC-ZX.

For Coderz - Программирование смены диска/дисковода на Скорпионе.

Sofтинка - DNA_OS v0.431 - пакет утилит для работы с винчестерами, RAM-дисками и дискетами.

For Coderz - Программирование под DNA_OS ZET-9, пакет утилит для работы с устройствами хранения данных.

Sofтинка - Проблемы и недоработки пакета утилит для работы с устройствами хранения данных DNA_OS.

Ликбез - Подробно о дисковых форматах, имеющих FAT.

Inferno - Вступление от редактора.

Inferno - Ошибки в предыдущих номерах.

For Coderz - Маленькие программерские хитрости.

Gameland - О новых играх: Oneyroid, Dizzy forever, Dridlock.

For Coderz - Пишем архиватор. Практические принципы LZ упаковки.

Gameland - Прохождение новых отгрузок для игры "Чёрный Ворон".

For Coderz - Программирование для видеорежима 384x304.

Inferno - Письма в редакцию.

Звук - Идеи Megus'а по поводу трекера для AY/YM.

Inferno - Об оболочке.

For Coderz - Основы оптимизации под процессор Z80.

Ликбез - Расположение разделов на винчестере.

Gamedev - 3D проецирование пола/трассы в играх.

Звук - Дикие идеи для AY трекеров.

Реклама - Реклама от Романа Чунина.

Реклама - Реклама от В. Богдановича

For Coderz - Как делается крупная перемещаемая программа.

Ремонт - Неисправности Pentagon 128+ и их ремонт.

Inferno - Содержание номера.

Разное - Мысли о конкурсе на лучший софт.

Others - Перенос программного обеспечения на ZX Spectrum с PC.

Видео - Об упаковке видео для ZX Spectrum.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
О разном - как искать в интернете спектрумовских софт и переносить его на спектрум.
Мозгомоечная - рекомендации создателям графических редакторов.
Разное - Мысли о конкурсе на лучший софт.

В этот день...   18 декабря