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

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #15 : 25.04.2017 17:26:46 »
ZX Spectrum Next
https://www.kickstarter.com/projects/1835143999/zx-spectrum-next

The ZX Spectrum reborn: a new machine, fully compatible with the original computer, and packed with improvements and expansions.
£296,766                     1,358        27
pledged of £250,000 goal     backers      days to go

Требуемая сумма для проекта - 250 000 фунтов.
Последная дата сбора суммы - May 23 2017 2:00 AM +03:00.
На текущую дату для поддержки проекта собрано 296 766 фунтов. До конца сбора суммы осталось 27 дней.
Конфигурация и комплектации на странице проекта.

Что такое ZX Spectrum Next:
    Processor: Z80 3.5Mhz and 7Mhz modes
    Memory: 512Kb RAM (expandable to 1.5Mb internally and 2.5Mb externally)
    Video: Hardware sprites, 256 colours mode, Timex 8x1 mode etc.
    Video Output: RGB, VGA, HDMI
    Storage: SD Card slot, with DivMMC-compatible protocol
    Audio: 3x AY-3-8912 audio chips with stereo output + FM sound
    Joystick: DB9 compatible with Cursor, Kempston and Interface 2 protocols (selectable)
    PS/2 port: Mouse with Kempston mode emulation and an external keyboard
    Special: Multiface functionality for memory access, savegames, cheats etc.
    Tape support: Mic and Ear ports for tape loading and saving
    Expansion: Original external bus expansion port and accelerator expansion port
    Accelerator board (optional): GPU / 1Ghz CPU / 512Mb RAM
    Network (optional): Wi Fi module
    Extras: Real Time Clock (optional), internal speaker (optional)

Полностью совместим с оригинальным компьютером.

Очень кратко эта же новость на 3dnews на русском:  возрождение легенды

Spectrum жив!
« Последнее редактирование: 25.04.2017 19:08:12 от 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
« Ответ #16 : 28.11.2017 05:07:05 »
ZX-HD - ZX Spectrum через HDMI

Видео, язык русский:
HDMI для Спектрума ??!! | ZX-HD review

Авторское видео от Ben Versteeg (Нидерланды), язык английский:
ZX-HD preview video
ZX-HD assembly video
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
« Ответ #17 : 28.11.2017 14:13:41 »
ZX-HD - ZX Spectrum через HDMI
мда... читать память 8 битного процессора и рисовать картинку на 1Ghz ARM процессоре  ;-D

Оффлайн kostyalamer

  • Мастер
  • ***
  • Сообщений: 378
    • Сайт клуба активных пользователей ALT Linux
Re: ZX Spectrum в Linux
« Ответ #18 : 29.01.2018 22:18:24 »
Мужики, есть хорошие новости :
 http://forum.russ2.com/index.php?showtopic=2724&view=findpost&p=49802
Тестируйте  :-)
Archlinux  / Altlinux Free Mate p8

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 7 083
  • UNIX System V init
Re: ZX Spectrum в Linux
« Ответ #19 : 23.09.2018 18:20:45 »
Новая версия mctrd:
https://github.com/samstyle/mctrd
https://github.com/samstyle/mctrd/archive/master.zip

Последняя версия (github):
$ unzip -l ../../mctrd/new/mctrd-master.zip
Archive:  ../../mctrd/new/mctrd-master.zip
4f774eed24026fef5e6088e5663340049bc06e9c
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2018-01-31 21:46   mctrd-master/
    18092  2018-01-31 21:46   mctrd-master/LICENSE.txt
       48  2018-01-31 21:46   mctrd-master/Makefile
    18593  2018-01-31 21:46   mctrd-master/main.c
---------                     -------
    36733                     4 files

Предыдущая (в теме):
$ unzip -l ../../mctrd/mctrd-master.zip
Archive:  ../../mctrd/mctrd-master.zip
61bb1f58eb5ba988160edd9b29061d781bca77e5
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2015-11-22 23:04   mctrd-master/
    18092  2015-11-22 23:04   mctrd-master/LICENSE.txt
       48  2015-11-22 23:04   mctrd-master/Makefile
    18442  2015-11-22 23:04   mctrd-master/main.c
---------                     -------
    36582                     4 files

Changelog (по сравнению с версией в теме):
https://github.com/samstyle/mctrd/commits/master
Commits on Jan 31, 2018

    Fix hobeta size detect
    @samstyle
    samstyle committed on 31 Jan

Commits on May 21, 2017

    Fix the default basic autostart line number
    @samstyle
    samstyle committed on 21 May 2017

Лицензия:
GPL v2.0

См.:
http://zx-pk.ru/threads/10559-scl-trd-tools-under-linux.html
https://forum.altlinux.org/index.php?topic=36337.msg277718#msg277718
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
« Ответ #20 : 03.10.2018 12:17:01 »
/dev/null на ZX Spectrum
или
как избавиться от вывода на экран Bytes: блок

При загрузке каждого блока, на экран выводится Bytes: имя_блока, что может испортить заставку на загрузке.
Этот хак впервые был напечатан в журнале ZX-Ревю 1991 №10 в разделе FORUM:
Цитировать
http://zxpress.ru/book_articles.php?id=233
ZX-Ревю 1991 №10
Forum - сообщения об ошибках. Разбор "ELITE".

4. И последний способ - поставить вместо зловредного оператора POKE 23739,111 (по принципу "клин клином вышибают?" - Инфорком.)

Здесь достигается тот же эффект, что и у Билла Гильберта, но несколько иным способом. В таблице информации о каналах, на которую указывает системная переменная CHANS изменяется адрес подпрограммы вывода символа на экран таким образом, чтобы он указывал на адрес другой "подпрограммы", состоящей из единственного оператора - RET. Таким образом, то, что в нормальных "человеческих" программах печатается на экране, а у Б. Гильберта отправляется на принтер, будет теперь отправляться в "никуда".

В исходном состоянии CHANS указывает на 23734, а на информацию по каждому каналу отводится 5 байтов. Таким образом, 23739 - ячейка, содержащая первый байт информации по второму каналу - "S". А именно - младший байт адреса процедуры, обеспечивающей вывод данного канала. Поместив туда число 111 (6FH), товарищ Губанов тем самым назначил в качестве процедуры, обслуживающей вывод на экран не C9F4 (PRINTOUT), a 095F. Там действительно находится команда RET, в чем может убедиться всякий, читающий "Секреты ПЗУ".

Инфорком.

Этот способ потенциально опасен тем, что если программа использует стандартные каналы "Спектрума" (данные из таблицы CHANS) для вывода своих собственных сообщений, и при этом не проверяет эту таблицу и не устанавливает ее содержимое, то возможны неприятности. В таком случае можно в начале программы-загрузчика сохранять где-либо значение PEEK 23739, а после загрузки всех блоков программы с заголовками восстанавливать его.

И, в заключение об одной трудности. Загрузчики со следами Билла Гильберта достаточно трудно переделывать средствами БЕЙСИКа. Лучше воспользоваться программой COPY-COPY и с ее помощью внести изменения в числа. Но изменения надо вводить в число, записанное в интегральной (пятибайтной) форме. Можно заменить оператор POKE на REM. Тогда все, что стоит за ним, не будет иметь значения, хотя и в этом есть опасность, т.к. далее в этой строке могут быть необходимые для работы программы операторы. Можно заменить адрес 23570 на любой, меньший 16363 (адресовать POKE в ПЗУ - тогда он не пройдет), например на 0. Но это опять же надо делать с интегральной формой записи числа.

Естественно, может возникнуть вопрос: как же работают эти программы, требующие принтера, на моделях 48К, к которым принтер не подключен или если у них даже нет интерфейса?

Все очень просто. Неподключенный принтер в моделях 48K вызывает игнорирование всех обращений к нему. То же самое можно сделать на SP-128 в режиме 48К, если совершенно отказаться от принтера в этом режиме и сделать соответствующие аппаратные изменения. Это наименее эстетичный из аппаратных методов.

Ну кто из спектрумистов не помнит легендарную ELITE?
В этом же номере журнала, по этой же ссылке, разбор писем читателей ZX-Ревю по игре ELITE.
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
« Ответ #21 : 03.10.2018 19:54:42 »
История:
Принципы создания программ на ZX Spectrum


Эти принципы были изложены Спектрум-кодером более 20-ти лет назад, но и сегодня не перестают быть актуальными.

Немного информации предоставленной ресурсом speccy.info:
- Oberon — электронный журнал, выпускавшийся группой Stars of Keladan (Самара) с апреля 1996 по ноябрь 1998 года.
- Stars of Keladan - творческая группа из Самары.
- Paul Atrides (Евгений Милун, группа Stars of Keladan) - код


http://zxpress.ru/article.php?id=11846

Oberon #02
31 октября 1996
   
  Программирование 
Ликбез - немного поговорим о программировании,
вернее о жизненных этапах любой программы.


  Cегодня   давайте  немного  поговорим  о
программировании,  вернее о жизненных эта-
пах  любой программы. Любители "компьютер-
ной  попсы"  могут  смело перелистнуть эту
рубрику. На этот раз мой рассказ будет не-
долгим, но в следующий раз...             
  Как  я  уже говорил вам при нашей первой
встрече ("OБEPOН"  No1). программистами не
рождаются,  это  диагноз  после пятилетних
мучений  в  ВУ3е. Одним из важных моментов
обучения  программиста является вдалблива-
ние  ему  тех  стадий, которые ОБЯ3АТЕЛbНО
должна  пройти  его программа.           
  Всего  таких стадий или жизненных этапов
программы восемь.                         
                                         
1.  Oпределение   неoбхoдимых  технических
требoваний к кoнфигурации системы.       
  На  этой стадии определяются (обычно за-
казчиком) технические требования к аппара-
туре,на которой и с которой будет работать
программа. Если заказчика нет, то эти тре-
бования  определяет  сам  программист. Вся
дальнейшая  разработка будет производиться
в соответствии с ними.                   
  Для  SPECTRUM   вы,  начиная  разработку
своей программы должны определить:       
                                         
- необходимо-ли  наличие дисковода для ра-
боты программы:                           
- версию и тип ДОC (Is-DOS, TR-DOS, CP/M):
- минимальный  размер  памяти для  работы:
старайтесь уложиться в 48К, если нет, то в
128К и уж в самом пре-самом крайнем случае
больше  128К,  при  этом  нужно определить
тип  компьютера   с  этими  "больше  128К"
(SCORPION,  ATM-TURBO,  PROFI, а еще лучше
все сразу):                               
- наличие музыкального сопроцессора:     
- вопросы  совместимости: использовать  ли
мифический #FD порт, или нормальный #7FFD:
использовать-ли   порт атрибутов #FF (если
можно, лучше обойтись без него): использо-
вать ли для 2-го режима прерываний таблицу
векторов (для работы на всех компьютерах),
или  задавать  вектор двумя байтами (будет
работать  только  на  компьютерах  со ста-
бильной шиной данных).                   
                                         
2. Пoстанoвка задачи.                     
  По  идее этим должен заниматься не прог-
раммист,  а  постановщик  задач (должность
такая  на ВЦ), но все чаще и чаще этим за-
нимаются  сами программисты. На этом этапе
фраза типа: "мне нужна программа для учета
заработной  платы работников", переводится
во  фразы: "создать программу, позволяющую
(а) заполнять информацию о работниках, (б)
удалять  информацию о работниках, (в) кор-
ректировать  информацию  о работниках, (г)
просматривать  информацию, (д) производить
поиск  информации  по заданным критериям".
Одним  словом - на этом этапе начинают вы-
рисовываться возможности и функции будущей
программы.                               
                                         
3. Coздание кoнцептуальнoй мoдели.       
  Один  из  самых  ответственных этапов. В
начале вы должны ответить на один щекотли-
вый,  но   обязательный вопрос: А НУЖНА ЛИ
ПОЛb3ОВАТЕЛЯМ  ваша программа, выполняющая
функции,определенные на предыдущем этапе ?
И если нет (не нужна), то либо от дальней-
шей работы над этой программой отказывают-
ся,  либо заново проходят пункты 1,2. Если
же  программа  признается  необходимой, то
создается  концептуальная модель поведения
будущей  программы - что и когда она будет
делать, какую информацию и когда вводить и
выводить, ... 3десь же определяется струк-
тура и тип управления и контроля за ее ра-
ботой  (клавиши  управления, системы и ие-
рархии  меню, типы и количество вводимой и
выводимой   информации,   одним  словом  -
пользовательский  интерфейс). Определяется
критичность  по  времени  всей программы и
отдельных модулей.                       
  Для игр здесь определяются правила и за-
коны  игры,  все  персонажи, участвующие в
игре,  их поведение, взаимодействие друг с
другом,  ... Определяется и создается опи-
сание каждого персонажа, для того, чтобы в
дальнейшем  программа  по  нему  управляла
этим персонажем.                         
  По  завершению  этого этапа у вас должна
получиться  сбалансированная  модель прог-
раммы,  представление о ситуациях, которые
могут возникнуть во время работы программы
и пути выхода из них.                     
                                         
4. Coздание алгoритма.                   
  Учитывая результаты  пунктов 1 - 3, про-
изводится создание алгоритма программы.   
  Cоздается  как общий алгоритм (что какая
процедура  делает и с какими связана), так
и алгоритм каждой процедуры.             
  Очень  удобно и полезно нарисовать схемы
алгоритмов  (то, что на жаргоне называется
блок-схемами).                           
                                         
5. Bыбoр языка и прoграммирoвание алгoрит-
ма.                                       
  Как вы уже наверное заметили, до сих пор
не  было  написано ни строчки программы !!
До сих пор еще даже не ясно, на каком язы-
ке будет написана программа !!           
  Теперь,  имея алгоритм, вы должны решить
на  каком  же  языке писать ? И решать это
надо  не по принципу "какoй язык знаю луч-
ше.  на  тoм и пишу". а по принципу "какoй
язык пoзвoлит эффективнo реализoвать алгo-
ритм".  Выбрав  язык,  можно  приступать к
программированию и отладке программы.     
  Как легко видеть,это пятый,а не первый и
единственный  пункт  !!!  Кивки на опытных
программистов  - "они, мол, сразу начинают
программировать" не соответствуют действи-
тельности.  Несмотря ни на что, даже быва-
лый  программист не может программировать,
не  имея  алгоритма  ! Другое дело, что он
придумывает  его  на ходу и берет сразу из
головы. Но ведь на то он и бывалый.       
  Также  как  опытный механик по шуму дви-
гателя  может  поставить  "диагноз", так и
опытный  программист  производит многое из
выше  перечисленного "в уме" (но ведь про-
изводит  !),  лишь  в  самых  запутанных и
сложных  местах  прибегая  к помощи листка
бумаги и ручки. А когда он был малоопытным
и "начинающим", он все зарисовывал и запи-
сывал на бумаге. И ничего в этом нет "при-
нижающего"  -  человек, в  уме вычисляющий
сложные  интегралы,  когда-то не знал даже
простейшей таблицы умножения.             
  И не беда, если он начал программировать
не  имея  нарисованного алгоритма - он его
нарисует  позже (хотя бы для проверки пра-
вильности  программы и для ее отладки).   
                                         
6.   Дoскoнальнoе  тестирoвание  прoграммы
(другoе  название - прoбная эксплуатация).
В  результате которого, по возможности вы-
являются  и  исправляются  ошибки, которые
неизбежно  содержатся   в  любой программе
(старая  "программерская" аксиома: в любoй
прoграмме.  как бы oна ни была хoрoшo прo-
думана.  сoдержатся  пo  крайней  мере две
серьезные   oшибки.  кoтoрые мoжнo выявить
тoлькo при эксплуатации). Вот  именно этот
этап многие очень любят либо  вообще  про-
пускать,либо проходить поверхностно,а зря.
                                         
7. Coздание сoпрoвoдительнoй дoкументации.
  3аключительный  этап,  во время которого
вы  должны расписать то, как работает ваша
программа,  как  работать с ней и на каких
компьютерах она должна работать, может ра-
ботать, ...                               
                                         
8. Началo распрoстранения.               
  Теперь,  и только теперь, программа  со-
ответственно  оформлена и оттестирована, и
можно начинать ее распространение.       
  Не  побоюсь  повториться  и сказать, что
ЛЮБАЯ  программа  должна  пройти через эти
стадии, даже если это хаккерская версия !
  Если она не прошла хоть одну стадию, или
эта  стадия оказалась "скомканной", то это
означает одно из двух:                   
                                         
1.  Это программа для "чисто домашнего ис-
пользования  в  кругу семьи" и выпуск ее в
продажу  является актом глубокого неуваже-
ний  к  пользователям  (т.е. к тем, кто ее
купит).  Лично у меня есть несколько таких
моих  программ,  они не имеют хорошего ин-
терфейса  (а зачем мне делать их нарядыми,
если  кроме  меня  их  никто не увидит ?),
рассчитаны на работу в основном  только на
SCORPION'е   с   теневым  сервис-монитором
(вот я  еще  для себя  не делал  "глючные"
алгоритмы  работы  с диском, когда они уже
"зашиты" в П3У моего SCORPION !), не имеют
практически  никакой документации (я и так
помню, зачем я их делал и как с ними рабо-
тать).                                   
  А  теперь  представьте, что одну из этих
программ  я  начал распространять !!! Ваши
эмоции по этому поводу ? А вот "начинающие
программисты",     "ИНФОРКОМ"     (да    и
"SPECTROFON"  кажется  тоже)  считают само
сабой  разумеющимся  распространение таких
программ.                                 
                                         
2. Это, всеж-таки, коммерческая программа,
но  страшно ущербная, если вообще работаю-
щая. Примеры ? Да их множество. Игры VIRUS
и  VIRUS-2:  множественные  "недодумки" на
этапе  3 (сoздание кoнцептуальнoй мoдели).
в результате чего - неправильная обработка
вирусов,  непонятные правила изменения по-
ведения  вируса при изменении его парамет-
ров, этап 7 (сoздание сoпрoвoдительнoй дo-
кументации)  -  то  количество информации,
которое сообщает нам автор, нельзя назвать
просто  приемлемым, не то что достаточным.
  Игра  "Cтрана Мифов": программа, которую
вполне  можно  было  реализовать  на  128К
(пусть  и с подгрузками, не впервой) рабо-
тает  только  на  256К (этап 1, аппаратные
требoвания). армия все время деградирует и
ни о каком поиске Рунного Посоха речи быть
не  может   (этап  3, сoздание кoнцепту- 
альнoй мoдели).                           
  Игра  "SOLDIER  OF THE FUTURE": в начале
битвы  роботы должны располагаться друг от
друга  (причем,  либо  все снаружи здания,
либо  все  внутри одного здания) не дальше
определенного  расстояния,  иначе у них не
хватит  энергии найти друг друга (этап 3),
расстановка  роботов перед битвой проходит
"вслепую"   т.к.  карта выведется на экран
уже позже (тот же этап 3). Надеюсь, дальше
продолжать не стоит.                     
  Так  что,  уважаемые  разработчики прог-
рамм,  пожалуйста,  распространяйте только
те  программы, которые сделаны "по-науке".
Уважайте покупателя (он же пользователь).
                                         
                                         
                                         
                                         
  На  сегодня пока все, сначала "перевари-
те"   эту   информацию,   а  потом  я  вам
"скормлю"  и  другую.  А если серьезно, то
уже совсем скоро (но не раньше чем вы пой-
мете, что программирование - один из видов
искусства,  с  добавлением  математической
логики)   мы  с  вами  подойдем к описанию
Ассемблера  и   приемам   программирования
на нем.                                   
                                         
           До новых встреч.               
                                         
                         (C)  PAUL ATRIDES
                                         
══════════════════════════════════════════
                 *  *  *
« Последнее редактирование: 03.10.2018 20:11:01 от Speccyfighter »
ZX Spectrum 128K
Привет от NM:  # echo -e "\n[device]\nwifi.scan-rand-mac-address=no" >> /etc/NetworkManager/NetworkManager.conf