It’s official, the Z80 CPU can address 16 Mb without bank switch
In all these years the emulation in its various ways was a inspiration source for the most disparate systems design where every designer needed to find small/large solutions for the project progress. Today we are delighted to host on our pages a Italic wits project in which the adopted solutions are still strictly confidential. The designer starts to disclose them through this interview.
name is Aleph and the designer is the eclectic Isacco Luongo. If you wish to know more about his interests, you can freely visit his blog full of interesting articles.
At the interview start Isacco pointed out that these experiments were performed in the summer of 2017 and were entrusted to enthusiasts with the intent to promote them in a successful way. Unfortunately this didn’t happen, the author hasn’t got in touch and almost no one noticed the news. So the new project had to mark time, contained in an anonymous editorial note.
Today we resume the events chronology from that point so as to disclose in a complete way the Aleph project importance and the aims of.
As we well know the Zilog Z80 microprocessor is classified as a 16 bit addressing CPU and 8 bit data, so it can only address 65,536 bytes of total memory be it RAM and/or ROM. This CPU exists since more than 40 years and was studied in detail by eminent specialists all over the world. The home computers list featuring the Z80 processor is very long and it also jumped to the engineer Kazuhiko Nishi’s attention, who developed the MSX standard. This CPU for a long time was the strong point for the anglo-saxon Sir Clive Sinclair, the ZX Spectrum creator, the anti-commodore of excellence even before the Atari-Amiga disputes.
Clearly, says Isacco, the decline in sales of this technology gem with an Italian heart has a precise day, 12 August 1981, and it coincides on the birth of the 8088 intel microprocessor and the first IBM computer with 20-bit addressing. This day will mark the Intel-Microsoft duopoly start. The satellite systems universe based on CP/M system variants as Osborne, North-Star, Cromemco that realised “Dazzler” the first colour video card in the computer’s history ended up succumbing against the new IBM creature.
What did that computer that the others lacked have?
This is the time when Bill Gates says the sad phrase “640Kb RAM memory can be enough for anyone”. This is what other computers lacked, the memory that in the myth of the time IBM almost gave it.
Isacco reveals that the reason for so many companies went out of business in America and elsewhere is because they were unable to make the Z80 CPU features full use, was a failure of earlier origins, to be found in the US Navy Gary Kildall’s patriotism. He, says Isacco Luongo, didn’t base the CP/M operating system on the Z80 microprocessor but on his 8080 Intel ancestor, so those features and innovations built by the venetian physicist Federico Faggin where cut off from the CP/M based systems, from which the epilogue.
Let’s go back to the actual days, today after 37 years from that fatidic 12 August 1981 we discover that thanks to the researches of a self taught specialist, by some careful solutions the Z80 CPU can address up to 32 Mb of memory.
Are these careful solutions complex logics in FPGA technology or third-party devices that perform the work in place of the CPU?
Not all of this, answers the designer Isacco Luongo, in my project there are just logic gates and some equality comparators. The work is performed by the whole Z80 microprocessor that has a special register to address the extended memory pages. An extended address has the same format as an intel address 8088 in real mode, except that Aleph doesn’t segment the memory and the addresses are univocal. Let’s focus on this aspect: the intel 8088 CPU can map the same memory location in 4096 different ways and only the leftmost eight bits of the segment byte are really significant, but for Aleph each value corresponds to a different address, so it’s a linear addressing, non-segmented and contiguous. For example, to map the address placed at 256Kb from the null address on an intel 8088 we write in hex 4000:0000h, in Aleph environment the same address we represent with a pair of Z80 registers that contains the following address hex 04:0000h or linearly as happens with the MC68000 in hex 4.0000h. Of course the highest address that can be obtain in this way is hex 0FF:FFFFh, that is the memory address that is 16.777.215 bytes distant from the null address. In the Aleph system the following command is used to dump the memory: “dump PP.AAAA “; likewise to insert an ascii text into the memory is executed the command “insert PP.AAAA “, where PP is the 8-bit page number and AAAA which represents the 16-bit offset, for a total of 24 linear bits of addressing and each page is 64Kb. Clearly in the 16 Mb space it’s possible to have the code in a page and the data in another, not only the Z80 can load programs and data that extend over more than 64Kb pages, it can jump from a page to a subroutine that is in any address of the 16 Mb. All this could be achieved already in 1981. I used just components that already were in those years to show that the Z80 CPU could do much more and that in fact it was asked to work just partially. The Z80 has a double-register set, it’s a Pentium 4 Hyper-Trading sorts, a dual core 8080 featuring a physical CPU and a virtual core in a memory/register that can be selected to change tasks or system context.
The Aleph ideator digresses saying that he is a pure-blooded amighist that due the systems teacher, Giuseppe Pastena, at the Avellino Industrial Technical Institute ended up studying the Z80 CPU that for him it was the anti-Commodore, but then he had to revise his position at least as regards the processor.
Then he continues: “Aleph is no longer just a paper project, he has grown up and a desk is no longer enough to contain the boards”.
Fig.1 – The Aleph-Y hardware with M.M.U. (Memory Managment Unit)
Fig.2 – The R.E.C.I. Terminal
Fig.3 – The test performed by Termite causes the program crash, the need to perfect R.E.C.I. arises.
“It’s provided with many features, soon it will be equipped with its own video card and you can definitely cut the “umbilical cord” eg the null-modem cables that connect Aleph to the external world. As for the software I’m writing the 24-bit assembly first version for the Z80 CPU , so it will be possible to run complex programs with executables up to 16 or 32 Mb, just depending on how I will use the addressing last bit.
At now the system communicates through R.E.C.I. v.1.0s, it’s a terminal that I wrote for DOS/freeDOS whose source code is big as my daughter Sara’s Greek dictionary. Well, this is just a system preview, but I promise that I will keep you in touch also on the Facebook group: Planet Aleph-Z80 (All Retrocomputers Included).”
THE DATA TRANSFER TEST
We realized a simple data transmission test to the remote device connected via serial port by means of a null-modem cable. The transferred file is the text file RECI1E.ASM (a source in assembly i8088) of 292 Kb. On the one side there is the motherboard prototype with the MMU board connected to the Kio board (keyboard AT/PS2) and double serial port RS-232/C, on the other side there is a common PC-intel based (Pentium IV) with freeDOS and the R.E.C.I. program that allows the data transfer into 64 Kb packets with checksum verification. The serial connection configuration is the standard one: 9600 baud, 8 bit data, no parity and 1 stop bit. The file is transferred from a freeDos system (FAT32) to the Aleph ram memory starting from the physical address 03:0000h corresponding to the linear address 03.0000h. The only defect is the remote response checksum cut due to serial line overrun, it seems that Aleph transmits too fast and the video terminal emulated by a Pentium IV cannot be able to match the I/O of the Z80. This problem is actually an Aleph virtue that tends to saturate the transmission channel bandwidth-passing, infact some PC-Windows tested terminals are stuck because they can’t handle correctly the communication in multitask/time-sharing environment such as Termite that is stuck in reception. For this reason we developed R.E.C.I. in a freeDOS environment and exclusive mode although sometimes we notice isolated overrun events.
The transferred file is displayed in the Aleph-Z80 environment through the system tools of Aleph-RomSystem. The command “TYPE 03:0000” is executed to display the file data sent to the Z80 memory. Of course, the “MEM” command was run to check the system memory and all 64 Kb pages, intra-page dumps were also performed to display the received data correct alignment and even in this case successfully, there weren’t overlapping issues.
“The Z80 can officially address 32 Mb but I like to use 16 Mb only, in the future I’ll tell you the reasons …”
So the Aleph project designer concludes and we are waiting for new developments!
eNJoy aND STay TuNeD WiTH uS!
Raffaele “MOS” Sanapo
This is an article for educational purposes and the information is provided “as is as”. The links to content on third party websites are provided for information purposes. There is no control over and no responsibility is assumed for the content or third-party websites that are linked. All product names, schematics, logos and trademarks are the property of their respective owners. The use of these doesn’t imply the approval thereof.