The SC111 is a Z180 processor module for use on a RCBUS (formerly RC2014) backplane.
The Z180 has CSIO pins which can be used for connecting to SPI devices. Wiznet produce the W5500 IC, which is a full TCP/IP stack in a chip. This offloads a lot of the required processing from the CPU and makes having a network connected 8-bit computer feasable.
Software wise, we will use Fuzix, which is a UNIX implementation for small computers put together by Alan Cox.
The hardware I used for this is all obtainable from Steve Cousin’s site https://smallcomputercentral.com/, with the exception of the Wiznet adapter, which are widely available from sellers on AliExpress.
- SC112 modular backplane
- SC111 Z180 CPU
- SC145 Compact flash module
- Wiznet W5500 ethernet adapter
When picking a Wiznet board, make sure to choose one which is usable on 5v. These tend to be slightly larger than the 3.3v only boards.
Next step is to connect the Wiznet to the CSIO header on the SC111. The pins need to be connected as follows:
|Wiznet Pin||CSIO Pin|
|RST||Connect to reset on the backplane|
Next, obtain Fuzix from https://github.com/EtchedPixels/FUZIX
In the top level makefile, set
We now need to modify some settings within the platform config file
#define CONFIG_NET_W5500_FDM is present. The Wiznet device has two modes of interfacing, VDM (Variable Data Mode), where any number of bytes can be sent/ received while asserting the chip select line,
and FDM (Fixed Data Mode) where the data phase length can only be 1 2 or 4 bytes and is indicated in the control phase. FDM is not recommended, but without adding some additional chip select logic similar to what’s present on the SC126, we have no way of controlling it, therefore FDM is the only option.
I didn’t know anything about FDM or VDM before embarking on this project but thanks to Alan Cox’s help and guidance in this thread https://groups.google.com/g/retro-comp/c/6qk9pLM4Sm4 I added support for FDM in this pull request https://github.com/EtchedPixels/FUZIX/pull/992. Many thanks for your help Alan!
To build everything, do
make all. If you just want to rebuild the kernel, this can be done with
make kernel. Similarly just the built kernel can be cleaned with
make kclean. Finally disk images can be build with
The diskimage can be written to a CF card using
dd if=./Images/rcbus-z180/disk.img of=/dev/<replace with cf card device>
Fuzix can be loaded by the ROMWBW bootloader the same as CP/M, by specifying the disk unit to boot (2 in this case).
bootdev prompt, enter
RomWBW HBIOS v3.1.1-pre.21, 2020-07-12 RC2014 Z8S180-N @ 18.432MHz IO=0xC0 0 MEM W/S, 2 I/O W/S, INT MODE 2 512KB ROM, 512KB RAM AY: IO=0xA0 NOT PRESENT ASCI0: IO=0xC0 ASCI W/BRG MODE=115200,8,N,1 ASCI1: IO=0xC1 ASCI W/BRG MODE=115200,8,N,1 DSRTC: MODE=STD IO=0x0C NOT PRESENT MD: UNITS=2 ROMDISK=384KB RAMDISK=384KB IDE: IO=0x10 MODE=RC IDE0: 8-BIT LBA BLOCKS=0x0003E000 SIZE=124MB IDE1: NO MEDIA PPIDE: IO=0x20 PPI NOT PRESENT Unit Device Type Capacity/Mode ---------- ---------- ---------------- -------------------- Char 0 ASCI0: RS-232 115200,8,N,1 Char 1 ASCI1: RS-232 115200,8,N,1 Disk 0 MD1: RAM Disk 384KB,LBA Disk 1 MD0: ROM Disk 384KB,LBA Disk 2 IDE0: CompactFlash 124MB,LBA Disk 3 IDE1: Hard Disk -- RC2014 Boot Loader Boot [H=Help]: 2 Booting Disk Unit 2, Slice 0, Sector 0x00000000... Volume "Fuzix 126 Loader" [0xF200-0xF400, entry @ 0xF200]... FUZIX version 0.4pre1 Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha Copyright (c) 2013-2015 Will Sowerbutts <email@example.com> Copyright (c) 2014-2023 Alan Cox <firstname.lastname@example.org> Devboot 512kB total RAM, 448kB available to processes (15 processes max) Enabling interrupts ... ok. 0000 : SAMSUNG CF/ATA - OK 0001 : - no response hda: hda1 hda2 (swap) bootdev: hda1 wiznet Wiznet 5500 detected. Mounting root fs (root_dev=1, ro): OK Starting /init init version 0.9.1 Checking root file system. Current date is Sun 2023-05-07 Enter new date: Current time is 22:38:12 Enter new time: ^ ^ n n Fuzix 0.4pre1 >@< Welcome to Fuzix m m login: root Welcome to FUZIX.
You should see
Wiznet 5500 detected. in the messages printed. I found that the Wiznet was not detected from cold boots - at least 1 reset was required before it was detected.
ifconfig should yield some sensible output:
# ifconfig eth0 : up broadcast running mtu 1500 ether: c0:ff:ee:c0:ff:ee (Ethernet) inet 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.254
DHCP is not supported so the ip address must be manually configured.
Various programs are available to make use of the network interface, and example is
htget which operates similarly to wget and cen download resources over http.
# htget http://192.168.0.2/ test.html .. # cat test.html <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style>
ping will report
socket: Protocol not supported this is because we are not using the Wiznet in raw mode and therefore can’t send ICMP packets.