Very good idea, Ardencrest! :!:
However, %open and the like are used to extend Sinclair BASIC.
A more simple Idea will be implement them as functions (and even use ASM). Something like:
Code:
10 DIM handle as Integer;
20 handle = SNetOpen("file", "r"): REM handle is the channel, like #4, but the routine returns its own
30 IF handle = -1 THEN GOTO 3000: END IF: REM Error if -1
35 SNetOneof(100): REM Don't know what it does
40 SNetInput(handle, a$): REM another way could be a$ = SNetRead(handle)
50 PRINT a$
60 GO TO 40
...
100 SNetClose(handle)
I could implement these if you want, but don't own a spectranet.
Do you know if there's an emulator which supports spectranet?
<!-- m --><a class="postlink" href="http://spectrum.alioth.net/doc/index.php/Spectranet_ROM_images">http://spectrum.alioth.net/doc/index.ph ... ROM_images</a><!-- m -->
<!-- m --><a class="postlink" href="http://sourceforge.net/p/fuse-emulator/code/HEAD/tree/trunk/fuse/hacking/spectranet.txt">http://sourceforge.net/p/fuse-emulator/ ... tranet.txt</a><!-- m --> (a how to)
When you get it working make a snapshot so you dont have to redo it all the time. just need to load in the snapshot
heres my snapshot
unzip load up fuse and load in the file
you can join me on the zx chat <!-- m --><a class="postlink" href="http://www.coldfront.net/tiramisu/tiramisu.swf?channels=#zx">http://www.coldfront.net/tiramisu/tiram ... annels=#zx</a><!-- m -->
One thing to beware of on a snapshot is that you need to reset the IP address of the virtual Spectranet to the IP address of your real device. As Spectranet has a whole API and uses channels and streams it would seem like a good idea to use that existing functionality, rather than force keywords into BASIC. Much documentation here:
<!-- m --><a class="postlink" href="http://spectrum.alioth.net/doc/index.php/Main_Page">http://spectrum.alioth.net/doc/index.php/Main_Page</a><!-- m -->
Not yet. In fact the idea, as always is to use asm libraries and not to touch ZX BASIC syntax anymore, since it could extend to other platforms.
So, Open #4 should be translated to handle = OpenChannel(4, "m", 1, "digits") a la C.
We can discuss it, however.
boriel Wrote:Very good idea, Ardencrest! :!:
However, %open and the like are used to extend Sinclair BASIC.
A more simple Idea will be implement them as functions (and even use ASM). Something like:
Code:
10 DIM handle as Integer;
20 handle = SNetOpen("file", "r"): REM handle is the channel, like #4, but the routine returns its own
30 IF handle = -1 THEN GOTO 3000: END IF: REM Error if -1
35 SNetOneof(100): REM Don't know what it does
40 SNetInput(handle, a$): REM another way could be a$ = SNetRead(handle)
50 PRINT a$
60 GO TO 40
...
100 SNetClose(handle)
I could implement these if you want, but don't own a spectranet.
Do you know if there's an emulator which supports spectranet?
any update an adding the spectranet % to the compiler :wink:
To ressurect an old thread, I have the Spectranet card and was wondering if there had been any movement with adding the functionality to the compiler. Maybe it has but I am missing the documentation.
Any help appreciated.
PS. Here's the code I'm trying to compile.....it's a wee webserver.
Code:
4 LET count=0
8 PRINT AT 0,0;"Webserver started"
10 %listen #4,80
20 %control #5
30 PRINT AT 1,0;"Total connections = ";count
40 %accept #5,4
50 PRINT #5;"You are connected to IanJ's ZX Spectrum - Visitor = ";count+1
55 PRINT #5;" "
60 LET count=count+1
70 INPUT #5;a$
90 INPUT #5;a$
100 PRINT AT 7,0;a$
110 PRINT #5;a$
120 INPUT #5;a$
130 PRINT AT 9,0;a$
140 PRINT #5;a$
210 BEEP 0.2,40
220 %close #5
230 %close #4
240 GO TO 10