<?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/p65/feed.rss</link>
      <pubDate>Mon, 22 Apr 2024 11:38:36 +0000</pubDate>
         <description>Development - World of Spectrum</description>
   <language>en-CA</language>
   <atom:link href="https://worldofspectrum.org/forums/categories/development/p65/feed.rss" rel="self" type="application/rss+xml" />
   <item>
      <title>ZinetriX, a video player without aditional hardware</title>
      <link>https://worldofspectrum.org/forums/discussion/22606/zinetrix-a-video-player-without-aditional-hardware</link>
      <pubDate>Wed, 29 Oct 2008 09:40:48 +0000</pubDate>
      <dc:creator>decicoder</dc:creator>
      <guid isPermaLink="false">22606@/forums/discussions</guid>
      <description><![CDATA[You can play videos on you Spectrum with only the input EAR socket and a digital audio source.<br />
<br />
You can load up to 54kbps with 96 kHz sound cards<br />
You can add a sound track<br />
<br />
Download and demo here:<br />
<a href="http://personal.auna.com/casariche/zinetrix/zinetrix.htm" rel="nofollow">http://personal.auna.com/casariche/zinetrix/zinetrix.htm</a>]]></description>
   </item>
   <item>
      <title>TommyGun 0.9.x updates</title>
      <link>https://worldofspectrum.org/forums/discussion/11935/tommygun-0-9-x-updates</link>
      <pubDate>Sun, 14 May 2006 02:13:15 +0000</pubDate>
      <dc:creator>Kiwi</dc:creator>
      <guid isPermaLink="false">11935@/forums/discussions</guid>
      <description><![CDATA[** Should be available via the utilities page soon! Please be patient :-) **<br />
<br />
I'll be posting all future updates in this thread, instead of creating a new thread per version.<br />
So to start the ball rounding we have the following changes for 0.9.2<br />
<br />
0.9.2<br />
Release Revision<br />
* Image Importer:<br />
o Changed all import modules to use ifstream instead of fopen/fread<br />
o Fixed the reading of the mask values from a SevenuP file<br />
* Code Editor:<br />
o Implemented the update resources before building option<br />
o Implemented the save files before building option<br />
o Implemented Jump to error if build fails<br />
o Implemented build project if dirty before running<br />
o Changed Run shortcut from F5 to F9 to match Borland compile and run shortcuts<br />
o Added Build Presets option to allow easier<br />
access to preset build environment variables<br />
o Added a new command line variable %game% to help<br />
supply default command line parameters.<br />
o Updated the Update resources button so now you don't need to have a<br />
file loaded for its resources to be reparsed.<br />
* Image Editor:<br />
o Fixed masked images not added new frames correctly<br />
o Fixed bug where mask mode wasn't honoured when a new frame was created or cloned<br />
<br />
Since I know you all love to read readme.txt files! ;-)<br />
<br />
Hopefully now I can get back to the Gem Machine for some good ole Z80...<br />
<br />
Also once the Gem machine and a bit of the Zelda (ZXelda?) game are finished I will work on web page for TommyGun and the other speccy projects.]]></description>
   </item>
   <item>
      <title>12-pixel-wide font on 512x192 screen</title>
      <link>https://worldofspectrum.org/forums/discussion/22517/12-pixel-wide-font-on-512x192-screen</link>
      <pubDate>Wed, 22 Oct 2008 16:38:00 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">22517@/forums/discussions</guid>
      <description><![CDATA[Thanks to Geoff I have a working prototype for displaying this font in BASIC. Machine code to follow.]]></description>
   </item>
   <item>
      <title>tap format specification</title>
      <link>https://worldofspectrum.org/forums/discussion/22508/tap-format-specification</link>
      <pubDate>Tue, 21 Oct 2008 17:31:19 +0000</pubDate>
      <dc:creator>nitrofurano</dc:creator>
      <guid isPermaLink="false">22508@/forums/discussions</guid>
      <description><![CDATA[I know .tap is maybe the most simple zx-spectrum tape format, but i'm trying to look for tap format specification from google or <a href="http://www.worldofspectrum.org/documentation.html" rel="nofollow">http://www.worldofspectrum.org/documentation.html</a> without any success - where from can i find this information?]]></description>
   </item>
   <item>
      <title>3d vector graphics</title>
      <link>https://worldofspectrum.org/forums/discussion/22498/3d-vector-graphics</link>
      <pubDate>Mon, 20 Oct 2008 20:06:00 +0000</pubDate>
      <dc:creator>Xor a</dc:creator>
      <guid isPermaLink="false">22498@/forums/discussions</guid>
      <description><![CDATA[Any1 know where to get source code for 3d vector graphics<br />
coord calculation , polygon filling , rendering priority etc etc..<br />
<br />
thanx]]></description>
   </item>
   <item>
      <title>Timex Mode 2 Tile Editor</title>
      <link>https://worldofspectrum.org/forums/discussion/22479/timex-mode-2-tile-editor</link>
      <pubDate>Sun, 19 Oct 2008 19:06:23 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">22479@/forums/discussions</guid>
      <description><![CDATA[An early version is available in the CSSCGC 2008 archive on WoS. A slightly improved version may be available at a later date.]]></description>
   </item>
   <item>
      <title>ALLRAM MODE on +2A/+3</title>
      <link>https://worldofspectrum.org/forums/discussion/22470/allram-mode-on-2a-3</link>
      <pubDate>Sat, 18 Oct 2008 19:06:58 +0000</pubDate>
      <dc:creator>velesoft</dc:creator>
      <guid isPermaLink="false">22470@/forums/discussions</guid>
      <description><![CDATA[<a href="http://velesoft.speccy.cz/other/+3_allram.z80" rel="nofollow">http://velesoft.speccy.cz/other/+3_allram.z80</a><br />
<br />
Load Z80 file in ZX emulator and write RUN+ENTER.<br />
This basic program can switch +2A/+3 between allram and 128 modes<br />
<br />
In allram mode is rewritable ZX rom.]]></description>
   </item>
   <item>
      <title>One for the demo coders</title>
      <link>https://worldofspectrum.org/forums/discussion/22464/one-for-the-demo-coders</link>
      <pubDate>Fri, 17 Oct 2008 22:50:23 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">22464@/forums/discussions</guid>
      <description><![CDATA[On this occasion I forgot I had already asked the exact same question in another thread.]]></description>
   </item>
   <item>
      <title>My little first set of routines.</title>
      <link>https://worldofspectrum.org/forums/discussion/15527/my-little-first-set-of-routines</link>
      <pubDate>Mon, 09 Apr 2007 16:22:53 +0000</pubDate>
      <dc:creator>HexDump</dc:creator>
      <guid isPermaLink="false">15527@/forums/discussions</guid>
      <description><![CDATA[Hi all,<br />
<br />
I just coded a little set of routines just to draw a screen on video mem and a fade out.<br />
<br />
I could have just copied the screen rendering routine from the one all you know, but I prefered to writet mine, anyway, I was really inspired by the 1984 one, and sure mine is worse :).<br />
<br />
By the way I would like someone to have a little look to my fade out routine and tell me how it looks like, I mean, I did a lot of dumb/innecesary things, etc... I just want to polish my little z80 asm coding habits if you could help.<br />
<br />
Here the code:<br />

<pre>SCREEN       equ 16384
ATTRIBUTES   equ 22528
 
             org 30000


;---------------------------------------------------------------;
; PlayGame                                                      ;
;   The games main loop                                         ;
;---------------------------------------------------------------;
PlayGame:                                                                            
            call ClearScr
            ld hl,image+2
            call DrawScr
            call FadeOut
Wait:
            jr Wait               ; keep going still the game is finished



;---------------------------------------------------------------;
; ClearScr                                                      ;
;   Clears screen                                               ;
; 
;
;---------------------------------------------------------------;
ClearScr:
            ld de,SCREEN+1
            ld hl,SCREEN
            ld (hl),0
            ld bc,6143
            ldir
            ret
            
;---------------------------------------------------------------;
; DrawScr                                                       ;
;   Draws a screen                                              ;
; 
; In:
;   HL -&gt; Source Image Address.
;
;---------------------------------------------------------------;

DrawScr:    
            push af
            push bc
            push de
            push hl
            
            ld de,SCREEN
                        
            ld bc,192      ;number of lines to draw
            push bc
DrawLine:
            ld bc,32        ;number of bytes per line
            ldir            ;draw line
            
            ex  de,hl       
            ld  bc,32   
            scf             
            ccf             ;set &amp; complement carry = clear carry
            sbc hl,bc
            ex  de,hl       ;get pointer back to start     
                               
            call IncY       ;get next line draw position, return in de
            
            pop bc          ;one less line to draw
            dec bc
            push bc
            
            ld a,b
            or c
            jr nz, DrawLine
            
            pop bc
            
            ld  de,ATTRIBUTES
            ld  hl,image+6144+2
            ld  bc,768
            ldir
            
            pop hl
            pop de
            pop bc
            pop af
  
            ret
    
;---------------------------------------------------------------;
; Incy                                                          ;
;   Increases Y Line position on screen                         ;
; 
; In:
;   DE -&gt; Current screen Adress pos.
;
; Out:
;   DE -&gt; Next scrreen Adress pos.
;---------------------------------------------------------------;

IncY:
            inc d           ;256 bytes below (next line for this char)
            ld  a,d
            and 7
            ret nz          ;if char has not been yet completly drawn continue
            
            ld  a,e
            add a,32  
            
            jr  c,NextThird ;We made all this third, adjust de to the next one
                     
            ld  e,a
            
            ld  a,d         ;We?re inside this third yet, so, adjust de to next line
            ;and 0xF7        ;Set 8 char row counter to 0 (same as sub 8)
            sub 8
            ld  d,a         ;Put cursor on first block of 256 bytse (first char) 
            ret

NextThird:
            ld e,0
            ret
            

;---------------------------------------------------------------;
; Fade Out                                                      ;
;   Fades current screen to black                               ;
;---------------------------------------------------------------;

FadeOut:
    
            ld d,8              ;Num of passes

NextPass:
            halt
            halt
            halt
            halt                ;just a delay (1/50)*4 ?
            
            ld  bc,768          ;Num of bytes
            ld  hl,ATTRIBUTES
            
NextAttr:
            ld  a,(hl)
            call    FadeOutPaper
            call    FadeOutInk
            ld  (hl),a
Continue:
            inc hl
            dec bc
            ld  a,b
            or  c
            jr  nz,NextAttr     ;Finished with this pass?

            dec d
            ld  a,d
            or  a
            jr  nz,NextPass     ;Finished with all passes?
            
            ret

;---------------------------------------------------------------;
; Fade Out Paper                                                ;
;   In: A-&gt;Attribte
;   Out: A-&gt;Attribute with Faded Paper
;---------------------------------------------------------------;
FadeOutPaper:            
            
            push bc
            ld  c,a             ;backup a 
            
            and 0x38
            sra a               
            sra a
            sra a               ;get paper color from atribute
            
            and 0x7            
            jr z,FOP_Exit       ;if it reached 0 do nothing
            
            dec a               ;get a color with less intensity
            
            sla a               ;get paper color in attribute format
            sla a
            sla a
            
            ld  b,a             ;save current a state            
            
            ld  a,c
            and 0xC7            ;clean paper bits of original attribute
            or  b               ;insert new color in atribute
            
            pop bc
            ret
FOP_Exit:
            ld a,c              ;restore attribute

            pop bc
            ret

;---------------------------------------------------------------;
; Fade Out Ink                                                  ;
;   In: A-&gt;Attribte
;   Out: B-&gt;Attribute with Faded Paper
;---------------------------------------------------------------;
FadeOutInk:            
            
            push bc
            ld  c,a             ;backup a 
            
            and 0x7             ;get color for ink
            
            jr z,FOI_Exit       ;if it reached 0 do nothing
            
            dec a               ;get a color with less intensity
            
            ld  b,a             ;save current a state            
            
            ld  a,c
            and 0xF8            ;clean paper bits of original attribute
            or  b               ;insert new color in atribute
            
            pop bc
            ret
FOI_Exit:
            ld a,c              ;restore attribute

            pop bc
            ret


ORG 35000
include &quot;image.asm&quot;

            end 30000

</pre>
<br />
<br />
<br />
Well thanks in advance,<br />
HexDump.]]></description>
   </item>
   <item>
      <title>Fast screen writes</title>
      <link>https://worldofspectrum.org/forums/discussion/22436/fast-screen-writes</link>
      <pubDate>Wed, 15 Oct 2008 10:49:34 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">22436@/forums/discussions</guid>
      <description><![CDATA[I wondered what the faster than LDIR methods of writing to the screen were.]]></description>
   </item>
   <item>
      <title>I just learnt that Spectrum has 1kB of unused ROM</title>
      <link>https://worldofspectrum.org/forums/discussion/22291/i-just-learnt-that-spectrum-has-1kb-of-unused-rom</link>
      <pubDate>Fri, 03 Oct 2008 16:52:59 +0000</pubDate>
      <dc:creator>Ralf</dc:creator>
      <guid isPermaLink="false">22291@/forums/discussions</guid>
      <description><![CDATA[Well, man learns through all his life. I have just discovered that Spectrum has over 1 kilobyte of unused ROM memory, from address 14446 to 15615. All these bytes are filled with value 255.<br />
<br />
I feel a little  being cheated. I have always read that it was such a great success to squeeze Spectrum Basic with so many useful functions into 16 kB and that this high effectiveness had it cost: Basic running slowly. Now it looks like they were too effective:)<br />
<br />
Why did they leave this memory empty? Were they too lazy, or had some tight deadlines to follow? Anybody knows?<br />
<br />
You could place many useful things into this 1kB, even built-in assember.<br />
<br />
I also know that people are creating their own ROMS for Spectrum. Do they leave this area empty too? And if not, what do they locate there?]]></description>
   </item>
   <item>
      <title>2 tone beeper</title>
      <link>https://worldofspectrum.org/forums/discussion/22440/2-tone-beeper</link>
      <pubDate>Wed, 15 Oct 2008 14:43:18 +0000</pubDate>
      <dc:creator>Xor a</dc:creator>
      <guid isPermaLink="false">22440@/forums/discussions</guid>
      <description><![CDATA[Any1 knows about the sound engine that's used by hyndra , pinball 3d ,peking.<br />
its a 2 tone beeper sound routine.<br />
is it copyrighted ?]]></description>
   </item>
   <item>
      <title>Bipboi Beta 2007.12</title>
      <link>https://worldofspectrum.org/forums/discussion/13022/bipboi-beta-2007-12</link>
      <pubDate>Wed, 06 Sep 2006 11:14:05 +0000</pubDate>
      <dc:creator>robpearmain</dc:creator>
      <guid isPermaLink="false">13022@/forums/discussions</guid>
      <description><![CDATA[Ok, this will be the final beta for a while, so I can add more levels etc.<br />
<br />
But, I have tried to respond to all comments.  Some liked the origional kitty character, and the slow movement and smaller screen.<br />
<br />
Many liked the faster larger screen with the ability to shoot.<br />
<br />
So, the game is to become "BIPBOI and Friends"<br />
<br />
Level 1, is help the kitty character "MADDO" collect the stars and avoid the baddies.  On this level you can wrap around, but have no fire.  It also has in game music (To be replaced by something more cutesy than "Peter Gunn").  Collect the stars before your time runs out, avoid the baddies.<br />
<br />
Level 2, is help "BIPBOI" collect the stars, and avoid the baddies.  This level is fast, and your character cannot wrap around.  There is no in game music, but explosive FX and your time runs out quicker.<br />
<br />
Download this latest beta from <a href="http://www.peargames.co.uk" rel="nofollow">The Peargames Website</a><br />
<br />
There are only 2 levels.  The crash is because it is looking for level 3.  I will add more levels as time goes on, change the music etc.<br />
<br />
THANKS FOR ALL YOUR SUPPORT SO FAR!]]></description>
   </item>
   <item>
      <title>help making a game</title>
      <link>https://worldofspectrum.org/forums/discussion/22117/help-making-a-game</link>
      <pubDate>Tue, 16 Sep 2008 10:50:55 +0000</pubDate>
      <dc:creator>mile</dc:creator>
      <guid isPermaLink="false">22117@/forums/discussions</guid>
      <description><![CDATA[ive decided to make a game for the speccy but i have no idea where to start. i think i'd like to make a text adventure, i saw the 'build your own' prog on the lists. is this the best one to go for, or should i be looking eslewhere.<br />
<br />
im not really looking for someone to hold my hand through it, just a a point in the right direction, whether its to a valuable resource or just some super hand hints on getting started<br />
<br />
cheers.]]></description>
   </item>
   <item>
      <title>Developers developers developers developers developers!</title>
      <link>https://worldofspectrum.org/forums/discussion/22300/developers-developers-developers-developers-developers</link>
      <pubDate>Sat, 04 Oct 2008 15:59:16 +0000</pubDate>
      <dc:creator>Winston</dc:creator>
      <guid isPermaLink="false">22300@/forums/discussions</guid>
      <description><![CDATA[OK, I think it's at a stage where someone else can also have a go at doing things with the Spectranet. If you've not been following the hardware forum you might not know what it is. If you're in this situation...well, the Spectranet is a 10/100 ethernet card for the Spectrum, with TCP/IP support, and 128K of flash ROM (which is programmable from the Spectrum in software) and 128K of static RAM. You just know you need an interesting project for your own Spectrum as the dark days of winter approach...so...<br />
<br />
What I am going to do is this. I've already hinted at this in the Hardware forum, but I'm posting here for the benefit of developers who generally don't look in there. I'm going to loan out (on a free loan, indefinite) 6 of the prototype boards to anyone who wants to develop for it. The deal is this - tell me what you want to develop, and if there's more than 6 developers chomping at the bit I'll have to choose the 6 ideas I like the most. You will need a real working Spectrum (48K, 128K or one of the Amstrad models) since the Spectranet is not emulated. You don't need any sort of mass storage for the Speccy - already there's a method to send data to the Spectrum from another machine over ethernet, accessable on the NMI menu.<br />
<br />
This isn't a competition or anything like that for some fancy or uber-imaginative networked program for the Spectrum. Examples of some things that are fine ideas are:<br />
<br />
* An FTP client, perhaps with the ability to run a .SNA or use tape traps to load a .TAP file off the network.<br />
* A *good* IRC client, perhaps improving the rinkety-dink one I've written as a test, or perhaps something completely new<br />
* A networked strategy game.<br />
* A simple web browser<br />
* A news ticker and/or weather display. (Perhaps that's a good one for demo writers - there's lots of scope for making a novel way of displaying the current weather which can make the most of the Speccy's hardware)<br />
<br />
Pretty much anything that needs the network qualifies. (I wonder if anyone can squeeze enough performance out of the Z80 for an SSH client!)<br />
<br />
At the moment if you want to join in with development you'll have to do it in asm or C (with the Z88DK) - channels/streams support is something I've got planned to support socket programming in BASIC but it won't be there for a while. If you want a feel for the Spectranet's API (which, for the net code is a subset of the BSD socket library) you can take a look at the Software page which is here - <a href="http://spectrum.alioth.net/doc/index.php/Software" rel="nofollow">http://spectrum.alioth.net/doc/index.php/Software</a>]]></description>
   </item>
   <item>
      <title>Maze: a Spectrum-oriented build system</title>
      <link>https://worldofspectrum.org/forums/discussion/22318/maze-a-spectrum-oriented-build-system</link>
      <pubDate>Sun, 05 Oct 2008 23:26:17 +0000</pubDate>
      <dc:creator>gasman</dc:creator>
      <guid isPermaLink="false">22318@/forums/discussions</guid>
      <description><![CDATA[<a href="http://matt.west.co.tt/demoscene/ninja-milkman-conspiracy/" rel="nofollow">http://matt.west.co.tt/demoscene/ninja-milkman-conspiracy/</a><br />
<br />
Finally got round to sharing the source code of this demo from August, and more importantly, the build system I came up with to put it together. It follows the concept of makefiles, but with a few Spectrum-specific enhancements - for one thing, you can build TAP files from a bundle of .bas and .asm source files without having to fiddle with command-line switches to Pasmo and zmakebas:
<pre>tap :target =&gt; 'ninja_milkman_conspiracy.tap' do |tap|
	tap.basic :source =&gt; 'ninja_milkman.bas', :as =&gt; 'NinjMilk', :line =&gt; 10
	tap.asm :source =&gt; 'ninja_milkman.asm', :as =&gt; 'ninjmilk1'
end
</pre>
Also, it automatically scans .asm files for include / incbin directives so you don't have to explicitly set them up as dependencies in the build script.<br />
<br />
Right now I'm not sure how closely it will fit into anyone's existing development practices besides my own (hopefully that could be fixed), but I hope it's useful to someone, and serves as some sort of counterpoint to the "graphics and code on one project? You need an IDE" brigade :-)]]></description>
   </item>
   <item>
      <title>BSDOS  ResiDos copy tool</title>
      <link>https://worldofspectrum.org/forums/discussion/22284/bsdos-residos-copy-tool</link>
      <pubDate>Thu, 02 Oct 2008 19:45:11 +0000</pubDate>
      <dc:creator>Hood</dc:creator>
      <guid isPermaLink="false">22284@/forums/discussions</guid>
      <description><![CDATA[Dear friends of MB02+ and ResiDos,<br />
<br />
today, it is a ceremonious day, as such a little dream of mine has come true:) and I am hereby bringing it forward.<br />
<br />
From the first moment I saw ResiDos running on my table with MB02+ I also saw a chance of copying between BSDOS and PC format (FAT16). Garry Lancaster agreed (God Bless Him:)) and supplied ResiDos part, I added BSDOS part on this weekend and the result is, that you can copy in both directions.<br />
<br />
The copy tool is in ver. 1.0, meaning it is not very comfortable for user, but the goal was to make copying running.<br />
<br />
In download section on my site <a href="http://hood.speccy.cz" rel="nofollow">http://hood.speccy.cz</a> you will find further info, the program itself, source code but also a table showing loading/saving times of Discobolos (previous copy commander for BSDOS) and this new tool, just for your interest.<br />
<br />
Enjoy.... (and I am leaving now to celebrate, that I manged the completion of the tool and that MB02+ and ResiDos users have another new program on their discs:))<br />
<br />
I want to thank you, Garry, without your support this program would never come into being.<br />
<br />
Hood]]></description>
   </item>
   <item>
      <title>tap2wav for Linux</title>
      <link>https://worldofspectrum.org/forums/discussion/22265/tap2wav-for-linux</link>
      <pubDate>Wed, 01 Oct 2008 03:16:09 +0000</pubDate>
      <dc:creator>nitrofurano</dc:creator>
      <guid isPermaLink="false">22265@/forums/discussions</guid>
      <description><![CDATA[Hi!<br />
i'm looking for a tap2wav converter could run fine on Linux terminal, or at least some information can help me coding my own converter (in Python or another language)<br />
thanks!]]></description>
   </item>
   <item>
      <title>DivIDE emulation on MB02+</title>
      <link>https://worldofspectrum.org/forums/discussion/22163/divide-emulation-on-mb02</link>
      <pubDate>Fri, 19 Sep 2008 16:48:17 +0000</pubDate>
      <dc:creator>velesoft</dc:creator>
      <guid isPermaLink="false">22163@/forums/discussions</guid>
      <description><![CDATA[This is FATWARE system originally writed for DivIDE interface, but new ported to MB02+ interface. This use 8kB+8kB paging emulation in 16kB allram mode. TAP file contain basic installator for install FATWARE OS to any MB page (0-29). MB FATWARE use three 16kB memory pages (patched ZX rom, patched FATWARE rom, second FATWARE page for screen backup)<br />
<br />
<img src="http://velesoft.speccy.cz/other/fatware.gif" alt="fatware.gif" /><br />
<br />
<a href="http://velesoft.speccy.cz/mb02/mb02-fatware.zip" rel="nofollow">http://velesoft.speccy.cz/mb02/mb02-fatware.zip</a><br />
<br />
VELESOFT]]></description>
   </item>
   <item>
      <title>Help using M3 ram</title>
      <link>https://worldofspectrum.org/forums/discussion/22186/help-using-m3-ram</link>
      <pubDate>Sun, 21 Sep 2008 23:14:52 +0000</pubDate>
      <dc:creator>FrankT</dc:creator>
      <guid isPermaLink="false">22186@/forums/discussions</guid>
      <description><![CDATA[From the Multiface 3 manual.<br />

<blockquote>

<div>6.0 The Use of Extra 8K RAM
<hr />
<br />
The MULTIFACE's 8K RAM extension can be accessed and used for other purposes.<br />
This, however, requires a good knowledge of machine code plus further<br />
information on how to access the RAM extension.</div>
</blockquote>
<br />
Doesn't give any details whatsover, I guess its not a simple IN A, (191)?<br />
<br />
I've been using the Multiface 128 ram for my own programs, now need to use +3 hardware to access the disk.<br />
<br />
Thanks]]></description>
   </item>
   <item>
      <title>D80 emulator for MB02+</title>
      <link>https://worldofspectrum.org/forums/discussion/22197/d80-emulator-for-mb02</link>
      <pubDate>Mon, 22 Sep 2008 20:33:04 +0000</pubDate>
      <dc:creator>Hood</dc:creator>
      <guid isPermaLink="false">22197@/forums/discussions</guid>
      <description><![CDATA[Dear friends,<br />
<br />
I slighly modified D80 emulator, an old programme for MB02+ by AIDS and is downloadable on my site <a href="http://hood.speccy.cz" rel="nofollow">http://hood.speccy.cz</a>. It does what it says, ie. emulate D80 disk system on MB02+.<br />
<br />
Bad news is that to run this very usefull programme you need real MB02+ disk interface, floppies and real D80 diskettes. D80 disk system is, I would say, 99% used in Czech only. So maybe it is aimed rather for Czech speccy users.<br />
<br />
But I just needed to inform you...:)<br />
<br />
Hood]]></description>
   </item>
   <item>
      <title>nmi menu for MB02+, new fixed version</title>
      <link>https://worldofspectrum.org/forums/discussion/22164/nmi-menu-for-mb02-new-fixed-version</link>
      <pubDate>Fri, 19 Sep 2008 18:14:58 +0000</pubDate>
      <dc:creator>Hood</dc:creator>
      <guid isPermaLink="false">22164@/forums/discussions</guid>
      <description><![CDATA[Dear MB02+ users and all others,<br />
<br />
on my site hood.speccy.cz you will find a fixed version of nmi menu. There was an error, when loading 128k .SNA snap and paging on port #7FFD was 0-7, BSDOS finished with error. Now it is fixed.<br />
<br />
Download and enjoy<br />
<br />
Hood]]></description>
   </item>
   <item>
      <title>CHANS system variable</title>
      <link>https://worldofspectrum.org/forums/discussion/22138/chans-system-variable</link>
      <pubDate>Wed, 17 Sep 2008 21:53:39 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">22138@/forums/discussions</guid>
      <description><![CDATA[I modified my original code to incorporate Woody's changes and avoid using the stack:<br />

<pre>	org	60000

save_registers:
	push	hl
	push	de
	push	bc

make_space:
	ld	hl, 30720	; first address after attributes
	ld	de, (0x5c4f)	; current start of channel data (chans)
	sbc	hl, de		; calculate how much to add
	ld	b, h		; transfer result to BC
	ld	c, l		;
	ex	de, hl		; start of channel data to HL
	dec	hl
	call	0x1655		; call make_room to make the space

restore_registers:
	pop	bc
	pop	de
	pop	hl

	ret			; return
</pre>
]]></description>
   </item>
   <item>
      <title>Bresenhams circle algorithm</title>
      <link>https://worldofspectrum.org/forums/discussion/22058/bresenhams-circle-algorithm</link>
      <pubDate>Thu, 11 Sep 2008 12:21:44 +0000</pubDate>
      <dc:creator>rtunes</dc:creator>
      <guid isPermaLink="false">22058@/forums/discussions</guid>
      <description><![CDATA[I post here my final circle code to replace, if you want, the one in the ROM.<br />
It only uses integer math and runs very fast and is very compact.<br />
It is even more precise than the one found in the ROM.<br />
<br />
<br />
I am awaiting your feedback<br />
<br />
Thanks<br />
RT<br />
<br />
Here is the asm<br />
<br />
.org $8000<br />
<br />
<br />
<br />
;Bresenhams circle algorithm calculates the locations of the pixels in the first 45 degrees.<br />
<br />
;It assumes that the circle is centered on the origin. So for every pixel (x,y) it calculates<br />
<br />
;we draw a pixel in each of the 8 octants of the circle.<br />
<br />
<br />
<br />
;Assume x^2+y^2=r^2 represents the real variable equation of a circle which is to be plotted using a grid of discrete pixels where each pixel has integer coordinates.<br />
<br />
<br />
<br />
;INPUT values<br />
<br />
ld d,127 ;x co-ord of centre<br />
<br />
ld e,87  ;y co-ord of centre<br />
<br />
ld b,60  ;radius<br />
<br />
call circle<br />
<br />
ret<br />
<br />
<br />
<br />
;D=x0<br />
<br />
;E=y0<br />
<br />
;******Circle ******<br />
circle:<br />
<br />
ld a,b<br />
<br />
exx<br />
<br />
ld b,a  ;b'=b=radius<br />
<br />
rla<br />
<br />
neg<br />
<br />
ld l,a  ;L' is ddfy =-2*radius<br />
<br />
<br />
ld h,1  ;H' is ddfx<br />
<br />
<br />
<br />
ld A,$01<br />
<br />
sub B<br />
<br />
<br />
ld c,a ;c'is f=1- radius<br />
<br />
exx<br />
<br />
<br />
ld h,0  ;H is x<br />
<br />
ld l,b  ;L is y<br />
<br />
<br />
Loop:<br />
<br />
ld A,D ;Point #1<br />
<br />
add A,H<br />
<br />
ld c,A<br />
<br />
ld A,E<br />
<br />
add A,L<br />
<br />
ld b,A<br />
<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
ld A,E ;Point #2<br />
<br />
sub L<br />
<br />
ld b,A<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
ld A,D ;Point #4<br />
<br />
sub H<br />
<br />
ld c,A<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
<br />
ld A,E ;Point #3<br />
<br />
add A,L<br />
<br />
ld b,A<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
ld A,D ;Point #5<br />
<br />
add A,L<br />
<br />
ld c,A<br />
<br />
ld A,E<br />
<br />
add A,H<br />
<br />
ld b,A<br />
<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
<br />
ld A,E ;Point #6<br />
<br />
sub H<br />
<br />
ld b,A<br />
<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
ld A,D ;Point #8<br />
<br />
sub L<br />
<br />
ld c,A<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
<br />
<br />
<br />
ld A,E ;Point #7<br />
<br />
add A,H<br />
<br />
ld b,A<br />
<br />
<br />
<br />
push hl<br />
<br />
push bc<br />
<br />
call plotpixel<br />
<br />
pop bc<br />
<br />
pop hl<br />
<br />
<br />
<br />
Control:<br />
<br />
ld a,h  ;H &#233; x<br />
<br />
cp l  ;L &#233; y<br />
<br />
jr nc,end_circle   ;While<br />
<br />
<br />
<br />
exx<br />
<br />
bit 7,c ;if f&gt;0<br />
<br />
exx<br />
<br />
jr nz,fneg<br />
<br />
; f positive<br />
<br />
exx<br />
<br />
inc l  ;L' &#233; ddfy<br />
<br />
inc l<br />
<br />
ld a,l<br />
<br />
add a,c<br />
<br />
ld c,a<br />
<br />
exx<br />
<br />
dec l<br />
<br />
<br />
<br />
;end if<br />
<br />
fneg:<br />
<br />
<br />
<br />
exx<br />
<br />
inc h<br />
<br />
inc h<br />
<br />
ld a,h ;H' &#233; ddfx<br />
<br />
add a,c<br />
<br />
ld c,a<br />
<br />
exx<br />
<br />
inc h       ;H &#233; x<br />
<br />
<br />
<br />
jp Loop     ;end While<br />
<br />
end_circle:<br />
<br />
EXX<br />
<br />
LD   HL,$2758 ;HL' must contain $2758 on return to the Zx OS<br />
<br />
EXX<br />
<br />
<br />
<br />
ret<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
plotpixel<br />
<br />
push de<br />
<br />
call $22e5<br />
<br />
pop de<br />
<br />
ret<br />
<br />
<br />
.end]]></description>
   </item>
   <item>
      <title>Games disk collection</title>
      <link>https://worldofspectrum.org/forums/discussion/22009/games-disk-collection</link>
      <pubDate>Sat, 06 Sep 2008 15:20:50 +0000</pubDate>
      <dc:creator>Woody</dc:creator>
      <guid isPermaLink="false">22009@/forums/discussions</guid>
      <description><![CDATA[<a href="http://homepage.ntlworld.com/mark.woodmass/gamesdisk.zip" rel="nofollow">http://homepage.ntlworld.com/mark.woodmass/gamesdisk.zip</a><br />
<br />
There you go. No good to anyone :p<br />
I was just testing out a new util of mine and wondered how many games I could fit on the one +3 180K disk :p]]></description>
   </item>
   <item>
      <title>Bresenham's line algorithm</title>
      <link>https://worldofspectrum.org/forums/discussion/21925/bresenham-s-line-algorithm</link>
      <pubDate>Sat, 30 Aug 2008 21:00:46 +0000</pubDate>
      <dc:creator>Jimmy</dc:creator>
      <guid isPermaLink="false">21925@/forums/discussions</guid>
      <description><![CDATA[Help - I really am struggling to get my head around this algorithm. I don't know why, I coped with Cordic (SIN/COS) and integer divide routines (/10 and /15) but I am having problems coding this algorithm despite the existence of pseudo code and C code on the web.<br />
<br />
The disassembly of the Spectrum ROM for DRAW-LINE at $24B7 is disappointingly vague (very odd when you consider the detail given for CIRCLE and DRAW ARC).<br />
<br />
The Z88 source code is better documented, but it is horrendously long and inefficient compared to the ZX ROM attempt. Also, both versions can't cope with 16-bit X/Y values. I'm trying to keep to 16-bit (or at least 9-bit) X/Y values so I can support the Timex 512 screen.<br />
<br />
The code I've done so far gets X in BC and Y in HL, calculates SGN of X in D , SGN of Y in E and then compares X and Y - swapping them if Y is larger.<br />
<br />
I'm still not clear on the part where it switches between 2 different methods depending on it's distance from another (imaginary?) line.<br />

<pre>;now draw the line
;Bresenham line drawing algorithm poorly implemented in the following part...

	LD HL,(real328+$02)	;HL has relative Y value ($032A)
	LD BC,(real328)		;get back relative X value
	LD A,C
	OR L
	OR B			;check that both BC &amp; HL &lt;&gt; 0
	OR H			
	JP Z,writefinish	;finished if trying to draw 0,0!

	PUSH HL			;preserve HL
	SBC HL,BC		;if Y&gt;X then there'll be no Carry
	POP HL
	JR C,gfxdraw2		;X/Y ok as they are so skip next bit

;swap BC/HL to keep X&gt;Y

	LD A,H
	LD H,B
	LD B,A
	LD A,L
	LD L,C
	LD C,A			;swap HL (Y) and BC (X)

gfxdraw2:
	PUSH DE			;keep DE

;deal with SGN X
	LD A,B
	AND $80			;check bit 7
	JR Z,$+4		;=0 so dx is positive
	LD A,$FE		;-2 as dx is negative
	INC A			;change so dx=-1 or +1
	LD D,A			;dx in D

;deal with SGN Y
	LD A,H			;HL still has relative Y value
	AND $80			;check bit 7
	JR Z,$+4		;=0 so dx is positive
	LD A,$FE		;-2 as dx is negative
	INC A			;change so dx=-1 or +1
	LD E,A			;dy in E
</pre>
]]></description>
   </item>
   <item>
      <title>ANN: open82</title>
      <link>https://worldofspectrum.org/forums/discussion/21856/ann-open82</link>
      <pubDate>Sat, 23 Aug 2008 14:19:20 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">21856@/forums/discussions</guid>
      <description><![CDATA[The Open82 project has been merged with the OpenZXRom project. The homepage is here:<br />
<br />
<a href="http://open82.sourceforge.net/" rel="nofollow">http://open82.sourceforge.net/</a><br />
<br />
The subversion repository is here:<br />
<br />
<a href="https://open82.svn.sourceforge.net/svnroot/open82/" rel="nofollow">https://open82.svn.sourceforge.net/svnroot/open82/</a>]]></description>
   </item>
   <item>
      <title>Nmi menu for MB02+ enters 21st century:)</title>
      <link>https://worldofspectrum.org/forums/discussion/21867/nmi-menu-for-mb02-enters-21st-century</link>
      <pubDate>Mon, 25 Aug 2008 07:17:55 +0000</pubDate>
      <dc:creator>Hood</dc:creator>
      <guid isPermaLink="false">21867@/forums/discussions</guid>
      <description><![CDATA[Dear speccy users and especially MB02+ ones,<br />
<br />
I am proud to anounce that after 5 months of ceaseless and intensive work I am releasing new version of my nmi menu for MB02+, version 1.35. It contains lots of new features, mainly loading of .Z80 snaps is now fully completed and should be functional.<br />
<br />
On my fresh, bilingual and no frills web <span><span style="text-decoration: underline;">hood.speccy.cz </span></span>you hopefully find all neccessary information and in download also a comprehensive manual in .pdf.<br />
<br />
Awaiting your positive comments and complimentary remarks:). In case you register weird behaviour of my web or nmi menu, let me know, please.<br />
<br />
<br />
Hood]]></description>
   </item>
   <item>
      <title>TommyGun map editor - Help!</title>
      <link>https://worldofspectrum.org/forums/discussion/21858/tommygun-map-editor-help</link>
      <pubDate>Sat, 23 Aug 2008 22:06:13 +0000</pubDate>
      <dc:creator>bobs</dc:creator>
      <guid isPermaLink="false">21858@/forums/discussions</guid>
      <description><![CDATA[Currently using the map-editor to build levels for the next Farmer Jack game... but when I try to add them to code it produces a map with all zeros, and the following warnings:<br />
<br />
<i>Failed to parse the Map data correctly.<br />
* Check you have no map tiles overlapping<br />
* Check you have all your tile positions snapped to the grid<br />
</i><br />
<br />
I'm using the "Index only tile based map" option, and when I was building the map I used the option to "overwrite overlapping tiles with new tiles".<br />
<br />
Is there any way to "purge" the tiles underneath the others, or do I have to build my map and be really really careful not to overlap tiles?]]></description>
   </item>
   <item>
      <title>Jimmy's UK101 emulator</title>
      <link>https://worldofspectrum.org/forums/discussion/21825/jimmy-s-uk101-emulator</link>
      <pubDate>Wed, 20 Aug 2008 14:24:08 +0000</pubDate>
      <dc:creator>chev</dc:creator>
      <guid isPermaLink="false">21825@/forums/discussions</guid>
      <description><![CDATA[The <a href="http://www.mediafire.com/?cmxmzkax9jb" rel="nofollow">Compukit UK101 emulator</a> works best when running on the ZX Spectrum SE.]]></description>
   </item>
   </channel>
</rss>