<?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/p64/feed.rss</link>
      <pubDate>Mon, 22 Apr 2024 11:38:37 +0000</pubDate>
         <description>Development - World of Spectrum</description>
   <language>en-CA</language>
   <atom:link href="https://worldofspectrum.org/forums/categories/development/p64/feed.rss" rel="self" type="application/rss+xml" />
   <item>
      <title>ZXSpectrum +3 - New Software</title>
      <link>https://worldofspectrum.org/forums/discussion/22848/zxspectrum-3-new-software</link>
      <pubDate>Wed, 19 Nov 2008 18:11:03 +0000</pubDate>
      <dc:creator>NaMcO</dc:creator>
      <guid isPermaLink="false">22848@/forums/discussions</guid>
      <description><![CDATA[Hello,<br />
<br />
This is my first post here on WOS, i'm very glad to be here and be a part of this community. To make this short, i've been programming on the Speccy for quite some time now (since 85 or 86 maybe) and naturally some programs came up along the way.<br />
<br />
Most of these programs are +3 utilities i wrote for in-house use, there's also a version of a Your Sinclair game called "Goblin Mountain" and a graphic remake of CRL's "Formula1" which i dubbed "Formula1 '98" but that's another story.<br />
<br />
My most advanced application is called "+3 TOOLS" and i wrote that after looking at D.I.C.E. in some magazine. I had no way to put my hands on D.I.C.E. back then, so i wrote my own and so "+3 TOOLS" was born.<br />
<br />
Here's how TOOLS looks like, currently being reprogrammed based on the original 1993 source code:<br />
<br />
<img src="http://www.allsinclair.com/tools/tools1.png" alt="tools1.png" /><br />
<br />
As you figured out by now, TOOLS is a disk utility for the +3. It features a Sector Editor, Directory Editor and Disassembler to name but a few features. I will soon link to where you can get the old program from and some more utilities i wrote. I am currently finishing the new version so it's ready for release Jan 1, 2009 along with other applications throughout the year.<br />
<br />
Here's a snapshot of the Directory Editor and Sector Editor:<br />
<br />
<img src="http://www.allsinclair.com/tools/tools2.png" alt="tools2.png" /><br />
<br />
<img src="http://www.allsinclair.com/tools/tools3.png" alt="tools3.png" /><br />
<br />
I hope this will be useful somehow. Other applications include (all for +3 only, sorry) a Font Editor, Microhobby Hexadecimal Listing Loader, Graphics Grabber (grabs sprites off screens), Screen Compressor, etc etc.<br />
<br />
Stay tuned for more news and new software for the +3 ;-)]]></description>
   </item>
   <item>
      <title>Help: OUT (port), A</title>
      <link>https://worldofspectrum.org/forums/discussion/23338/help-out-port-a</link>
      <pubDate>Tue, 30 Dec 2008 17:01:35 +0000</pubDate>
      <dc:creator></dc:creator>
      <guid isPermaLink="false">23338@/forums/discussions</guid>
      <description><![CDATA[[deleted]]]></description>
   </item>
   <item>
      <title>Any BBC aware Specchums out there?</title>
      <link>https://worldofspectrum.org/forums/discussion/21819/any-bbc-aware-specchums-out-there</link>
      <pubDate>Tue, 19 Aug 2008 22:01:59 +0000</pubDate>
      <dc:creator>Jimmy</dc:creator>
      <guid isPermaLink="false">21819@/forums/discussions</guid>
      <description><![CDATA[After the UK101 and VIC20 emulators I've moved my sights onto emulating a BBC computer. This emulator will be different though in that it will be a Z80 / 6502 hybrid. It still uses a 6502 core to run the real BASIC 4 ROM, but the operating system calls will be emulated in Z80 for maximum speed. This means reading the keyboard, writing to the screen, saving to tape, scrolling the screen etc. will be in native, fast Z80.<br />
<br />
I actually do have a working prototype in that it allows you to type and run a BBC BASIC program. You currently can't draw to the screen, save files, make sounds or use TIME functions as I haven't implemented those calls yet. The emulator is flexible enough to try and run any Language paged ROM though. I have tested it with Comal, Forth and BCPL with success. I've even tried it with View (word processor), but that's currently unusable.<br />
<br />
I'm asking if anybody else out there has a good knowledge of the BBC OS? I did think of JGHarston, but I never had a response to my private message. I do intend to publish all of the source code (like the VIC), but it would be nice if anybody could lend support with the following :<br />

<ol>
<li>File system support - writing to Microdrive from m/c. I need to be able to implement core file routines for reading/writing files, checking for EOF, deleting files, changing file attributes etc.<br />
</li>
<li>Graphics support - the BBC could implement one text and one graphics window. Does anybody have a windowing routine "they made earlier"? The windows will need to be pixel accurate rather than character square sized. I did see one in ZX Computing, but the windows had to be based on a character square location. If I intend to implement 40 chars/line then I can't rely on even text chars being aligned to a character square.<br />
</li>
<li>More graphics support - the BBC draws lines and fills shapes via VDU 25 commands. Does anybody have a fill routine which can fill with an 8x8 bit pattern? I also need a routine which can draw a dotted line (of pattern byte 'b') with the option of not drawing the first/last pixel.</li>
</ol>
<br />
I know this is a lot to ask, but if you don't ask you don't get! Besides, somebody might be able to point me to a useful magazine article or even have some code already written to do the task.<br />
<br />
It does seem odd typing in a BBC Basic program on a Spectrum. It will seem even odder when it assembles and runs 6502 code and allows you to use * commands.]]></description>
   </item>
   <item>
      <title>Question about digitized sound and video</title>
      <link>https://worldofspectrum.org/forums/discussion/14420/question-about-digitized-sound-and-video</link>
      <pubDate>Thu, 18 Jan 2007 01:34:23 +0000</pubDate>
      <dc:creator>zxbruno</dc:creator>
      <guid isPermaLink="false">14420@/forums/discussions</guid>
      <description><![CDATA[I searched the forums and couldn't find the answer, so here it goes.<br />
<br />
Regarding digitized sound:<br />
<br />
I remember reading an article long ago about a video digitizer for the Spectrum,<br />
but I never had the chance to get one in my hands. I don't know how it worked, if it captured snapshots or movies, or if it compressed the images or not. I can't find any info about it online.<br />
<br />
By taking a look at some of the videos at YouTube,<br />
I realized how incredible (at least for us Speccy users) digitized video can look.<br />
<br />
<a href="http://youtube.com/watch?v=VgTQA_zDEmI" rel="nofollow">http://youtube.com/watch?v=VgTQA_zDEmI</a><br />
<br />
Since I don't have a video digitizer, I would like to know if someone here has done something like this.<br />
<br />
I know that bmp2scr does a good job converting any image to a speccy scr.<br />
But I wonder if there's a way to process a pc video file, frame by frame, convert it to a sequence of compressed .scrs and send it to the emulator or save it as an emulator snapshot. Any ideas?<br />
<br />
Imagine watching a movie or a long video clip in zx video file format!<br />
<br />
Sorry for the long post.]]></description>
   </item>
   <item>
      <title>MB-RESI copy tool, ver. 2.0</title>
      <link>https://worldofspectrum.org/forums/discussion/23184/mb-resi-copy-tool-ver-2-0</link>
      <pubDate>Tue, 16 Dec 2008 22:25:29 +0000</pubDate>
      <dc:creator>Hood</dc:creator>
      <guid isPermaLink="false">23184@/forums/discussions</guid>
      <description><![CDATA[Dear ResiDos and MB02+ friends,<br />
<br />
on <a href="http://hood.speccy.cz" rel="nofollow">http://hood.speccy.cz</a> I am bringing you a new version of this neat copy tool. What is new? Only one thing: it can copy more files at once also from ResiDos (previous version 1.5 could only copy a single file at the time) with all the information such as progress of copying, current file info etc.<br />
<br />
This was also for the first time I had been coding for ResiDos and I really enjoyed it. Many thanks go to Garry Lancaster for his patience, hints and tips and guidance. Closer info to be found on my website.<br />
<br />
Hope you will like it<br />
<br />
<br />
Hood]]></description>
   </item>
   <item>
      <title>DEBUGGER/MONITOR for ALLRAM</title>
      <link>https://worldofspectrum.org/forums/discussion/23315/debugger-monitor-for-allram</link>
      <pubDate>Sun, 28 Dec 2008 01:00:15 +0000</pubDate>
      <dc:creator>velesoft</dc:creator>
      <guid isPermaLink="false">23315@/forums/discussions</guid>
      <description><![CDATA[<a href="http://velesoft.speccy.cz/other/devastace2008.zip" rel="nofollow">http://velesoft.speccy.cz/other/devastace2008.zip</a><br />
<br />
<img src="http://velesoft.speccy.cz/other/devastace2008.gif" alt="devastace2008.gif" /><br />
<br />
This is modified version of old monitor/debugger DEVASTACE for ZX Spectrum.<br />
Can trace/edit memory 0-16383 without ZX ROM !!!<br />
Ideal for trace software on DIVIDE,MB02+,+3 ALLRAM,ZXCF,ZX MATRIX,etc...<br />
<br />
ENGLISH MANUAL: <a href="http://sysel.webz.cz/docs/eng_devastace.html" rel="nofollow">http://sysel.webz.cz/docs/eng_devastace.html</a><br />
<br />
VELESOFT]]></description>
   </item>
   <item>
      <title>Music in my JUMPER-game : Deadmarch Chopin</title>
      <link>https://worldofspectrum.org/forums/discussion/23095/music-in-my-jumper-game-deadmarch-chopin</link>
      <pubDate>Wed, 10 Dec 2008 07:17:03 +0000</pubDate>
      <dc:creator>Dr BEEP</dc:creator>
      <guid isPermaLink="false">23095@/forums/discussions</guid>
      <description><![CDATA[Anyone has in BEEPs the deadmarch from Chopin?<br />
<br />
Only the "pam pam papam pam pa papam pam pa pam" part.<br />
<br />
TIA<br />
<br />
Dr Beep.]]></description>
   </item>
   <item>
      <title>John Elliot does it again! Re: TOS disks.</title>
      <link>https://worldofspectrum.org/forums/discussion/23027/john-elliot-does-it-again-re-tos-disks</link>
      <pubDate>Fri, 05 Dec 2008 00:45:25 +0000</pubDate>
      <dc:creator>zxbruno</dc:creator>
      <guid isPermaLink="false">23027@/forums/discussions</guid>
      <description><![CDATA[<a href="http://groups.google.co.uk/group/comp.sys.amstrad.8bit/browse_thread/thread/aa809b6f6b9c6f7f#" rel="nofollow">http://groups.google.co.uk/group/comp.sys.amstrad.8bit/browse_thread/thread/aa809b6f6b9c6f7f#</a><br />
<br />
It is now possible (and easier) to extract files from 3" Timex FDD discs, thanks to  John Elliot! <img src="http://img.photobucket.com/albums/v400/zxspectrum/smilies/w000t.gif" alt="w000t.gif" /><br />
<br />
Using the same method but with different parameters it was possible to extract files from a Timex CP/M disk image:<br />
<br />
<a href="http://groups.google.com/group/comp.sys.sinclair/browse_thread/thread/c9ba8b1e055da68d/486e97a07a16d7f5#486e97a07a16d7f5" rel="nofollow">http://groups.google.com/group/comp.sys.sinclair/browse_thread/thread/c9ba8b1e055da68d/486e97a07a16d7f5#486e97a07a16d7f5</a><br />
<br />
Here's some quotes:<br />

<blockquote>

<div>Bruno Florindo &lt;zxspectrum...<a rel="nofollow" href="/forums/profile/gmail">@gmail</a>.com&gt; wrote:<br />
<br />
: I'm afraid not. :(<br />
: I kept searching and I found this page:<br />
: <a href="http://timex.comboios.info/tos.html" rel="nofollow">http://timex.comboios.info/tos.html</a><br />
: I'm not sure if the technical informationt there would help.<br />
<br />
Interesting. The directory format's certainly CP/M, though the entries<br />
starting with a 0xFF byte aren't standard. The software skew probably rules<br />
out access with +3 CP/M or PCW CP/M, at least without patching; they tend to<br />
assume hardware skewing.<br />
<br />
I managed to read the files on the example .DSK file you sent me, using<br />
a collection of tools under Unix:<br />
<br />
1. Have libdsk and cpmtools installed.<br />
2. Add the following definition to .libdskrc:<br />
<br />
[FDD3000]<br />
Description = Timex FDD3000<br />
Sidedness = Alt<br />
Cylinders = 40<br />
Heads = 1<br />
Sectors = 16<br />
SecBase = 0<br />
SecSize = 256<br />
DataRate = SD<br />
RWGap = 12<br />
FmtGap = 23<br />
FM = N<br />
Multitrack =Y<br />
SkipDeleted = Y<br />
<br />
3. Add the following definition to /usr/local/share/diskdefs:<br />
<br />
diskdef fdd3000<br />
seclen 256<br />
tracks 40<br />
sectrk 16<br />
blocksize 1024<br />
maxdir 128<br />
boottrk 4<br />
os 2.2<br />
skew 7<br />
end<br />
<br />
4. Convert from DSK to raw, to make life easy for cpmtools:<br />
<br />
dsktrans -otype raw -format FDD3000 D01A.DSK D01A.ufi<br />
<br />
5. Extract the files:<br />
<br />
cpmcp -f fdd3000 0:\* .<br />
<br />
I took a look at a couple of files with a hex editor to check they'd<br />
arrived safely, which they seemed to have.<br />
<br />
6. Convert the file headers to +3DOS. I wrote, in extreme haste, a C program<br />
to do this, which you'll find at the end of this post. It's mucky and the<br />
error checking is in serious need of improvement.<br />
<br />
7. Stick the resulting +3DOS files in a .TAP so an emulator could get at<br />
them:<br />
<br />
tapcat -N all.tap *.zxb<br />
<br />
And here's the source for the program that converts Timex headers to +3DOS.<br />
<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;string.h&gt;<br />
<br />
unsigned char p3dos[128];<br />
unsigned char timex[7];<br />
<br />
void convert(const char *tname)<br />
{<br />
char p3name[80];<br />
FILE *fpi, *fpo;<br />
long len, p3len;<br />
int c, hl;<br />
unsigned char sum;<br />
<br />
memset(timex, 0, sizeof timex);<br />
memset(p3dos, 0, sizeof p3dos);<br />
fpi = fopen(tname, "rb");<br />
if (!fpi) { perror(tname); return; }<br />
fseek(fpi, 0, SEEK_END); len = ftell(fpi); fseek(fpi, 0, SEEK_SET);<br />
c = fgetc(fpi); if (c == EOF) goto timexeof;<br />
timex[0] = c;<br />
if (c &gt; 3)<br />
{<br />
fprintf(stderr, "%s: Unknown format\n", tname);<br />
fclose(fpi);<br />
return;<br />
}<br />
if (c == 0) hl = 7;<br />
else        hl = 5;<br />
if (fread(timex + 1, 1, hl - 1, fpi) &lt; (hl - 1)) goto timexeof;<br />
/* Generate +3DOS header */<br />
p3len = (len - hl) + 128;<br />
memcpy(p3dos, "PLUS3DOS\032\001", 10);<br />
p3dos[11] = p3len &amp; 0xFF;<br />
p3dos[12] = (p3len &gt;&gt;  8) &amp; 0xFF;<br />
p3dos[13] = (p3len &gt;&gt; 16) &amp; 0xFF;<br />
p3dos[14] = (p3len &gt;&gt; 24) &amp; 0xFF;<br />
p3dos[15] = timex[0];<br />
if (timex[0] == 0)<br />
{<br />
memcpy(p3dos + 16, timex + 3, 2);<br />
memcpy(p3dos + 18, timex + 1, 2);<br />
memcpy(p3dos + 20, timex + 5, 2);<br />
}<br />
else<br />
{<br />
memcpy(p3dos + 16, timex + 1, 4);<br />
}<br />
for (c = sum = 0; c &lt; 127; c++)<br />
{<br />
sum += p3dos[c];<br />
}<br />
p3dos[127] = sum;<br />
sprintf(p3name, "%s.zxb", tname);<br />
fpo = fopen(p3name, "wb");<br />
if (!fpo) { perror(p3name); fclose(fpi); return; }<br />
fwrite(p3dos, 1, 128, fpo);<br />
while ((c = fgetc(fpi)) != EOF)<br />
fputc(c, fpo);<br />
fclose(fpo);<br />
fclose(fpi);<br />
<br />
return;<br />
timexeof:<br />
fprintf(stderr, "%s: Unexpected EOF\n", tname);<br />
fclose(fpi);<br />
return;<br />
<br />
}<br />
<br />
int main(int argc, char **argv)<br />
{<br />
int n;<br />
<br />
for (n = 1; n &lt; argc; n++)<br />
{<br />
convert(argv[n]);<br />
}<br />
return 0;<br />
<br />
}</div>
</blockquote>

<blockquote>

<div>In comp.sys.amstrad.8bit Zbigniew Niedzwiedz &lt;zoon@lu.onet.pl&gt; wrote:<br />
: <a href="http://8bit.computer.lublin.pl/files/cpmtimex.zip" rel="nofollow">http://8bit.computer.lublin.pl/files/cpmtimex.zip</a><br />
<br />
I managed to read both disks using the technique I described in<br />
&lt;imo9hg.sm4.ln@seasip.demon.co.uk&gt;, though the second one needed a different<br />
entry in diskdefs (only two system tracks, and a different skew):<br />
<br />
diskdef fdd3000_2<br />
seclen 256<br />
tracks 40<br />
sectrk 16<br />
blocksize 1024<br />
maxdir 128<br />
boottrk 2<br />
os 2.2<br />
skew 5<br />
end<br />
<br />
% cpmls -F -f fdd3000_2 ya3011.ufi<br />
<br />
Name    Bytes   Recs  Attr     update             create
<hr />

<hr />

<hr />
----
<hr />

<hr />
ASM     .COM     8K     64<br />
BACKUP  .COM     2K     12<br />
BIOS    .ASM    12K     96<br />
CBIOS   .MAC    26K    201<br />
CONFIGUR.COM     3K     19<br />
DDT     .COM     5K     40<br />
DUMP    .COM     1K      4<br />
ED      .COM     7K     52<br />
FORMAT  .COM     2K     12<br />
KSIAZKI .I01     1K      3<br />
KSIAZKI .I02     1K      3<br />
KSIAZKI .I04     1K      3<br />
KSJAZKI .DSC     8K     57<br />
KSJAZKI .DTA     1K      1<br />
LOAD    .COM     2K     14<br />
MOVCPM  .COM    12K     92<br />
PIP     .COM     8K     58<br />
STAT    .COM     6K     41<br />
SUBMIT  .COM     2K     10<br />
SYSGEN  .COM     1K      8<br />
XSUB    .COM     1K      6<br />
21 Files occupying    110K,      38K Free.<br />
<br />
--<br />
John Elliott</div>
</blockquote>
<br />
Who knows, maybe this will pave the way for Timex .DSK to +3 .DSK conversions. That way the FDD emulation won't be so needed.<br />
<br />
<img src="http://img.photobucket.com/albums/v400/zxspectrum/smilies/bananadance.gif" alt="bananadance.gif" /><br />
<br />
And now Andy has another way to preserve Spectrum software that might be buried in Portuguese and Polish 3" discs.]]></description>
   </item>
   <item>
      <title>Assembly (getting my bearings)</title>
      <link>https://worldofspectrum.org/forums/discussion/23045/assembly-getting-my-bearings</link>
      <pubDate>Sat, 06 Dec 2008 04:22:41 +0000</pubDate>
      <dc:creator>rahtgaz</dc:creator>
      <guid isPermaLink="false">23045@/forums/discussions</guid>
      <description><![CDATA[I wish the WoS book database was organized by theme and contained reviews :)<br />
<br />
I need your folks help. I'm interested in bringing my assembly into the Z80 and eventually produce some titles for the zx spectrum (free titles, of course).<br />
<br />
I would like suggestions on  what you consider good books for the purpose. Preferably readily available ones free of charge -- I'm trying to avoid spending any more money on the ZX Spectrum right now. Last 2 months of purchases were too much already. I'm also interested in any opinions you might have on possible assemblers and even programming environments.<br />
<br />
I'm planning to assemble on ZXSpin or Spectaculator (still pondering whether I will buy or not the latter...) and I will also be able to test on the real thing (both on a 48k and a 128k).<br />
<br />
I'd really appreciate any comments you might have on this. It's been around 3 years since I last used assembly, and that was for the 32bit PCs. As far as the language goes I only ever used it to support my C or C++ development. I'm assuming I'm on a beginner to medium level.]]></description>
   </item>
   <item>
      <title>Watching screen while debugging???</title>
      <link>https://worldofspectrum.org/forums/discussion/23093/watching-screen-while-debugging</link>
      <pubDate>Tue, 09 Dec 2008 19:25:34 +0000</pubDate>
      <dc:creator>Ralf</dc:creator>
      <guid isPermaLink="false">23093@/forums/discussions</guid>
      <description><![CDATA[I'll try to state my problem clearly, but I don't know if I'll succeed ..:)<br />
<br />
I load a Spectrum program into emulator (it doesn't matter which one at the moment as all which I tried behave the same), press pause and enter debugger. In debugger you can execute machine code instructions (or all subroutines) one by one by pressing appropriate key. You can watch as memory and registers change as instructions are executed<br />
<br />
While debugging you still have Spectrum screen visible. However I can't see the results of single instructions writing data to screen memory. It works this way: nothing happens, then suddenly,after many instructions,all screen is refreshed.<br />
<br />
I guess it works like a real Spectrum, which refreshes screens 50 times per second, reading the screen memory <span style="text-decoration: underline;">at the moment of refresh</span>and not displaying anything which happens between interrupts.<br />
<br />
Is it possible, in any emulator, to watch changes to screen immediately?<br />
<br />
For example if i have the code:<br />
<br />
LD A,255<br />
LD (16384),A<br />
<br />
I would expect that after LD (16384),A a short line will appear in the corner immediately after the instruction and the emulator won't be waiting for interrupt (and executing next instructions meanwhile) to display it.]]></description>
   </item>
   <item>
      <title>A scrolling starfield - help needed!</title>
      <link>https://worldofspectrum.org/forums/discussion/23022/a-scrolling-starfield-help-needed</link>
      <pubDate>Thu, 04 Dec 2008 14:33:20 +0000</pubDate>
      <dc:creator>DrewPee70</dc:creator>
      <guid isPermaLink="false">23022@/forums/discussions</guid>
      <description><![CDATA[I have been messing on my speccy again recently and tried to do a scrolling (parallax - maybe) starfield. I know how to scroll using machine code but . . . how do you create random stars? Some help would be greatly appreciated?<br />
<br />
Andy]]></description>
   </item>
   <item>
      <title>Machine code help pls: LDI example</title>
      <link>https://worldofspectrum.org/forums/discussion/22924/machine-code-help-pls-ldi-example</link>
      <pubDate>Thu, 27 Nov 2008 13:26:33 +0000</pubDate>
      <dc:creator></dc:creator>
      <guid isPermaLink="false">22924@/forums/discussions</guid>
      <description><![CDATA[[deleted]]]></description>
   </item>
   <item>
      <title>So... you want to format your 3.5" as 720K eh?</title>
      <link>https://worldofspectrum.org/forums/discussion/23032/so-you-want-to-format-your-3-5-as-720k-eh</link>
      <pubDate>Fri, 05 Dec 2008 13:51:22 +0000</pubDate>
      <dc:creator>NaMcO</dc:creator>
      <guid isPermaLink="false">23032@/forums/discussions</guid>
      <description><![CDATA[Well, i've been trying to get hold of an application to make proper use of my 3.5" +3 floppy disks but i haven't been able to find any. I stumbled upon Cristian Secara's page one day and he had this DSDD disk format program that would let you format your disks in almost any way possible. I asked him about the proggy and he was a real nice guy and sent it to me, but he also doesn't seem to be very interested in releasing it or the source code, so...<br />
<br />
I made a bit of digging after formatting a few disks with his utility, and based on that i came up with this small format routine. This is not Cristian's code, but is based on disks formatted by his utility and some info i managed to gather around the net.<br />
<br />
Hope it's useful for someone, i am also adding DSDD disk support to "Tools", my disk editor program, due out in Jan 2009 as well, all thanks to Cristian ;)<br />
<br />

<pre>ORG    24500
        
    LD    DE,$00E5                    ; This is the 720k format routine
FOR2    LD    IX,HEAD0                    ; Our sector information buffer
    LD    B,18                        ; We have 18 entries, 9 sectors per track per side
    LD    A,D                        ; Track number goes from 0 to 159
    SRL    A                        ; So we have to divide it by 2 in order to fill our sector buffer
FOR3    LD    (IX+0),A                    ; Here we place the track number (0 to 79) in our sector buffer
    INC    IX                        ; Increase buffer position by 4
    INC    IX
    INC    IX
    INC    IX
    DJNZ    FOR3                        ; And keep looping until all the buffer is updated
    LD    HL,HEAD0                    ; Load HL with the beginning of our sector table as requested by +3DOS
    CALL    TRACK                        ; Format the track on side 0
    JP    NC,FERR                        ; Jump if there's an error
    LD    HL,HEAD1                    ; Load HL with the beginning of our sector table as requested by +3DOS
    CALL    TRACK                        ; Format the track on side 1
    JP    NC,FERR                        ; Jump to the error routine in case of any disk error
    LD    A,D                        ; Let's get the current track number being sent to +3DOS
    CP    160                        ; Are we on track 160 already?
    JR    NZ,FOR2                        ; If not, keep formatting the disk
        
    LD    HL,SECTOR                    ; Now after formatting the disk, we need to store some information on track0
    LD    DE,32768                    ; So the disk gets recognized under BASIC
    LD    BC,16                        ; The buffer is made of 16 bytes
    LDIR                            ; Transfer it to the desired address
    LD    BC,495                        ; Additional 496 bytes to transfer but with this method BC needs to hold 495
    LD    H,D                        ; Load HL with the last address used
    LD    L,E
    INC    DE                        ; The DE register will hold HL+1
    LD    (HL),$E5                    ; The remaining bytes will be filled with $E5
    LDIR                            ; And here we fill the remaining bytes
    LD    A,(DRIVE)                    ; Pick up our default drive
    SUB    65                        ; Drive is stored as a letter, so we need to take out 65 (0 for A or 1 for B)
    LD    B,0
    LD    C,A                        ; BC register holds the unit number as specified by +3DOS
    LD    DE,0                        ; Track 0 and sector 0, where we will put our information sector
    LD    HL,32768                    ; This is where our buffer is
    LD    IX,XDPB                        ; Point IX to the extended disk parameter block
    LD    IY,358                        ; Signal DD WRITE SECTOR
    CALL    DISK                        ; Call the subroutine in ROM and write the data to disk
    JR    NC,FERR                        ; Jump if there's an error
    RET                            ; Format 720k is done

TRACK    PUSH    DE                        ; This subroutine formats a track, make sure DE doesn't get corrupt here
    LD    A,(DRIVE)                    ; As above, this is where we store our drive letter
    SUB    65
    LD    B,0
    LD    C,A                        ; B holds the RAM page in use during operation, C the unit number (0 to 1)
    LD    IX,XDPB                        ; IX points to the XDPB for this disk format
    LD    IY,364                        ; Signal DOS FORMAT
    CALL    DISK                        ; Call the subroutine in ROM
    POP    DE                        ; Restore our DE register, we will need it later
    INC    D                        ; Increment the logical track value
    RET                            ; Return

FERR    LD    A,2                        ; Simple error handler to signal for an error with border 2
    OUT    (254),A
    LD    B,0
    LD    C,A                        ; Put the error number in BC so we can see what happened from BASIC
    RET                            ; Return

DISK    DI                            ; Main +3DOS access subroutine - Disable interrupts before paging
    PUSH    AF                        ; Enter with IY containing the +3DOS routine to be called
    PUSH    BC                        ; Preserve registers
    LD    BC,32765
    LD    A,(23388)
    XOR    %10111
    LD    (23388),A
    OUT    (C),A                        ; Page ROM 2 and RAM PAGE 7
    POP    BC
    POP    AF                        ; Retrieve registers from the stack
    EI                            ; Enable interrupts after paging
    CALL    DISK1                        ; Call the +3DOS subroutine
    PUSH    BC
    PUSH    AF
    LD    IY,23610                    ; Restore registers and original IY value
    DI                            ; Disable interrupts before paging
    LD    BC,32765
    LD    A,16                        ; Page ROM 0 and RAM PAGE 6
    LD    (23388),A
    OUT    (C),A                        ; Actual paging here
    EI                            ; Enable interrupts after paging
    POP    AF
    POP    BC                        ; Restore the registers used
    RET                            ; Return
DISK1    JP    (IY)                        ; Main call to the +3DOS subroutine

DRIVE    DEFB    65                        ; Holds the drive letter

HEAD0    DEFB    0,0,1,2                        ; Sector distribution on track for the format subroutine SIDE 0
    DEFB    0,0,4,2
    DEFB    0,0,7,2
    DEFB    0,0,2,2
    DEFB    0,0,5,2
    DEFB    0,0,8,2
    DEFB    0,0,3,2
    DEFB    0,0,6,2
    DEFB    0,0,9,2

HEAD1    DEFB    0,1,1,2                        ; Sector distribution on track for the format subroutine SIDE 1
    DEFB    0,1,4,2
    DEFB    0,1,7,2
    DEFB    0,1,2,2
    DEFB    0,1,5,2
    DEFB    0,1,8,2
    DEFB    0,1,3,2
    DEFB    0,1,6,2
    DEFB    0,1,9,2

XDPB    DEFW    $24                        ; XDPB for the DSDD 720k format
    DEFB    $04
    DEFB    $0F
    DEFB    $00
    DEFW    $0164
    DEFW    $00FF
    DEFB    $C0
    DEFB    $00
    DEFW    $0020
    DEFW    $0001
    DEFB    $02
    DEFB    $03
    DEFB    $81
    DEFB    $50                        ; Tracks per side
    DEFB    $09                        ; Sectors per track
    DEFB    $01
    DEFW    $0200
    DEFB    $2A
    DEFB    $52
    DEFB    $60
    DEFB    $00

SECTOR    DEFB    $03,$81,$50                    ; Data to be written to track 0 sector 0 regarding this disk's format
    DEFB    $09                        ; Sectors per track
    DEFB    $02,$01,$04,$02,$2A,$52
    DEFB    $00,$00,$00,$00,$00,$00
</pre>
]]></description>
   </item>
   <item>
      <title>[NO NAME PROJECT] contribution</title>
      <link>https://worldofspectrum.org/forums/discussion/23038/no-name-project-contribution</link>
      <pubDate>Fri, 05 Dec 2008 17:10:31 +0000</pubDate>
      <dc:creator>Fikee</dc:creator>
      <guid isPermaLink="false">23038@/forums/discussions</guid>
      <description><![CDATA[hi to all.<br />
im writting new-super-mega game. it will be finished this century. :)<br />
<br />
so what is going on ? in the game (an arcade adventure) player can find some disk and when he reach a computer console he can put disk into it and run its content. the few disk are mandantory to finish game but there will be few bonus disks which just contains some small game.<br />
<br />
is anyone interested in writing of such small game (it is much like minigamecompo).<br />
the bonus mini-game comunicate with main game by simple API<br />

<pre>address  	content
47104		12*8 chars linear buffer (768 bytes)
47872		timer, 16-bit counter,  in 1/50 of sec
47874		attribute for console
47875		keys, bits: [xxx|UP|DOWN|LEFT|RIGHT|FIRE]
47876		exit value, WORD
47878 - 49151	1274 bytes for your code

-interrupt can't be hi-jacked, forget on it, just for your info it will run
 with IM2 and it will take about half of frame
-don't touch stack 
-AY and speaker are available, but this is subject to discussion,
 perhaps some simple service  with few basic sounds will be offered
 and touching ports directly will be forbidden.
-don't worry about registers, everything will be saved on start 
 and reloaded at exit
</pre>
<br />
is anyone interested ?<br />
i can provide the console "emulator" at request.]]></description>
   </item>
   <item>
      <title>Jonathan's Source</title>
      <link>https://worldofspectrum.org/forums/discussion/23018/jonathan-s-source</link>
      <pubDate>Thu, 04 Dec 2008 11:55:59 +0000</pubDate>
      <dc:creator>chop983</dc:creator>
      <guid isPermaLink="false">23018@/forums/discussions</guid>
      <description><![CDATA[Although it's all gibberish to me, I'd like to thank JC for releasing the code to some of his games.]]></description>
   </item>
   <item>
      <title>BEEP conundrum</title>
      <link>https://worldofspectrum.org/forums/discussion/22375/beep-conundrum</link>
      <pubDate>Thu, 09 Oct 2008 20:30:00 +0000</pubDate>
      <dc:creator>Digital Prawn</dc:creator>
      <guid isPermaLink="false">22375@/forums/discussions</guid>
      <description><![CDATA[For the "CSSCGC 2008 Tape Magazine" December edition, I have decided to use a BASIC sound routine I wrote last year which plays a festive tune using the BEEP command.<br />
<img src="http://i77.photobucket.com/albums/j71/benkid77/smilies/music-smiley-017.gif" alt="music-smiley-017.gif" /><br />
<br />
Previous magazines have used AY chip music, but I wanted to make a mag which works on a 48K system.<br />
<br />
Here's the problem:-<br />
<br />
I play the BEEP tune on the main menu screen, but of course interrupts are disabled during a BEEP command.<br />
<br />
Therefore the user has to hold relevant the menu option key down to get into the sub-menus because the keypress is only detected between notes. (up to a second or so).<br />
<br />
I guess there's no easy way in BASIC to make the menu responsive to quick presses (like on the previous AY based menus) is there?<br />
<br />
It may be a case of a machine code replacement for BEEP, which also checks keys unless of course anyone knows any handy BASIC trick.<br />
<br />
That would be preferable, since I could just modify the already implemented BASIC routine.<br />
<br />
Thanks for any possible replies,<br />
DP<br />
<img src="http://i77.photobucket.com/albums/j71/benkid77/smilies/mixed-smiley-007.gif" alt="mixed-smiley-007.gif" />]]></description>
   </item>
   <item>
      <title>A List Of Zx Spectrum Music Editors</title>
      <link>https://worldofspectrum.org/forums/discussion/22052/a-list-of-zx-spectrum-music-editors</link>
      <pubDate>Wed, 10 Sep 2008 15:05:03 +0000</pubDate>
      <dc:creator>Mister Beep</dc:creator>
      <guid isPermaLink="false">22052@/forums/discussions</guid>
      <description><![CDATA[Well, not for me actually, as 99,99% of them are for AY, covox and GS cards but several times some people asked about music editors for ZX Spectrum.<br />
This list is kind of comprehensive.<br />
(a link from YouTube) <a href="http://zxtrackers.republika.pl/" rel="nofollow">http://zxtrackers.republika.pl/</a>]]></description>
   </item>
   <item>
      <title>Can the +3 read TOS disks?</title>
      <link>https://worldofspectrum.org/forums/discussion/22960/can-the-3-read-tos-disks</link>
      <pubDate>Sun, 30 Nov 2008 07:14:48 +0000</pubDate>
      <dc:creator>zxbruno</dc:creator>
      <guid isPermaLink="false">22960@/forums/discussions</guid>
      <description><![CDATA[I've sent 2 dozens of TOS disks so that they could be preserved as disk images, but as of today there's no emulator that can emulate Timex's FDD.<br />
The Timex FDD and FDD3000 are very rare. I have one but it seems the interface has a problem.<br />
Instead of trying to find a working FDD or using cpdread and qtrans, would it be possible to use the +3s drive to read them directly? I'm not talking about running the TOS operating system here. To be able to read the contents of the disks directly on a Spectrum would be more than enough.<br />
<br />
Here's some files that were preserved by Jos? Leandro and Jos? Manuel from Speccy.org. I've sent them TOS disks and one Timex FDD interface for analysis.<br />
<br />
<a href="http://www.zxspectrum.it/_TI.htm" rel="nofollow">http://www.zxspectrum.it/_TI.htm</a><br />
<br />
Maybe the FDD3000 roms can be loaded in the +3, but that would be an entirely different topic.]]></description>
   </item>
   <item>
      <title>PING:Alvin</title>
      <link>https://worldofspectrum.org/forums/discussion/22597/ping-alvin</link>
      <pubDate>Tue, 28 Oct 2008 14:49:32 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">22597@/forums/discussions</guid>
      <description><![CDATA[Since I archive my emails offline I am prone to losing people's email addresses.]]></description>
   </item>
   <item>
      <title>Design Design loader revisited</title>
      <link>https://worldofspectrum.org/forums/discussion/22899/design-design-loader-revisited</link>
      <pubDate>Mon, 24 Nov 2008 07:34:05 +0000</pubDate>
      <dc:creator>Kilby</dc:creator>
      <guid isPermaLink="false">22899@/forums/discussions</guid>
      <description><![CDATA[<b>Fixed the .zip files</b><br />
<br />
Hopefully I have posted in the correct forum.<br />
<br />
I mentioned a while back that I had dissassembled and documented the old Crystal / Design Design loader (Invasion of the ... Rommels &amp; HOTT).<br />
<br />
Well I seem to have taken things a little too seriously and carried out the following with it:<br />
<br />
Reduced the size of the original loader,<br />
Allowed easily changable (screen:data) interleave ratios<br />
<br />
<b>More importantly I have also knocked together a compatable save routine</b><br />
<br />
It also allows you to easily specify the interleave and you can also play with which direction the screen loads.<br />
<br />
There are a couple of demo .tzx files and full .asm files (amongst a lot of other stuff) here <a href="http://homepage.ntlworld.com/cta102/hello.html" rel="nofollow">http://homepage.ntlworld.com/cta102/hello.html</a><br />
<br />
Be kind about the source as it has been donkeys years since I wrote anything on the Z80]]></description>
   </item>
   <item>
      <title>RGB on speccy ?</title>
      <link>https://worldofspectrum.org/forums/discussion/22744/rgb-on-speccy</link>
      <pubDate>Tue, 11 Nov 2008 14:11:20 +0000</pubDate>
      <dc:creator>Fikee</dc:creator>
      <guid isPermaLink="false">22744@/forums/discussions</guid>
      <description><![CDATA[hi, just a question : are you aware of scene demo trying emulate rgb ?<br />
<br />
i was a bit ill last few days so laying in bad i come with a (stupid ?) idea.<br />
<br />
1) assume we have multicolor routine which sets ink in each pixel line to RED, BLUE or GREEN (paper is black)<br />
2) assume the RGB pixel is 4 points wide. so we could set intensity of color somehow
<pre>0  ...   0000
1  ...   1000
2  ...   1100
3  ...   1110
</pre>
actually, it will be better to have RGB pixels with width of 3 points but it complicates whole thing a bit<br />
3) so we could emulate 64 color in pixels of size 3x4 (4x4 with 4th line also possible when correct X:Y ratio is needed)<br />
for example:
<pre>B=2 R=3 G=1  will look

blue line   1100
red line    1110
green line 1000
(black line for 4x4 pixels)
</pre>
<br />
i did quick mockup in Paintshop and it looks reasonable for some purposes<br />
<br />
so, did anyone tried this kind of RGB emulation ?]]></description>
   </item>
   <item>
      <title>Spectrum does streaming video</title>
      <link>https://worldofspectrum.org/forums/discussion/22889/spectrum-does-streaming-video</link>
      <pubDate>Sun, 23 Nov 2008 11:50:17 +0000</pubDate>
      <dc:creator>Winston</dc:creator>
      <guid isPermaLink="false">22889@/forums/discussions</guid>
      <description><![CDATA[Actually, I was surprised my ROM routines for the socket library were fast enough, but the video seems to play at more or less the correct speed.<br />
<br />
Here's the video of, err, the video.<br />
<br />
<div></div><br />
<br />
<a href="http://www.youtube.com/watch?v=hf8rz0sb298" rel="nofollow">http://www.youtube.com/watch?v=hf8rz0sb298</a>]]></description>
   </item>
   <item>
      <title>Sprite Tutorial: Section on Masked Sprites added</title>
      <link>https://worldofspectrum.org/forums/discussion/8605/sprite-tutorial-section-on-masked-sprites-added</link>
      <pubDate>Tue, 26 Jul 2005 23:30:00 +0000</pubDate>
      <dc:creator>dmsmith</dc:creator>
      <guid isPermaLink="false">8605@/forums/discussions</guid>
      <description><![CDATA[Latest installment of my Sprite Graphics Tutorial:<br />
<br />
<a href="http://members.aol.com/derekmsmith1/Spectrum/TUTORIAL.RTF" rel="nofollow">http://members.aol.com/derekmsmith1/Spectrum/TUTORIAL.RTF</a><br />
<br />
Derek]]></description>
   </item>
   <item>
      <title>Screen access in assembler</title>
      <link>https://worldofspectrum.org/forums/discussion/22811/screen-access-in-assembler</link>
      <pubDate>Mon, 17 Nov 2008 09:59:07 +0000</pubDate>
      <dc:creator>Rickard</dc:creator>
      <guid isPermaLink="false">22811@/forums/discussions</guid>
      <description><![CDATA[I am again troubled by the unusal screen design of the Spectrum. :)<br />
<br />
If I want to do something with, say, a 16x16 bit block of the screen (in the same 1/3 part of the display), how would I do that the most easy way?<br />
<br />
For example, if I want to write something into four character blocks (located 2x2) and I have the correct start address in the display file loaded into HL, I know I can get to the next right byte by increasing HL with one, but how do I access the other parts?<br />
<br />
I think there is a logic there, but I have unfortunaly forgot it... Was it something like increasing H would get me one bit (or byte) row below?<br />
<br />
Any help would be great!]]></description>
   </item>
   <item>
      <title>Can anybody recommend a good ZX Speccy Z80 assembler?</title>
      <link>https://worldofspectrum.org/forums/discussion/22689/can-anybody-recommend-a-good-zx-speccy-z80-assembler</link>
      <pubDate>Wed, 05 Nov 2008 19:35:42 +0000</pubDate>
      <dc:creator>BigBadMick</dc:creator>
      <guid isPermaLink="false">22689@/forums/discussions</guid>
      <description><![CDATA[I was thinking of using Hisoft Devpac v3, along with some of the cool Z80 textbook scans in the scan repository, to learn some Z80.<br />
<br />
Anybody use Hisoft Devpac or can anybody recommend a good Speccy Assembler that has complete instructions?<br />
<br />
Cheers,<br />
<br />
BigBadMick]]></description>
   </item>
   <item>
      <title>BASIC: Fast way of filling a string?</title>
      <link>https://worldofspectrum.org/forums/discussion/22768/basic-fast-way-of-filling-a-string</link>
      <pubDate>Thu, 13 Nov 2008 16:06:59 +0000</pubDate>
      <dc:creator>Dunny</dc:creator>
      <guid isPermaLink="false">22768@/forums/discussions</guid>
      <description><![CDATA[Recently I decided to use string slicing to extract random numbers from a sequence in the one-liner Lottery picker:<br />

<blockquote>

<div>20 RANDOMIZE : LET a$="": FOR f=1 TO 49: LET a$=a$+CHR$ (f): NEXT f: FOR g=1 TO 8: PRINT AT g-1,0;"Line ";STR$ (g);":": FOR f=1 TO 6: LET b=1+INT (RND*LEN a$): PRINT AT g-1,8+((f-1)*3);" "( TO (CODE a$(b)&lt;10));CODE (a$(b));" ";: LET a$=a$( TO b-1)+a$(b+1 TO ): NEXT f: PRINT : NEXT g</div>
</blockquote>
<br />
The biggest slow-down is the pre-filling of the string (a$) with characters 0 to 49.<br />
<br />
Any of you know what a better way to fill a string with the appropriate characters?<br />
<br />
D.]]></description>
   </item>
   <item>
      <title>What's the best development environment?</title>
      <link>https://worldofspectrum.org/forums/discussion/22757/what-s-the-best-development-environment</link>
      <pubDate>Wed, 12 Nov 2008 17:00:26 +0000</pubDate>
      <dc:creator>Tobo</dc:creator>
      <guid isPermaLink="false">22757@/forums/discussions</guid>
      <description><![CDATA[Dear all,<br />
<br />
In my teens, try as hard as I might, I could never get my head round machine code. Now fat and balding, I thought I'd have another bash; and Hewson's book is making it rather a pleasant trip so far.<br />
<br />
My question is, what set up would you recommend for someone starting out in MC? Just a simple emulator and assembler, or might there possibly be a PC sandbox type application somewhere?<br />
<br />
The reason I ask is that I'm very concious of making mistakes, crashing the emulator and losing my carefully poked pokes.<br />
<br />
Any pointers much appreciated.<br />
<br />
<br />
Tobo.]]></description>
   </item>
   <item>
      <title>New version of mb-resi copy tool, ver. 1.5</title>
      <link>https://worldofspectrum.org/forums/discussion/22736/new-version-of-mb-resi-copy-tool-ver-1-5</link>
      <pubDate>Mon, 10 Nov 2008 21:49:11 +0000</pubDate>
      <dc:creator>Hood</dc:creator>
      <guid isPermaLink="false">22736@/forums/discussions</guid>
      <description><![CDATA[Dear fans of MB02+ and ResiDos,<br />
<br />
on my site <a href="http://hood.speccy.cz" rel="nofollow">http://hood.speccy.cz</a> you will find a new version of this copy tool, though the user interface is still in BASIC, major improvements has been done. Visit my website to learn more....<br />
<br />
Some screenshots follow:<br />
<img src="http://hood.speccy.cz/dwnld/mbresi15_2.bmp" alt="mbresi15_2.bmp" /><br />
<br />
<img src="http://hood.speccy.cz/dwnld/mbresi15_3.bmp" alt="mbresi15_3.bmp" /><br />
<br />
<img src="http://hood.speccy.cz/dwnld/mbresi15_1.bmp" alt="mbresi15_1.bmp" /><br />
<br />
Hope, you enjoy my work.<br />
<br />
<br />
Hood]]></description>
   </item>
   <item>
      <title>Just wrote my first useful working Speccy BASIC program in years...</title>
      <link>https://worldofspectrum.org/forums/discussion/22692/just-wrote-my-first-useful-working-speccy-basic-program-in-years</link>
      <pubDate>Thu, 06 Nov 2008 00:30:19 +0000</pubDate>
      <dc:creator>BigBadMick</dc:creator>
      <guid isPermaLink="false">22692@/forums/discussions</guid>
      <description><![CDATA[A nice UK National Lottery number generator.<br />
<br />
And not just any lotto number generator either. This one generates 8 lines of 6 numbers without replacement (i.e. using 48 of the 49 numbers from 1 to 49) without repeating any number twice.<br />
<br />
I got the idea for this a while back. There was a story in the paper about somebody using this very method for picking his lotto numbers (tearing up 49 pieces of paper with the number 1 to 49 written on them, then drawing them out of a hat in batches of 6). Apparently he won a few grand and made it into the paper. After reading this story my old flatmates starting using this method to pick 8 lines of lotto numbers every week.<br />
<br />
Anyway, enough preamble. The listing is below. Just copy and paste it into BASin (without word wrapping) and fire it up. Who knows - you just might strike it big!<br />
<br />
Also - I was trying to learn some C++ before and tried and failed to implement this program in that language. Now that I've succeeded in Speccy BASIC, I think I might just give it another go in C++. Plus I'm learning Z80 assembler too. Another project in Z80! :D<br />
<br />
Feedback is welcome.<br />
<br />
<br />
10 REM lotto program to pick<br />
20 REM 8 lines of 6 numbers<br />
30 REM for the UK National Lottery<br />
40 REM without replacement<br />
50 REM by BigBadMick<br />
60 REM <a rel="nofollow" href="mailto:bigbadmick2000@hotmail.com">bigbadmick2000@hotmail.com</a><br />
70 REM<br />
90 LET c=1<br />
100 LET numbersleft=49<br />
105 REM a is the number hat (array) from which we pick the numbers<br />
110 DIM a(49)<br />
120 FOR n=1 TO 49<br />
130 LET a(n)=n<br />
140 NEXT n<br />
195 REM l is the array holding the lines of randomly picked numbers<br />
200 DIM l(8,6)<br />
205 REM 8 lines, 6 numbers per line<br />
300 FOR c=1 TO 8<br />
310 GO SUB 1000<br />
320 NEXT c<br />
400 REM print the lines of randomly picked numbers out<br />
410 FOR f=1 TO 8<br />
415 PRINT "LINE ";f;": ";<br />
420 FOR g=1 TO 6<br />
425 IF l(f,g)&lt;10 THEN PRINT " ";<br />
430 PRINT l(f,g);" ";<br />
440 NEXT g<br />
445 PRINT<br />
450 NEXT f<br />
500 STOP<br />
1000 REM subroutine to pick a line of 6 numbers:<br />
1010 FOR d=1 TO 6<br />
1015 LET pick=1+INT (RND*numbersleft)<br />
1020 LET l(c,d)=a(pick)<br />
1025 GO SUB 2000<br />
1030 NEXT d<br />
1040 RETURN<br />
2000 REM subroutine to move all the numbers down one position in the a array<br />
2010 FOR p=pick TO numbersleft-1<br />
2020 LET a(p)=a(p+1)<br />
2030 NEXT p<br />
2035 LET numbersleft=numbersleft-1<br />
2040 RETURN]]></description>
   </item>
   <item>
      <title>In-game music takes CPU time?</title>
      <link>https://worldofspectrum.org/forums/discussion/22504/in-game-music-takes-cpu-time</link>
      <pubDate>Tue, 21 Oct 2008 15:13:42 +0000</pubDate>
      <dc:creator>Rickard</dc:creator>
      <guid isPermaLink="false">22504@/forums/discussions</guid>
      <description><![CDATA[If a 128k wants to have music played in-game using the AY sound chip, does that consume a lot of CPU time?<br />
<br />
What I am after is if the reason why many 128k games did not have in-game music was because that would affect the performance of the game-play?]]></description>
   </item>
   </channel>
</rss>