Relatively recently, after reading the local article “
Demo, which no one has ever seen, ” he decided that it was also worth shedding light on some of the fruits of his programmer youth.
It started with this:

When I was in the beginning of 1996 as a first-year student and the owner of the computer "
Search ",
I got from my fellow student the wonderful book Faronov “Turbo Vision”, which interested me in object-oriented programming, and in Turbo Vision, in particular (everything was described as “tasty”)).
')
It is worth mentioning here that my PC (possessing 640 KB of RAM, a drive for 5.25 "720KB diskettes and a TV instead of a monitor)" did not pull "Turbo Pascal 6.0, which included the Turbo Vision library, and the text CGA mode emulation on The “search” was terrible - the characters could be, if memory serves, white / blue / pink on a black background, or black on a blue / pink / white background.
In short, I wrote my Turbo Vision graphical analogue under CGA graphics (320x240, 4 colors) on Turbo Pascal 5.5 with pieces of code on Turbo Assembler 2.5 (the trimmed set of this farm just fit on a 720Kb floppy disk).
Nuances of CGA-implementation:
- Graphics libraries are not used.
- All drawing is done through an intermediate buffer, in which each pixel corresponds to 1 byte (to eliminate flicker and increase drawing speed).
- Partially overlapping elements are drawn using a mask array (i.e., only unmasked parts of the image are displayed on the buffer).
To save memory, each element of the mask corresponded to a square of 4x4 screen pixels, respectively, the position and size of elements were multiples of 4th. - Homemade proportional raster font (standard in resolution 320x240 looked gigantic).
- Mouse emulation through the cursor keys of the digital block (there were no mice on the “Search”)).
At that time, my program could not boast of any usefulness, it was rather a “techno-demo”, which I boasted to my fellow students (the windows are being dragged, the buttons are pressed, the watch goes))
She looked exactly as in the first picture.
In the fall of 1996, my father bought (at the cost of great efforts: saving and borrowing dollars, thanks to him) a full-fledged computer (AMD 5x86-133, 4Mb RAM, S3 Trio64 1Mb video, 850Mb HDD, 14 "ARX monitor) to me.
Now you can use Borland Pascal 7.0, a mouse and 256-color SVGA modes.
Next implementation:
- used 256-color VESA-modes, for which UniVBE was installed - a VESA-video BIOS emulator (rare video cards had corresponding built-in support at that time);
- drawing large elements that do not fit entirely into the buffer, was conducted in horizontal stripes;
- drew a full-color mouse cursor, which flickered only if superimposed on the region being updated (i.e., flickered much less than in most graphic programs);
- got support for rendering 256-color images of BMP format;
- included some “ported” / “doped” to support graphics Turbo Vision sources.
In the subsequent period (until 1999), the above developments were used to write some program files.
The unfinished educational game for the computer science classroom at school:

Course work - a game about factories / raw materials / products and other "economic modeling":

The simplest under-editor of raster proportional fonts was implemented (before that there was only one small proportional font from the CGA version, you had to use a converted font with a fixed width of characters as a large font):

Laboratory work on statistical modeling:

Laba on logic programming:

Part of the lab on computer graphics:

As a result, by 1999 the following has accumulated:
- the raster regions were implemented to cut off the invisible areas when drawing, as a result of which restrictions on the size / position of elements were eliminated (I also wanted to make visible elements of arbitrary shape based on the regions, but this was not done);
- implementation of the Floyd-Stenberg algorithm for adapting the loaded images to the fixed palette used (the 8-bit color had the format RRRGGGBB, i.e., 3 bits were allocated to the intensity of the red and green components, 2 bits were allocated to the blue);
- some standard controls were “ported” (list, drop-down list, file selection dialog boxes, etc.);
- ability to display / edit labels (implementation of TGrid)
- due to the increase in available memory and the “victorious march” of Windows 9x, interest in DOS programs was gradually lost.
In preparation for the article, I wanted to see how my DOS graphic WVision would look in FullHD resolution, but, unfortunately, I did not find the VESA code for the 1920x1080x8 mode. Only 1280x1024 was able to be set, took a screenshot (that's just habrastorage stung him to 800x640, while increasing the file size by almost 6 times)):

Sources and working exe-files are available in the
WORKS.7z archive
(only the source code of the CGA implementation was lost somewhere on the five-inch floppy disks, only the executable file windy0.exe remained).
Minimum requirements to run: 386-compatible processor, 640KB of RAM, 512KB of video memory, VESA support from the video BIOS (windy0.exe will go to 8086 with CGA graphics).