I've done the SPI master interface Verilog code now. I had looked at the 65SPI stuff before, but I seem to remember it was a bit hard to understand the code (I think VHDL, which I'm not a fan of). Luckily Altera had some sample code which is an SPI master controller which interfaces to a standard bus with RD/WR/CE type interface and a bi-directional 8 bit data bus.
Ahaa, I see. The only problem I've heard is about the not-so standard SPI bus handling by some devices I've written in one of my previous messages (like SD card etc). So similar devices (maybe even 65SPI "B" version) has not only a separated select signal, but also MISO.
Unfortunately though, I don't have that many pins spare on the EPM3064, as I'm looking at the 44 pin version at the moment. So I can only manage 2 SPI slave devices and a 4 page ROM area with one page split into 8KB code and 8KB SPI interface. Is 8KB enough for the SD card driver do you think, Zozo? It may be a bit tight as it will need to be all Z80 code to control the SD card.
I don't think you need lots of code to handle an SD card. EXDOS will do all of higher level stuff (like FAT filesystem) you only need to supply SD card detect/initialization, block read/write, and such short piece of codes. I can tell after inspecting some AVR code, that even a little AVR MCU with as little as 4K (or 8?) flash can easily do it, and it also includes some FAT driver (which you don't need at all for EP, because it's task of EXDOS)! As far as I can do a wild a guess, even about 2K Z80 code is enough in case of the Enterprise! Zozo is much more suitable person to answer this though
Maybe his IDE card and its ROM can be checked out as a rough guess about needed amount of extra code. It's another question that people not having an EXDOS card itself (like me) would need the EXDOS too (maybe a bit modified version, Zozo told something about the need to remove some WD initialization code which can lead to long delays because of lack of a real WD in the system EXDOS was created originally for - fortunately EXDOS is also a great work having good "layered" design to easily adopt totally different storage hardware if it can support some basic functions like block read/write).
But for Ethernet, the situation is quite different especially if Z80 based TCP/IP stack must be created, but still I would not expect to have much more code than - let's say - some Kbytes (for the protocol itself, but there can be other parts unlike the more generic block level SD card interface for EXDOS ...).
It does mean there is a spare line for an ethernet controller, though.
Btw, what do you mean about "8K SPI interface"? Is it some kind of memory mapped stuff? At least my ideas was using simple some I/O ports, I am not really sure what you mean about 8K here. Or is it something I've also written about that some kind of DMA is done to a dedicated RAM (or RAM-like, from the point of view of the Z80 at least) area which can be accessed by the CPU as well, as it would be regural RAM?
Btw, can you suggest some resources (sorry, bit off-topic here maybe) to learn Verilog and/or VHDL? To be honest, I've already tried several times but always I felt lost after some minutes because of the "alien nature" of these hardware description languages compared to ones ("normal" program languages) I am used to.
One thing has crossed my mind though. As far as I know Atmel has FPGA (not CPLD do you can easily reprogram it, I guess) with integrated MCU on it. I don't know but maybe Microchip has something similar too (as far as I can sense you prefer PIC over AVRs, that's why I wrote about Microchip). So you can even save a discrete MCU, and lowering the chip count, if you want an MCU as well not just a CPLD/FPGA.