We all using PC(mac/linux/amiga/morphos/other big brother) for development for Speccy and there're solutions for networking for spectrums starting from attached ESP to AY via divTIESUS to MB03+ Ultimate, ZXUno, Nexts etc.
My first dumb implementation
When I've made first versions of net tools for zx spectrum I've used small basic program and my esxDOS tools as part of "CD pipeline". Basicly it looked like this:
10 .tapein -c 20 .wget //somehost/somepath/file.tap file.tap 30 .tapein file.tap 40 LOAD ""
And this worked good enough for me for some time. It solved issue of inserting and ejecting SD card, power cycling of speccy etc.
Also sometimes I've used my gopher browser just for downloading file(especially for new versions of gopher browser itself).
WLoad by McLeod Ideafix
Miguel Angel(aka McLeod Ideafix) implemented wload utility - that allows load binary via network.
It uses very simple binary format for loading single chunk of data and executing it:
- First word contains chunk loading address
- Second word contains entry point of data
- next goes just plain binary data
When socket is closed wload decides that upload process is finished and executes downloaded code.
This approach looks good enough for testing small applications or just single demo part but when you need test your application that requires multiple pages data - it brokes.
Newer idea that comes to my brain
I'd like continue idea by McLeod and make a bit more complex protocol for WLoad like application.
Basic version will supports several commands:
- load binary chunk
- set memory page
- jump to address
Commands list can be extended and it will make possible extend protocol but keep it backwards compatible.
This approach will allow preload data to pages and test more complex things and entire games/demos.
I think I'll make it as dot-command like wload but there're possible make also as +3DOS application.
When I'll got first working version - I'll publish it to my github and write article about it here.