Spectrum boot-αρισμα απο network!

Wally

Retired Admin
Joined
19 Ιαν 2006
Μηνύματα
25.797
Αντιδράσεις
4.289
I'd like to present my SpeccyBoot project, which performs a standard TFTP network boot on a Spectrum. It uses a very simple Ethernet interface (ENC28J60 + a few 74-series gates) and a dedicated ROM with a dedicated IP stack.
I have now passed an important milestone -- earlier today I was able to boot a .z80 snapshot over the network in about 13 seconds, as shown in this video

The server used is a standard TFTP server, so there is no need for any special server-side software. TFTP servers are included with Mac OS X and most Linux distributions out of the box, and I believe there are a few available for Windows as well.

If you are interested in this project, please have a look at the project page at http://speccyboot.sourceforge.net/ .

Cheers,

Patrik
[ame=http://www.youtube.com/watch?v=PEy4VDO2IPs]YouTube - SpeccyBoot

Manic Miner
An important milestone...

Manic Miner was loaded over the network!

After a long gap of not doing any work at all on the Spectranet (thanks to being away in Scotland for a week, then having too much other work to do, then supporting my Dad in the Pre-TT classic and then in the sidecar TT races (if you don't know, motorcycle racing - the Isle of Man TT is the world's biggest and best known road race, run on public roads)...well, not much has been done since the last time I updated this page.

I've made up for it this weekend, with quite a lot of productive work done (although some of it frustrating), including:

Finding a pretty serious bug in sendto which resulted in the source port getting set wrong and one byte of the MAC address getting overwritten, if a source port was set. (This may be the cause of the woes some have reported with DHCP)

Turning the prototype TNFS code into a VFS ROM module. All now called via the new VFS layer. Although the TNFS module is part of the default Spectranet ROM, it's actually just another ROM module, apart from having a couple of system variables for its own use in the sysvars area in 0x3F00, it's no different to a ROM module written by a 3rd party (and therefore can act as example code, too).

Turning the prototype BASIC extensions code for filesystems, into something that calls the proper VFS calls (and therefore will work with any filesystem, not just the TNFS).

Then turning the BASIC extensions into a ROM module.

Fixing a serious bug in the module loader utility (the utility that loads new ROM modules over the network and flashes them into the ROM). This bug caused any module larger than 1K in size to get corrupted.

There's still quite a bit to do, but at least you can now turn the Speccy on, go into BASIC, mount a file system, and load and save files, list directories, change directory etc.

As a proper test, I loaded all the bits of Manic Miner (the BASIC loader, the SCREEN$ and the game code) via the tape port, then saved them over TNFS - modifying the BASIC loader to use %load instead of LOAD. So if I now %load "manic" - Manic Miner loads over the network. It's a very important milestone that the first real piece of Spectrum software has now been stored on a network file system and loaded back.

There are now several layers involved. Closest to the user, are the BASIC extensions - %cat, %load, %mount etc. These parse the BASIC entered by the user, and in turn call the appropriate system call. For example, when saving a file, the BASIC interpreter sees the save command, gets the arguments to find out what's being saved - then calls open/write/close to save the file and returns to BASIC. In turn, the open/write/close system calls go via a dispatcher, which figure out what should actually receive these calls - which will depend on the mounted filesystem. Once handed off to the filesystem module, this then does whatever it needs to write the file - in our case, sending TNFS commands to the server to open, write, then close the file. The important thing here is that the dispatcher isolates the BASIC extensions from TNFS. Or any user program that uses the filesystem system calls from the actual underlying filesystem.
Πηγη

Φοβερα παραλληλα hardware projects στον Spectrum!!!

Πηγη
 
Πίσω
Μπλουζα