╔───────────────────────────────╗
│ ─────── S Y S T E M ─────── │
╚───────────────────────────────╝
(C) Kotov A.V. (CAV Inc.)
(C) Music by Batsan Roman
So, dear readers, I will try to fill one gap in the publications for "Speccy" with this article, namely: I will make (in the manner of "Computerra") a small review of system programs that have recently (or long ago) come into my hands. I ask the authors of the programs not to be offended - I consider your creations from the perspective of an ordinary user.
────────────────────────────────
Free Format version 8.0
─────────────────────────
authors: K.Teterin, D.Vinogradov, R.Kogul (sorry if I made a mistake)
The program is a disk utility and includes the standard "gentleman's" set for such things, i.e. formatter, check and recovery. There are already quite a few such programs on the market, but this program is distinguished from similar ones by supporting not only TR-DOS disks but also MS-DOS (720K?) and iS-DOS, as well as having a disk/track analyzer, a function I have only seen in ADS 2.0.
Free Format implements the ability to set the track parameter table yourself, i.e. sector number, length, etc. It is possible to set the starting/ending track for any operation. When recovering a disk, you can specify the number of read/write attempts, auto-skip, and auto-ignore BAD sectors. You can interrupt the operation with the BREAK key.
The drawbacks of the program include:
1. This is the biggest drawback: during formatting (rather, after it), nothing is written to the system area of the disk, i.e. the disk becomes formatted but not initialized (those familiar with RT-11 know what follows from this), and this happens regardless of whether you set the parameters yourself or chose formatting for a specific system from the menu.
2. Lack of instructions. I mean, I haven't seen the instructions, maybe it existed.
In general, the program looks good and can be recommended for use, taking into account the aforementioned drawbacks.
The next program I will review can also be classified as disk utilities or "Useful things," as Evgeny Kozlovsky from ABF used to say.
NEXT-COPY v 1.0
───────────────
author: Titov Maxim
The program is a track copier (there's a lot in this word), but unlike the abyss of similar programs, it is made quite well, you could say beautifully.
As for the user interface, the program deserves all kinds of praise. Everything is clear even to a "beginner" (i.e. everything is in Russian), and even the description file is unnecessary (though it doesn't exist). The program copies not only old TR-DOS but also iS-DOS disks and MS-DOS disks (DS/DD), and it is possible to enable formatting of the receiving disk. (Ah! I remember I had a program, DTC v2.x, which also copied TR-DOS, iS-DOS, but before that, the receiving disk had to be formatted (for example, for iS-DOS), the copying speed is average, there was a process indicator, but one for both operations, which is not very convenient. In general, the program is very good, and it could be recommended to people copying iS-DOS disks (only for themselves), (it is unclear who would need a track copier for MS-DOS).
The next program also belongs to the category of track copiers.
X-COPY v 1.1
────────────
authors: Eldar Agaev and Andrey Isaev
Let the authors not be offended by me, but when I saw this program, I remembered a similar system by Rodionov, but this program has differences (quite significant): an interface from 1990-92 (remember that slanted font, those lines at the top of the screen), but that’s all nonsense. The main advantage of the program is the volume and speed at which it reads information from the disk: 28 tracks in 4-5 seconds (not bad), writes slightly slower, recording on multiple disks is possible (as in Rodionov's copier), but this program has a small drawback: it works normally only with TEAC and ROBOTRON drives (and similar ones). On my MS 5313, it did not write anything. Comment from CHASM: As far as I understand, this program was made in imitation of the wonderful disk utility X-COPY, implemented on the AMIGA computer. There, this program allows you to format, check, copy a disk, both completely and individual tracks, supporting up to 4 drives. In general, this program is a pale imitation of the program that was written and debugged over three years. And this one was most likely "slapped" together in a month at most.
I would like to wish the authors of this utility to make their products of higher quality, and if they are engaged in conversion - to bring them as close to the original form as possible.
Now let's move from copiers to the no less powerful brotherhood of disk databases, or rather databases for disks.
I will start the review with the most advanced system, in my opinion, (of those I have seen):
UNIVERSAL FILES CATALOG v 3.0
─────────────────────────────
author(s): Dreams Software inc.
Of the vast variety (or rather, chaos) of similar systems, I liked only two: DBD (author EVA) and the system we are going to discuss.
The program has a good window interface, the ability to choose management. It works similarly to most similar systems, i.e. it reads the disk catalog, assigns it a number, and enters it into its database. The program allows both sub-system viewing of the database and the entire catalog, and sorts it alphabetically, indicating the disk numbers next to each name (where it was first encountered). There is a standard operation in such systems to search for a file by name. Unfortunately, there is no possibility to make comments on files, but there is an option to unload the catalog as a file in text format (I have not seen that before). If you combine the capabilities of DBD and this program, you will get a top-class system!
System rating: excellent!
Recommended for widespread use.
Now I will move on to my favorite programs (in terms of direction). I will talk about various graphic gadgets, editors, etc. I will start this part of the review with a very cool program...
Sprite tools v 2.0
──────────────────
authors: Konstantin Afendikov and Vinogradov
Launching this program, one might think that this is another "sprite extractor." But after working with it a bit, you realize how wrong you were. I have seen many programs for "extracting" sprites: both the old SCE v 1.0, and Image, and FDE, and a bunch of such things, but Sprite tools is cooler than all of them combined. This is the first editor with cool service, although it only works on 128 kilobyte machines.
So, I will describe some of the program's capabilities:
The program allows you to "extract" sprites (including with a mask), screens, fonts, or a piece of code (say, text), unload as a full-screen file (27 sectors), as a file without attributes. You can unload a sprite file in the format of the program SPRITE EDITOR v 1.0.
In general, Tools has its own decent editor for everything (by pixels) that can be seen in it. The program even allows you to extract any piece you like from an IMG file (IBM format), but what pleasantly surprised me was the presence, in the memory dump viewing mode, of viewing in both Spectrum encoding and alternative IBM encoding. It is also nice to have a built-in disassembler (!), it would also be nice to have a BASIC block/program viewer (as done in FDE). The program has good documentation, where everything is clearly described. This is a big plus when evaluating the program. In addition, this program implements a mode that I encounter for the first time in similar programs, namely: animation mode. That is, if you find a sequence of sprites in memory, you can view their animation series, provided the sprites are of the same size.
In general, there is still much more to tell about Tools, but it is not worth doing (there's no need to repeat the description).
I would like to say a huge thank you to the authors for such excellent work.
The next program I will review is an editor, but not for sprites and screens, although it has a direct relation to graphics. I will talk about a vector (scalable) font editor.
I have long envied IBM users, as they had the opportunity to use vector fonts (I even wanted to make something similar on the Spectrum, and actually started doing it until I saw one program, and its name is...)
Font Maker v 2.4
────────────────
author: Yakunin A.E.
What does this system represent? The ability to edit and create your own font. Moreover, the choice of which character to work with is possible both by the ASCII code of the character and by selection on the keyboard: for example, you press the 'A' key and the image of the letter 'A' appears or does not appear - when creating a new set).
In the editor, you can view the created set, "play" with the character (scale, set different styles of the character, etc.), make a DEMO inscription with the formed set.
In general, the editor is very good, only with..., damn, it slipped out... This is regarding the documentation, or rather, the lack thereof (whose fault it is, I do not know: either the author's or the hacker's). The lack of documentation is a big letdown for users. Take, for example, the R.S.T program distributed by "Inforcom." It has both a description and a text procedure for working with R.S.T files, everything is good, everything is clear. And here - #@$%&%$#@. Well, I will still try to extract all the information (i.e. the printing procedure, the file format) and only because I need it, and after all, someone might just give up and not dig into the program. If there are those interested, I can share the information.
A message to the author: - Dude, your program's exit is strangely designed in... Honestly, I have never seen anything like this before.
And I also have a few words for the pirates: - Damn, guys, if you steal something, at least steal it whole.
If we ignore the lack of description and strange English, then the program is quite good and can be used.
P.S. Perhaps in the next issue of the magazine, you will see more detailed information about the Font Maker program.
Let's continue the conversation about new programs, a system for musicians. Undoubtedly, this program will appeal to them (although...)
DIGITAL STUDIO (tm) v 1.12
────────────────────────────
authors: Underground systems
The program is a music editor, but not a simple one, rather, with digitized music, or rather, with digitized instruments. DIGITAL STUDIO is very different from Instrumet and Sampler, although, as it has become known from reliable sources, their player is the same (or rather, very similar). This system works well on computers with port #7FFD decryption implemented both on the branded Speccy, i.e. through #FD, so the owners of ATM v 1.0 and Scorpions can only envy the owners of the much-maligned Pentagon. In general, it is a pity that Pentagon is criticized (I mean not Pentagon 777, that one is indeed a lousy machine). All programs run on my Pentagon, and ALL digitizations and multicolor look normal, and programs with the most "wild" page switching work (like OUT(#0D),A). Well, okay, I got a bit distracted... What are the main differences of DIGITAL from, say, Sampler?
The main difference is in everything, i.e. in DIGITAL there are 16 instruments instead of five Sampler instruments, a more convenient interface, the ability to create patterns of different lengths, 99 positions, not very well written documentation, a COMPILER (which was sorely lacking in Sampler) and a lot of other things. Together with the editor, you can buy (or not take) 520 instruments (or you can transfer them yourself from IBM or AMIGA). The quality of the music produced in DIGITAL is quite acceptable (i.e. good, it can be confused with a tape recorder, especially when some techno is playing). Rating: very, very good.
* * *
(C) Fedorov "Chasm" Vladimir
╔─────────────────────────────────╗
│ Compressors │
│ ─────────────────────────────── │
│ What is it and why are they needed │
╚─────────────────────────────────╝
I want to say right away that this article will not cover the issues of writing compression algorithms, but will be devoted to an overview of various types of compressors and a brief description of their operation.
Before starting the description of the compressors themselves, I would like to make a small excursion into history and tell you how I came to understand what compressors are and why they are needed. So...
If you ever had a "cassette" Spectrum, then you probably still remember those "sweet" sounds that your tape recorder made during loading. At a time when the computer was intently swallowing information, you had to just stare at the splash screen and pray to God that when this exhausting operation was over, the message "Tape loading error" would not appear on the screen.
At that time, I was just beginning to master BASIC, and machine codes were a "dark forest" for me. So, I was sitting one day, loading games and scratching my head over the obvious question: why does this ancient game from 1983 have a volume of 45 kilobytes and loads for about five minutes, while a new game at that time "Navy moves" takes just over 30 kilobytes and loads, accordingly, faster? I found the answer to this question much later when I started hacking loaders and games, struggling with the eternal childhood question: "What do they have inside?" Soon I began to notice one pattern - in those games where the volume of the loaded code was smaller, before RANDOMIZE, which starts the game itself, there was always another RANDOMIZE, and when I called this one, at first glance, nothing happened and the program happily returned to BASIC.
At that time, a lot of games circulated through our vast, then still Soviet, country, in which there were no infinite lives and other cheats. But books like "Eternal Life in 600 Games" had already begun to be published. In these publications, it was strongly recommended to insert POKE before the last RANDOMIZE, i.e. directly before starting the game. I began to wonder: "Why is it necessary to do this exactly this way and not some other way?" And soon I discovered the following: before the launch of the penultimate RANDOMIZE, the program in memory occupied exactly as much space as was indicated in the header of the code block, but after calling this RANDOMIZE, the program began to occupy all free memory. Thus, by the method of "scientific poking," I established that the code block in these games had been processed by a compressor. And even then I understood that this contained advantages: firstly, the program took up much less space on the medium (tape), and secondly, it loaded faster, which, in principle, can be considered a consequence of the first.
At that time, I also came across splash screens that instead of the standard length of 6912 bytes had a much shorter length, but here I immediately understood what was going on and, drawing a parallel between code blocks, concluded that there are compressors for screen files in the world.
In those distant times, a user of a "cassette" Spectrum (as well as now) had only the necessary minimum of system and application programs (assembler, monitor, and a couple of editors). There was no talk of compressors then. I encountered them only when I acquired my first disk computer.
At that time, SHRSOFT often rummaged through computer press and once found in the magazine "ZX+another" (it's a pity that only one issue of this wonderful publication was released) a dump of the compressor "Ram Packer," written by DJS (Dmitry Yurievich Stepanenko), for compressing the memory area located above RamTop. At that time, our joy knew no bounds, and we began to "pack" everything that came our way. But the decompressor of this program had a very unpleasant feature: it was located in the printer buffer and on machines with 128 kilobytes of memory or more, it would cause a reset during its operation. At that time I had a 48 machine, although with a disk drive. Therefore, I was unaware of this feature of the compressor. Much later, I encountered this problem, and after getting more acquainted with the operation of the decompressor, I found out that it was optimal to store it from address 23500 - the reset of 128-kilobyte machines does not occur.
Some time later, the same SHRSOFT found in the Polish magazine "Bajtek" a dump of the screen compressor "Screen Compressor," written by the MICROPOL group from Poland. After loading it from there and getting it to work (while remembering the "Bajtek" editorial staff with unkind words), SHRSOFT made a shell for it based on the windows extracted from Pete Cook's programs and released it under the name "Screen Compressor Plus v3.2". This compressor has the option to choose from four compression methods for the screen, allowing for the selection of the optimal one for use.
But the biggest contribution to the development of compressors on the ZX-Spectrum was made by Andrey Sendetsky (Andrew Strikes Code (ASC)). This remarkable programmer released a set of compressors based on the LZPAC method: the screen compressor "ASC Screen Cra-sher" and for compressing code blocks "ASC LZPAC". These compressors are distinguished by quite fast operation of the decompressors and a very effective packing algorithm, which favorably distinguishes them from other compressors. The transferability of the screen decompressor (the ability to load the compressed screen at any address) and the flexibility of parameter settings in "ASC LZPAC" make these programs universal and indispensable in work.
I would also like to mention another package of compressors - "ZXZIP" and "ZXUNZIP". These compressors are intended for compressing not code blocks or screens, but for compressing individual files or their groups (in IBM terms, this is called archiving). This is very useful when you have many programs that you don't want to delete, but there are no free disks to record them. However, this compressor has three significant drawbacks:
1. Very low speed of compression and decompression (to pack a disk, it takes about three to four hours, and correspondingly, to restore all packed files takes about the same time).
2. The compressor practically does not compress files processed by other compressors; for example, a file processed by LZPAC, after being compressed by ZXZIP, took up even more space.
3. After decompressing BASIC files, the decompressor does not restore the auto-start.
Personally, I think that for these three reasons, you should not use this package of programs, although it may be of some interest to collectors.
Now I would like to give a brief description of the compressors you can find in the city of Rybinsk.
RAM-PACKER
────────────────────────────────────
Author: Dmitry Yurievich Stepanenko (DJS) '90
This compressor is a block of codes that loads into the screen at address 16384. The procedure for working with it is as follows:
1. A CLEAR command is set from BASIC.
2. A code block for compression is loaded above RamTop, the compressor itself is in the screen.
3. The compressor is launched from address 16384.
After the compressor has worked, you will see the following information: (let's assume, CLEAR was set to 25000 and a code block was loaded from address 25500, with a length of 12900 bytes)
START ADDRESS: 25001
END ADDRESS: 65535
PACKED LEN: 4695
UNPACKER: 23296, 35
You should unload two code blocks:
the first - from address 25001, length 4695 and the other - from address 23296, length 35. The first file is the packed block, the second is the decompressor, which should be loaded at address 23500 or any other below RamTop. The packed block is loaded at the unloading address. After loading both code blocks (don't forget to set RamTop with the CLEAR command), unpack your program by addressing the decompressor at the loading address.
─────────────────────
SCREEN COMPRESSOR PLUS v3.2
─────────────────────────────
Author: MICROPOL 1989
Service: SHRSOFT 1992
After loading the program, you will see the following menu:
CATALOGUE - disk catalog.
LOAD SCREEN - load screen.
SAVE SCREEN - save packed block.
CHANGE DRIVE - change disk drive (not implemented in this version).
COMPRESSION - after selecting this item, you will see four lines showing the efficiency of all four compression methods in numerical form (length in bytes). You can choose the most suitable one.
VIEW SCREEN - view compressed screen.
WHO IS AUTOR - information about the authors.
QUIT PROGRAM - reset to 48 kB mode.
─────────────────────
ASC SCREEN CRASHER
────────────────────
Author: Andrey Sendetsky (ASC) 1991
After loading the program, you will see the following menu:
LOAD DISK FILE - load file from disk.
COMPRESSION - compress screen.
SAVE TO DISK - unload file to disk.
DECOMPRESSION - used to decompress an already compressed file. The compressor allows loading a file compressed by another compressor. This option converts that file to the standard screen format.
VIEW SCREEN - view screen.
TAPE'S BLOCK - load file without header from tape.
READ CATALOG - read disk catalog.
EXIT TO TR-DOS - exit to TR-DOS.
Navigation through this menu is done with the LEFT-RIGHT cursor keys. Navigation through the catalog is done with the UP-DOWN cursor keys.
─────────────────────
ASC LZPAC v4.5
────────────────
Author: Andrey Sendetsky (ASC) 1991
After loading the program, you will be able to set the compressor's operating parameters by changing their values, which will be printed in the command line:
LOAD DISK FILE (no)> enter the name of the file to be loaded from disk. If you press ENTER - it will proceed to the next item.
LOAD TAPE FILE AT (no)> enter the address for loading a file without header from tape.
COMPRESSION FROM (disk)> enter the address from which compression will be performed. When you press ENTER, compression will be performed from the loading address taken from the catalog.
COMPRESSION SIZE (disk)> enter the size of the memory block that will be compressed. When you press ENTER, the size will be taken from the catalog.
EXTRACTOR PLACE (23437)> address of the decompressor. Can be changed.
CODE KEEP PLACE (27000)> address for loading the compressed block. Can be changed.
OPTIONAL POKE @ (don't)> enter the address where you plan to change the value in the unpacked program.
If you entered the address, you will be asked to enter the value: OPTIONAL POKE VALUE (0)> enter the number you want to set at the previously entered address. When you press ENTER, it will enter 0.
AUTO-START ADDRES (no)> enter the address for the auto-start of your program after unpacking. If ENTER is pressed - there is no auto-start.
INTERRUPTS (EI/DI) (EI)> set the interrupt parameter: enabled/disabled. When you press ENTER after unpacking, interrupts are enabled.
SET NEW SP ON EXIT (no)> set a new stack pointer (SP) after unpacking the program. If ENTER is pressed, SP will not change.
After setting all the above parameters, the loading and compression of the code block occurs. Next, you will be prompted to enter the parameters for the unloading block of compressed codes. FITT CALL FILE (no)> enter the name of the file to attach to the compressed block of codes. The attached file must be relocatable and have a start address directly at the loading address. If you attach a file, its execution will occur before unpacking the main program, after which it will be lost. If you press ENTER, the file will not be attached. SAVE DISK FILE (no)> enter the name of the unloading block of compressed codes. This version of the compressor works only in 128 K mode, although, according to the author, there is also a version for 48 K.
─────────────────────
ZXZIP (ZXUNZIP) EXTRACT UTILITY v1.01
──────────────────────────────────────
Author: Mikhail Kondratiev (MI&DI Ltd) 1993
After loading the program, you will see the following menu:
ZIP FILE NAME - enter the name of the file that will be assigned to all compressed files
SOURCE:A - from which drive to read
DESTIN:A - to which drive to write
DIFF DISK (SAME DISK) - working with different disks, or with one (loading and unloading compressed blocks occurs on one disk)
READ CATALOG - reread the disk catalog
SELECT ALL - mark all files on the disk for compression
UNSELECT ALL - unmark all marked files
GO - in the ZXZIP program: compression. In ZXUNZIP: decompression of files
QUIT - exit to TR-DOS
Marking individual files is done with the SPACE key.
With that, allow me to conclude. Sincerely yours, Fedorov Vladimir Yurievich. Former HACKER FEDYA, now CHASM.
Editor's note: The last package was also tested by us. For the trial, a disk with the source files of the first release of ADVENTURER was compressed (999 sectors, 255744 bytes; texts and screens were compressed). The results are as follows: total archive length 769 sectors, archiving time 1.5 hours...
Comments are unnecessary.
* * *
Contents of the publication: Adventurer #02
- Guests
Interview with SURDAKAR GROUP discussing their origins, notable projects, and future plans in software and game development.
- Modifications for PENTAGON 128
The article presents modifications for the PENTAGON 128 computer, including a keyboard fix to prevent accidental key presses and a joystick improvement for multi-player gaming. It also describes a stereo DAC development for enhanced sound quality with the AY 8910 audio processor. The author encourages programmers to create software supporting this DAC.
- Interface
The article discusses the ongoing engagement and challenges faced by the Adventurer magazine team, particularly in fostering contributions from readers. It highlights the importance of clarity in language and communication for potential contributors. The piece also provides game tips for several ZX Spectrum titles, emphasizing community support and collaboration.
- Interface
The article discusses the role of hackers in the SPECCY community, highlighting their contributions to software development and maintenance. It contrasts ethical hackers with those who engage in software piracy, illustrating the importance of hackers for preserving the legacy of ZX Spectrum. Ultimately, the author defends the positive impact of hackers on the gaming scene.
- Novella
This article presents a sci-fi novella detailing an interstellar conflict where Earth faces a malevolent alien race. A skilled coordinator must navigate through alien territories using robots to secure resources and defeat enemies. The story highlights strategy and exploration in a galaxy fraught with danger.
- Review
The article reviews various games from CODEMASTERS and others, evaluating them based on graphics, sound, and playability. The review highlights the evolution of game quality and the significance of user feedback in shaping perceptions. Overall, the article emphasizes the ongoing development in the gaming landscape.
- Experience Exchange
The article discusses essential assembly programming procedures for ZX Spectrum, aimed at beginners. It outlines several crucial routines, including memory clearing, screen commands, and mathematical operations. The text provides practical examples to enhance understanding and application of assembly language in programming.
- Advertisements
Article presents advertisements and calls for collaboration in the ZX Spectrum community, inviting programmers, artists, and musicians to contribute. It highlights the acceptance of any ZX Spectrum-related materials, along with details on available software and hardware for sale. The issue emphasizes the importance of participation and partnership among enthusiasts.
- Presentation of ROBIN OF SHERLOCK Adventure Game
The article presents the adventure game ROBIN OF SHERLOCK by DELTA 4 SOFTWARE, emphasizing the need for a good command of English to fully appreciate its humor and dialogues. It highlights game mechanics, including item collection, character interaction, and the interconnectedness of game parts. The text also offers tips on navigating the game and solving crimes within its storyline.
- Presentation
Авторская презентация игры 'МИНЕР', аналог MINESWEEPER для ZX Spectrum, с подробным описанием игрового процесса и особенностей управления.
- System Overview for ZX Spectrum
Overview of various utility programs for ZX Spectrum, including disk utilities and graphic editors, discussing their features and shortcomings.