NedoOS: origins
Alone Coder
HistoryNedoOShas roots in the distant
90s. In this article I will try to help─
Imagine how it all happened. During this time
many concepts have changed, pictures have been drawn
tinks and diagrams were written and thrown away ku─
skiy code and individual utilities, but everything was there
wasted until gold was finally found─
that core :)
I've been on Spectrumsince1991. When he
appeared, I already knew BASIC roughly
(withRadio-86RK). I wrote games on it - "Ugh─
give a number", "Point", "Python", "Horses on
hippodrome","Dot over i", "Jumping
through the stone." There were also microdemons on Basie─
ke. Sometimes I typed "piano" type 10 BEEP
.1, CODE INKEY$-60: GO TO 10or cycles you─
memory dump water.But from all my programs
of the tape era, only the graph has survived─
physical editor "Drawing point" of 23
lines (1992). Preserved because it is unified─
This was written down on paper. And it was written
he is most likely influenced by the bookDyako─
new. I think many wrote the same "edit"
tors". So I began the path of a system programmer─
mschika...
10 LET a=100: LET s=100
20 INK 7: PLOT a,s: INK 0: PLOT a,s
30 IF INKEY$="5" THEN GO TO 90
40 IF INKEY$="8" THEN GO TO 100
50 IF INKEY$="7" THEN GO TO 110
60 IF INKEY$="6" THEN GO TO 120 70 IF INKEY$="0" THEN GO TO 130
80 GOTO 20
90 LET a=a-1: GO TO 20
100 LET a=a+1: GO TO 20
110 LET s=s+1: GO TO 20
120 LET s=s-1: GO TO 20
130 INK 0: PLOT a,s: INK 7: PLOT a,s
140 IF INKEY$="5" THEN GO TO 200
150 IF INKEY$="8" THEN GO TO 210
160 IF INKEY$="7" THEN GO TO 220
170 IF INKEY$="6" THEN GO TO 230
180 IF INKEY$="0" THEN GO TO 20
190 GO TO 130
200 LET a=a-1: GO TO 130
210 LET a=a+1: GO TO 130
220 LET s=s+1: GO TO 130
230 LET s=s-1: GO TO 130
Изучал ассемблер я с 1993 года, когда у
меня появился дисковод. Первые попытки бы─
ли неудачные - первый скролл влево я не
смог зациклить на весь экран, игра "Падаю─
щие камни" через RST 16 не заработала.
True, I assembled it manually, using a table─
there are no command codes. Because of these failures, I have been
stuck to BASIC for a while because it was easy to use─
to debug. Stopped, corrected, continued─
lived. This is how the animation editor appeared "Anima─
tor" (1993) - descendant of "Drawing point",
even got to some city con─
course, where it could not be launched successfully.
You can look at this masterpiece inACNews
#53 :) I started writing a new graphic
editor in BASIC (with menus in the bottom
two lines of the screen - I learned how to bake there─
thief!), and started with useless functions─
tions "triangle" and "filled circle". In this
project, I have already encountered the disadvantage of Be─
Ysika - his inconvenient editor. I fiddled
with him for a long time, but nothing remained from him─
what traces? Unless I came across it somewhere
filling procedure in BASIC and rice itself─
the appearance of the filled circle - it went into space─
Russian simulator "Space" in BASIC (1995),
which can be found in Info Guide#10.
At the same time, I wrote a disk doctor,
loader forBeta Basicwith effect, a couple
tests from some book (one survived)
and other little things. But the main project I re─
I was trying to make a new graphic editor -
already in the codes, inGENS.And the procedures for it
written as if it was a new collection─
nicknameSupercode,and were immediately optimized for
size (some of them are completely insane)
useful for a graph editor).As far as possible
reconstruct from papers and catalogs per─
new floppy disks, the first procedures were as follows:
- shift to the right (some kind of madness at first─
ny, through IX, then 17 bytes)
- effect on the "exploder" attributes
- screen appearance without attributes (49 b)
- scroll left (17, then 16)
- scroll left cyclic (24, then 23)
- scroll right cyclic (24)
- scroll up (82, then77, then 54)
- scroll down (82, then 77, then 54)
- scroll up cyclic (79, then 75)
- scroll down cyclic (79, then 75)
- flashing random attributes
- FASTLEFT(105),FASTRIGHT(105) (does not help─
nude, what is it - is mentioned on paper, but on
no disks)
- screen inversion (12)
- Flip horizontal (61)
- Flip vertical (49/78)
- Rotate 180
- Move code
- Font flip horizontal (22)
- Font flip vertical
- Font rotate 90
- Set attributes
- Screen memorize (13)
- Screen recall (12)
- Flip horizontal
- 64 print
- Attrs invert (30, потом 14)
- Screen Grid (26)
- Grid-
- Exchange (17)
- Merge (17)
- Running line
- Border lines
- скролл 8x8 (81)
- UpA (21)
- Fast CLS
- hexprint
- Hex Dump
- Waves standard
- New waves
- Repeat (12)
- ввод числа накруткой (для игры Губер─
натор)
- L4(17), R4(17), L2(23),R2(23),LRIPPLE
(12),RRIPPLE(12),lshutter(12),rshutter(12)
- расчёт адреса на экране DE->HL (29)
- W LEFT, W RIGHT, W INV, W CLEAR
- W PUT, W GET
- M RIGHT, M LEFT, M INV, M CLEAR
- POINT (28)
- PLOT (56)
- FILL (сначала рекурсивный алгоритм,
потом с буфером на 256 координат)
Осенью 1994 года я завёл отдельную об─
щую тетрадь под проект графического редак─
тора, в ней распределял адреса процедур,
начиная с верха памяти. Они шли в следую─
щем порядке: Undo,Ok,Remove,Grid,Addrcalc,
PLOT, POINT, FILL, FILLING, CLEAR SCR,CAT,
CONTRAST,CURSOR. Процедуры компилировались
по одной и тестировалисьfrom BASIC. Riso─
editor menu shaft, window view scaled─
niya... and then abandoned everything. Apparently because
that I realized that I would never use this method
I'll write a better editorArt Studio!
By that time I had already communicated with two
other programmers -Nikolai Medveda─
you and Sergei Galishnikov. And this means
there was an incentive to show them something ready─
voe.Therefore, from the graphic editing procedures─
who was written by December 1995Font
editor. Then he developed it for some time─
sya, and version 2.06 also went to the competition. B
this editor has already been implemented
local (more precisely, sighting) system, with motor─
by moving the cursor pixel by pixel (in the first version
this was familiar). File operations
were written in BASIC. Due to assembly
parts of the complete source were not available, so
According to the requirements of the competition, I made a collection─
a new “printout” in a notebook by hand.
Summer1996I tried to write my own─
national debugger (and in the screen area─
sti), the disassembler wrote - and he took
as much as one and a half kilobytes. I had to cancel─
power this project. The disassembler can be found
in the appendix toZX-Guide #4.5.
At the end 1996 after the prototype in BASIC
I implemented the gameSapper'96 - there was already
window system with a movable window. Od─
him. And at the same time it was the first big pro─
gram, which I compiled in its entirety.
It was not easy, because my48Kto─
The computer began to glitch ungodly, especially during
saving time to disk. In practice this
looked like this: first I prepared the procedures
on paper, then typed them into the source code and
I immediately saved it under a different name. Only
after that it was possible to test. Until now
I've been doing this for a long time now :) Only instead of paper these─
first text files...
In February1997I wrote a chunk
editorPAINTBRUSH (see Info Guide #12 ).
It didn't have a save menu, but it did...
new interface with color selection arrow, and
also withseveral zooms (but edited─
it was possible to write only in 4x4). I wrote it
still inGENS,but switching toMASMon mine
The new128K greatly sped up my development.
Then or a little earlier I will sell─
I was thinking about the concept of a multicolor editor.
There should have been menus on the left and right─
va (according to the multicolor limitation 8x1 - 24
familiarities on Pentagon, see ZX-Guide #2),
icons on buttons, in zoom mode in the corner
the screen should have been shown in 1x1. But
the idea was abandoned, a year later I wrote
another multicolor editor, simpler.
But I planned not only cool
multicolor editor, and the whole system
likeWindows,drew a proportion for it─
digital font, screen mockups (you can
see in the application), did a text re─
daktor with line breaks, studiedFAT,wrote
viewing pictureswithMS-DOSfloppy disks - see─
rel them in the primitive ancestor of the modeR-Mode.
I thought "why are we worse iS-DOS?" and wanted
come up with your own disk format. But constant
disk errors and the need to use─
FUT have put their heads in place, so
my imagination was limited to storing directives─
tory as files - in the demo version "Norton-
commander" (already in assembler ALASM). By the way─
ty, he didn’t know how to compact such a disk, and no one
I couldn't.
It was 1998 . I entered the radio market and
released the text editor first
ACEdit, and then - at the end of the year - magazine
ZX-Guide #1. There was already a multi-window si─
theme (single-tasking), where the background is under the windows
saved to a stack type buffer. In the next
1999, at the request of the now deceasedIgo─
Rya Chirtsova from Barnaul tried to do it there
scrollbar and turn zhur─
cash to the library, which could be used─
Anyone can call. It was so called─
built "ZX-Guide #1.5". He didn't go anywhere
(not counting ZX-Guide #2.5 trash ), because
that by that time I had already switched to pla─
explicit frame leaflets.
I didn't like the standard video mode
6912.I soldered a simple circuit 384x304 and on─
wrote a leaflet for texts with a width 80 sim─
oxen, which were copied to me fromIBM PC.
There were versions for TR-DOS floppy disks (in ZX-Guide
#2 ) and under MS-DOS floppy disks (January 2000 ),
both are in source only. At the same time I pi─
sal editor for color per point "8 color
editor", minus the first version of which was
same ZX-Guide #2.5 trash. Design (without─
possible, and with pieces of code) was taken from that
PAINTBRUSH.But most importantly, I invented
scheme 384x304 and at the same time didn’t think about it─
Xia that a graphic editor should edit─
Do not tile256x192,but the picture is arbitrary─
new size! We went through the same mistake
authors of other graphic editors on
Speccy...
In May of the same2000year I wrote ANSI
viewer. It was some progress,
since the screen size was adjusted there
- at least in height. Text editor
ACEdit was also redone - for regulation─
screen width and command support
linesTR-DOS.Command line support,
MS-DOS floppiesANSI,different screen sizes─
did not bring me closer to certain standards,
but for some reason all these features ended up in
different programs! I didn't integrate the program─
together with each other, although I dreamed of
this. In the fantasy story"Was there
crisis?" ( ZX-Guide #3 - end 2000 year)
you can even come across the following phrase: "Alone
Coder didn’t go to “Zosen”, didn’t read “Skla─
vku", did not buy games of questionable quality─
va, and sat peacefully and practiced integration.
moving the MPEG video player into a new version
your Inet browser for Spectrum..." And
it wasn't exactly a joke - at the time I
studied at the institute HTML, and at the end 2001
wrote ACEdit>html converter (by
request Unbeliever ) and with his help you─
launched ZX-Guide #4 html version, which
It’s still on my website. You don't
believe me, but the browsers of that time displayed
its866encoding is correct :)
So (I assumed, having acquiredPentagon
1024 ), if we are writing an operating system,
then it should work with a bunch of formats
files. For example, with archives that
come from Fido (we had fidosh in our group─
nickname-realist - T(c)S).Ideally, even work─
sneak across the background. What did we have with the standard─
rich archives? Onlypkunzipand non-working
demo versionZXUnRarfromAIG.At the end2002
I started hacking and fixingZXUnRar,
so almost nothing from the original code
there are none left.At the beginning2003became dora─
bat JPEG viewer; my first acceleration
included inBorn Dead #0G,released April 1─
la. Then I learned how to do auto assembly in
ALASM (packers mrip*.H and m2hr*.H ) and in
released the first version in June ZXRar. And ok─
This year fixed pkunzip 1.41 for support
SCL.I also finalizedPro Tracker,ALASM,
STS,Hrip,Perfect Commander andMr Gluk Reset
Service. Thus, in my hands
turned out to be system programs from ten
different groups of authors who are not at all
managed to combine into one!
Of course, I was not sitting in a vacuum. And not
I only studied other people’s systems, but also publicly─
shaft in the description journalDISCiPLE/+D,ZXVGSand ChaOS. But what I saw in them looked like─
the matter is completely perpendicular to mine for─
dachas I didn't even see the possibilities in them
practical use! And for me this
was the most important thing. In my head I'm already
abandoned the windows and arrows - even the new one
shell for the magazine (Inferno Guide #5)
made it without them.
To attract people with new concepts─
mi, began to distribute programs in exodus─
nikah, with auto assembler mkace (August 2003).
And in September 2004 expressed in ZX.SPECTRUM
the idea of "making friends with programs in memory" to
they didn't interfere with each other. This would allow
edit different formats in parallel
data without restarting the computer. To me, according to
experience with Wolfenstein 2004,it was very
important. What was required for this? For this
required in system work programs─
not with physical page numbers, but with
ordered. But I couldn’t organize
workflow. (ZXRar, ZXUnRar, pkunzip,
JPEG viewer and Pro Tracker will still help─
lived with each other - but this happened
only after 15 years.)
I expressed the following idea inACNews #35
- before writing a full-fledged commander under
FAT32 support the screw as TR-DOS drive with
“hypertransitions” (by that time I didn’t care─
gave a screw controller, and in January 2005 I
wroteHDDoctor).This idea is immediately outdated
after the appearance of DNA OS,but support
TR-DOS at the virtual file system level─
themes were then reflected in NedoLang
and in the kernel NedoOS. Surprisingly, in ANSI
viewer,ZXUnRar,pkunzip and JPEG viewerlike this
the approach was not visible, it was not in
ZXRar. But ZXRar is a different story, and I
I regret that I started writing it specifically for
128K.There is absolutely no room left for the holes─
small code, it's just noodles, understand it─
after many years it is almost impossible.
At the same time, I thought through the ideology of the editor─
text of arbitrary length (and
did not implement) and the concept of the keyboard driver─
tures with processing upon pressing and boo─
event pher. This driver is in December2004
got into ACEdit v0.89 and turned out to be such a success─
We know that later he went to TFM Instrument
Editor, and then into the kernel NedoOS - too.
I carefully studied the systemDNA OSand
kept his finger on her pulse the whole time. B2005
year I added a save thereTRD,so
that the system has become my working tool─
volume on Pentagon 1024 and on ATM-Turbo 2+,
which was also given to me. I'm sometimes underwhelmed─
laughedATM-Turboin programs, but with inspiration─
I got hooked on this system only when I saw
its graphics in color per point. In October
2005I learned to program this
graphics and usingKSA-7GandJohn Sil─
ver' soldered a similar circuit 16col for Penta─
gon. It didn't reach MPEG video, but it's over
years ago I already played a movie in color on
point from the CD, and in January we
Shiru ported the game to the Spectrum Time
Gal. But it turned out that it turned out to be
the only CD game for the Spectrum. After all
It was already2006year.
It was2006year. AfterChaos Constructions
2004 depression on the platform was obvious:
serious games and demos disappeared, the only one─
The new outlet was thatCHRVandKOEbecame
produce new boards and something else better─
competition "Your game" was running.Also addressed
Please note thatMaksagorwith a group of comrades
wrote some wunders that were incomprehensible to me then─
waffles onCP/MandiS-DOS (TASiS).Of them from
all I used was a CD copier,
and then only during developmentTime Gal.And in─
I have a question - how to avoid falling into such a trap─
shku, like an operating system that is needed
only to its authors? What should she do before?
put to the user? And I started writing
browser.
In January 2007 I had my first year
experience with MSX-DOS (port of the game Ball Quest under
MSX ). There I evaluated file operations, co─
which were not on TR-DOS,but I haven’t seen them yet
for yourself an operating system that does not
works from a regularTR-DOSdisk. This is vyg─
looked like a wall for a novice user─
body Back then I didn’t even know how to create
imageHDDwithFATfor the emulator. And most importantly -
I programmed inALASM,which means that
my sources were in TR-DOS format. I think
got burned out on this andVitaminwithChaOS.He has
The disk just ran out...
Share your thoughts about the article