Computer Ports Quorum. The computers we choose

I have on my memory window a large pile of five-inch floppy disks from a computer that my parents gave me when I was three years old, and from which I could only get onto a PC at 14. This is Quorum-128, our Uralian Spectrum clone. The clone is quite interesting and significantly different from, for example, the Ural “Magik”. He worked with a tape recorder, like any other Spectrum, but when connecting the Quorum drive controller, it was not so easy to get it! - He knew how to work in OS CP / M-80. That's what I want to talk about this OS and its implementation on the Quorum today.

A bit of theory: Spectrum without CP / M

  Let's start by recalling the architecture of the classic Spectrum - to understand how different CP / M is from it. I apologize in advance for possible inaccuracies - all this was a very long time ago.

Spectrum-48 is assembled on a Z-80 processor with 8-bit registers and 16-bit addressing. The Spectrum had 16 Kbytes of ROM occupied by the interpreter of the BASIC dialect, which served simultaneously as the operating system for the machine; and 48 Kbytes of RAM, of which 6.75 Kbytes were taken up by video memory with a very specific addressing, into the device of which we are not going to go right now. The shared memory card looked something like this:

Of course, BASIC programs on a processor with a frequency of 3.5 MHz slowed down completely, and all normal dudes wrote in assembler then, and programs on BASIC usually played the role of a loader, which loads assembler modules from the cassette to the given addresses and transfers control to them. (Real boys and bootloaders had tricky assembler ones, but not the point.)

Spectrum-128, as you might guess, expanded the total RAM of the machine from 48 to 128 KB (and added the AY-3-8910 / 12 music coprocessor, which in the second half of the 90s was already a severe deficit, and in my Quorum it did not appear). But since the 128 Kbyte address bus didn’t fit into the 16-bit bus anymore, a special, not very convenient system was used: all the memory was divided into 8 banks of 16 Kbytes, and any one could “imprint” any upper 16 Kbyte address space (0xC000-0xFFFF) from these 8 banks, outputting a special value to port 0x7FFD. (Yes, the memory areas 0x4000-0x7FFF and 0x8000-0xBFFF were also ordinary memory banks - I don’t remember the numbers now - and in 0xC000-0xFFFF it was possible to mirror them.) In addition, there were two ROM banks in the Spectrum-128 - with a classic interpreter BASIC, and with a more advanced one, in which the line editor was changed to a primitive full-screen, and the functions of BASIC itself and the OS were separated - a simple menu system was added, thanks to which it was possible to enable booting from the tape without going to BASIC and not typing sacred LOAD there "" :)

Finally, there were a number of different drive controllers for the Spectrum, of which the Beta Disk Interface became the most popular (and the only one used in Russian clones of the Spectrum). He added another bank of ROMs to the Spectrum, which turned on in hardware instead of the usual one and seized control when switching to the addresses 0x3D00-0x3FFF, if I was not mistaken. The controller ROM contained a very primitive disk operating system TR-DOS, which worked with 640 KB floppy disks and was controlled by commands similar to BASIC commands. The controller also had a special Magic Button, when pressed, a full memory dump was written to the disk (48 Kbytes - I did not know about Spectrum-128). This allowed, instead of making a full adaptation of the Spectrum programs and games to the drive, simply load the program from the tape, press the button and reset it to disk. Then you could already boot it from a floppy disk. Of course, if the program had, for example, a save and write function, then they continued to work with the tape, but overall it was very convenient.

Operating System CP / M-80

The CP / M-80 was developed for machines powered by Intel i8080 processors and its compatible Zilog Z-80s by Digital Research in the 1970s. CP / M stands for Control Program for Microcomputers; The suffix -80 officially appeared in the name only when CP / M-86 appeared for PC and 8088/8086 processors. Before the PC quickly began to gain popularity, the niche of personal, relatively low-power computers was occupied precisely by machines with CP / M-80.

CP / M-80 was one of the first operating systems in the modern sense. It was in it that such a feature as the abstraction of programs from physical equipment appeared, and this was the reason for its (relative) popularity. CP / M-80 consisted of three memory modules: CCP (Console Command Processor - primitive command interpreter), BDOS (Basic Disk Operating System - implementation of system calls) and BIOS (Basic Input / Output System - drivers of standard devices: disk, console, printer, and serial interface). When porting CP / M to a new machine, only the BIOS had to be rewritten; CCP and BDOS were device independent. Application programs could use the BDOS functions, or, if necessary, directly the BIOS, but were spared the need to know the wisdom of working with disk controllers of different machines.

Of course, in practice, everything was not so smooth. The biggest omission of the BDOS / BIOS was the lack of any standardization of the output functions on the screen, except for the most primitive ones, which will work for a teletype terminal. As a result, programs that included functions, for example, a screen editor (like WordStar and Turbo Pascal), during installation offered to choose from several dozen machines known to developers, or, if there was no machine in the list, enter screen sizes and various control codes yourself to move the cursor, etc. Well, these are little things.

The general memory card of the CP / M machine looked like this:

Note again that this memory card will be valid on any machine with CP / M. Therefore, there are many uncertainties. There is no video memory, for example (and it is not a fact that it will be present in reality - maybe the machine is generally connected to a teletype), but the only addresses whose contents are guaranteed are 0x0000-0x0100. To make a system call, you must put its number in register C, if I am not mistaken, and then execute the CALL 0x0005 instruction; the JMP instruction at 0x0005 will already go where necessary in BDOS. Also in this area are:

  • bIOS entry point (address 0x0000). This function reboots the machine, but with simple arithmetic you can get the address of any other BIOS function;
  • current disk number (A: \u003d 0, B: \u003d 1 ...);
  • the direction of the current input-output flows (for example, the console can be directed to a printing device, or to a serial port);
  • names of files (no more than 2) transferred to the loaded program as command line parameters in FCB data structures suitable as arguments to calling BDOS functions;
  • full command line of the current program (addresses 0x0080-0x00FF - no more than 127 characters).
  The volume of TPA (areas for downloadable programs) was also not guaranteed and, in principle, could, depending on the implementation, be anywhere from 10 to 52 KB.

The CP / M-80 file system is significantly simpler than FAT, although it copes with its tasks quite satisfactorily. Files are stored with the names 8.3; creation / change dates are not stored (the availability of RTC-hours in machines with CP / M was not guaranteed); the file size is stored with an accuracy of 128 bytes with rounding up (the amount of space it occupies on the disk is up to 4 KB). There are also no directories, in general - CP / M was not designed to work with hard drives, and you can live with floppy disks. There was, however, a kind of surrogate called the "user area". These areas were numbered from 0 to 15, and in each of them separate files could be stored. They switched team USER n.

Since we were talking about commands, there were few of them: DIR, SAVE, ERA (deleting files), REN (renaming files), USER, maybe I forgot one or two more. (SAVE performed a rather specific function - saving the contents of the TPA to disk - if, for example, you started the debugger, loaded the program in it, kidnapped it, left and want to save the version that remained in memory.) An alternative command-line extension for CP / M was ZCPR3 interpreter, much more sophisticated. However, I myself have not tried it.

In general, CP / M was very reminiscent of the early version of DOS, yes, in general, and no wonder - DOS was developed as a clone of CP / M. For CP / M-80 there were many applied software - office programs, development tools, utilities. But with the advent and rapid development of PC, all this quickly became irrelevant - like the CP / M-86 version, which failed to make any significant competition with DOS.

The source code for CP / M of various versions and its system utilities (in assembler) is easy to find on the Internet.

How to cross CP / M and Spectrum

CP / M and Spectrum have only one thing in common that they work on the Z-80 processor. If we compare their memory cards, we will not see almost anything in common, and the peripherals expected on the CP / M and on the Spectrum machine are significantly different. Nevertheless, the creators of the Quorum were able to make a machine that can simultaneously work with CP / M, and like a fairly ordinary Spectrum. What had to be changed?

First of all, in the Quorum, ROM interferes with us. There is no ROM in CP / M (although the BIOS may well be located in the ROM, the BIOS is not located at the very beginning, but at the very end of the addressed space, and its volume is much less than 16 Kbytes). Therefore, in the Quorum, the memory management port 0x00 was added, which allows you to switch the Spectrum-Quorum ROM to an additional 16 KB of memory at addresses 0x0000-0x3FFF. Therefore, by the way, the younger Quorum model is called not “Quorum-48”, but “Quorum-64” - there really are extra 16 Kbytes of RAM left specially for the CP / M mode.

  (In fact, the “Quorum-64” is not the youngest model yet - before it was either the “Quorum BK-02” or the “Quorum BK-04”, which is a simple clone of the Spectrum and cannot launch CP / M .)

In addition to the ROM, we are interfered with video memory, which will stick out with us right in the middle of the precious TPA space. So the second function of port 0x00 is switching the video memory addresses from the default 0x4000-0x5AFF to 0xC000-0xDAFF. In the second mode, the video memory will be squeezed in between the BDOS and BIOS, but they, adapted for the Quorum, know this, and the program will not need to know.

Speaking of video memory - on the Spectrum there is only one video mode, 256x192 with 16 colors. (More precisely, 256x192 is the resolution of a monochrome image, which is then superimposed with color attributes at a resolution of only 32x24 - so there can be no more than 2 different colors in each section of 8x8 pixels. But these are details.) The text is displayed in 8x8 pixels, which gives 24 lines of 32 characters each - which is conveniently superimposed on the video memory structure, but frankly small for most practical purposes. Most non-adapted CP / M programs generally expect at least 80 characters in a string!

Therefore, there are four modes for displaying text in CP / M Quorum - 42 characters per line (6x8 font), 51 characters per line (5x8 font), 64 characters per line (4x8 font) and 83 characters per line (3x8 font). By default, after loading, 42 characters are used per line:

It looks pretty decent in my opinion. The 4x8 font is stored in memory simultaneously with 6x8, and, for example, in the shown text file viewer, you can switch to it with one F5 button:

It’s very inconvenient, but you can adapt - if you didn’t have the worst TV connected to your computer (the Quorum, like all Spectrum, usually worked with the TV instead of the monitor). This mode is good for editing text for subsequent printing - text printed on a matrix printer with 64 characters per line looks pretty good.

With the TTY51.COM and TTY80.COM commands, you can switch to 5x8 and 3x8 fonts. 3x8 is, of course, hellish hell - look at the screenshot from 4x8 and imagine that all these tiny letters also stuck together in one line without gaps between them. This mode was sometimes used to run programs that were not adapted for the Quorum (the Quorumites sold several floppy disks with utilities and development tools for CP / M that were simply downloaded from the Internet and recorded as-is).

Well, a little about the disk part. The Quorum drive block, slightly smaller than the current Micro-ATX system, was made of solid steel thickness, painted gray, and had two five-inch bays. It was accompanied by a system diskette with a basic set of utilities and several games - in fact, the image of a newer version of this diskette is the only one I found for the emulator. After the purchase - a year ago in 1998 - he refused to work for me, which cost me ten years of considerable frustration; in the end we got it repaired under warranty. The block came across to me in a vertical version with a black five-inch drive "Electronics MS-6313" or something like that. The drive was very poor quality, floppy floppy disk. At Quorum, I was changed to a more adequate five-inch Panasonic, then they put a second Mitsumi, and then they changed the second to a three-inch Samsung. However, all the same, they all ate the floppy disks only on the road, and one day CP / M began to issue scary messages “BDOS ERR ON A: BAD SECTOR”.

Unfortunately, for a long time I did not have either the drive block or the Quorum itself, so here I am writing from memory and taking screenshots from the emulator :)

Inside, in addition to the drive bays, there was a controller board with the KR1818VG93 chip, traditional for the Spectrum clones, and a power supply. The vulnerability of the drive unit was the interface with the computer - a short wide cable stretched from the unit, at the end of which a heavy metal box dangled somewhere about 8x8x1 cm with an interface board inside, which had to be put on the edge connector on the back of the computer; The quorum, like most Spectrum, was combined in one case with a keyboard. The reliability of such a connection was low.

Floppy disks - both five-inch and three-inch - the drive understood exclusively in the format of Double Sided / Double Density, 800 Kbytes. Under DOS, these would be 720 KB floppy disks, but CP / M used its own formatting: 2 sides, 80 tracks, 5 sectors, sector size 1024 bytes. On boot floppy disks 20 Kb occupied OS; this was not visible from the file system, it just occupied the first two tracks. To work with three-inch floppy disks from the store, it was necessary to glue a hole on them (on the contrary to the one with a slider for write protection) with an opaque adhesive tape.

Perhaps it was because of this formatting that disk access in CP / M was extremely   slow. This (along with insufficient screen resolution for working in full text modes) was, in my opinion, the main drawback of the system. Of course, floppy disks are not fast in itself, but they should quietly pull out a couple of tens of kilobytes per second; in CP / M on the Quorum, the real read speed did not exceed 2-5 Kb / s. This is not a hardware problem - everything works just as slowly even in the emulator, and TR-DOS will be noticeably faster. It was especially sad to copy anything between floppy disks in the presence of only one disk drive.

On the software side, the CP / M Quorum of drives also actually supported only two. On Quorum-128, 64 Kbytes of extended memory were also used as the C: RAM disk, which could be very convenient, especially with such and such speed with the disk.

The BDOS in the CP / M Quorum was slightly dubbed to make the user areas a little more practical and similar in appearance and on the principle of working with directories. The number of areas was increased from 16 to 32, areas with numbers\u003e 10 were allowed to be called letters (10 \u003d A, 11 \u003d B ...), they added the current user area to the command prompt (it was A\u003e, it became A: \\ 0\u003e), and added in the command line interpreter, the ability to run programs and specify files from other areas of the user (\\ A \\ FILE.TXT).

In general, I can’t say that it was so very convenient. The surrogate remained a surrogate. Well, I guess it's better than nothing.

Separately, it is worth mentioning the compatibility of CP / M Quorum and Spectrum games. This is a very important aspect - after all, after all, where would Microsoft now be, for example, without its sacred backward compatibility? :) For this task - seemingly insoluble - several solutions were also found, which we will discuss below.

Quorumites - as I understand it, this is basically one person by the name of Karimov - did a great job writing a lot of utilities from scratch under CP / M Quorum (for example, NC.COM, a simple two-panel file manager), and adapting even more third-party software, starting with CP / M itself and ending with Turbo Pascal. I well remember how I went to them in my childhood to write floppy disks and ask accumulated questions. The Quorum company was located on the fifth, last floor of the Univerbyt shopping complex, which had not yet been a glamorous shopping center. Behind a heavy iron door, everything was littered with computers, drawings, parts, and various strange assemblies. Just a touch of a miracle. It is a pity that now there are no such places, and if there are, they will not be perceived.

Software for CP / M

  On almost every quorum diskette, first of all, there was a classic couple of them - the NC.COM shell:

And the text editor ED.COM:

NC.COM was, as you might guess by its name, a variation on the theme of a two-pane file manager. Among its useful functions are working with user areas as subdirectories, copying files (the naked CP / M did not know how to do this, although it had some kind of simple external utility for that), viewing text files in KOI-8, KOI encodings -7, “GOST-basic” and dosovskaya CP866 (by the way, the main encoding for CP / M Quorum was chosen by KOI-8 - apparently, because it cuts the 7th bit, which the old non-adapted programs can sin, turns more or less transliteration), and copying files to DOS floppy disks and vice versa - the last, except for NC.COM, in my opinion, no one else knew how.

ED.COM, despite the name, was more similar to Unix vi than ed (and strictly speaking, according to instructions, it was a version of a certain WordMaster). It, like vi, had two main modes - text input and command. Of course, the set of commands was much more modest than that of vi, but there was already the ability to create macros from commands and write them to .MED files. Here is one of the help pages, for example:

ED.COM was suitable for a set of programs (although with such a brake disk subsystem as on the Quorum, the sequence “launched ED.COM - edited - came out - compiled - linked - started everything turned out - go to step 1” required patience of the glacier) and simple text files. In principle, I wrote in it all sorts of essays with formatting (without pictures, of course). This is done simply: take the instructions from the printer - oh, my CM-6337 is generally worthy of a separate post! .. - open the directory of control codes and insert them manually in the right places. Fortunately, dot-matrix printers, even SM-6337, usually use more or less compatible Epson-shaped control codes.

From other software on the system diskette, you can mention FORMAT.COM, SGEN.COM (which writes the OS to the system tracks, and allows you to configure some cosmetic parameters), SUBM.COM (which executed .UB files - a bit of a. BAT, only without variables and any controls like if, loops, etc.) and POWER.COM, which allows you to dabble with drives at a low level.

On the disks of the quorumites it was possible to write down (10 rubles each) a lot of interesting things, including:

  • WordStar word processor, once a hellishly popular program, almost a killer app for CP / M. WordStar allowed you to format text in a more adequate way than manually entering printer control codes, but on the text screen, of course, there was no talk about any WYSIWIG, and indeed it got into the Quorum screen of WordStar so-so. Its large panel of modes and tips at the top of the screen from a height of years suspiciously resembles ... Office 2007/2010 ribbon :)
  • Supercalcspreadsheet. Linux users can install the sc package available, or at least available on most distributions, and get a pretty close idea of \u200b\u200bSuperCalc. It actually looked pretty good, but I never managed to figure out why I might need spreadsheets.
  • Microsoft BASIC-80. Yes, yes, the one with whom Bill Gates went to success. The quite adequate dialect of BASIC, in terms of functionality, is a cross between Spectrum BASIC and QBASIC, which we passed at school. The BASIC-80 had a built-in line editor, which wasn’t a godsend how convenient, but a much better editor-compiler-run cycle. The program debugged in the interpreter could be compiled by the BASCOM.COM compiler, and then linked with runtime and, if desired, with assembler procedures.
  • Microsoft M80More or less standard assembler i8080 / Z-80 for CP / M-80. Assembler, he is an assembler, what to take from him. The kit includes the assembler M80.COM itself, the linker L80.COM and the librarian LIB80.COM. There is no IDE or editor. The ZSID.COM debugger and the surprisingly suitable DASM.COM disassembler were also supplied on the diskette.
  • Borland turbo pascal. Version 3.02A. Without exaggeration, the best development tool for CP / M. It had an IDE with a screen editor - simple, but adequate enough, and the best of everything else was by head. The compilation speed was also impressive. In this Pascal, I trained a lot in my youth, even the Mandelbrot fractal drew with well, very ridiculous speed. Cons - a healthy 10-KB runtime and a small amount of memory remaining on the source code and executable program code when the IDE is loaded.
  • Bds c. I hardly know this. It seems like a regular old C, without an IDE and with a not-so-standard standard library.
  • Archivers. This good was only on disks with non-adapted software. Archivers were interesting - they worked as Unix: separately compression and separately packing in one file. Only in CP / M is the opposite. First, individual files were packed, during which the middle letter changed in their extension (the SQUEEZE.COM archiver changed it to Q, the faster and much better compression CRUNCH.COM changed to Z, and the coolest CRLZH.COM, which only had enough on the Quorum of memory for unpacking - on Y), and then the compressed files were combined into a .LBR archive by the utility LU.COM or NULU.COM. There were unzips for ARC, ARJ, and ZIP. Theoretically, there should have been at least an ARC archiver, but I have not seen this.

Compatibility with games for the Spectrum

  For compatibility with Spectrum software in the CP / M Quorum there are two very interesting programs - BETA.COM and GAMMA.COM.

BETA.COM is, in fact, a TR-DOS’s emulator. From the word Beta Disk Interface. On Quorum-128, TR-DOS is in ROM and such an emulator is generally not needed, but on Quorum-64, TR-DOS will not exist without it. The emulator is loaded into the zero page of RAM - the one that can be imprinted instead of Spectrum ROM - and works like the most ordinary TR-DOS. Perhaps crooked in places. Although the TR-DOS built into the Quorum-128 is actually somewhat crooked, and many programs that require low-level disk access no longer refuse to work. It is sad.

GAMMA.COM is a much more interesting invention. In fact, this is a special version of the CP / M Quorum for launching Spectrum games, called Gamma-DOS.

Gamma-DOS, like BETA.COM, uses a trick with the lower 16 Kbytes of RAM, but instead of TR-DOS they are castrated by most I do not want CP / M. The font in it is standard Spectrum, a third of the screen is not used at all (to save memory - you need to save the remaining two-thirds somewhere for the time of access to Gamma-DOS), there are no user areas, the TPA area is cut to a few kilobytes - although simple CP / utilities M still start normally.

After starting Gamma-DOS (which can be done both from CP / M, using the GAMMA.COM command, and booting from a floppy disk where Gamma-DOS is written to the system tracks instead of CP / M), you can exit to the Spectrum BASIC using the SOS command. After that, you can download any game from the tape recorder. After loading, by pressing the NMI key (Non-Masked Interrupt), the Z-80 will force the transition to the address 0x0066 and cannot be ignored) control will be transferred to Gamma-DOS, after which the game can be saved with the SAVE command and then returned into it with the RET team. Games are saved in .SPC format - in fact, this is the same memory dump as in TR-DOS with a “magic button”, only compressed.

A trick with NMI is possible thanks to the verification provided in the Spectrum ROM of the Quorum - it switches to the zero page of the RAM if it contains the JMP processor instruction at address 0x0066 - that is, in fact the ROM checks if the RAM has a handler subroutine for NMI.

Games in the .SPC format can be launched from the command line, just like regular .COM commands, but usually a shell like RUN.COM is used for this:

And go ahead! :)

It is worth noting that in my memory Gamma-DOS did not work very stably and quite often when trying to save the game it gave out “BDOS ERR ON A: BAD SECTOR” on seemingly perfectly normal diskettes. So I often used not Gamma-DOS, but SCREEN - a shell with a pseudo-graphic interface (and limited image editing tools - hence the name), which works much faster and more stable than Gamma-DOS, and is more convenient to use. SCREEN even had its own API - for it there was a separate format for executable files, .EXE - but I could not find its description anywhere, nor did it describe how SCREEN was arranged. I suspect that somewhere in the bowels there was still Gamma-DOS.

The biggest drawback of both Gamma-DOS and SCREEN was that they only supported Spectrum-48 programs. Toys for the Spectrum-128, and these, of course, were often the coolest toys, could only be launched from the TR-DOS Quorum-128. Alas and ah.

The present

  The quorum, unfortunately, did not gain such fame as the epic Pentagon, Scorpio or Profi, and remained a small town Yekaterinburg computer, most of whose users probably did not suspect that it had a drive and some kind of CP / M. Theoretically, there were models Quorum-256, Quorum-512 and even Quorum-1024, but to buy them was very nontrivial, if at all possible. Now no “Quorum Ltd.”, as far as I know, has long existed.

A quorum-adapted UnrealSpeccy emulator can be downloaded here.

Babarin Yuri, p. B-Istok, 1996

I want to say a few words for the section "COMPUTERS WHICH WE CHOOSE" and about the drives.

In our city of Yekaterinburg, on the Vector software, three models of the Quorum PC are produced.

1. Quorum 64

This is a "SPECTRUM" -compatible computer having, in addition to 48kb RAM, 16kb shadow RAM; extended keyboard - 88 keys; there is also a built-in loader CP / M-80.

2. Quorum 128

It has all the capabilities of Quorum-64 + extended memory up to 128kb, built-in tests, a monitor, a copyist, CP / M bootloader, as well as TR-DOS, which can only be accessed with the drive unit connected.

3. Quorum 128+

It differs from the Quorum-128 model in that it has a musical coprocessor and a built-in 3.5 "drive located on the right side of the computer.

All three types of machines have a built-in driver for connecting EPSON-compatible printers.

At the moment I have Quorum-128, and the question arose before me: which drive unit should I purchase: with a 3.5 "or 5.25" drive? Such blocks are assembled at Quorum JSC. Are 5.25 "discs a thing of the past and will not be in the near future?

What is the prospect of 3.5 "drives?

IFC: the author of the letter raised a rather significant problem, which it is time to talk seriously. Indeed, we all seem to be used to 5.25 "double-density drives (2S / 2D) and don’t notice that we have long forgotten about this exotic in the world.

Why is this drive so dear to us with all its obvious technical flaws? Here, apparently, the main role is played by 2 factors: value and tradition. Cost means not only the price of the drive itself, but also the cost of the floppy disks. Of course, the cost of a 3.5 "high-density drive (1.44 MB) is significantly higher, but higher technical parameters more than cover the additional costs, and more reliable storage of programs on high-quality diskettes cannot be exchanged for any savings.

The issue of tradition is more serious, because, basically, all computers are equipped with 5.25 "drives. Accordingly, all programs, their collections, archives are recorded on these diskettes. They also exchange information.

So, the existing computer park will not allow in the near future to switch to new, more advanced drives.

One could put up with this situation for quite some time, but there is one very real danger. It consists in the gradual cessation of the production of 5.25 "double-density drives. Computer manufacturers are often faced with this problem. When users start wanting to replace a failed drive, the severity of the problem may increase significantly.

Therefore, it seems to us that the time has come to discuss this problem on the pages of the ZX REVIEW. Here, both technical and “political” aspects of it can be considered.

Be that as it may, the 5.25 "drives will be in operation for a very long time, but we need to think about replacing them, and we would recommend starting with installing the SECOND 3.5" (HD) drive.

We do not specifically address the issue of replacing 3.5 "double density drives, because this does not solve the problem because of their scarcity and the lack of appropriate diskettes in the right quantities.

We welcome your feedback on this topic, and you will read the first notes in this issue insection "Reader - to reader."_

ATTENTION TO EVERYBODY OF PURCHASING THE ACQUISITION OF 3.5 "DISCS, CLEAR DISKET AND SOFTWARE DISKET

PLEASE NOTify US ABOUT THIS.OUR MAIL ADDRESS: 121019, MOSCOW, PO Box 16, FORMAC LLP

Page

Computer ports Quorum.

Of course, I’m not completely sure, since I haven’t seen a single Quorum. But according to available information, the differences between the Quorum 64, 128 and 128+ are as follows:

Quorum-64    - This is a regular ZX-48, plus shadow 16K RAM, plus a drive controller, which all together allows you to work, except for TR-DOS also in CP / M.

Quorum-128 - compatible with ZX-128, but allowing you to include the 0-th page of RAM instead of the ROM and move the screen area to another location. However, it does not have a music processor.

Quorum-128 +    - Same as Quorum-128, but a music processor and advanced screen modes have been added.

Although port addressing uses incomplete address decryption, it is recommended that you use the following device addresses when developing your programs.

Memory management port.

Address \u003d 00H (A7, A4, A0, / IORQ \u003d 0)

D0 - F_RAM
   RAM background page management
   0 - ROM enabled
   1 - the 0th page of RAM is included
D1 - UP_S (Quorum 64 with drive only)

   0 - bottom page (4000H .. 5AFFH)
   1 - top page (0C000H..0DAFFH)
D2 - EX_ROM (only for Quorum 128, in "128+" no)
   extended ROM management (up to 32 Kbytes)
   0 - enabled main ROM
   1 - additional ROM is included
D3 - reserve
D4 - reserve
D5 - B_ROM (not used in Quorum 64)
   resolution of the BASIC ROM page
   0 - additional ROM page included
   1 - BASIC ROM Page Enabled
D6 - BLK_WR (Quorum 64 requires revision)
   write lock in background RAM
   0 - write to addresses with 0000..3FFFH allowed
   1 - write is locked, read only
D7 - TR_DOS
   permission to work TRDOS from ROM
   0 - TRDOS runs from background RAM
   1 - work from ROM is allowed

Sectrum 128 port.

Address 7FFDH (A15, A1, / IORQ \u003d 0; A3, A4 \u003d 1)
   Port bit assignment (write only):
D0 - \\ NP_RAM
D1 - - RAM page number mapped to addresses
D2 - / s 0C000H to 0FFFFH
D3 - SCR_P (for Quorum 128, 128+ in BASIC mode)
   video RAM page switcher
   0 - bottom page (4000H .. in RAM-5)
   1 - top page (0C000H .. in RAM-7)
D4 - B_PAG
   BASIC ROM page management
   0 - BASIC-128
   1 - BASIC-48
D5 - BLK_P
   write lock on port SP_128
   0 - write allowed
   1 - recording is blocked (removal by reset)
D6 - EX_RAM (Quorum 256 only)
   0 - main RAM
   1 - an additional block of 128 KB
D7 - E2_RAM (Quorum 512 only)

CP / M port.

Address 80FDH (A13, A1, / IORQ \u003d 0; A15, A4, A3 \u003d 1)
   This port is implemented in ULA, used in
   Quorum 128 and Quorum 128+. Write to it is allowed
   only in the case of the first appeal to him after
   initial reset.
   Port bit assignment (write only):
D0 - \\ NP_SCR
D1 - - video RAM start address switch
D2 - / (only in Quorum 128, 128+ in CP / M mode)
   000 - 4000H
   001 - 6000H
   010 - 8000H
   011-0A000H
   100 - 0C000H
   101 - 0E000H
   110 - 0000H
   111 - 2000H
D3 - \\

D5 - - not used
D6 - /
D7 - EN_RAM
   permission to work with background RAM
   0 - prohibition of working with background RAM
   1 - recording is allowed in the background RAM

Keyboard Ports

Primary Port:
Address 0FEH (A0, / IORQ \u003d 0; A7, A4, A3 \u003d 1)

D0 - \\
D1 - \\

D3 - /
D4 - /
D5 - not used (always 1)
D6 - tape reading
D7 - not used (always 1)
Port bit assignment (recording):
D0 - \\
D1 - - border color code
D2 - /
D3 - tape recording
D4 - bit sound control
D5 - not used
D6 - not used
D7 - not used

Additional port:
Address 7EH (A7, A0, / IORQ \u003d 0; A4, A3 \u003d 1)
Port bit assignment (read):
D0 - \\
D1 - \\
D2 - - Keyboard scan digits
D3 - /
D4 - /
D5 - /
D6 - not used (always 1)
D7 - not used (always 1)

Drive controller ports

VG93 Status / Command Port:
Address 80H (A4, A3, A2, A1, A0, / IORQ \u003d 0; A7 \u003d 1)

Port number of the current track VG93:
Address 81H (A4, A3, A2, A1, / IORQ \u003d 0; A7, A0 \u003d 1)

Port sector number VG93:
Address 82H (A4, A3, A2, A0, / IORQ \u003d 0; A7, A1 \u003d 1)

VG93 data port:
Address 83H (A4, A3, A2, / IORQ \u003d 0; A7, A1, A0 \u003d 1)

Drive Management Port:
Address 85H (A4, A3, / IORQ \u003d 0; A7, A2 \u003d 1)
   Port bit assignment:
D0 - SEL_0
   1 - selection of device A:
D1 - SEL_1
   1 - selection of device B:
D2 - reserve SEL_2
   1 - selection of device C:
D3 - reserve SEL_3
   1 - sample device D:
D4 - SIDE
   0 - upper drive head
   1 - lower drive head
D5 - MOTOR
   1 - turn on the drive
D6 - reserve
D7 - reserve

Port of Campston Joystick.

Address 1FH (A7, / IORQ \u003d 0; A4, A3, A0 \u003d 1)
   Port bit assignment (read only):
D0..D4 - levels of the joystick
   (with no joystick connected always \u003d 0)
D5 - not used (always 0)
D6 - not used (always 0)
D7 - Printer Ready
   (with printer not connected always \u003d 0)

Printer ports

Data port:
Address 0FBH (A2, / IORQ \u003d 0; A7, A4, A3, A0 \u003d 1)
   Writing to this port sets the strobe line to 1.
   Assignment of categories (only for recording):
D0..D7 - byte of data sent to the printer

Gate Shaper Port:
Address 7BH (A7, A2, / IORQ \u003d 0; A4, A3, A0 \u003d 1)
   Writing to this port sets the strobe line to 0.

Printer Ready Port:
Address 1BH (A7, / IORQ \u003d 0; A4, A3, A0 \u003d 1)
   Assignment of bits (read only):
D0..D6 - not used (always 0)
D7 - printer ready line
   0 - printer is ready
   1 - printer busy

Ports of the musical coprocessor.

Port addressing registers AY-3-8910 / 12:
Address 0FFFDH (A1, / IORQ \u003d 0; A15, A14, A13, A4, / M1 \u003d 1)

Data port:
Address 0BFFDH (A14, A1, / IORQ \u003d 0; A15, A13, A4, / M1 \u003d 1)

Programs and games