<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
      <title>Development - World of Spectrum</title>
      <link>https://worldofspectrum.org/forums/categories/development/p66/feed.rss</link>
      <pubDate>Mon, 22 Apr 2024 11:38:35 +0000</pubDate>
         <description>Development - World of Spectrum</description>
   <language>en-CA</language>
   <atom:link href="https://worldofspectrum.org/forums/categories/development/p66/feed.rss" rel="self" type="application/rss+xml" />
   <item>
      <title>mea culpa!</title>
      <link>https://worldofspectrum.org/forums/discussion/21379/mea-culpa</link>
      <pubDate>Fri, 11 Jul 2008 19:33:33 +0000</pubDate>
      <dc:creator>Jimmy</dc:creator>
      <guid isPermaLink="false">21379@/forums/discussions</guid>
      <description><![CDATA[I have just sent Digital Prawn another entry for CCG 2008 which might shock a few people! It is a program which emulates a Commodore Vic 20 - yes, your humble Spectrum can now run CBM BASIC 2.0 :-o<br />
<br />
Be amazed at it's type-ahead keyboard buffer and extra keywords such as GET and WAIT! It even crashes in the same way when you try and exploit the known BASIC bugs thanks to the full 6502 emulation.<br />
<br />
It's good enough to run some of Jeff Minter's games. Blitzkreig and Gridrunner have been successfully run on the emulator. Loading them in is a bit tricky at the moment, but it's easy enough with an emulator such as SPIN.<br />
<br />
I have included an instructions file and the source code to it as I need to take a break from developing it. Maybe somebody will take it just that bit further and make a C64 emulator?! <i>(Emulating the 6510 features might be tricky though, and the 25 row screen is just that bit too tall for the Spectrum - including the Timex).</i><br />
<br />
This program is dedicated to all you Lemoners out there :-D]]></description>
   </item>
   <item>
      <title>WorldBar needs music</title>
      <link>https://worldofspectrum.org/forums/discussion/21785/worldbar-needs-music</link>
      <pubDate>Fri, 15 Aug 2008 19:55:22 +0000</pubDate>
      <dc:creator>Dr BEEP</dc:creator>
      <guid isPermaLink="false">21785@/forums/discussions</guid>
      <description><![CDATA[I need some music for my game WorldBar.<br />
<br />
I was thinking of the theme from "Cheers" since this plays in a bar.<br />
<br />
Who can help me with finding the notes for it.<br />
I have a part, but no all.]]></description>
   </item>
   <item>
      <title>PING: gasman</title>
      <link>https://worldofspectrum.org/forums/discussion/21772/ping-gasman</link>
      <pubDate>Fri, 15 Aug 2008 07:27:14 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">21772@/forums/discussions</guid>
      <description><![CDATA[Since I archive my emails offline I am prone to losing people's email addresses.]]></description>
   </item>
   <item>
      <title>Channels and streams</title>
      <link>https://worldofspectrum.org/forums/discussion/21467/channels-and-streams</link>
      <pubDate>Sun, 20 Jul 2008 14:55:33 +0000</pubDate>
      <dc:creator>Winston</dc:creator>
      <guid isPermaLink="false">21467@/forums/discussions</guid>
      <description><![CDATA[So I've put some thought into channels and streams, and read the dead (and presumably rotting corpse) of the CSS FAQ which contains some information on how streams are implemented. This is probably most interesting for aowen (who may be able to offer further guidance).<br />
<br />
To recap: The goal, handle channels and streams without needing to trap RST 8 and extend BASIC.<br />
<br />
The conclusion: It seems that channels and streams are a little bit unfinished in ZX BASIC - for example, it's easy enough to add a new channel, but BASIC can't open it - it can only open K, P and S channels even if you add a new one. So you have to trap error F (Invalid file name) to properly add a new channel and have it openable by OPEN #. But I don't think this is a big deal because the semantics of ZX BASIC's OPEN# are completely wrong for sockets.<br />
<br />
My initial thoughts, therefore, to be able to use channels and streams for network communications are...<br />
<br />
On boot, create a control channel and open it on the first available channel (#4). This avoids BASIC having to be extended to open the channel. (This requires trapping some address since it'll have to happen after the ROM clears down all of RAM).<br />
<br />
The control channel is just a pipe to a small parser, and allows sockets to be created, closed, polled etc. using PRINT# and INPUT#.<br />
<br />
Opening a new socket would be done with INPUT# - such as<br />
<br />
INPUT #4 "options", a<br />
<br />
where options is the list of options (what kind of socket - stream or datagram, client or server, address etc.). If this works, it creates a new channel and automatically opens a stream attached to this channel. The return code (in this case 'a') is the stream number.<br />
<br />
Subsequent reads/writes to this new socket are done with PRINT #a and INPUT #a.<br />
<br />
Closing the socket will have to be done via the control channel, since CLOSE # will require trapping the CLOSE # entry point in the BASIC ROM, which is not an option because the CPLD lacks the resources to add yet another trap. Then a subsequent CLOSE # to free the stream from ZX BASIC's point of view.<br />
<br />
This will also require a small wrapper somewhere in RAM to cause a ROM page-in and the appropriate routine to be called. Is there a call in the BASIC ROM to reserve some space, say, after the system variables? (Or would sticking the wrapper at the top of RAM and doing what the ZX CLEAR routine does to reserve some space at the top?)<br />
<br />
There are some other gnarly details (really, with the output routine for a socket) to decide when a buffer should be flushed. A channel's output routine is expected to output the character in the A register. This, however, would be a spectacularly inefficient way to use a socket (and would make UDP pretty much unusable), so instead, characters must be marshalled into a buffer, and then some decision must be made at which point to flush it out to the network. I think many modern operating systems work this way for collecting characters going to stdout (quite often, nothing shows up till a carriage return or null terminator is encountered, unless you explicitly flush the stream). Probably for the Spectrum, deciding when to flush would be when a carriage return is encountered, or the input routine is called (for example, a string in INPUT # is unlikely to have a CR at the end of its string), or an explicit flush commanded via the control channel.]]></description>
   </item>
   <item>
      <title>FAO: JC + CEZ (and other games coders)</title>
      <link>https://worldofspectrum.org/forums/discussion/21127/fao-jc-cez-and-other-games-coders</link>
      <pubDate>Sat, 21 Jun 2008 11:51:49 +0000</pubDate>
      <dc:creator>bobs</dc:creator>
      <guid isPermaLink="false">21127@/forums/discussions</guid>
      <description><![CDATA[For my next game I need a huge amount of 14x15 pixel sprites and thought that, rather than just making my own, I'd shout out to see if I could use some from recent Speccy games, such as EggHead, Phantomasa and the like to give a bit of a theme to some of the levels?<br />
<br />
If anybody is interested in allowing me to use some of their graphics for my game then please get in touch (PM, MySpace, whatever).  I'd really need them in groups of up to six related sprites.]]></description>
   </item>
   <item>
      <title>Handling RST8 on a +3</title>
      <link>https://worldofspectrum.org/forums/discussion/21400/handling-rst8-on-a-3</link>
      <pubDate>Mon, 14 Jul 2008 10:36:16 +0000</pubDate>
      <dc:creator>Winston</dc:creator>
      <guid isPermaLink="false">21400@/forums/discussions</guid>
      <description><![CDATA[Well, I've come to that bit of my project that I wasn't really looking forward to (because I don't understand enough about the ZX BASIC ROM) - extending the interpreter by the way of handling RST 8.<br />
<br />
So far, using some notes I got from Garry Lancaster and the Interface 1 disassembly, I have some experimental code that works somewhat in 48K BASIC.<br />
<br />
However, when a new command is successfully parsed, if on a +3, the system crashes hard. Unfortunately, due to a problem with the connector key falling out of a peripheral, my toastrack 128K is awaiting repair at the moment, but last time I tackled this thorny issue, my RST 8 handling worked fine on a 48K or on a toastrack 128, but crashed on a +3.<br />
<br />
I presume the problem is when I finish, I'm not entering the +3's ROM routine in the right place, or possibly the wrong +3 ROM is paged in. So:<br />
<br />
- What's the simplest reliable way (fewest instructions) to tell whether or not you're on a +3 or similar?<br />
- How should returning from handling RST 8 be done on a +3?]]></description>
   </item>
   <item>
      <title>How to convert hex bytes to .. in assembly?</title>
      <link>https://worldofspectrum.org/forums/discussion/21261/how-to-convert-hex-bytes-to-in-assembly</link>
      <pubDate>Tue, 01 Jul 2008 07:24:34 +0000</pubDate>
      <dc:creator>FrankT</dc:creator>
      <guid isPermaLink="false">21261@/forums/discussions</guid>
      <description><![CDATA[I hadn't a clue what to put in the title so...,<br />
<br />
I have in memory 3 hex bytes #10 #34 #50, e.g.,
<pre>[size=2]#6400	10 , 34 , 50	; hex
25600	16 , 52 , 80	; decimal
</pre>
[/size]I need to convert this to decimal 10 34 50.
<pre>[size=2]25600	10 , 34 , 50	; decimal
#6400	0A , 22 , 32	; hex
</pre>
[/size]Is there a ridiculously easy 10-20 bytes piece of code that can do this?<br />
<br />
Thanks<br />
FrankT]]></description>
   </item>
   <item>
      <title>How to run assembled code in emu?</title>
      <link>https://worldofspectrum.org/forums/discussion/21363/how-to-run-assembled-code-in-emu</link>
      <pubDate>Thu, 10 Jul 2008 18:31:05 +0000</pubDate>
      <dc:creator>equant</dc:creator>
      <guid isPermaLink="false">21363@/forums/discussions</guid>
      <description><![CDATA[Sorry for the complete newbie question, but I can't figure this out anywhere.  I've assembled a very simple program using z80asm on linux.  Now I have an a.bin file (another assembler produced an identical file, but named it .rom) and I don't know how to get it to run in my spectrum emulator (xspect, spectemu).<br />
<br />
Can anyone help me out?<br />
<br />
Thanks,<br />
Nathan]]></description>
   </item>
   <item>
      <title>Tile Map Help</title>
      <link>https://worldofspectrum.org/forums/discussion/21327/tile-map-help</link>
      <pubDate>Mon, 07 Jul 2008 10:48:39 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">21327@/forums/discussions</guid>
      <description><![CDATA[I've got a 256x256 map. This is split into 64 chunks of 32x32. Each cell takes up one byte so only four chunks are held in memory at any given time. Assume the chunks<br />

<pre>A | B
--+--
C | D
</pre>
<br />
are held in memory in sequence as ABCD, starting at 0xF000.<br />
<br />
I have an 11x11 view window, with the player at the center. If I specify the x and y co-ordinates of the top left cell of my view window, what's the quickest way of calculating where each cell's tile is held in memory? Sorting the data so that it is arranged sequentially is not an option unless it can be done very quickly.<br />
<br />
...<br />
<br />
Solved it. Just add 992 if x&gt;31 and 32 if y&gt;31. Multiply y*32. Add x+y = offset to cell. It means I have to look up each cell individually, but it should be pretty fast as it's only 121 cells.]]></description>
   </item>
   <item>
      <title>CUBE, an idea for a new MINIGAME for the COMPO</title>
      <link>https://worldofspectrum.org/forums/discussion/20060/cube-an-idea-for-a-new-minigame-for-the-compo</link>
      <pubDate>Thu, 27 Mar 2008 08:44:01 +0000</pubDate>
      <dc:creator>Dr BEEP</dc:creator>
      <guid isPermaLink="false">20060@/forums/discussions</guid>
      <description><![CDATA[In the ONELINER-thread from 2008 a new ONELINER is added ; CUBE.<br />
<br />
As I did with previous ONELINERS (see 1K Othello) I would like to expand the game to the MINIGAMECOMPO 2008 with graphics and realistic killingrooms.<br />
<br />
I need some 'nice' ideas how to get someone killed in a room when entered (like in the film CUBE)<br />
<br />
I already am thinking of<br />
1) Laserbeams<br />
2) Flooding the room<br />
<br />
Please give me input for the game.]]></description>
   </item>
   <item>
      <title>Chrust packer</title>
      <link>https://worldofspectrum.org/forums/discussion/21266/chrust-packer</link>
      <pubDate>Tue, 01 Jul 2008 14:06:10 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">21266@/forums/discussions</guid>
      <description><![CDATA[Originally posted on comp.sys.sinclair:
<blockquote>
<div><a rel="nofollow" href="/forums/profile/1160/gasman">gasman</a> wrote:</div>
<div>Introducing Chrust, the next in the series of obscure utilities that<br />
will surely come in useful for somebody somewhere.<br />
<a href="http://www.west.co.tt/matt/speccy/chrust/chrust-1.0.1.tar.gz" rel="nofollow">http://www.west.co.tt/matt/speccy/chrust/chrust-1.0.1.tar.gz</a><br />
A bit of background: Hrust is one of the best compressors available on<br />
the Speccy. However, if like me you're doing your Speccy development<br />
with cross-assemblers, Z88DK or whatever, it's highly inconvenient to<br />
have to keep switching between native programs and Speccy-based ones,<br />
shifting your code from one to the other to do the final packaging-up of<br />
your creations.<br />
Chrust brings Hrust outside the Speccy and onto the command line, so now<br />
you can do the whole job without loading up an emulator - and more to<br />
the point, you can automate the whole build process with Makefiles.<br />
Spectrum open source, anyone?<br />
It's Unix-based at the moment, but I expect it will compile anywhere<br />
else straight off. (For those interested, it's a Frankenstein-like hack<br />
consisting of Dmitry Pyankov's original Z80 code and Marat Fayzullin's<br />
Z80 emulation core. A sort of retro-Java-bytecode, I guess.) Full<br />
instructions contained within.</div>
</blockquote>
]]></description>
   </item>
   <item>
      <title>How to read AY Registers from M/C?</title>
      <link>https://worldofspectrum.org/forums/discussion/21149/how-to-read-ay-registers-from-m-c</link>
      <pubDate>Sun, 22 Jun 2008 17:38:30 +0000</pubDate>
      <dc:creator>worldxxisoft</dc:creator>
      <guid isPermaLink="false">21149@/forums/discussions</guid>
      <description><![CDATA[Gentlemen,<br />
I will appreciate if you can provide me some details on this, as I could not find info in other sources. I would like to know if it's possible, and how, to read AY-Registers like the mixer. I tried with<br />
LD D,7<br />
LD BC,ayctrl<br />
OUT (C),D<br />
LD BC,aydata<br />
IN A,(C)<br />
<br />
but A only shows 255. (I'm not expert using IN). I am using spectaculator, by the way.<br />
<br />
Thanks in advance.]]></description>
   </item>
   <item>
      <title>Garth Marenghi's Dark Place Game.</title>
      <link>https://worldofspectrum.org/forums/discussion/17205/garth-marenghi-s-dark-place-game</link>
      <pubDate>Sat, 04 Aug 2007 03:57:45 +0000</pubDate>
      <dc:creator>CaptainNumpty</dc:creator>
      <guid isPermaLink="false">17205@/forums/discussions</guid>
      <description><![CDATA[Someone should really make a "Darkplace" Speccy game, as it would tie in perfectly with the show's 80's kitsch appeal.;)]]></description>
   </item>
   <item>
      <title>Help with hi-res 40 column font</title>
      <link>https://worldofspectrum.org/forums/discussion/21218/help-with-hi-res-40-column-font</link>
      <pubDate>Sat, 28 Jun 2008 08:43:36 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">21218@/forums/discussions</guid>
      <description><![CDATA[I have created a 12x8 pixel font for use with Timex hi-res (Mode 6).]]></description>
   </item>
   <item>
      <title>Conversion tool - bmp/gif to screen$</title>
      <link>https://worldofspectrum.org/forums/discussion/21201/conversion-tool-bmp-gif-to-screen</link>
      <pubDate>Thu, 26 Jun 2008 21:50:55 +0000</pubDate>
      <dc:creator>Hideki</dc:creator>
      <guid isPermaLink="false">21201@/forums/discussions</guid>
      <description><![CDATA[Hihi<br />
<br />
Not sure if this is exactly the right place to ask, I don't see a software forum<br />
<br />
Is there a tool to convert a bmp or gif file to a screen$ suitable for spectrum use? I know there are tools to go from .scr to gif etc. but I want to be able to draw the screens on the PC and move them to the spectrum when I'm done<br />
<br />
Failing that, is there an emulator with AMX mouse emulation and a speccy art package with a reasonable collection of small fonts, lol<br />
<br />
Thanks ^^]]></description>
   </item>
   <item>
      <title>Porting Vampyre Cross to ZX Spectrum</title>
      <link>https://worldofspectrum.org/forums/discussion/21156/porting-vampyre-cross-to-zx-spectrum</link>
      <pubDate>Sun, 22 Jun 2008 23:29:54 +0000</pubDate>
      <dc:creator>Paul Panks</dc:creator>
      <guid isPermaLink="false">21156@/forums/discussions</guid>
      <description><![CDATA[Anyone seen this game on the C64? It's a "hunt the vampire" classic text adventure. Here's the link to the download:<br />
<br />
<a href="http://www.geocities.com/dunric/vcross.zip" rel="nofollow">http://www.geocities.com/dunric/vcross.zip</a><br />
<br />
You'll need a C64 emulator (such as VICE) in order to play the game.<br />
<br />
Anyone interested in attempting a port? It is a fairly lengthy adventure with over 60 rooms and several monsters and items.<br />
<br />
You can view a screenshot of the C64 version here:<br />
<br />
<a href="http://www.geocities.com/dunric/index.html" rel="nofollow">http://www.geocities.com/dunric/index.html</a><br />
<br />
(scroll down until you see a red screen)<br />
<br />
Paul]]></description>
   </item>
   <item>
      <title>Porting more adv games to the ZX Spectrum</title>
      <link>https://worldofspectrum.org/forums/discussion/20871/porting-more-adv-games-to-the-zx-spectrum</link>
      <pubDate>Mon, 02 Jun 2008 00:42:08 +0000</pubDate>
      <dc:creator>Paul Panks</dc:creator>
      <guid isPermaLink="false">20871@/forums/discussions</guid>
      <description><![CDATA[If anyone is up to the task, I'd love to see a port of some of my other games on the ZX Spectrum. I myself need to find a manual for Sinclair BASIC before I can attempt such a task.<br />
<br />
Here are the adventures:<br />
<br />
<a href="http://www.gamebase64.com/search.php?a=5&amp;f=3&amp;id=6449&amp;d=18&amp;h=0" rel="nofollow">http://www.gamebase64.com/search.php?a=5&amp;f=3&amp;id=6449&amp;d=18&amp;h=0</a><br />
<br />
These are only a fraction of the adventures that I have authored over the years, but they represent some of my better work.<br />
<br />
Paul]]></description>
   </item>
   <item>
      <title>Isometric games map format</title>
      <link>https://worldofspectrum.org/forums/discussion/21051/isometric-games-map-format</link>
      <pubDate>Mon, 16 Jun 2008 08:14:32 +0000</pubDate>
      <dc:creator>popmilo</dc:creator>
      <guid isPermaLink="false">21051@/forums/discussions</guid>
      <description><![CDATA[I'm interested in your opinion:<br />
<br />
What is the best way to store map data for isometric games ?<br />
SOmething like Head over heels ?<br />
<br />
I read in one place that Jon Ritman (programmer of HOH) had made some optimization for his map data so it occupied very small chunk of memory...<br />
<br />
If I would have like few hundred rooms and every room is 8x8x8 blocks... raw data is 512xhunreds...<br />
Off course most of it is empty space...<br />
Some sort of packing is needed...<br />
<br />
So... shoot... lets hear some ideas.. :smile:<br />
<br />
Thanks in advance...]]></description>
   </item>
   <item>
      <title>FAST and SLOW .TAP loading in RESIDOS</title>
      <link>https://worldofspectrum.org/forums/discussion/20613/fast-and-slow-tap-loading-in-residos</link>
      <pubDate>Sat, 10 May 2008 17:43:23 +0000</pubDate>
      <dc:creator>velesoft</dc:creator>
      <guid isPermaLink="false">20613@/forums/discussions</guid>
      <description><![CDATA[Why is in RESIDOS this TAP file loaded always too slow ? (with lines in border area). Other TAP files on my drive is fast loaded, but loading this file is always slow.<br />
<a href="http://velesoft.speccy.cz/other/tapslow.zip" rel="nofollow">http://velesoft.speccy.cz/other/tapslow.zip</a><br />
<br />
VELESOFT]]></description>
   </item>
   <item>
      <title>Flood Fill Conundrum</title>
      <link>https://worldofspectrum.org/forums/discussion/20930/flood-fill-conundrum</link>
      <pubDate>Fri, 06 Jun 2008 14:24:23 +0000</pubDate>
      <dc:creator>carlinski</dc:creator>
      <guid isPermaLink="false">20930@/forums/discussions</guid>
      <description><![CDATA[I have written a flood fill alogirithm. It uses the stack, but only with the y axis. It works quite well, but on large polygons it does take a while to backtrack.<br />
<br />
Here is a sample:<br />
<br />
<a href="http://www.officetrack.com/download/wos/floodfill.zip" rel="nofollow">http://www.officetrack.com/download/wos/floodfill.zip</a><br />
<br />
Theres a z80 and szx in there.<br />
<br />
Anybody any suggestions on how to speed it up. Heres a quick idea of what it does.<br />
<br />
Scans the current line to decide how wide it can fill.<br />
Fills each pixel, moving only y+1 and y-1 by calling itself.<br />
<br />
Here is a printout of the code:<br />
<br />
<a href="http://www.officetrack.com/download/wos/floodfilla.pdf" rel="nofollow">http://www.officetrack.com/download/wos/floodfilla.pdf</a><br />
<br />
My reasoning in doing this is that I cannot find a simple, fast assembler routine that you can just call with for e.g. 2 registers set with the x, y. They all use the stack too much.<br />
<br />
Thanks,<br />
<br />
Carl]]></description>
   </item>
   <item>
      <title>How do you make AY sound?</title>
      <link>https://worldofspectrum.org/forums/discussion/20922/how-do-you-make-ay-sound</link>
      <pubDate>Fri, 06 Jun 2008 10:28:13 +0000</pubDate>
      <dc:creator>Vertigo</dc:creator>
      <guid isPermaLink="false">20922@/forums/discussions</guid>
      <description><![CDATA[Are there tools?<br />
Or is it all done in assembler?<br />
Any tutorials around for people who like things explained in simple terms?<br />
Ta!]]></description>
   </item>
   <item>
      <title>help need with Writing a Text adventure</title>
      <link>https://worldofspectrum.org/forums/discussion/20909/help-need-with-writing-a-text-adventure</link>
      <pubDate>Thu, 05 Jun 2008 11:40:34 +0000</pubDate>
      <dc:creator>DirtyHagger</dc:creator>
      <guid isPermaLink="false">20909@/forums/discussions</guid>
      <description><![CDATA[Hi peeps,<br />
<br />
I fancy creating my own adventure game, I know of Quills and PAWS, however has any one got any advice or tips to get me started?]]></description>
   </item>
   <item>
      <title>Spectrum +3 Lightgun help</title>
      <link>https://worldofspectrum.org/forums/discussion/20894/spectrum-3-lightgun-help</link>
      <pubDate>Wed, 04 Jun 2008 06:13:38 +0000</pubDate>
      <dc:creator>dg67</dc:creator>
      <guid isPermaLink="false">20894@/forums/discussions</guid>
      <description><![CDATA[Hi everybody,<br />
I've a light gun for Spectrum +2A/+3 never tested. Can someone write here a small ZX-BASIC test program helping me to understand if it correctly works?<br />
<br />
Thanks<br />
dg]]></description>
   </item>
   <item>
      <title>Z88DK - file IO on a plus 3</title>
      <link>https://worldofspectrum.org/forums/discussion/20781/z88dk-file-io-on-a-plus-3</link>
      <pubDate>Sun, 25 May 2008 19:20:44 +0000</pubDate>
      <dc:creator>Winston</dc:creator>
      <guid isPermaLink="false">20781@/forums/discussions</guid>
      <description><![CDATA[So I have this very simple program, and it doesn't want to open a file for writing:<br />

<pre>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

void main()
{
	FILE *stream;

	printf(&quot;\x1B[2JTest of file IO\n&quot;);
	stream=fopen(&quot;foo&quot;, &quot;w&quot;);

	if(!stream)
	{
		printf(&quot;Failed\n&quot;);
		return;
	}
	fprintf(stream, &quot;foo\n&quot;);
	fclose(stream);
}
</pre>
<br />
It is compiled from a Makefile, and the build output looks like this:<br />

<pre>zcc +zxansi -vn -O2 -preserve -DPLUS3   -c -o main.o main.c
zcc +zxansi -vn -O2 -preserve -DPLUS3 -o test.bin main.o -lp3
</pre>
<br />
There are no compile or link errors. However, fopen always returns NULL - I can give it the filename "m:foo", "a:foo" or simply "foo". The disk doesn't spin, RAMdisk doesn't get written. I've not found an equivalent to 'perror' or a global errno, so the only thing I see is fopen returning NULL.<br />
<br />
What am I missing here?]]></description>
   </item>
   <item>
      <title>Dunric's 8K Adventure now ported to ZX Spectrum</title>
      <link>https://worldofspectrum.org/forums/discussion/20802/dunric-s-8k-adventure-now-ported-to-zx-spectrum</link>
      <pubDate>Mon, 26 May 2008 21:26:39 +0000</pubDate>
      <dc:creator>Paul Panks</dc:creator>
      <guid isPermaLink="false">20802@/forums/discussions</guid>
      <description><![CDATA[Thanks to Woody and others, I have now ported Dunric's 8K Adventure on over to the ZX Spectrum. There are 3 files in the archive: adv8k.bas, adv8k.txt and adv8k.z80.<br />
<br />
You can download the programs here:<br />
<br />
<a href="http://www.geocities.com/dunric/index.html" rel="nofollow">http://www.geocities.com/dunric/index.html</a><br />
<br />
(scroll down about 3/4ths of the way to the ZX Spectrum version of "8K Adventure").<br />
<br />
Paul]]></description>
   </item>
   <item>
      <title>ZX-Modules with support of many compressed file formats</title>
      <link>https://worldofspectrum.org/forums/discussion/20728/zx-modules-with-support-of-many-compressed-file-formats</link>
      <pubDate>Wed, 21 May 2008 05:15:14 +0000</pubDate>
      <dc:creator>clausjahn</dc:creator>
      <guid isPermaLink="false">20728@/forums/discussions</guid>
      <description><![CDATA[Hi Spectrum lovers,<br />
<br />
don't think I'm deceased in the meantime. I'm still working! :-)<br />
<br />
I'm very happy to find a very good component package (I have bought) for development of the ZX-Modules programs ZX-Editor, ZX-Blockeditor, ZX-Explorer, etc. It's called <a href="http://www.ziptv.com" rel="nofollow">ZipTV</a>.<br />
Well, it does not only support ZIP files, but also ARJ, LHA, LZH, RAR, ZOO, GZ, TAR and many more formats I never heared about. The wonderful thing is that all these formats use a common interface for me as the programmer and that makes the things very easy.<br />
I'm just implementing it into my programs so the next release of ZX-Modules in (hopefully) some weeks does not only contain full TRD support, but also full reading support of the above mentioned compressed files. That also will go for those programs which not yet supported compressed files: ZX-Editor S.E. and ZX-Paintbrush.<br />
<br />
Kind regards,<br />
<br />
Claus.]]></description>
   </item>
   <item>
      <title>Timex question</title>
      <link>https://worldofspectrum.org/forums/discussion/20747/timex-question</link>
      <pubDate>Thu, 22 May 2008 21:07:49 +0000</pubDate>
      <dc:creator>Jimmy</dc:creator>
      <guid isPermaLink="false">20747@/forums/discussions</guid>
      <description><![CDATA[I've been writing a program for CCG2008 and it actually has a use for the 512x192 mode of the Timex computers. I read up about port 255 and how the display map is used, but when I ran my software it kept crashing. It would work fine on a Spectrum but not on a Timex! :confused:<br />
<br />
Eventually I found out it was due to the stack being in a funny location. Why does the Timex keep SP at around $61F6 regardless of what value you put after a CLEAR? :???:<br />
<br />
I've never used the TS2068 before, so if this is a dumb question then I apologise in advance! :razz:<br />
<br />
My program starts with CLEAR 30000, so it expects SP in a similar area. When I was trying to clear the screen of the second half of the display ($6000-$77FF) I was effectively wiping out the stack!]]></description>
   </item>
   <item>
      <title>+3 and .tzx</title>
      <link>https://worldofspectrum.org/forums/discussion/20668/3-and-tzx</link>
      <pubDate>Fri, 16 May 2008 11:48:46 +0000</pubDate>
      <dc:creator>orange</dc:creator>
      <guid isPermaLink="false">20668@/forums/discussions</guid>
      <description><![CDATA[Is there software for ZX +3 that would allow loading .tzx files from floppy diskdrive and saving it to cassette tape (not running them)?<br />
(I have heard that real spectrum output is better than soundcards)]]></description>
   </item>
   <item>
      <title>MB02+ software and system developments</title>
      <link>https://worldofspectrum.org/forums/discussion/20026/mb02-software-and-system-developments</link>
      <pubDate>Mon, 24 Mar 2008 09:42:56 +0000</pubDate>
      <dc:creator>ingo</dc:creator>
      <guid isPermaLink="false">20026@/forums/discussions</guid>
      <description><![CDATA[The following text was (before last modification) first published here:<br />
<a href="http://www.sintech-shop.com/forum/board.php?boardid=20" rel="nofollow">http://www.sintech-shop.com/forum/board.php?boardid=20</a><br />
<br />
As discussion did not happen there I try to start a new thread here hoping to get reactions from other MB02+ users.<br />
<br />
Some ideas and rules about further software development for MB02+ I think about:<br />
<br />
First of all:<br />
I read and heard that some people (developers) think, that in times of CD-ROMs, HDDs and  flash cards floppy is unnecessary even in MB02+. I think it would be good to have the possibility to decide from what device to boot: floppy, CF card or tape. But I would not be willing to abandon a floppy drive.<br />
It is the special advantage of MB02+ to have 3 different media (representing different decades of storage devices) to load / save from / to: tape, floppy and HDD/CF card.<br />
If one think floppy is out of time I would reply ZX Spectrum is also out of time. It is a nice representative of an antiquated computer generation worthwile to collect and use for enjoyment.<br />
To have floppy integrated gives the possibility to exchange software with other (old) systems like +D, MS-DOS, (maybe in future BetaDisk) or other MB02+ users without the need of additional hardware like PC.<br />
<br />
What ever will be done in hardware or software for ZX Spectrum, it is important (for me) to keep the feeling you sit at a Sinclair Computer from the 1980th, a computer with a well designed Basic and with a tape input; designed to get into contact with the world of computers ? not a simple game machine.<br />
Interfaces connected to the Spectrum computer should not have more intelligence then spectrum itself ? one should not have a problem to recognize the system as a Spectrum computer from 1982 with some useful adds. Hardware should only include components that were be in principle available at life time of Spectrum ? so no modern MCs or CPUs should work outside Spectrum.<br />
<br />
In opposition to the windows world Spectrum and its components have the advantage of beeing a stable long life system.<br />
Most important for me is that improvements for MB02+ should run at any (!) MB02+ without big modification (if 512k SRAM is present) with nearly all software made for Spectrum.<br />
<br />
New system components for MB02+  may not divide MB02+ users into different fractions, because we need a stable big MB02+ community to justify the effort in development! It is very important that the users trust their device and systems.<br />
<br />
<br />
Point of origin:<br />
<br />
The main benefits of MB02+ are:<br />
1. the feeling to use a real tape (with automatic moved tape pointer) even while accessing a floppy disk or a HDD. Each disk acts as a tape. HDD, Disk and tape exist side by side as storage devices at MB02+ and Spectrum and data exchange between all 3 media is simply possible and is implemented in operating system.<br />
2. All functions to get access to the disk content is fully implemented in basic and there is no need of NMI menu therefore! Also headerless files are correct handled.<br />
3. MB02+ contains powerfull components which distinguish it from other interfaces as tere are: DMA, FDD, HDD, 3 x 8 bit parallel port (partly used for Kempston joystick). The last mentioned part is most underestimated. Most other interfaces available for ZX Spectrum are storage solutions only, while MB02+IDE is a multi interface which enables to get into contact with ambience. A parallel printer or A/D- D/A- converters as well as hardware to be controlled can simply be connected to that parallel port. So the MB02+IDE is THAT interface for the ambitous user who like to get more of his Spectrum than a simple gaming machine.<br />
<br />
<br />
What to do in future?<br />
<br />
1. Improvements of operating system or utilities should be usable from the majority of Spectrum / MB02+ users. So, implementation of CTC might be possible but only as an additional throughout connector which is placed between Spectrum and any MB02+ (also the original version).<br />
<br />
2. The majority of software should have benefit of the improvements.<br />
Therefore I think it would be a big advantage to have the possibility to temporarily stack software as a snapshot into free MB02+ RAM and to switch between these snapshots. (Really multitasking is not necessary I think.) This new function could be used by all users of MB02+ with any software running on Spectrum. The only need is to have enough RAM installed and that is cheap and could easily be done. It might be interesting for programmers / hackers as well as for normal users. Until now drive 9 is not usable if IDE is implemented ? maybe drive 9 could hold these snapshots. Switching between these snapshots might be done via &lt;NMI&gt; &lt;SYM&gt; &lt;1&gt; ... &lt;9&gt;.<br />
<br />
3. Improved file manager as Discobolos 3.x or MB Commander 2.x should realize following functions besides their known features:<br />
a. Connection to other file systems as FAT (indeed Discobolos has such function)<br />
b. Access (copy from/to) to a Slave HDD / CF-Card, it would be sufficient to use Slave HDD only via this file commander, normal DOS do not need to access Slave HDD. This could be done without any problem of compatibility to existent BS-DOS (see 5. ) .<br />
c. file exchange with tap-files<br />
d. formatting<br />
e. compress, decompress of files<br />
f. printing of screen shots or text files<br />
<br />
4. I would not prefer placing a number of MB02+ Images on a FAT partition as EasyHDD does. If the FAT partition gets corrupted the whole HDD has to be formatted or partitionated. On original MB02+ IDE filesystem each drive can be formatted without destroying drives in the neighborhood.<br />
<br />
5. It should be kept to have the possibility in NMI to switch standard in/output device for files between disk and tape.<br />
<br />
6. Booting should be available from floppy as well as from HDD. I would prefer to get the possibility of selecting the boot device after RESET by pressing a button. So it would be possible to boot from floppy or tape if one installs a brand new HDD (CF card) which has to be formatted in system.<br />
<br />
Ingo.]]></description>
   </item>
   <item>
      <title>Colour Sudoku - Final version</title>
      <link>https://worldofspectrum.org/forums/discussion/20633/colour-sudoku-final-version</link>
      <pubDate>Mon, 12 May 2008 16:13:34 +0000</pubDate>
      <dc:creator>jpablo</dc:creator>
      <guid isPermaLink="false">20633@/forums/discussions</guid>
      <description><![CDATA[Hi,<br />
<br />
Just a quick note to say that the TAP linked here:<br />
<br />
<a href="http://www.worldofspectrum.org/infoseekid.cgi?id=0019220" rel="nofollow">http://www.worldofspectrum.org/infoseekid.cgi?id=0019220</a><br />
<br />
has just been replaced by one containing an updated (final?) version of this program.]]></description>
   </item>
   </channel>
</rss>