News
by Alone Coder
Hello everyone!
Here is how the year went.
I finally finished Ball Quest for NedoOS (featuring a faster, bug-free engine and a new color palette).
My son Sasha (age 8) created Ball Quest 2 (designing the background images, levels, and gameplay progression). To support this, I added a crystal-collection counter that displays at the end of each level, implemented collectible extra lives, and expanded the game screen resolution to 320x200.
My publications this year include:
- A presentation (co-authored with M.S. Yastrebov-Pestritsky) at Leningrad State University on "Childrens Subcultural Traditions: Counting-Out Rhymes."
- A presentation at the Ryazan Polytechnic Institute on "Methods for Achieving Technological Independence in the Field of Computing" (click "3" ).
- A presentation (co-authored with M.S. Yastrebov-Pestritsky and D.A. Rusakov) in Minsk on "The Ethnic Identity of the 'Triballi'."
- An article titled "Ormuri: The Problem of Lexical Description and New Data," published in Libri Magistri (51 pages).
I am currently working on the books The Tree of Iranian Language Divergence and Ancient Attestations of Balto-Slavic Languages, as well as an article on the Greco-Phrygian Group. I am also continuing to compile a next generation Proto-Indo-European dictionary and am looking for assistants - all that is required is some spare time to help with routine, mechanical tasks (I will provide full instructions). The dispersal of specific Indo-European branches originating from Troy is now documented - from the 24th century BC onwards - through a consistent synthesis of linguistics, mythology, early lexical attestations, and archaeology. Surprisingly, there are no existing publications on this rather intuitive theory (though it does overlap in certain aspects with the theories of Safronov and Gindin). This theory also aligns with common genetic lineages - dating back to an appropriate period of formation - observed across all Indo-European peoples (G2a (G-Z6494, G-Y82047, G-Y138065...), J2 (J-A11525, J-L283, J-BY22488...), J1 (J-ZS4312, J-ZS3698...), R-Y37, R-PF7562). Preliminary findings are posted at http://alonecoder.nedopc.com/ling/PIE/index.html . Discussions are taking place on the "Molecular Genealogy" website.
I am continuing to expand my programming textbook for the ZX Spectrum.
This year, the number of ATM-Turbo 2/3 implementations has grown to include the MiST and MiSTer boards (running at 28 MHz). (I developed the implementation for the MiST; it is somewhat sluggish and lacks SD card support - I haven't figured out how to implement that yet.) In total, there are now six different boards capable of running the ATM-Turbo 2/3 at a frequency of at least 28 MHz: the Pentagon 2.666, Pentagon 2.666LE, Pentagon 2.666FE, MiST, MiSTer, and DE2-115. The DE2-115 board holds the record: I achieved a frequency of 70 MHz on it, with no slowdowns - in fact, some commands are even accelerated in turbo mode (resulting in an equivalent frequency of 77 MHz, based on Dhrystone benchmark ratios). For reference, the Pentagon 2.666LE, running my firmware, operates at 57 MHz (with an equivalent frequency of 63 MHz). And we havent even reached the speeds of the eZ80 yet - no one has built a Spectrum-compatible system using that chip so far. Weve only managed to approach the performance of the Kawasaki Z80 clone (the KL5C8400C, which has a rated frequency of 33 MHz and optional, shorter instruction cycle timings); its stability at 56 MHz was verified back in 2017 by VladimirS (from Berezovsky, Kemerovo Oblast).
New emulators for the ATM-Turbo 2/3 have emerged, including ZEsarUX, Kozynax, and Unreal Speccy Online (previously, the ATM-Turbo 2/3 could only be emulated online via MAME ).
The ATM2/3 has now surpassed the Vektor in terms of software library size (750 programs, excluding software designed for the standard ZX Spectrum or standard CP/M). This accounts for exactly half of all software developed for extended memory, graphics, and sound across the entire Spectrum ecosystem - even including the SAM Coupe. If we exclude the SAM Coupe and external sound peripherals, the total number of "extended" programs comes to 1,040, with the ATM3 supporting 72% and the ATM2 supporting 70%. Software lists can be found here:
http://alonecoder.nedopc.com/zx/atmsoft.txt
http://alonecoder.nedopc.com/zx/atmsoft_history.txt
http://alonecoder.nedopc.com/zx/pentevosoft.txt
Recently, an article on Habr detailed an experiment involving running the chess engine Stockfish on a Pentium Pro 200. The results showed that the engine outperforms top grandmasters by such a wide margin that its processing speed could be reduced by at least a factor of 20. This implies that, on modern implementations of the Spectrum, chess engines could still play at a grandmaster level. I started writing such an engine over the summer (a hybrid of a mailbox representation and bitmasks - using two diagonal bitmasks for diagonal attacks). It turned out that a check can be detected in just 335 CPU cycles (something older engines couldn't do), a checkmate in 4000 cycles. If a fast method for detecting checkmate existed, it would eliminate the need to search an extra half-move deeper (or two half-moves deeper, in the case of older engines). This would allow the engine to "think" more like a human - in terms of threats of checkmate and, ideally, threats of a fork. Human chess players even use specific mnemonic algorithms to evaluate such threats.
I read two Soviet books on personal computers, which listed the system requirements for professional software. While computers from 1990 had up to 3 MB of RAM (Soviet models) or up to 16 MB (foreign models), the software - at least up until 1988 - required no more than 384 KB to function.
This implies that any professional PC software written before 1990 could be implemented on a ZX Spectrum. The IAR compiler can automatically handle code placement across memory pages - a feature already utilized in hddfdisk and nc in NedoOS, they can serve as examples. Many programs - including Lotus 1-2-3, Word, and Photoshop - also have their source code available.
This is highly significant, as the ZX Spectrum platform genuinely lacks a range of professional-grade software. This includes CAD systems similar to AutoCAD and PCAD (while some PCB layout tools exist, they are limited to small-scale projects). The porting process can be partially automated using neural networks. In some instances - such as with Photoshop or AutoCAD - it may actually be easier to rewrite the software from scratch using a neural network than to port the existing code. For example, it is rumored that AutoCAD stores all coordinates as double-precision floating-point numbers (rather than using a more natural fixed-point system with a global scale). This is allegedly because the software cannot rotate components by simply adjusting angle parameters; instead, it recalculates every individual coordinate. The same applies to 3D modeling software, where floating-point arithmetic is also unnecessary - at least in the context of the ZX Spectrum (e.g., for modeling game objects and scenes, or controlling machinery).
What are the consequences of using floating-point arithmetic - especially in the high-precision format used on the ZX Spectrum (which employs a 4-byte mantissa, compared to the 3-byte mantissa found on other systems):
┌─────────────────────────────────────────────────────────────┐
S. V. Cheremnykh, A. V. Giglavy, Yu. E. Polyak. From
Microprocessors to Personal Computers. Moscow: Radio i Svyaz,
1988. P. 93:
100 REM
110 PRINT "START"
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 "END"
220 END
230 RETURN
74 seconds ZX Spectrum
37 s IBM PC
46 s Apple IIe
49 s Iskra-226
51 s Tandy Color
56 s Elektronika NTs-80-20
101 s Epson HX-20
104 s SM-1800
>20 min Casio FX-702P
└──────────────────────────────────────────────────────────────┘
We could achieve a significant leap in porting speed if someone
with at least 12 GB of VRAM and 64 GB of RAM were able to set up
an "orchestra" (a multi-model system) on their home computer. My
experiments have shown that individual neural networks like
Qwen3.8 and Qwen3 Coder Next are already performing at the level
of last years online version of Qwen. The problem is that I do
not personally own such a computer. What is needed is an
"orchestra" (consisting of at least two components), the
integration of utilities into the development cycle (see the
Dune 2 for ZX Evo on GitHub), and the adaptation of
manuals. Specifically, KoboldCPP - which runs noticeably faster
than LM Studio - supports RAG out of the box and includes a
small agent for coding tasks that utilizes external tools.
Moreover, as I understand it, different agents can share the
same weights in memory - meaning only their individual contexts
are stored separately - while each having a different
"temperature" (i.e., level of instability). That said, Im not
sure which software would allow you to orchestrate such a setup.
I've also tested Ling and Codestral (including Mamba ), but I
wasnt satisfied with the results. It seems that Qwen is the best
LLM for home-based experiments this year. Just keep in mind that
at low quantization levels, it struggles with arithmetic - youll
need to force it to use an external calculator. It also has some
flaws in its training regarding the Z80 architecture,
specifically with shift instructions. You could try fine-tuning
it (there are plenty of fine-tuned models on Huggingface, though
none specifically for the Z80), or even patching it using a
larger neural network - experiments like this have been done,
albeit on models with fewer than a billion parameters.
The source code for NedoOS could serve as a massive dataset for
training or RAG. You could even use a neural network to annotate
it. Instruction tables and architectural descriptions in text
format can be extracted from the digital version of the book ZX
Spectrum for Users and Programmers by Larchenko and Rodionov.
Be sure to share your progress in the MAX chat! Even just
producing a "Hello World" ZX Spectrum program using a home-based
system would be a significant step forward!
As for my own computer, the graphics card and one RAM stick have
burned out, and the motherboard shuts down every five minutes. I
cant afford a new one right now, though - Im paying off a
mortgage.
The most important thing is to make sure you dont lose the
ability to think for yourself.
Games for Engineers:
"Darwin" - a computer game for programmers, developed in 1961 by
Bell Labs employees V. A. Vyssotsky, Douglas McIlroy, and Robert
Morris for the IBM 7090 computer. In this game, several
assembly-language programs, referred to as "organisms," were
loaded into the computer's memory.
Make-A-Chip (1983, ZX Spectrum) - combine logic gates
Core War (1984, including for ZX Spectrum) - programs battle
each other within the computer's memory.
Robot Odyssey (1984) - the player must program robots to
navigate through mazes; instead of using code, the player
constructs actual logic circuits (AND, OR, NOT gates,
flip-flops, and sensors) directly inside the robot's "chip." In
effect, the game teaches the fundamentals of digital circuitry
and microchip design.
SimCity (1989, including for ZX Spectrum), Cities: Skylines
(2015), Workers & Resources: Soviet Republic (2019) - city
building and infrastructure maintenance.
Omega (1989) - programming cyber-tanks.
RoboSport (1991) - programming a team of robots for a single
turn.
Virus, Virus II (1995, ZX Spectrum) - programming viruses.
Soldier of the Future (1996, ZX Spectrum) - a non-deterministic
strategy game where characters make decisions independently
(albeit within the constraints of a pre-written program), and
the player's primary task is to upgrade their robots and writing
increasingly complex programs for them.
LightBot (2008) - programming a robot to navigate a maze.
KOHCTPYKTOP: Engineer Of The People (2009) - designing
microchips.
Minecraft (2010) - which, among other things, allowed for the
construction of mechanical and computational devices.
FortressCraft (2011) and Infinifactory (2015) - games similar to
Minecraft that involve building conveyor belts and factories.
SpaceChem (2011) - the player builds reactors where, using two
cyclical manipulators (synchronized by commands), they must
automate the assembly of chemical molecules from atoms.
Bridge Constructor (2011) and Poly Bridge (2016) - bridge
construction.
TIS-100 (2015) - programming for a multitasking computer.
Human Resource Machine (2015) and 7 Billion Humans (2018) -
programming human workers to perform calculations.
Kerbal Space Program (2015) - a simulator for rocket engineering
and orbital mechanics.
SHENZHEN I/O (2016) - programming microcontrollers.
Factorio (2016) - building technological production chains on an
alien planet.
Screeps (2016) - to keep your base alive, gathering resources
and defending itself, you must write a full-fledged artificial
intelligence for your colonists using actual JavaScript, which
runs on a server 24/7.
Silicon Zeroes (2017), Digital Logic Sim (2020), and Turing
Complete (2021) - designing microchips using block diagrams,
starting from basic components like NAND gates.
Exapunks (2018) - the player takes on the role of a hacker,
carrying out intrusions using specialized robots called EXAs;
gameplay revolves around writing programs for these robots.
Gladiabots (2018) - programming combat robots using block
diagrams.
while True: learn() (2019) - a game that teaches data science
and machine learning; you build AI systems (ranging from expert
systems to neural networks) by connecting visual programming
blocks to translate cat language into human language.
MicroFab (2026) - microchip manufacturing (online)
Ershovs Computer (2026) - microchip design using block diagrams,
starting from basic components like NAND gates (online)
There are also online courses for HTML, Python, etc., that
feature automated grading (freeCodeCamp, CodeBasics, HTML
Academy).
Thats it. Im off on a business trip to Yekaterinburg.
Bye!
Share your thoughts about the article