ZX/IBM EDITOR v1.0 (1.5D)
══════════════════════════════════════════
Have you ever had to use a computer as a typewriter? NO?! Turn off the computer immediately!!! Everything written below is not for you!
.......!!!! ......!!! .......!! .......!
Well, now only those who have faced the problem of entering text into a computer are reading us. If you are still a novice in our field, you might be interested to know that a great many programs - editors have been created for THIS purpose. Until recently, we (the authors of this text) had a popular editor that is part of the Is-DOS basic package. It has many advantages, but one serious drawback - it only works in the Is-DOS environment, i.e., to start working with it, you must first launch Is-DOS itself. But now we are not talking about it.
We present to your attention a new editor (it was written at the end of 1993, but appeared on the software market quite recently) that possesses almost all the advantages of the Is-DOS editor, except one - it cannot format text. But if you are not involved in publishing newspapers, magazines, etc., well, in general, if you do not need to format text very beautifully, then you do not need to format it, which means that for you this editor has no drawbacks at all.
Although owners of several drives will be slightly disappointed - the editor only works with the CURRENT drive. Thanks to the author for this - some "hard" tie their programs to drive "A", forgetting that the number of drives a user has is their personal business, not the author's.
Yes, we forgot, it runs directly from TRDOS, has full ASCII encoding (as in IBM and Is-DOS), and is designed according to the best standards of shell editors C, PASCAL for IBM.
Who is he? His name is "ZX/IBM Text Editor". He was written by Oleg Khokhlov.
And we - the group "STARS OF KELADAN" - will now tell you how to work with it.
So.
The entire screen can be divided vertically into three zones: menu line, information line, editable text area.
Where do we start? Alright, let’s start with the menu.
Working with the menu.
Working with the menu (even if you have never done this before) is very simple: use the "up", "down", "left", "right" keys to move the cursor (a rectangle of inverse color), and press the "ENTER" key to select the item you like. You can make it even simpler: in the name of each item, there is at least one capital letter - this is the key letter; if you press the key with that letter, you will immediately select that item. For example, the item "File" - if you press the "F" key, it will be the same as moving the cursor to it and pressing "ENTER". Now, about the menu itself. In it, you will find five items:
- File - working with files:
- Edit - switch to editor mode:
- Pribt - working with the printer:
- SetUp - settings:
- Ibfo - information.
Now, in order:
1. File - working with files.
This is essentially the gateway to an "other world" for texts. With its help, you can perform dizzying tricks with your texts.
There are eight such tricks:
- Save - save the current text to a file with the desired name; if such a file already existed, it is automatically overwritten:
- Load - read text from the disk; the current text is DESTROYED:
- Catalogue - view the disk catalog:
- New - create a new text, DESTROYING the current one:
- save Block - save the selected block to a file with the desired name:
- Merge - merge the current text with text from a file:
- Erase file - delete the file you need from the disk:
- Quit - exit the editor; however, this item "glitches", so it’s better to use the "RESET" button.
2. Edit - editing mode.
If you select this item or simply press "SPACE" (for IBM experts - this wonderful key acts as "ESC", i.e., this is the "EXIT, CANCEL" key), you will enter the text editing mode. We will tell you about it a little later.
3. Pribt - working with the printer.
- Pribt text - print the entire text:
- pribt Block - print the selected block:
- page Size - set the page size, i.e., how many lines fit on a page.
4. SetUp - settings.
This item offers you to choose the editor's operating mode:
- EOLN code - select line separator:
- Compress - enable (ON) and disable (OFF) text compression:
- Driver - select the type of print driver, internal (Ibside) or user (User's).
Do you know what a line separator is and what types there are? Let us explain. A line separator is one or two bytes that indicate that the current line has ended and the next character belongs to another. The separator in "ZX/IBM Editor" can be of two types: "CR" - carriage return, one byte #D (just like in Is-DOS); "CR/LF" - carriage return + line feed, two bytes #D,#A (and this is like in IBM, which is why it is "ZX/IBM"). If you write your text exclusively on (and for) ZX-SPECTRUM, it is better to set "CR" - it will take up less space. And if you are targeting IBM, then "CR/LF". However, if you need to change the separator in an already finished text, change it in "SetUp", then "run" the cursor over all lines of text (from bottom to top or from top to bottom, but not along the length of the line) - the separator will be replaced.
If you enable (ON) text compression, the editor "squeezes" repeated spaces, resulting in the text taking up less volume, while the text looks quite normal externally (the editor outputs compressed lines in a "digestible" form).
But, woe to you if you later disable (OFF) compression - the editor cannot decompress previously compressed text yet, and you just disabled the internal transformation "compression-decompression", resulting in a mixture of your text and control bytes appearing on the screen. And in general, why is this compression needed? We never use it, and we do not recommend it to you.
A little about the printer driver. In the absence of the latter (the printer), we cannot guarantee that everything below is pure TRUTH. But as hackers, we can give you some of our thoughts on this matter (we have thoroughly researched the printing procedure).
First. The user (User's) driver must be located at address #5B03 (23299) and occupy no more than 252 bytes (which is quite sufficient). If it is not there, then when printing you will be in for a surprise - either a complete "hang" of the computer, or all sorts of "nonsense".
Secondly. The internal (Ibside) driver. For some reason, it first calls procedure #5B01 (23297), the consequences are the same (surprise), and only after that does it start the actual printing. Once again, we apologize for our ignorance, but someone may understand which printer the internal driver works with, and we will only report what we understood:
- printing information (the next character) is "thrown" into port #3F (63):
- port #5F (95) is a bidirectional control/monitoring port. When reading, the 4th bit - 1 - busy, printing is in progress, 0 - printer is ready; 5th bit - 0 - printing error (no paper) or printer not connected, 1 - accordingly - "order".
Writing. It is completely unclear - immediately after printing a character, a zero is "thrown" into this port, then a one.
[During the preparation of the issue, we finally found out what this printer interface is. It is the CENTRONICS interface (parallel port), built on the KPS8OBB55 chip. In this case, sequentially writing zero and one to port #5F generates a print strobe pulse. Port #7F - printer activation.]
5. Ibfo - information. Here you will see the program name - "ZX/IBM Editor", its version (ours is 1.0), the author, and ... "Text Length" - the current length of the text (including separator bytes), and "Free Space" - the amount of free space for text.
Well, it seems we have figured out the menu.
Information line.
Here everything is quite simple. If you look from left to right, you will see:
- the current alphabet, "Rus" - Russian, "Lat" - Latin (including English):
- character size, "Lock" - lowercase, "Caps" - uppercase.
If you have enabled the pseudographics mode, instead of the two previous inscriptions, it will simply say "Graphics".
- editing mode, "Ibsert" - insertion of a new character with line shifting, "" - overlaying a new character on the old one, destroying the latter:
- decimal code of the character at which the cursor is "standing" (for owners of color monitors: code - red digits):
- "Line xxx" - number of the current line:
- "Col xx" - cursor position number in the line.
Well, that's all for this.
Editable text area.
Unfortunately, without knowing everything outlined above, it would be very difficult (if at all possible) for you to edit text properly, which is why we only now start describing the editing process itself.
So. If you have loaded text, or selected "New" and entered editing mode, the first thing you will see on the screen is some blinking "sikildu" - this is the cursor, your indispensable assistant and partner. It indicates where the desired character will be inserted. You can move it using the "left", "right", "up", "down" keys.
And since we are talking about keys, let me tell you about them:
- "EDIT" - switch alphabets: Russian/Latin:
- "CAPS LOCK" - switch lowercase/uppercase letters:
- "DELETE" - delete one character TO THE LEFT of the cursor:
- "GRAPH" - delete one character TO THE RIGHT of the cursor; with this key, you can also shift lines (practice this, it will come in handy):
- "TRUE VIDEO" - page forward, to the end of the text:
- "INV.VIDEO" - page back, to the beginning of the text:
- "EXT.MODE" - enter command mode; the information line will display "Command:"; we will say a little below about the keys in this mode:
- "ENTER" - line shifting (a new line appears below the current one) and moving all characters to the right of the cursor (if there are any) to the new line; if the Insert mode is off, there will be no shifting:
- "SS/Q" - to the beginning of the line:
- "SS/W" - enable/disable insert mode (Insert):
- "SS/E" - to the end of the line:
- "SS/Space" - exit to the menu; to get back to the editor, you need to select the corresponding item (see above) or press the "Space" key:
- "CS/Space" - to the beginning of the next word located one line above (!), a rather confusing action, meaning that the cursor in the current line is positioned at the point where the next word begins on the previous line: now it’s clear? If not, experiment - you will understand. It seems this is an author's mistake; all actions should be performed in the current line.
Now, the command mode keys:
- digits 0..9 - enter the character code, i.e., this is entering a character not by pressing the corresponding key, but by entering its code:
- "up" arrow - go to the beginning of the entire text:
- "down" arrow - go to the end of the text:
- "L" - DELETE the current line:
- "J" - go to the line with the desired number, "Line Number" - line number:
- "G" - enable/disable pseudographics mode; by the way, IBM pseudographics, not SPECTRUM (remember: faces, frames, corners, etc.; and if you don’t remember, you will find out yourself):
- "S" - search (Search) for a sequence of characters, "Not Found" - such a fragment is not found:
- "R" - replace (Replace) one fragment with another:
- "B" - mark the beginning of a block:
- "E" - mark the end of a block:
- "Q" - unmark the block, remove the mark:
- "C" - copy the block to the cursor position:
- "M" - move the block to the cursor position, i.e., copy and destroy the old one:
- "D" - delete the block:
- any other key - display help (HELP) on the above keys in English.
Now a little about the Russian alphabet. Since there are a few more letters in the Russian language than in English, some letters can be obtained by pressing "SYMB.SHIFT" + some key. In general, the Russian letters are arranged according to the "QWERTY" standard, oh, sorry, "ЯВЕРТЫ", and if you have worked in Is-DOS, you will easily master them; moreover, you will be pleasantly surprised - you can enter digits without switching to the Latin alphabet. For others, we provide the correspondence of keys and Russian letters (lowercase, uppercase - the same, but in "CAPS" mode or with the "CAPS.SHIFT" key):
а - A и - I р - R ш - SS/F
б - B й - J с - S щ - SS/G
в - W к - K т - T ъ - SS/D
г - G л - L у - U ы - Y
д - D м - M ф - F ь - X
е - E н - N х - H э - SS/S
ж - V о - O ц - C ю - SS/X
з - Z п - P ч - SS/A я - Q
[SS - "SYMBOL SHIFT" key]
If you are entering text with far-reaching plans (to use it in your program or something like that), it will be useful for you to know that Russian characters occupy the area of national fonts in the ASCII table (ACKUU, not АCЦ-2!!) i.e., they have a code greater than decimal 127.
Well, that’s about it. Happy working and good and literate (very relevant) texts.
P.S. During the preparation of the issue, we were still "touched" (after all, we are human too!) by multi-drive chauvinism - we began adapting the editor for several drives. The result of our labors we present to you (esteemed owners of N drives, don’t "get carried away") as version 1.5D.
And now a bit of "dark stuff". It turns out v1.0 (the one we wanted to include in our issue and which we described above) is not the version of the program at all, it is one of the STAGES OF DEVELOPMENT of the first version!!! We found out that there is a procedure for printing the disk catalog in the program (!!), but due to a debugging stub placed by the author, the catalog output occurs using the standard TR-DOS procedure. Moreover, the handling of "Quit" is "carelessly" executed (remember, we wrote above that exit does not work), or rather, the handling is not executed at all. And most importantly, the editor is also designed to work with MSDOS disks, but this is done so primitively (there is no possibility to work with subdirectories) that it is completely unclear how to work with these disks. In our opinion, it is better to work with MS-DOS disks through ISDOS.
After some thought, we made version 1.5D, which we present to you. Now instead of the "Quit" item (in the "File" submenu) there is the "mOre" item (the letter "O" is the key letter), which will allow you to access the second part of the "File" submenu. There you can exit to Basic (the "Basic" option, our "fixed" "Quit") or choose another drive (the "Change disk" option, purely our little addition), where you can then select a disk.
Additionally, we removed several stubs and now the disk catalog output will be practically the same as it was for MS-DOS (although, we confess, we changed it a bit; for example, we added exit by pressing the "Space" key between pages of the catalog): we put "stubs" for the printer driver in case the printer driver is not loaded (and it should be loaded by exiting to Basic from the editor).
Now 128K machine owners will have virtually no problems with the editor - it automatically switches the computer to pseudo 48K mode ("natural" 48K, but preserving 128K memory). And now you can calmly exit to Basic and return to the editor, the text is saved, and the computer does not "glitch".
P.P.S. Please, do not hit us. Nor on the head. Happy hunting for precise words.
══════════════════════════════════════════
* * * * *
Contents of the publication: Oberon #01
- Introduction
Introduction to the first issue of Oberon, a Samara electronic magazine by the STARS OF KELADAN group, intended as an alternative to SPECTROFON, focusing on programming professionalism.
- Scroll
Analysis of software issues in ZX Spectrum games featured in 'SPECTROFON', specifically 'SPACE CRUSADE' and 'REBEL STAR'. Discussion on the programs' faults, hacking attempts, and lack of testing. Critique of 'SPECTROFON' magazine's handling of software quality.
- Scroll
Description of the ZX/IBM Editor v1.0 with detailed analysis of its features, such as menu navigation, file operations, and text compression. Discusses compatibility with multiple disk drives and adaptation for 128K machines. Provides insights into limitations and updates made in version 1.5D.
- Review
The article discusses software available at ZX-Club, including detailed reviews of Animation 2.0, a package for creating simple commercials, and the game 'Country of Myths', a Dungeons & Dragons genre game. 'Insult Megademo' by Code Busters is highlighted for its music and video effects, with warnings about compatibility issues for certain computers. The piece stresses the importance of purchasing only properly tested software to avoid problems.
- Review
Analysis of software distributed by 'INFORCOM' highlights issues in programs like STS, TASM128, and VIRUS, criticizing their technical flaws and marketing claims. The article questions the quality and legality of these programs while offering alternative solutions. It reflects on the challenges in software development and distribution for ZX Spectrum.
- About Everything
Discussion of ZX Spectrum programs' tricks and bugs, mentioning user experiences and feedback, with special focus on games and technical challenges.
- Educational Program - Paul Atrides
Discussion on programming etiquette and the need for comprehensive knowledge beyond coding skills, with historical insights into computing.
- Hardware - Александр Королёв
The article discusses the attribute port #FF on Russian ZX Spectrum clones, its quirks, and potential issues with using Gromov's schematic. The author provides a revised version of the schematic, offering improvements for better compatibility. This technical note is aimed at enthusiasts who want to enhance their systems.