So - it started with the dinosaurs. The Germans, actually. They happened to be born - in the middle of a freezing January in 1963. And so there were four of us. Mum Růžena, a teacher at the secondary school, dad Ladislav, a clerk at Jednota, my brother Ladislav, 5 years older, and me.
I
was famous at birth, when they wrote about me and my mother in
the newspapers. :-)
My mother was not the typical strict mother, but a kind and caring mother. It was Dad who was the strict one, who sometimes gave her a few slaps. And my brother - he was my Big Brother, the caring Big Teacher. And I was the spoiled brat who was indulged and pampered. Mommy's daddy was a baker. We used to hear stories from Mom when, for example, she was carrying a loaf of bread to the oven, tripped and imprinted her knees in the bread. And then my grandfather broke the cooker on it.
My
grandmother always took care of me when my mother couldn't.
Lanzhot, my native village in the southernmost part of South Moravia, was actually not a village, but a township. I don't even know why. Our street used to be Souhrady and then Palacký, and I don't know why they renamed it either. I guess it was guilty of something against the new political system.
I
remember this picture. Mr. Photographer was there.
with
a lightning bolt on a stand and they kept asking me for something.
In front of our house there was a "Puddle"
("Luza" in Czech), a large area without puddles, but
probably once upon a time it used to be a pond, according to the
name. As a result, we used to have carousels right outside our
windows at feasts. I remember the craftsmen from Slovakia who
used to ride their bikes through here. For one thing, it was the
tinker who used to call out his usual "Wire it up, cloth the
pots!" and then the grinder who called out "Scissors!
Knives! I'm grinding!" And then there were the old gypsy
women going around offering willow brooms. They were not paid
with money, but with old worn-out clothes.
We had 2 huge walnut trees in front of the
house, just like everyone else on the street. They always smelled
wonderful, especially in the spring when the fat
caterpillar-looking blossoms fell off. I used to love those
drives home from school when the sun was shining and the nuts
smelled so good. There were always lots of nuts. But then one day
my father decided to cut down the nuts, saying they were shading
us. And all the neighbors followed him. From then on, the house
used to be hot in the summer and the street lost its charm,
especially when they paved the sidewalks and paved the road.
We had the first car in the street, a Skoda
1201 "estate car". Older. Dad often fixed it, but it
certainly contributed to my brother becoming a skilled mechanic
and plumber.
I've always been more into DIY or building
things. But strangely enough, I always looked forward to playing
with it after I built that complicated train track with
automatically controlled switches, for example. But the moment I
finished it, I stopped enjoying it. Probably a peculiarity of
designers - the main thing is the journey, solving some problem,
but then the result is no longer interesting.
My most important book in life was called
"Sholim, Me and Transistors", which I discovered in my
father's library. I implemented many of the experiments in the
book, but at first I didn't understand what they were doing with
the transistor, because that's what they called a pocket
transistor radio at that time. Until I understood that a
transistor was a component and not a radio. And in time I also
became the proud owner of the first two 102NU71s, bought in
Roznov at Sedlacek.
In retrospect, it strikes me that in
addition to building the various movers, blinkers, receivers and
interval wipers, I also tinkered with household appliances - and
my parents let me do it. I guess they trusted me a lot when I was
taking apart and assembling a home tube gramophone or tinkering
with our Anabela TV, and even energizing it. But even my dad was
a handyman - he remembered how he and a friend were rewiring some
military equipment for a transmitter and a friend came running up
to them and heard their "dude, it works!" on the radio.
There was generally a lot of trust and acceptance in our house.
It wasn't until time passed that I found out it wasn't so obvious
elsewhere. For example, I never got an allowance - my parents
always gave me whatever I needed because they knew I was thrifty
and wouldn't spend unnecessarily. On the other hand, they
encouraged me not to buy only the cheapest cafeteria lunches in
high school. Trust people - and they will become honest.
Roznov pod Radhostem became my attraction
because it meant the production of those wonderful semiconductor
electrical components. In 1977 I got into the national round of
the Integra competition, where we built our first amplifiers with
MDA2010 and got a package of magical semiconductor components. I
completely fell in love with Roznov and signed up for the
electronics career.
Then followed 4 years of grammar school in
Breclav and then 5 years at the electrical faculty of Brno
University of Technology, majoring in radio engineering. There I
met my wife, a builder, and in the last year of my studies we got
married. After school, in September 1986, I started working - and
where else but at Tesla Roznov. Just not to semiconductors, but
as a Robotron computer technician in the production of colour
screens.
I met my first computer in high school, at a
Svazarm day. It was a Sinclair ZX81. We admired this technical
marvel and especially the game "Cannon", which
consisted of shooting at a target at a given angle and speed. The
cannon was represented by black and white "cube
graphics", with output to a portable TV Merkur.
In Amateur Radio I came across a description
of an 8-bit Intel 8008 processor with a 14-bit bus. I devoured
the descriptions of the instructions and was mesmerized by the
possibilities of what such a single integrated circuit could do.
And I wished I could meet it.
I fell so far into microcomputer technology
that I started building my own microcomputer in college, based on
the 8-bit U880D processor (the East German equivalent of the
Z80), with the generous help of kit descriptions published in
Amateur Radio at the time. I designed most of the parts myself.
Especially the display card. Although it worked in black and
white character mode (MHB2114 static memory, ROM character
generator), it also allowed square pseudo-graphics. The memory
module was assembled from MHB4116 dynamic memories. I had the
transformer wound by a classmate at a plant. Unfortunately my
biggest snag was the printed circuit board bus, which got
corroded, so there were reliability issues. And also because I
used integrated circuit sockets instead of hard to find FRB
connectors. I made a membrane keyboard, out of stencil and photo
paper glued to the PCB.
When I managed to get the computer up and
running, it was just a "piece of bare metal". It had no
firmware to begin with, of course, so playing with it for the
first time meant connecting a series of Isostat switches to it
and first cramming a short boot program in binary code using DMA
transfer every time it was turned on. This introductory program
included a basic monitor program with keyboard and display
operation. Using this, I typed the boot program in HEX code on
the keyboard, which was used to pull the program from the tape
recorder. The data format was based on that of the then most
successful gaming computer, the ZX Spectrum. Writing the program
consisted of typing the program in HEX code (I had already
manually compiled the program on paper), typing the code to save
it to the tape recorder, and then saving the program to the tape
recorder.
After the first familiarization attempts I
already dared to write firmware for my "PC". I had 1 KB
PROM memory ready for it. At that time it was still unwashable,
hard to find and also expensive. That's why I had only one
attempt, which had to work. I went through the firmware program
over and over again looking for possible errors. Testing
beforehand was not possible. When I finished development, I
handed the source code to a classmate who burned it on his ZX
Spectrum. I inserted the PROM into the computer, turned it on -
and it actually worked, and even without error! It was possible
to write programs in HEX code, save them to the tape recorder,
and load them back.
My next "computer" was a TI-58C
calculator. My parents bought it for me at Tuzex when I was in
college, with vouchers for 4700 CZK (I wrote that I was pampered
and spoiled!). At the time, that meant two average salaries. I
had a lot of fun on the calculator and later wrote an emulator
for it in Peter, because I liked it a lot. What it could do back
then!
After graduating from college, I was
required to complete a year of mandatory military training. But
I was lucky. There was a Sharp MZ-821 computer purchased, which I
could play with in my spare time, and whose graphic capabilities
and hardware and software equipment captivated me. At first, we
played games on it, which my colleagues would get from God knows
where. Then I started writing my own programs in Basic. And
eventually I started to crack its internal code. Gradually, I
wrote out the contents of his monitor program and then the Basic
interpreter and some other programs and solved them. There was no
disassembler available, so I did everything from a HEX dump using
instruction tables, which soon became useless because I already
remembered the codes. I described many workbooks in this way with
processor instructions, the meaning of which I then deciphered
until it was clear what each part of the program did. Deciphering
someone else's finished programs always gave me the most
programming knowledge.
I became so familiar with the Sharp MZ-821
computer that I had to buy one immediately after my military
training. I drove around several towns and asked the Electro
stores if they had it. Finally I got it in Vsetín, although only
the version without the tape recorder, MZ-811, for 6800 CZK. I
remember, when I brought it home triumphantly and happily, the
disapproving and reproachful looks of my wife. I didn't
understand how she could not share the joy of such a wonderful
machine! I hooked the Sharp up to my beloved Grundig CN 510
tapedeck and have been feeding it with programs I brought back
from military training.
After returning from military training, I
continued at Tesla Roznov as a Robotron computer technician. I
was not attracted to large mainframe computers, I specialized in
peripherals based on 8-bit U880D processors. Again, the thirst
for knowledge prevailed, and soon I knew many devices not only in
terms of hardware, but also in terms of software and firmware.
These included the K6314 printers, the UBT and BDT terminals,
whose EEPOMs I disassembled. These included the K5120
microcomputers with the SIOS (internal binary code interpreter)
and SCPX (a variant of the CP/M system) operating systems.
Many new notebooks were filled with listings
of disassembled programs. The most interesting for me was the
SCPX system. I created a code back-translation program to help me
parse and trace programs to distinguish between code and data,
and to allow easy annotation of references and references.
I first saw an IBM PC series computer in
1988, when my boss called me in to advise him on how to use one.
It was a brand new Robotron XT 5 MHz with a 20 MB hard drive and
a black and green monitor. I showed him a few commands from the
CP/M environment (like DIR, TYPE and Ctrl+P) which, strangely
enough, also worked in DOS. The computer started to be used for
database systems, but also for games. Eventually I also started
to get into it and get familiar with PC programs.
After some time, several new PC-AT 12 MHz
computers with 40 MB hard disk (allegedly for 470 000 each) and
many floppy disks with software were purchased from Slusovice.
These were mostly English programs, which had been cleaned up in
the binary code and copyrighted by Slusovice. I also started to
use the PC extensively, besides my own software creation, as a
CAD station (OrCAD for schematics and Redboard for circuit
boards).
When working with PCs, there was a need to
facilitate file manipulation, which is what file managers were
used for. My favourite tools were the Ergo file manager and the
Context text editor. I wrote drivers for the Context editor to
support English and to work in both graphical and text mode, and
for the next few years I used it as a programming editor. The
Ergo file manager was eventually superseded by PCTools (PCShell)
and then replaced by the brilliant Norton Commander.
Soon the spectre of the software police and
the need to legalise software began to emerge. Software prices
were still unacceptable even for the enterprise at the time, so
the suggestion was made that I try to create a replacement for
the most widely used of the programs - Norton Commander. I gave
it a try, and so in 1990 the MNShell program was created, later
renamed DOS Manager. Its popularity in the company grew rapidly
until the idea of leaving my job and going into business came up.
The Rožnov company Golem, which was then dealing with the Hradba
protection system (used to protect against illegal copying of
programs), seized on this and offered me cooperation and their
rich business experience. And so I left my job and plunged into
the business sphere.
DOS
Manager was our main sales item.
By the way, I became acquainted with the
Golem company by the fact that they were looking for someone
through my boss to test the puncture resistance of their Hradba.
I kind of surprised them by breaking it. They didn't expect
someone to do such a detailed analysis with simulations to remove
the various layers of protection. But it allowed them to find the
weaknesses in the Hradba and improve it.
Along with the DOS Manager, a bunch of
single-purpose utilities (which eventually reached 250 in number,
all in assembly language) were developed and shipped with it.
Among the most interesting and popular was the Czech keyboard
driver, which in the mini version took up exactly 1 sector (512
bytes) on disk and 256 bytes in memory. The richer version
(CSKEY) included several layout variants and character sets
(including special features such as a frame generator) and was
distributed among people as shareware. I have received more than
one postal order from satisfied CSKEY users. The English driver
for the displays was also interesting. The mini version took 422
bytes on disk, 336 bytes in memory, and worked by direct access
to the hardware by synthetically adding diacritics to existing
characters.
I continued working on the DOS Manager
program (in assembler) and together with other members of Golem
we started to market it. The program was extremely successful.
There were many positive reviews in magazines. I remember the
1992 Invex exhibition, to which we brought 10 XT computers from
Novy Bor with colour monitors. We hung eight monitors on the
ceiling bracket of the booth, two computers remained as backups.
All the monitors were running color banners, especially for the
DOS Manager program. At that time, graphics on computers was just
developing, so these 16-color banners were very eye-catching to
all passersby.
The banners were created in Animator, a
program I developed for this purpose at the time. It was a
programming tool with its own language, mainly aimed at creating
animations. It allowed to work in graphic and text mode, and had
its own image format (including text mode images), which could be
obtained by scanning the programs screen. In addition to
handcuffs, I created, for example, the game Privatization in this
tool. Every year it created PF New Year animated cards, which
became quite popular.
Our
animated banners at Invex 1992 attracted a lot of attention.
As part of DOS Manager, the game Train was
created in 1993. It was just a little game, a development of the
idea of the game Snake. It had 50 scenes. My wife and I worked
together to devise and test the scenes. For some unfathomable
reason, the play Train became unexpectedly popular among people.
The
Train game has become unexpectedly popular.
Despite the success of DOS Manager, we began
to feel its shortcomings. The main shortcoming was the limitation
of the program to 64 KB, because it was compiled as a COM file.
This was convenient for the minimal complexity of the program,
but insufficient for the growing number of files in users'
directories. Also, it was no longer possible to add additional
features to the program. Therefore, in parallel with the
improvements to DOS Manager 1, version 2, compiled as an EXE
program, began to appear in 1992, with many new features (again
in assembly language).

Animator
was a programming tool for creating animations and games.
DOS Manager 2 had a lot of advantages, such
as the number of files in a directory limited only by the size of
the memory (around 10 thousand), file functions not only for
selected files, but also for files searched continuously on the
whole disk or in a directory, a disk editor, a text editor up to
250 MB, 3 modes of starting programs, a calendar from year 1, a
very accurate line calculator, long Windows names and many
others. Unfortunately, its development was not fast enough. The
first version was released in 1996, by which time Windows 95 had
already become a widespread system and interest in file managers
was rapidly declining. People were satisfied with Windows
Explorer. Therefore, DOS Manager 2 was not as successful on the
market as its predecessor, although qualitatively they were not
comparable.
The
first version of Peter was created in DOS.
Along with DOS Manager I also occasionally
worked with Animator as a graphical programming tool. At the
insistence of my then eight year old son, in 1996 I started
working on a new experiment - to create a programming tool for
children. I used my experience with Animator to create a DOS
interpreter of the program, based on Karel principles, with
enhanced capabilities, such as the ability to place arbitrary
icons on the fields of the board to display simple graphics. The
not-so-childlike robot Karel and his girlfriend Karla were soon
transformed into Peter Rabbit and Petra Rabbit, inspired by the
picture on his daughter's T-shirt and the then-airing series
"Peter Rabbit Stories". Later, Petra was replaced by
Lucy, due to easier name recognition in foreign languages.
Text-based program writing proved unacceptable for child users, so I started to study Windows programming as a necessary environment for the creation of the new file manager I was planning. Programming in assembly language under Windows seemed very interesting, but it was quite laborious and I did not yet know the Windows environment well enough to create in this style. The book "Mastering Delphi" changed everything. I was impressed by its clarity and clarity and started to delve into Windows programming in Delphi, supported by other Windows books (English documentation books from Microsoft). The first experiments with a Windows file manager began to emerge, and the first concept of a programming tool for children in a graphical environment appeared.
A small digression was the creation of a Windows version of Baltik, for SGP Systems, in the autumn of 1997. I took advantage of the experience of the upcoming version of Peter and adapted it to Baltik 3.0, and as a result Baltik was completed very soon. Due to time constraints, we did not adequately treat the contract in advance, and so not only did I never get paid for the work, but later, after the release of my own Petro, disputes over authorship arose, leading to comical situations where I was attacked in Bytes magazine for plagiarizing my own program Train (the popularized "rabbit case"). After all, Peter and I had become competitors of Baltik, and this provoked a backlash (ironically, I was competing with myself). But it had a positive result - I found out that this is not the way through Delphi.
I continued working on Peter, but abandoned Delphi because it was impossible to write a program efficiently enough, i.e. at a low enough level. I chose Microsoft VC++ because it "let me lower" into the system, which was quite essential for such a real-time program.
Initially I used MFC libraries, which I later abandoned because they were very limiting. After half a year of work, I started writing Peter practically again - but this time without MFC, just with the bare API. I was surprised to discover how much easier programming without MFC was. Many problems completely disappeared.
The basic requirement for Peter was to be fast enough. Therefore, right from the start I dropped the CRT core program and replaced everything with custom handlers. So the first step was to create an empty program that had 4 KB - i.e. just the EXE header and some internal variables that the compiler required and that are normally found in the CRT module. This was more difficult than I imagined, the compiler required a lot of things that were difficult to find out about because they are not normally documented. But in the end it worked.
One of the first things I built into Peter was a memory manager to replace the memory functions from the deleted CRT library. I knew from the Delphi and VC++ source code how their memory managers worked, and I knew they didn't work very efficiently. The memory manager I created was 15x faster than the VC++ manager and 4x faster than the Delphi manager in tests. It partitioned virtual memory into groups of memory blocks of the same size to the power of 2, linked together in a chain using links. I used this manager successfully in many other programs later on.
By the way - what about our company names? When I started my business, I chose the business name "Nemecek Software". Some of my first programs were created under this name. Then I teamed up with the Golem company, but we didn't want to mix products (they were creating their Castle), so we formed "Gema Soft", under which DOS Manager and my other programs were offered. And when Peter was created, it was such an important new product that we started a new company for it, "Gemtree Software". Gemtree was the name for some Australian bonsai, but we saw the similarity to Peter's tree structure - the icons on the branches of the tree structure are like gems on the branches of a tree.
Gemtree
Peter
One of the things that often surprised people about Peter is that it is an interpreter, because it is comparable in speed to compilers in many areas. The source code (in binary form) is also the executing code of the program. Each program is stored directly in an EXE file along with the interpeter, so that a program created in Petro can be run directly as a regular Windows executable without requiring any environment to be installed, and at the same time such a program can be opened in the Petro editor and the program can be browsed or edited.
I consider the most interesting part of Petro to be the 3D graphics. It's an area that I'm very interested in and have enjoyed creating. Peter internally handles the object management of the 3D world, all the matrix transformations, scene rendering, texture overlays. All of this is handled for DirectX 3 (where complex implementation buffers are used) to DirectX 8, and also for OpenGL interfaces. Peter makes sure that the programmer, as far as possible, doesn't have to worry about anything. He doesn't need to know what interface the program is running under (although he can specify this if he wants to), Peter blurs the distinction between interfaces. And it is more true here than elsewhere that a program in Peter is very fast, as demonstrated by the 3D games created in Peter.
Many games have been written in Peter, many of them winning Becherovka competitions (e.g. Bechtor, 13 Ghosts, Turbo Cars, Codename 236 and others), proving the quality of the Peter environment.
Despite our great enthusiasm for the cause, the market response to Peter has been small. Over time we came to the realization that there are very few creative people out there, most people are just consumers. On the other hand, there was tremendous interest in the programs created in Petro - especially the Desktop Games program, which became the absolute most downloaded program from our web site and spread avalanche-like all over the world (especially to the USA). The most popular game in our country was Ants, inspired by Arcomage from Might and Magic. Incidentally, Might and Magic 6 has become my all-time favorite game, I revisit it often, and it was the impetus for my venturing into 3D graphics programming.
The
train from 13 Ghosts.
Of course - freeware doesn't make anyone a living. For me, it meant getting a job in 2002 at Income in Prague (initially only for a while, but it turned out to be 20 years) and continuing to create my own work as a hobby. This also brought an advantage - I didn't have to worry about the marketability of my programs anymore and could make everything available as freeware. I was never really into money and doing something for profit, so that was a relief. Nevertheless, I believe that new interesting creations will continue to be made.
TexiGen
texture generator has become very popular.
The most popular of my later creations was TexiGen, a texture generator I made to create for photo banks. Photo bankers started using it heavily to populate photo banks with textures and other creations. In this case, it may have been a mistake to release the program as freeware, because after an initial upswing, the sales of my creations on photobanks quickly declined, due to other photobankers filling up their photobanks with TexiGen creations. As usual for me, I have once again created competition for myself.
For a couple of years I was involved in the creation of the Litos operating system. Until I realized that it was an impossible task for an individual. Mainly because by the time any part of it is implemented, it's already obsolete. But thanks to my Litos experience, I implemented an RTOS operating system for ARM processors, for my employer.
I
finished the Litos8 mini-system, but it was a rather useless
attempt.
There are still many plans I would like to implement. Hopefully there will be enough time for them. My biggest interest at the moment is the realization of various microcomputers and calculators. I'm moving back from the pure software engineering areas back to basting, like in my younger days. The skills and time are slowly dwindling, but the dreams are still big. I wish I had a longer day and more years to live. There is still so much to discover and play with!
Miroslav Nemecek
June 2022