Новости
by Alone Coder
Всем привет!
Год прошёл следующим образом.
Я наконец доделал Ball Quest для NedoOS (с более быстрым и неглючным движком, также с новыми цветами).
Мой сын Саша (8 лет) сделал Ball Quest 2 (фоновые картинки, уровни и прохождение). Для этого я добавил в игру подсчёт собранных кристаллов и показ в конце уровня, собираемые жизни, а также увеличил игровой экран до 320x200.
Мои публикации в этом году:
- доклад с М.С. Ястребовым-Пестрицким в ЛГУ на тему "Детские субкультурные традиции: считалки"
- доклад в Рязанском Политехе на тему "Способы достижения технологической независимости в области ЭВМ" (нажмите "2")
- доклад с М.С. Ястребовым-Пестрицким и Д.А. Русаковым в Минске на тему "Этническая принадлежность трибаллов"
- статья "Ормури: проблема лексического описания и новые данные" в журнале Libri Magistri (51 страница)
Пишутся книги "Дерево распада иранских языков", "Древние фиксации балтославянских языков" и статья "Греко-фригийская группа". Продолжаю составлять праиндоевропейский словарь нового поколения, ищу помощников (от них нужно просто свободное время для механической работы, что делать - объясню). Картина распространения конкретных индоевропейских ветвей из Трои теперь документирована с 24 века до н.э. практически подряд по лингвистике, мифологии, ранним фиксациям слов и археологии. Как ни странно, по этой достаточно естественной теории нет ни одной публикации (хотя она пересекается в отдельных частях с теориями Сафронова и Гиндина). Также эта теория соответствует общим генетическим линиям с подходящей датой формирования, наблюдаемым у всех индоевропейских народов (G2a (G-Z6494, G-Y82047, G-Y138065...), J2 (J-A11525, J-L283, J-BY22488...), J1 (J-ZS4312, J-ZS3698...), R-Y37, R-PF7562). Промежуточные результаты выкладываются на http://alonecoder.nedopc.com/ling/PIE/index.html . Обсуждения на сайте "Молекулярная генеалогия".
Продолжаю дополнять учебник программирования на ZX Spectrum.
В этом году число реализаций ATM-Turbo 2/3 пополнилось за счёт плат MiST и MiSTer (на частоте 28 МГц). (Реализацию для MiST делал я, она несколько тормозная и не поддерживает SD-карту - я не понял, как это сделать.) То есть теперь имеется 6 разных плат, запускающих ATM-Turbo 2/3 на частоте не ниже 28 МГц: Pentagon 2.666, Pentagon 2.666LE, Pentagon 2.666FE, MiST, MiSTer и DE2-115. Рекордной является плата DE2-115, где я достиг частоты 70 МГц, причём без тормозов и даже с ускорением некоторых команд в турбо-режиме (эквивалентная частота 77 МГц по пропорциям в тесте dhrystone). Напомню, что Pentagon 2.666LE с моей прошивкой имеет частоту 57 МГц (эквивалентная 63 МГц). И это мы ещё не достигли скорости eZ80, на нём Спектрумы ещё никто не собирал. Приблизились только к клону Z80 от Kawasaki (KL5C8400C, паспортная частота 33 MHz, опционально включаемые краткие растактовки команд), работоспособность которого на 56 МГц проверил ещё в 2017 году VladimirS (г. Берёзовский, Кемеровская область).
Новые эмуляторы ATM-Turbo 2/3: ZEsarUX, Kozynax, Unreal Speccy online (до этого ATM-Turbo 2/3 эмулировался онлайн только в MAME).
ATM2/3 теперь перегнал Вектор по количеству софта (750 программ, не считая софт под обычный ZX Spectrum и обычный CP/M). Это составляет ровно половину от софта под расширенную память, графику и звук по Спектрумы вообще, включая даже SAM Coupe'. Если же не включать SAM Coupe' и подключаемые звуковые устройства, то всего расширенных программ останется 1040, где ATM3 покрывает 72%, а ATM2 покрывает 70%. Списки софта ведутся здесь:
http://alonecoder.nedopc.com/zx/atmsoft.txt
http://alonecoder.nedopc.com/zx/atmsoft_history.txt
http://alonecoder.nedopc.com/zx/pentevosoft.txt
На днях в Хабре опубликовали результат эксперимента по запуску Stockfish на Pentium Pro 200. Он показал, что движок обыгрывает лучших гроссмейстеров с таким огромным запасом, что скорость можно снизить не меньше чем в 20 раз. Это означает, что на современных реализациях Спектрума шахматные движки могут играть на уровне гроссмейстера. Я начал писать такой движок летом (помесь mailbox с битмасками, для косых атак две косых битмаски). Выяснилось, что шах можно определить всего за 335 тактов (старые движки не умели), а мат за 4000. Если бы нашёлся быстрый метод определения мата, то не понадобилось бы нырять ещё на один полуход (на два полухода на старых движках) и можно было бы начать думать как человек - в терминах угрозы мата и (хотелось бы) угрозы вилки. Для перебора угроз у живых шахматистов есть даже специальные мнемонические алгоритмы.
Прочитал две советских книги про персональные компьютеры. Там перечислены системные требования профессиональных программ. Сами компьютеры 1990 года имели до 3 мегабайт ОЗУ (советские) и до 16 мегабайт ОЗУ (иностранные), но программы как минимум до 1988 года требовали не более 384 килобайт для какой-либо работы. Это означает, что любую профессиональную программу для персональных компьютеров, написанную до 1990 года, можно реализовать на ZX Spectrum. Iar умеет размещать код по страницам автоматически, это уже использовано в hddfdisk и nc в NedoOS, их можно взять как образцы. У многих программ (в том числе Lotus1-2-3, Word и Photoshop) есть и исходники. Это очень важно, поскольку для ZX Spectrum действительно не хватает ряда профессиональных программ. К их числу можно добавить САПР типа AutoCAD и PCAD (есть несколько программ разводки печатных плат, но только маленьких). Любое портирование можно частично автоматизировать, используя нейросети. В некоторых случаях написать заново нейросетью проще, чем портировать. Например, в случаях Photoshop и AutoCAD. Например, по слухам, AutoCAD хранит все координаты в double (вместо естественного fixed point с глобальным масштабом чертежа), потому что якобы не умеет вращать детали путём корректировки углов в описаниях, умеет только пересчётом каждой координаты. То же касается 3D-редакторов, там тоже не нужна плавающая точка, как минимум для целей ZX Spectrum (моделирование объектов и сцен для игр, управление станками).
К чему приводит использование плавающей точки, причём широкой (на ZX Spectrum - 4 байта в мантиссе, вместо 3 байт на других компьютерах):
С.В.Черемных, А.В.Гиглавый, Ю.Е.Поляк. От микропроцессоров к
персональным ЭВМ. М.: Радио и связь, 1988. С.93:
100 REM
110 PRINT "НАЧАЛО"
120 K=0
130 DIM M(5)
140 K=K+1
150 A=K/2*3+4-5
160 GOSUB 230
170 FOR L=1 TO 5
180 M(L)=A
190 NEXT L
200 IF K<1000 THEN 140
210 PRINT "КОНЕЦ"
220 END
230 RETURN
74 секунды ZX Spectrum
37 с IBM PC
46 с Apple IIe
49 с Искра-226
51 с Tandy Color
56 с Электроника НЦ-80-20
101 с Epson HX-20
104 с СМ-1800
>20 мин Casio FX-702P
Существенный рывок в скорости портирования мы можем получить, если кто-нибудь, имеющий не менее 12 ГБ VRAM и не менее 64 ГБ RAM, сможет настроить оркестр на домашнем компьютере. Мои эксперименты показали, что отдельные нейросети Qwen3.8 и Qwen3 Coder Next уже работают на уровне прошлогоднего онлайнового Qwen. Проблема в том, что лично у меня такого компьютера нет. Нужен именно оркестр (как минимум два участника), включение утилит в цикл разработки (см. проект Dune 2 под ZX Evo на Github) и адаптация мануалов. В частности, KoboldCPP (который работает явно быстрее LM Studio) из коробки поддерживает RAG и имеет небольшой агент для кодинга с утилитами. Причём, насколько я понял, разные участники при общих весах в памяти (т.е. отдельно хранится только контекст) могут иметь разную температуру (т.е. уровень фантазии). Но я не знаю, в каких программах можно запускать оркестр.
Я также проверял Ling и Codestral (в том числе Mamba), но недоволен результатами. По-видимому, основной LLM для домашних экспериментов в этом году должен стать Qwen. Обратите внимание, что при низком квантовании он ошибается в арифметике, нужно заставить его использовать внешний калькулятор. Также в нём есть ошибки в обучении Z80, в частности, на командах сдвига. Возможно дообучение (дообученных моделей куча на Huggingface, но ни одна из них не дообучалась именно для Z80) или даже патчинг с помощью большой нейросети (такие эксперименты производились, но на моделях с менее чем миллиардом параметров).
Исходники NedoOS могут дать огромный материал для обучения или
RAG. Разметить их также можно с помощью нейросети. Таблицы
команд и описание архитектуры в текстовом виде можно взять из
электронной версии книги Ларченко и Родионова "ZX Spectrum для
пользователей и программистов".
Обязательно делитесь в Максе тем, что у вас получилось!
Написание даже Hello World под ZX Spectrum на домашней системе -
это уже будет прогресс!
На моём личном компьютере сгорела видеокарта и одна планка
памяти, а сама материнка отключается каждые 5 минут. Но купить
новый компьютер я сейчас не могу, потому что теперь плачу
ипотеку.
Главное - не разучиться думать самому.
┌──────────────────────────────────────────────────────────────┐
Игры для инженеров:
Дарвин - компьютерная игра для программистов, разработанная в
1961 году сотрудниками Bell Labs В. А. Высотским, Дугласом
Макилроем и Робертом Моррисом для компьютеров IBM 7090, в
которой несколько ассемблерных программ, названных организмами,
загружались в память компьютера.
Make-A-Chip (1983, ZX Spectrum) - соединять логические элементы
Core War (1984, в т.ч. ZX Spectrum) - программы сражаются в
памяти
Robot Odyssey (1984) - игроку необходимо программировать роботов
для прохождения лабиринтов, но не кодом, а путем сборки реальных
логических схем (логические вентили И, ИЛИ, НЕ, триггеры,
датчики) прямо внутри чипа робота. Фактически игра обучает
основам цифровой схемотехники и проектирования микросхем.
SimCity (1989, в т.ч. ZX Spectrum), Cities: Skylines (2015),
Workers & Resources: Soviet Republic (2019) - строительство
города и поддержание инфраструктуры
Omega (1989) - программирование кибертанков
RoboSport (1991) - программирование команды роботов на 1 ход
Virus, Virus II (1995, ZX Spectrum) - программирование вирусов
Солдат Будущего (1996, ZX Spectrum) - недетерминированная
стратегия, где игровые персонажи принимают решения
самостоятельно (хотя и в пределах написанной программы) и
основное занятие игрока улучшение своих роботов и написание для
них всё более сложных программ.
LightBot (2008) - программирование робота для прохождения
лабиринта
KOHCTPYKTOP: Engineer Of The People (2009) - разработка
микросхем
Minecraft (2010) - среди прочего позволял собирать механические
и вычислительные устройства
FortressCraft (2011) и Infinifactory (2015) - игры, похожие на
Minecraft, со строительством конвейеров и заводов
SpaceChem (2011) - игрок строит реакторы, где с помощью двух
циклических манипуляторов (синхронизируемых командами) нужно
автоматизировать сборку химических молекул из атомов.
Bridge Constructor (2011) и Poly Bridge (2016) - строительство
мостов
TIS-100 (2015) - программирование под многозадачный компьютер
Human Resource Machine (2015) и 7 Billion Humans (2018) -
программирование человечков, которые считают
Kerbal Space Program (2015) - симулятор ракетостроения и
орбитальной механики
SHENZHEN I/O (2016) - программирование микроконтроллеров
Factorio (2016) - строить технологические цепочки на чужой
планете
Screeps (2016) - чтобы ваша база жила, добывала ресурсы и
защищалась, вы должны написать полноценный искусственный
интеллект для своих колонистов на настоящем JavaScript, который
работает на сервере 24/7
Silicon Zeroes (2017), Digital Logic Sim (2020), Turing Complete
(2021) - разработка микросхем в виде блок-схем, начиная с
чего-нибудь типа NAND
Exapunks (2018) - Игрок берёт на себя роль хакера,
осуществляющего взломы с помощью специальных роботов, называемых
EXA. Игровой процесс состоит в написании программ для этих
роботов.
Gladiabots (2018) - программирование сражающихся роботов
блок-схемами
while True: learn() (2019) - игра, обучающая дата-сайенс и
машинному обучению. Вы строите системы ИИ (от экспертных систем
до нейросетей), соединяя блоки визуального программирования,
чтобы переводить кошачий язык на человеческий.
MicroFab (2026) - производство микросхем, онлайн
компьютер Ершова (2026) - разработка микросхем в виде блок-схем,
начиная с чего-нибудь типа NAND, онлайн
Также существуют онлайн курсы по HTML, Python и т.п., с
автоматической проверкой (freeCodeCamp, CodeBasics, HTML
Academy)
└──────────────────────────────────────────────────────────────┘
Всё. Лечу в командировку в Екатеринбург.
Пока!
Поделитесь вашим мнением о статье