Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
User Journal

Journal Alioth's Journal: zx-irc: An IRC client for the Sinclair Spectrum 1

I've got a substantial amount of work done on the Spectranet (Spectrum ethernet card) done recently - as well as building a couple more boards (there are now three in the whole world!) I've also started on writing some practical software, mostly for testing the socket library in the real world and to provide code examples to people who want to do a bit of netcoding on the humble Speccy.

So behold: http://spectrum.alioth.net/doc/index.php/Image:Zxirc.jpg ...a picture of zx-irc running on my +3.

The IRC client is actually written in C - the excellent z88dk (which targets 20-odd Z80 based systems) was used. The C socket library itself is just a wrapper around the assembly language functions in ROM (the ethernet board, as well as containing the ethernet hardware, also has a flash ROM for storing system ROM code, and 128k of static RAM to use as workspace).

So, so far, the Spectranet ROM supports:
- Base:
* The usual BSD socket library calls: socket/listen/accept/connect/send/recv/sendto/recvfrom etc.
* Resolver function - gethostbyname
* Additional console display routine, for 5x8 sized characters.

- Utility ROM
* A configuration utility, to set it up.
* The DHCP client.

And they actually work! (The ROM code is all written in assembly language, writing the resolver and DHCP client in Z80 asm was ... an interesting exercise)

I also recently rationalized the memory paging mechanism, I had been using a 10-bit paging mechanism (256 4K pages, with a chip select register for selecting one of four chips) down to a simpler 8 bit paging mechanism (256 4K pages, with the upper 2 bits being decoded into the 4 chip selects). I love programmable logic - just plug the JTAG lead in, and burn the new logic design to the CPLD.

On the hardware side, the last board I made, I completely assembled using solder paste and hot air. I'm getting a bit better at not putting too much solder paste on the pads, but I still have to wick up a bit of the excess with braid. It's so much faster to do surface mount assembly this way, too. I was also pleased to find my hot air gun didn't blow away the tiny 0603 passives (0603 means 60 thou. inch long and 30 thou wide - or 'mils' as they are sometimes called, but that confuses people over here who shorten millimeters to 'mils'. 0603 in metric is about 1.3mm by 0.7mm or so). The only issue I had with the hot air assembly was one 0.1uF decoupling capacitor 'tombstoned' (the solder on one pad flowed slightly before the other, and the component sat up on its end like a tombstone) and the three decoupling capacitors for 3.3v AVCC on the W5100 IC sort of 'sucked' themselves together, but that's just cosmetic.

This discussion has been archived. No new comments can be posted.

zx-irc: An IRC client for the Sinclair Spectrum

Comments Filter:

One person's error is another person's data.

Working...