Автор Тема: ZX Spectrum в Linux  (Прочитано 5861 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
ZX Spectrum в Linux
« : 04.02.2016 19:07:23 »
Тема для поклонников ZX Spectrum

Сегодня искал как затолкать Quick Commander от Spectre(группа Optical Brosers) в *.trd образ и наткнулся на консольную утилиту mctrd:
http://zx-pk.ru/showthread.php?t=10559
https://github.com/samstyle/mctrd

Разработка утилиты ведётся с 20090717.
Последний релиз: 20151122.

Утилита состоит из одного файла. Распространяется под лицензией GNU GPL v2.

С гитхаба выкачал архив.
Внутри архива всего-ничего:
$ unzip -v mctrd-master.zip
Archive:  mctrd-master.zip
61bb1f58eb5ba988160edd9b29061d781bca77e5
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 2015-11-22 23:04 00000000  mctrd-master/
   18092  Defl:N     6811  62% 2015-11-22 23:04 4e46f4a1  mctrd-master/LICENSE.txt
      48  Defl:N       44   8% 2015-11-22 23:04 605358ed  mctrd-master/Makefile
   18442  Defl:N     4930  73% 2015-11-22 23:04 b2fe214b  mctrd-master/main.c
--------          -------  ---                            -------
   36582            11785  68%                            4 files

Распаковал архив:
$ unzip -x mctrd-master.zip
Archive:  mctrd-master.zip
61bb1f58eb5ba988160edd9b29061d781bca77e5
   creating: mctrd-master/
  inflating: mctrd-master/LICENSE.txt 
  inflating: mctrd-master/Makefile   
  inflating: mctrd-master/main.c     

Установил gcc:
# apt-get install gcc3.4
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Следующие дополнительные пакеты будут установлены:
  binutils cpp3.4 glibc glibc-devel glibc-kernheaders kernel-headers-common
Следующие НОВЫЕ пакеты будут установлены:
  binutils cpp3.4 gcc3.4 glibc glibc-devel glibc-kernheaders kernel-headers-common
0 будет обновлено, 7 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
Необходимо получить 9334kB архивов.
После распаковки потребуется дополнительно 35,7MB дискового пространства.
Продолжить? [Y/n]

В мэйкфайле, команда для компилляции
$ cat ./mctrd-master/Makefile
all : main.c
gcc -Wall -std=c99 -o mctrd main.c

Скомпиллировал бинарник:
# pwd
/usr/src
# gcc -Wall -std=c99 -o mctrd main.c
Время компилляции, меньше секунды.

Положил его в /usr/local/bin
# cp ./mctrd /usr/local/bin/

Добавил в .bash_profile путь:
$ echo 'PATH=$PATH:/usr/local/bin' >> ~/.bash_profile

Утилита при запуске без параметров вывела help:
$ mctrd
::: Usage :::
mctrd [-h][-z][-b][-n][-a num] command name1 [name2] [name3]
::: Keys :::
-a | --autostart NUM             set autostart line number for basic file
-b | --basic                     add file to archive as basic
-h | --help                      show this page
-n | --no-head                   push file to TAP without header
-z | --hobeta                    pop/push file as hobeta (SCL, TRD only)
::: Commands :::
list <image>                     show image catalog
new <image>                      create new image (TAP, TRD, SCL: depends on extension)
add <file> <image>               put file into image
pop <file> <image> [<outname>]   extract file from image
rename <image> <oname> <nname>   rename file inside image. oname = old name, nname = new name

Теперь можно работать с образами *.trd-дисков.
Несмотря на то, что компилляция оказалась простой как валенок, видно придётся внедряться в сборку rpm-пакетов.

Как и говорит help, можно создавать образы, извлекать из них файлы, ложить в них файлы, переименовывать файлы в образе.


Что можно делать утилитой mctrd?

Переложим, например, Quick Commander из *.scl-образа в создаваемый образ *.trd.

Архив QC_311.ZIP с командером распакуем в каталог QC_3_11
$ mkdir QC_3_11
$  unzip -x QC_311.ZIP -d ./QC_3_11/
Archive:  QC_311.ZIP
  inflating: ./QC_3_11/dos6_05e.txt 
  inflating: ./QC_3_11/dos6_10e.rom 
  inflating: ./QC_3_11/QC_3_11.rom   
  inflating: ./QC_3_11/QC_3_11.SCL   

и перейдём в этот каталог
$  cd QC_3_11/

SCL, это образ для эмулятора spectrum-fuse, в котором содержится Quick Commander
$  mctrd list ./QC_3_11.SCL
Name Ext Start Size SLen
---------------------------
QC 3.11 B 503 503 61
QC 3.11 t 29816 40995 161
file_id d 31337 1515 6

Создадим временный рабочий каталог, скопируем в него образ *.scl и перейдём в этот каталог
$  mkdir 1
$  cp QC_3_11.SCL ./1
$  cd ./1

Извлечём в формате хобета из образа файлы коммандера
$ mctrd list ./QC_3_11.SCL
Name Ext Start Size SLen
---------------------------
QC 3.11 B 503 503 61
QC 3.11 t 29816 40995 161
file_id d 31337 1515 6
$ mctrd -z pop 'QC 3.11 .B' ./QC_3_11.SCL
$ mctrd -z pop 'QC 3.11 .t' ./QC_3_11.SCL
$ mctrd -z pop 'file_id .d' ./QC_3_11.SCL

Создадим новый образ *.trd (TR DOS)
$ mctrd new qc.trd

Файлы коммандера, которые мы извлекли из образа, добавим в созданный образ *.trd
$ ls
file_id .$d  QC 3.11 .$B  QC_3_11.SCL  QC 3.11 .$t  qc.trd
$ mctrd -z add QC\ 3.11\ .\$B qc.trd
$ mctrd -z add QC\ 3.11\ .\$t qc.trd
$ mctrd -z add file_id\ .\$d qc.trd

Файлы добавлены в образ
$ mctrd list qc.trd
Name Ext Start Size SLen Sec Trk
---------------------------
QC 3.11 B 503 503 61 0 1
QC 3.11 t 29816 40995 161 13 4
file_id d 31337 1515 6 14 14

и находясь в TR DOS, можно посмотреть (на клавише K токенизированная команда LIST) содержимое *.trd-образа.
Затем можно запустить Quick Commander (на клавише R токенизированная команда RUN), набрав в кавычках после команды RUN, имя файла с расширением B, в кавычках без расширения, учитывая регистр символов (в эмуляторе, кавычки набираются комбинацией клавиш Alt+p)
RUN "QC 3.11"
В TR DOS формат имени файла в формате 8+1, - 8 символов имя, один символ расширение файла.

После чего нажав Enter, через пару секунд получим в эмуляторе  то, что на первом скриншоте.

Но запускать так командер очень неудобно.
Поэтому переименуем командер из QC 3.11 в boot
$ mctrd rename qc.trd 'QC 3.11 .B' 'boot    .B'

Имя исполняемого файла переименовано
$ mctrd list qc.trd
Name Ext Start Size SLen Sec Trk
---------------------------
boot    B 503 503 61 0 1
QC 3.11 t 29816 40995 161 13 4
file_id d 31337 1515 6 14 14

Теперь для запуска командера понадобится только команда RUN, - команда RUN без параметров, запускает файл с именем boot, - этот старт на втором скриншоте.

Клавиша Space в командере, отображает все файлы - эта клавиша триггер.
Жмём Space, видим файл file_id (скриншот 3), наводим на него курсор, жмём клавишу v и читаем о возможностях командера (скриншот 4), - перелистывание вперёд по Space, выход из просмотра - Enter.
« Последнее редактирование: 05.02.2016 19:27:53 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #1 : 07.04.2016 00:45:14 »
Хотите окунуться в мир пользователей ZX Spectrum и узнать, о чём они говорили и что обсуждали более 15-ти лет назад?

Эту уникальную возможность, предоставит ресурс, который содержит архивы эх сети ZxNet c 1998-го года:
http://zxnet-archive.ru

В архиве 16 эх.
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Rik

  • Давно тут
  • **
  • Сообщений: 163
    • Визуальные технологии
Re: ZX Spectrum в Linux
« Ответ #2 : 07.04.2016 18:21:42 »
Как в fuse масштаб больше сделать? Я его запускаю, он у меня микроскопический, в меню настроек не нашел..
« Последнее редактирование: 07.04.2016 18:25:56 от Rik »
visual-t.ru Кросс-платформенные технологии визуальной разработки ПО.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #3 : 07.04.2016 19:46:07 »
Как в fuse масштаб больше сделать? Я его запускаю, он у меня микроскопический, в меню настроек не нашел..

Курсором за уголок потянуть по диагонали. Увеличение окна идёт с кратностью самого маленького размера.
Потом: Панель опций > Options > Save.
На следующем старте Эмулятор загрузится с последними сохранёнными опциями.

После первого старта эмулятора с сохранением настроек, конфиг будет лежать  в домашнем каталоге:
$ ls ~/.fuserc
/home/user/.fuserc

Предупреждение:
Начниная с p7/branch и выше, в spectrum-fuse нет rom'ов tr-dos, Pentagon 128 и Scorpion ZS 256.
speccypedia:
http://speccy.info/Pentagon_128
http://speccy.info/Scorpion_ZS-256

Но они есть в spectrum-fuse в p6:

Скачать этот пакет
Распаковать находясь в текущем с пакетом каталоге:
rpm2cpio spectrum-fuse-0.8.0.1-alt1.qa1.i586.rpm | cpio -idmv

Скопировать все rom'ы, которые находятся в
# yes|cp /путь/распаковки/usr/share/fuse/* /usr/share/fuse/

Перезапустить эмулятор.

Для получения звука, требуется запуск эмулятора через aoss (alsa, пакет alsa-oss) или padsp (pulseaudio, пакет pulseaudio-utils (?) )

В советских клонах ZX Spectrum использовался дисковый интерфейс Beta 128 (Панель меню > Media > Disk > Beta > Буква дисковода > образ scl или trd).
« Последнее редактирование: 07.04.2016 19:49:44 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Rik

  • Давно тут
  • **
  • Сообщений: 163
    • Визуальные технологии
Re: ZX Spectrum в Linux
« Ответ #4 : 09.04.2016 19:52:19 »
Ну всё, пипец, вся работа встала. Lode runner дошел до 15 уровня, когда то в детстве мы его весь прошли, просто офигенно, экран растянул, звук через padsp и главное сохраняться можно.
visual-t.ru Кросс-платформенные технологии визуальной разработки ПО.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #5 : 09.04.2016 23:29:58 »
Давайте немного помечтаем, каким бы мог быть ZX Spectrum?

Эта информация настолько редка, что далеко не каждый спектрумист знает о ней.
Представленная информация перебивалась руками с бумажной страницы. Регистры символов, стиль и пунктуация сохранены.
Не акцентируйте своё внимание на названии. С точки зрения сегодняшнего дня, главная фишка нового (1989-го года) процессора, не только и не столько в этом.

Итак:
Процессоры Zilog. Новые технологии.
О чём писала Electronic Design в 1989 году?

       Новая разработка ZILOG -
         модернизированный ЦП Z80,
          содержащий ЗУПВ емкостью 2к


    Добавив  в  схему  своего  центрального  процессора  Z80
статическое   ЗУПВ   емкостью   2   кБайт,  синхронизатор  и
контроллер временной диаграммы, разработчики  компании Zilog
Inc. (Кэмпбелл, шт. Калифорния) создали новый микропроцессор
Z84C50.
     Наличие статического ЗУПВ на кристалле дает возможность
хранить в  этой памяти часто используемые команды и данные и
быстро   обрабатывать  их  без  потерь  времени  на  периоды
ожидания,  которые необходимы при обращении к внекристальной
памяти. Новый КМОП-микропроцессор выполняет набор команд Z80
и способен работать при тактовых частотах до 10 МГц.   Кроме
того, размещение генератора-синхронизатора на кристалле дает
возможность создания новых режимов с пониженным потреблением
мощности -  всего лишь  до  нескольких  милливатт  в  режиме
ожидания (холостого хода). Это режимы номинальной производи-
тельности и  останова,  а также  два промежуточных нерабочих
режима  -   в  одном  из  них  прерывается  функционирование
тактового генератора  и ЦП, а в другом ЦП останавливается, в
то  время  как  генератор  продолжает  работать.  Расширение
объема ресурсов микропроцессора  позволяет  также  уменьшить
площадь схемной платы, требуемую для процессора.
     Новый  микропроцессор   выпускается   в   40-контактном
корпусе DIP, 44-контактном пластмасовом  кристаллоносителе и
44-контактном     пластмассовом     плоском     корпусе    с
четырехсторонним расположением выводов.



Electronic Design
    No. 20, 1989.

Источник:
Микропроцессорный комплект Z80: в 7 кн. :
Справочное пособие. Кн. 1:
Центральный процессор Z80CPU/
С.П.Шутов, М.М.Мухаметшин.


Поглядывая на спецификацию процессора Z84C50, нетрудно заметить, что этот процессор в 1989-ом году имел свои отличительные особенности:

- 2 килобайта статической памяти
- Wait State Generator для внешней памяти
- Четыре режима энергосбережения:
  RUN mode
  IDLE1 mode
  IDLE2 mode
  STOP mode
- On-chip тактовый генератор
- Четыре режима HALT state:
  RUN mode
  IDLE1 mode
  IDLE2 mode
  STOP mode
- 158 инструкций
- Прерывания:
  Немаскируемые
  Маскируемые
- Три режима выбора:
  8080 совместимый interrupt mode (interrupt by Non-Z80 family peripheral LSI-Mode 0)
  Restart interrupt (Mode 1)
  Daisy-chain структура прерываний использующая Z80 family periferal LSI (Mode 2)
Более полно на скриншоте на английском языке.
Источник:
Неизвестен


Также известны проблемно-ориентированные, высокоинтегрированные процессоры Zilog Z84013, Z84015, Z84C13, Z84C15, но это уже немного другая история...
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 4 505
Re: ZX Spectrum в Linux
« Ответ #6 : 10.04.2016 10:10:38 »
Давайте немного помечтаем, каким бы мог быть ZX Spectrum?
таким же, какой он сейчас - в эмуляторе  ;-)

Для примера можете посмотреть на Apple и их переходы Motorola 68k -> PowerPC -> x86 - сколько сил они потратили на эмулятор 68k, Rosetta и кому сейчас это надо.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #7 : 12.04.2016 20:17:48 »
IS-DOS: с чем его ели.

Скриншот 1:
Интерфейс IS-DOS
Командная строка вызывалась через резидент mon.res или командный файл mon.com.
Второй использовался при установке или удалении драйверов и резидентов. Программная память и память резидентов, динамически выделяемая. Под командную строку выделялись три верхних строки. В случае использования mon.res, в памяти сохранялись последние введённые команды - история команд. Объём буфера для хранения истории команд 256 байт. Каталоги именуются в верхнем регистре, файлы в нижнем. Шесть доступных устройств - A-F. Файл extent.txt, это конфигурация действия по Enter. Файлы extkey.txt, extprint.txt, extview.txt, *.mnu, которые находятся в каталоге SHELL, имеют соответствующее назначение.
Каталог SHELL имеет то же назначение, что и каталог /bin в *nix-системах в соответствии с FHS.
Каталог UTIL: то же что и /usr/bin.
Каталог SERVICE: то же что и /sbin и /usr/sbin вместе взятые.
Каталог DRIVERS: драйверы принтера. В подкаталоге DRIVERS\HELP\ - файл с таблицей и пара help-ов.
Каталог PRINT: утилиты печати.
Каталог EDIT: собственно сам текстовый редактор.
Часто в дополнение к этому использовался  LOTUS - набор фонтов для печати.
На компьютерах с памятью от 128Кб очень эффективным был RAM-диск, - команды буквально выстреливались. Специальными утилитами RAM-диск сохранялся в образ и загружался из образа, что значительно сокращало время загрузки.

Всего дисков is-dos известно, что-то около более двух десятков.

Скриншот 2:
Часть хэлпа на программу eliminat - демон-киллер.

Скриншот 3:
Часть хэлпа на программу ren - программа переименования и смены атрибутов файла.

Скриншот 4:
Часть хэлпа на программу exhumer - гробокопатель.
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #8 : 12.02.2017 03:20:35 »
Все rom-ы для spectrum-fuse

Найдено тут

Соответствие rom-ов для Pentagon и Scorpion перечислено тут:
https://github.com/libretro/fuse-libretro

Emulated Machines

    Spectrum 48K
    Spectrum 48K (NTSC)
    Spectrum 128K
    Spectrum +2
    Spectrum +2A
    Spectrum +3
    Spectrum +3e
    Spectrum SE
    Timex TC2048
    Timex TC2068
    Timex TS2068
    Spectrum 16K
    Pentagon 128K (needs 128p-0.rom, 128p-1.rom, and trdos.rom)
    Pentagon 512K (needs 128p-0.rom, 128p-1.rom, gluck.rom, and trdos.rom)
    Pentagon 1024 (needs 128p-0.rom, 128p-1.rom, gluck.rom, and trdos.rom)
    Scorpion 256K (needs 256s-0.rom, 256s-1.rom, 256s-2.rom, and 256s-3.rom)


Распаковать в текущем каталоге
rpm2cpio package.rpm | cpio -idmv

Скопировать недостающие в каталог
/usr/share/fuse/
« Последнее редактирование: 12.02.2017 03:38:13 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Rik

  • Давно тут
  • **
  • Сообщений: 163
    • Визуальные технологии
Re: ZX Spectrum в Linux
« Ответ #9 : 26.03.2017 18:22:02 »
Что-то на Simply 7.95 снова не получается звук вытащить. libmikmod установлен, устройство /dev/dsp не появляется, может модули ядра какие активировать надо?
visual-t.ru Кросс-платформенные технологии визуальной разработки ПО.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #10 : 26.03.2017 19:31:15 »
Что-то на Simply 7.95 снова не получается звук вытащить. libmikmod установлен, устройство /dev/dsp не появляется, может модули ядра какие активировать надо?

В теории это должен делать padsp из пакета pulseaudio-utils. Т.е. эмулировать /dev/dsp.
Но просто обожаю поттеринговский код: единственное что полезное он делает, это намертво подвешивает эмулятор. Без вывода интерфейса, - стартового меню пользователя.

Даже если у вас pulseaudio, установите пакет alsa-oss.
Запуск
aoss spectrum-fuse
предназначенный для эмуляции /dev/dsp в системе с alsa
гарантированно работает даже в системе с pulseaudio.
Проверено на текущем Сизифе с Xfce и pulseaudio.

Изначально, после установки пакета spectrum-fuse, в меню (Xfce) будет только команда spectrum-fuse. Через menulibre (редактор меню, одноимённый пакет) её нужно отредактировать до приведённой выше.

Минимум требуется, Пентагоновские rom-ы и tr-dos. Но лучше поставить их все.

Особенности меню Pentagon 128:
TR DOS:
tr dos 48Kb, RAM 128Kb

Для TR DOS 48Kb, RAM 48Kb:
- Войти в меню 48 BASIC и набрать команду
RANDOMIZE USR 15616
Но в подавляющем большинстве случаев это не нужно.


Но смотрите на эмулятор с точки зрения спектрумовского пользователя:
Все эмуляторы спектрума тормозят и/или работают не так как надо.
Спектрум не имеет не только графического процессора, но и видеопамяти.
В безвыходном положении это можно и приходится терпеть, но, это издевательство над спектрумом и оптимизацией его кода.
« Последнее редактирование: 26.03.2017 20:03:49 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Rik

  • Давно тут
  • **
  • Сообщений: 163
    • Визуальные технологии
Re: ZX Spectrum в Linux
« Ответ #11 : 26.03.2017 20:00:22 »
Что-то на Simply 7.95 снова не получается звук вытащить. libmikmod установлен, устройство /dev/dsp не появляется, может модули ядра какие активировать надо?

В теории это должен делать padsp из пакета pulseaudio-utils. Т.е. эмулировать /dev/dsp.
Но просто обожаю поттеринговский код: единственное что полезное он делает, это намертво подвешивает эмулятор. Без вывода интерфейса, - стартового меню пользователя.

Даже если у вас pulseaudio, установите пакет alsa-oss.
Запуск
aoss spectrum-fuse
предназначенный для эмуляции /dev/dsp в системе с alsa
гарантированно работает даже в системе с pulseaudio.
Проверено на текущем Сизифе с Xfce и pulseaudio.

Изначально, после установки пакета spectrum-fuse, в меню (Xfce) будет только команда spectrum-fuse. Через menulibre (редактор меню, одноимённый пакет) её нужно отредактировать до приведённой выше.

Минимум требуется, Пентагоновские rom-ы и tr-dos. Но лучше поставить их все.

Особенности меню Pentagon 128:
TR DOS:
tr dos 48Kb, RAM 128Kb

Для TR DOS 48Kb, RAM 48Kb:
- Войти в меню 48 BASIC и набрать команду
RANDOMIZE USR 15616
Но в подавляющем большинстве случаев это не нужно.
Точно, я через padsp запускал, забыл напрочь как оно называется, помню только dsp а по поиску /dev/dsp synaptic limbikmod показывает. Alsa-oss установил, с ним работает, спасибо!
visual-t.ru Кросс-платформенные технологии визуальной разработки ПО.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #12 : 04.04.2017 05:54:06 »
Я не новичок на платформе ZX Spectrum, но это видео для меня было поистине открытием.
Из этого видео вы узнаете немного об истории компьютера Sinclair QL, а также что общего между Sinclair QL, Линусом Торвальдсом и Linux:
Квантовый скачок Синклера ( Sinclair QL , Linus Torvalds)
За приглашение в спектрумовскую группу газеты ZaRulem на vk.com, где и выловлена была ссылка на видео, спасибо Mr.Zeg (Tornado Virtual Group, Fenomen).
« Последнее редактирование: 04.04.2017 06:02:17 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #13 : 05.04.2017 05:33:08 »
Что из себя представляли редакторы текста для ZX Spectrum?

Один из самых мощных ASCII редакторов текста для ZX Spectrum:

HorrorWord 1.11

Редактор имеет обширное меню с огромным количеством настроек и опций:

- Редактор может загрузить и подгрузить файл, сохранить файл или блок.
- Меню Edit имеет 17 опций настройки редактирования текста. Включая четыре режима форматирования строки, настройка табуляции, ширины текста с позиционированием по правой и левой позиции, и также возможен режим автоформатирования.
- Режим команд, где-то аналогичный редактору vi и вызываемый по Caps Sift и Symbol Shift, позволяет выполнить больше трёх десятков действий с текстом, включая работу с буфером редактора. Перемещение курсора в режиме ввода текста. Также режим команд позволяет вставить в текст управляющие коды принтера.
- Меню Sets позволяет выбрать одну из трёх кодировок: DOS, WIN, KOI или использовать таблицу загруженную пользователем. Есть выбор одной из шести типов клавиатуры. Код конца строки устанавливается по выбору: CR, LF или CL (CR+LF). Это меню предлагает пользователю выбрать один из пяти встроенных драйверов принтера, - самые известные, это Lprint III и драйвер для контроллера на микросхеме ВВ55. Это меню имеет 17 опций и возможность сохранения настроек.
- Меню Misc может предложить загрузить фонт, таблицу или модуль в формате ProTracker 3 и послушать музыку во время набора текста.
- Справка вызывается вызовом режима Command по CS+SS с последующим нажатием клавиши H. Выход из меню, а также переход в режим редактирования по CS+1.

Некоторые из опций меню и хэлп редактора HorrorWord, представлены на скриншотах.

Создатель этого редактора:
HorrorSoft (HS) — группа из Череповца, входила в состав CyberPunks Unity.

Состав
    Анатолий Сбродов - код
    Davos (CJ Explaud, Дмитрий Окатов) - музыка
    Deadie (Waldemar Krigen, Boba Gorbunoff, Dead Moroz, Sparky, Владимир Крыгин) - код, графика, музыка
    Stranger (Spider, Евгений Дорошин) - графика
    Kurles (Kurleson, Ghost, Алексей Кравченко) - код

Информация о группе предоставлена Cпектрум-википедией speccy.info
« Последнее редактирование: 05.04.2017 05:57:37 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #14 : 05.04.2017 17:13:57 »
Полное описание ASCII редактора HorrorWord версия 1.11
во вложении

Это описание входит в комплект редактора в виде файла hw111hlp.W

Как было извлечено это описание?

Сначала файл был извлечён из scl-образа в hobeta формате
Об утилите mctrd см. в первом сообщении этой темы
$ mctrd -z pop 'hw111hlp.W' ./HRW1_11.SCL
$ ls ./hw111hlp*
'./hw111hlp.$W'

Затем файл был сконвертирован из кодировки cp866 в кодировку utf8
$ iconv -f cp866 -t utf8 hw111hlp.\$W > hw111hlp.txt

О формате hobeta:
http://ivr.webzone.ru/articles/extfiles/#hobeta

Теперь необходимо вырезать 17 байт заголовка из начала файла, чтобы получить текстовый файл
$ tail -c +18 ./hw111hlp.txt > ./hw111hlp.txt~ && /bin/mv ./hw111hlp.txt~ ./hw111hlp.txt
-c +18  --  считать файл с 18-го байта от начала файла (пропустив 17 байт заголовка) и до конца файла


Готовый файл можно просмотреть или в less или в любом редакторе.


Дополнено:
Файл вложения перезагружен.
Причина перезагрузки:
Исправление в строках 183, 189, 301, 307-310, 332, 343, 371, 373, 384 файла вложения.
Замена некорректного символа "Ў" на более подходящий "-"
« Последнее редактирование: 05.04.2017 17:58:53 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf