<?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/p29/feed.rss</link>
      <pubDate>Mon, 22 Apr 2024 11:37:46 +0000</pubDate>
         <description>Development - World of Spectrum</description>
   <language>en-CA</language>
   <atom:link href="https://worldofspectrum.org/forums/categories/development/p29/feed.rss" rel="self" type="application/rss+xml" />
   <item>
      <title>Un-PLOTting in the #0 area</title>
      <link>https://worldofspectrum.org/forums/discussion/46407/un-plotting-in-the-0-area</link>
      <pubDate>Fri, 31 Jan 2014 17:39:57 +0000</pubDate>
      <dc:creator>daveysludge</dc:creator>
      <guid isPermaLink="false">46407@/forums/discussions</guid>
      <description><![CDATA[How do I go about un-PLOTting in the bottom 2 lines.<br />
<br />
I am aware the ROM PLOT routine only works in the top 22 rows, so how would I go about depleting an energy bar in that area? (#0 AT 1,2)<br />
<br />
Am I going to have to faff about with bits?]]></description>
   </item>
   <item>
      <title>Clear command in z80</title>
      <link>https://worldofspectrum.org/forums/discussion/46484/clear-command-in-z80</link>
      <pubDate>Sat, 08 Feb 2014 23:13:04 +0000</pubDate>
      <dc:creator>Speccy_James</dc:creator>
      <guid isPermaLink="false">46484@/forums/discussions</guid>
      <description><![CDATA[Hi,<br />
<br />
How would I replicate what the basic clear command does in z80? Do I need to change the stack pointer as well as setting ramtop (23730)? If I set ramtop in my code I get a system crash but if I return to basic in my code at that point instead and do a clear command and then randomize back to where the code continues it works.<br />
<br />
thanks.]]></description>
   </item>
   <item>
      <title>z80 less than and greater than</title>
      <link>https://worldofspectrum.org/forums/discussion/46465/z80-less-than-and-greater-than</link>
      <pubDate>Thu, 06 Feb 2014 22:04:30 +0000</pubDate>
      <dc:creator>Speccy_James</dc:creator>
      <guid isPermaLink="false">46465@/forums/discussions</guid>
      <description><![CDATA[I am writing a keyboard routine where the pressed key code number is held in A. I only want to action the number key presses 1 to 9 (codes 49-57) so first I am doing two conditional compares in the key checking loop. I need to do "if A &lt;49 then jump loop" and "if A &gt;57 then jump loop" else go and check what number key was pressed.<br />
<br />
so after reading the key pressed I compare A with code 49 to check for less than<br />
cp a,49<br />
<br />
The zero flag is set if the numbers are equal<br />
The carry flag is set if the number was greater than A<br />
Neither the zero flag or carry flag is set if A was greater than the number compared<br />
<br />
so what is the jump instruction I need to use on the condition that the Zero flag and carry flag is clear? Would it be jp p,loop ?<br />
<br />
The greater than I think will be:<br />
<br />
cp a,57		; The carry flag is set if the number was greater than A so I do jp c,loop<br />
jp c,loop<br />
<br />
<br />
So the complete code (if jp p,loop is right) would be
<pre>		cp a,49
		jp p,loop
		cp a,57
		jp c,loop
key_checking	; each number key code is then compared here next
</pre>
<br />
thanks.]]></description>
   </item>
   <item>
      <title>RAM7 in 128K models</title>
      <link>https://worldofspectrum.org/forums/discussion/46461/ram7-in-128k-models</link>
      <pubDate>Thu, 06 Feb 2014 10:29:46 +0000</pubDate>
      <dc:creator>na_th_an</dc:creator>
      <guid isPermaLink="false">46461@/forums/discussions</guid>
      <description><![CDATA[We are developing a game with lots of contents and we have already filled up RAM1, RAM3, RAM4 and RAM6.<br />
<br />
I was wondering if there's any problem in using RAM7 as well. I know it has the shadow screen and that it's used by the +3DOS, so<br />
<br />
Is there any restrictions I should be aware of?<br />
If I use RAM7 will my game still be able to be loaded from disk?]]></description>
   </item>
   <item>
      <title>Finding an empty cell in a grid</title>
      <link>https://worldofspectrum.org/forums/discussion/46471/finding-an-empty-cell-in-a-grid</link>
      <pubDate>Fri, 07 Feb 2014 09:17:56 +0000</pubDate>
      <dc:creator>Mr Millside</dc:creator>
      <guid isPermaLink="false">46471@/forums/discussions</guid>
      <description><![CDATA[<span><span>I?m after some advice on ways to tackle the following problem. I?m not after code to do this but would be interested in possible solutions. Imagine I have a grid and some cells of the grid are populated. A user can drop an item on the grid at any location. If the cell is empty then the item stays at that position. If the cell is already populated then I must programmatically move the dropped item to the nearest empty cell. It is this last bit that I?d like your views on. My initial thought was to spiral out from this cell until I find an empty one. This would work but I don?t like all the calculations to do the spiralling, especially if the cell is near the edge of the grid. My next thought was to start in the top left of the grid and scan all the cells storing an empty location and updating this if it is closer to the ?problem? cell. The grid in question is sub-section of the attribute screen. Speed isn?t too important as the routine would only run now and again and not every frame.</span></span>]]></description>
   </item>
   <item>
      <title>How to load a +3 dos file from disk to memory in z80</title>
      <link>https://worldofspectrum.org/forums/discussion/46441/how-to-load-a-3-dos-file-from-disk-to-memory-in-z80</link>
      <pubDate>Tue, 04 Feb 2014 13:23:40 +0000</pubDate>
      <dc:creator>Speccy_James</dc:creator>
      <guid isPermaLink="false">46441@/forums/discussions</guid>
      <description><![CDATA[Hi all again,<br />
<br />
Are there any example z80 code listings (not BASIC) to load a +3 binary dos file from disk to a specific memory destination?<br />
<br />
Thanks.]]></description>
   </item>
   <item>
      <title>How to print logo onto screen at chosen coordinates?</title>
      <link>https://worldofspectrum.org/forums/discussion/46440/how-to-print-logo-onto-screen-at-chosen-coordinates</link>
      <pubDate>Tue, 04 Feb 2014 00:29:40 +0000</pubDate>
      <dc:creator>alienbanana</dc:creator>
      <guid isPermaLink="false">46440@/forums/discussions</guid>
      <description><![CDATA[Hi, I've just got back into zx spectrum games after all these years and after seeing some of the great games on here I would like to start learning programming in machine code.<br />
<br />
Please does anyone have a routine to print a logo/graphic like game title/name to the screen at chosen coordinates and a brief explanation of how it works.  I would like to start with something more simple to start with.<br />
<br />
Oh and a print routine too that I can do the same with and understand, much appreciated!!!<br />
<br />
Sorry forgive my newbieness lol<br />
<br />
Thanks for the great site and thanks in advance for any help that comes my way :-)]]></description>
   </item>
   <item>
      <title>Help with File Compressor by Mladen Popovic</title>
      <link>https://worldofspectrum.org/forums/discussion/46312/help-with-file-compressor-by-mladen-popovic</link>
      <pubDate>Thu, 23 Jan 2014 13:36:49 +0000</pubDate>
      <dc:creator>Speccy_James</dc:creator>
      <guid isPermaLink="false">46312@/forums/discussions</guid>
      <description><![CDATA[Hi,<br />
<br />
I'm trying to compress BombJack (MCM) and transfer it to a +3 disk (Yes I own the original game :) ). I'm unsure about the addresses to enter into the program.<br />
<br />
The game code on the tape image is:<br />
Bytes:c CODE 29440<br />
Data (36095 Bytes)<br />
<br />
so, loading this into the filecompressor program and compressing it gives me:<br />
<br />
available:		41760<br />
existing file len	21496<br />
<br />
orig len:		36095<br />
compressed len:	21496<br />
<br />
Next, Saving the executable with file header:<br />
<br />
I'm not sure what to enter into the requesters. It asks for "original file location" which I think is the address where the decompression code will then reside and where I will need to call my randomize after loading?<br />
<br />
It then asks for "locate file at" I don't understand why I have to specify this separately to the "original file location"? Why does it not just add the decompression code at the start and have one address to enter?<br />
<br />
I've tried a few addresses but it just crashes when I randomize..<br />
<br />
original file location:	29440<br />
locate file at:		24000<br />
<br />
clear val "23999": load""code 24000,21696: randomize usr val "29440"]]></description>
   </item>
   <item>
      <title>Un-PLOTting in the #0 area</title>
      <link>https://worldofspectrum.org/forums/discussion/46406/un-plotting-in-the-0-area</link>
      <pubDate>Fri, 31 Jan 2014 17:34:39 +0000</pubDate>
      <dc:creator>daveysludge</dc:creator>
      <guid isPermaLink="false">46406@/forums/discussions</guid>
      <description><![CDATA[How do I go about un-PLOTting in the bottom 2 lines.<br />
<br />
I am aware the ROM PLOT routine only works in the top 22 rows, so how would I go about depleting an energy bar in that area? (#0 AT 1,2)<br />
<br />
Am I going to have to faff about with bits?]]></description>
   </item>
   <item>
      <title>hash function permutation table</title>
      <link>https://worldofspectrum.org/forums/discussion/46262/hash-function-permutation-table</link>
      <pubDate>Mon, 20 Jan 2014 16:45:12 +0000</pubDate>
      <dc:creator>Battle Bunny</dc:creator>
      <guid isPermaLink="false">46262@/forums/discussions</guid>
      <description><![CDATA[I'm using a simple Pearson hash function to generate keys for a $(103,6) array using a 256-byte permutation table. How do I arrange the entries in the permutation table to avoid any collisions? As all the data table entries are known in advance this should be possible, but I can't find out how to do it. Presently I'm getting between 16-20 collisions, depending upon which permutation I try, and there's a lot of them in 256 numbers so trial &amp; error isn't a very practical option.]]></description>
   </item>
   <item>
      <title>Exploding routine</title>
      <link>https://worldofspectrum.org/forums/discussion/46304/exploding-routine</link>
      <pubDate>Wed, 22 Jan 2014 15:23:39 +0000</pubDate>
      <dc:creator>daveysludge</dc:creator>
      <guid isPermaLink="false">46304@/forums/discussions</guid>
      <description><![CDATA[I've been mucking about with 'Explode' from YS Program Pitstop, but I can not get it to work independently of the basic program.<br />
<br />
LET L=USR 61456 doesn't seem to work unless its from the basic program<br />
<br />
I am basically wanting a 16 x 16 pixel object to explode full screen, but it just wont have it!<br />
<br />
<a href="http://www.worldofspectrum.org/showmag.cgi?mag=YourSinclair/Issue39/Pages/YourSinclair3900074.jpg" rel="nofollow">http://www.worldofspectrum.org/showmag.cgi?mag=YourSinclair/Issue39/Pages/YourSinclair3900074.jpg</a>]]></description>
   </item>
   <item>
      <title>ZX-Modules Updater 0.9.1 published</title>
      <link>https://worldofspectrum.org/forums/discussion/46265/zx-modules-updater-0-9-1-published</link>
      <pubDate>Mon, 20 Jan 2014 19:55:56 +0000</pubDate>
      <dc:creator>clausjahn</dc:creator>
      <guid isPermaLink="false">46265@/forums/discussions</guid>
      <description><![CDATA[Dear friends of ZX Emulation,<br />
<br />
today I updated my downloading tool ZX-Modules Updater.<br />
I fixed an annoyinh bug with created autostart and Desktop icons-there has been configured a shortcut Shift+W or B respectively by fault.<br />
I fixed this and added two smaller features.<br />
<br />
You may download the new version with the previous Updater as well as on my homepage directly.<br />
<br />
Have fun! Sorry for inconveniences, if appeared.<br />
<br />
Comments are always welcome!]]></description>
   </item>
   <item>
      <title>Outputting debug trace to RS232 (assembly)</title>
      <link>https://worldofspectrum.org/forums/discussion/46270/outputting-debug-trace-to-rs232-assembly</link>
      <pubDate>Tue, 21 Jan 2014 00:33:22 +0000</pubDate>
      <dc:creator>BloodBaz</dc:creator>
      <guid isPermaLink="false">46270@/forums/discussions</guid>
      <description><![CDATA[Hi Guys,<br />
<br />
I'm working on a game at the moment (written in assembly) but I am really needing to write out a debug trace of what is going on with the physics.  I am using Spectaculator as feel most at home debugging with this emulator.<br />
<br />
My thoughts were to write out LOG messages out of the emulator via RS232 to a flat ascii file.    Spectaculator has the facility when emulating a toastrack or higher OR if IF1 is enabled.<br />
<br />
However... I cannot find any information on how to write to the RS232 port via assembly.  I'm sure hook codes are required for IF/1 but need a pointer to some docs and examples.  As for the 128K RS232 port, I can't find anything at all.<br />
<br />
Finally, I can't guarantee the state of the system variables AND as I am using SJASM Plus to generate an SNA, the IF1 won't be initialised.   Can this be done via assembly [RST 8 ] without returning to BASIC?<br />
<br />
Any pointers will be great.]]></description>
   </item>
   <item>
      <title>Binary to REM</title>
      <link>https://worldofspectrum.org/forums/discussion/46302/binary-to-rem</link>
      <pubDate>Wed, 22 Jan 2014 13:08:23 +0000</pubDate>
      <dc:creator>Speccy_James</dc:creator>
      <guid isPermaLink="false">46302@/forums/discussions</guid>
      <description><![CDATA[Hi,<br />
<br />
I'd like to convert binary data stored on tape into BASIC rem statements that I will then save to disk. Is there a utility to extract the files from the tape image? I tried loading it from tape and then saving the memory area to disk to extract it with disk explorer but the file created is larger I guess because of rounding up with disk sector size? so the extracted file does not work that way. I'd like to get the actual binary bytes from the tape (minus the header) to a file on the pc to use the BIN2REM utility.]]></description>
   </item>
   <item>
      <title>Convert AT co-ordinates to PLOT co-ordinates</title>
      <link>https://worldofspectrum.org/forums/discussion/46306/convert-at-co-ordinates-to-plot-co-ordinates</link>
      <pubDate>Wed, 22 Jan 2014 16:26:19 +0000</pubDate>
      <dc:creator>daveysludge</dc:creator>
      <guid isPermaLink="false">46306@/forums/discussions</guid>
      <description><![CDATA[How do you convert the 2 from MC? I don't know how to convert the vertical value as they're differently ordered...<br />
<br />
Heres what I have so far:<br />

<pre>org 47000-2
x	defb 0
y	defb 0		;calculated plot points

	ld a,(50000-3)	;vertical AT co-ord

	ld b,22	
	sub b

	add a,a
	ADD A,A
	add a,a		;times by 8
	
	ld (x),a	;store vertical plot point
	ret
</pre>
]]></description>
   </item>
   <item>
      <title>Mirroring UDG's</title>
      <link>https://worldofspectrum.org/forums/discussion/44649/mirroring-udg-s</link>
      <pubDate>Mon, 12 Aug 2013 01:09:06 +0000</pubDate>
      <dc:creator>daveysludge</dc:creator>
      <guid isPermaLink="false">44649@/forums/discussions</guid>
      <description><![CDATA[Just wondered is there a quick an easy way of mirroring UDGs (byte values)?<br />
<br />
i.e. BIN 11110000 becoming 00001111 etc.]]></description>
   </item>
   <item>
      <title>SCR files</title>
      <link>https://worldofspectrum.org/forums/discussion/46249/scr-files</link>
      <pubDate>Sun, 19 Jan 2014 21:11:11 +0000</pubDate>
      <dc:creator>Speccy_James</dc:creator>
      <guid isPermaLink="false">46249@/forums/discussions</guid>
      <description><![CDATA[Hi, I've created some scr files with imagetozxspec but I'm not sure how to get them across to the Spectrum (or emulated Spectrum) I tried creating a +3 disk image with P3Explorer but I just get a wrong type error message. Any advice appreciated!<br />
<br />
Many thanks.<br />
James.]]></description>
   </item>
   <item>
      <title>List of upcoming homebrew?</title>
      <link>https://worldofspectrum.org/forums/discussion/46199/list-of-upcoming-homebrew</link>
      <pubDate>Tue, 14 Jan 2014 23:51:22 +0000</pubDate>
      <dc:creator>zapiy</dc:creator>
      <guid isPermaLink="false">46199@/forums/discussions</guid>
      <description><![CDATA[Is there a resource thats updated of upcoming speccybrew? (i know its a poor name lol)]]></description>
   </item>
   <item>
      <title>Elliptical Challenge</title>
      <link>https://worldofspectrum.org/forums/discussion/41573/elliptical-challenge</link>
      <pubDate>Sat, 17 Nov 2012 00:05:59 +0000</pubDate>
      <dc:creator>Battle Bunny</dc:creator>
      <guid isPermaLink="false">41573@/forums/discussions</guid>
      <description><![CDATA[Subsequent to the recent "Graph Plot" thread, I wrote this general purpose ellipse drawing routine which will plot (although it doesn't actually use PLOT) any ellipse (within the limitations of the Speccy's screen resolution &amp; dimensions) using the full 256x192 screen, even ones which won't fit on the screen (they just get wrapped or cropped, although I might change it to crop on all four sides). Some quite unexpected results can be produced by entering out of bounds parameters. It uses this formula:<br />

<div>
<img src="http://www.users.globalnet.co.uk/~jg27paw4/pourri/graphplot-generic.gif" alt="graphplot-generic.gif" />
</div>
<br />
The method I've used for passing the four parameters, namely:
<pre>LET e$=&quot;hkab&quot;+STR$ USR ellipse
h       = CHR$ centre x coordinate - 0-255
k       = CHR$ centre y coordinate - 0-255
a       = CHR$ 1/2 length of x axis- 1-255
b       = CHR$ 1/2 length of y axis- 0-255
ellipse = address of routine
</pre>
makes it impossible to pass an invalid parameter (well, except for a=0, for which an explicit check is made).<br />
<br />
So, that's the "Elliptical" part explained, briefly. The "Challenge" part resides thusly, in that, although having tried it with many different shapes, my benchmark shape uses the dimensions from the first "Graph Plot" post and, although this version is twice as fast as the last version I did for that thread, try as I might I can't get it to display that particular ellipse in under 4 seconds. Can you - and, most importantly, <b>without making the routine any bigger</b>? The parameters are 50,46,30,15.<br />
<br />
Now I know that if the multiplication and square root parts were written in "long hand", rather than using the calculator, it would be quicker, but it would also be twice the size, so that's no good. Is it possible to save that 1/10th of a second (or preferably more) without using more than 215 bytes (and preferably less)?<br />

<pre>ELLIPSE:ld   ix,(23653)      ;STKEND
        ld   (STKENDO),ix
        ld   d,(ix-3)
        ld   e,(ix-4)
        push de
        pop  ix              ;IX=address of parameter string
        ld   a,(ix+2)        ;A =a
        or   a
        ret  z               ;x axis must be &gt; 0

        rst  $28
        defb $A2             ;const_half
        defb $38             ;end_calc
        ld   a,(ix+3)        ;A =b
        call $2d28           ;STACK_A
        ld   a,1
        call $2d28           ;STACK_A
        ld   a,(ix+2)        ;A =a
        call $2d28           ;STACK_A
        rst  $28             ;          : 0.5,b,1,a
        defb $31             ;duplicate : 0.5,b,1,a,a
        defb $04             ;multiply  : 0.5,b,1,a*a=a2
        defb $38             ;end_calc
        ld   hl,(STKENDO)
        ld   de,STKSTOR
        ld   bc,20
        ldir                 ;save 0.5,b,1,a2 for calculator stack

        ld   c,(ix+0)        ;C =h   (x mid-point)
        ld   a,c             ;A =h
        add  a,(ix+2)        ;A =h+a
        ld   b,a             ;B =h+a (x right-hand edge)

ELOOP:  ld   a,c             ;A =C =x
        sub  (ix+0)          ;A =x-h =xh
        jr   nc,NOTNEG
        neg
NOTNEG: push bc
        ld   hl,STKSTOR
        ld   de,(STKENDO)
        ld   bc,20
        ldir                 ;copy 0.5,b,1,a2 to calculator stack
        ld   (23653),de      ;STKEND
        call $2d28           ;STACK_A   = xh
        rst  $28             ;          : 0.5,b,1,a2,xh
        defb $31             ;duplicate : 0.5,b,1,a2,xh,xh
        defb $04             ;multiply  : 0.5,b,1,a2,xh*xh
        defb $01             ;exchange  : 0.5,b,1,xh*xh,a2
        defb $05             ;divide    : 0.5,b,1,xh*xh/a2
        defb $03             ;subtract  : 0.5,b,1-xh*xh/a2
        defb $28             ;sqr       : 0.5,b,SQR(1-xh*xh/a2)
        defb $04             ;multiply  : 0.5,b*SQR(1-xh*xh/a2)
        defb $0F             ;add       : 0.5+b*SQR(1-xh*xh/a2)
        defb $38             ;end_calc
        call $2dd5           ;FP_TO_A
        pop  bc
        push bc              ;C =x
        ld   b,a             ;B =y

L30:    push bc              ;C =x rightwards
        ld   a,b
        ex   af,af'          ;A'=y
        call PLOTRL          ;plot two points rightwards
        ex   af,af'
        ld   b,a
        ex   af,af'
        ld   a,(ix+0)        ;A =h
        add  a,a
        sub  c
        ld   c,a             ;C =x leftwards
        call PLOTRL          ;plot two points leftwards
        pop  bc
        dec  b
        jp   p,L30

L50:    pop  bc
        inc  c
        ld   a,b
        cp   c
        jr   nc,ELOOP
        ret

PLOTRL: ld   a,(ix+1)        ;A =k
        sub  b
        call SETPIX
        ex   af,af'
        ld   b,a
        ex   af,af'
        ld   a,(ix+1)        ;A =k
        add  a,b
        call SETPIX
        ret

SETPIX: ld   b,a             ;B =k+/-y, C=x
        ld   (23677),bc      ;COORDS
        ld   a,191           ;allow full screen depth
        sub  b
        call $22b0           ;PIXEL_ADD+6 - C (x coord) is preserved
        neg                  ;calculate the SET b,(HL) opcode for bitpos
        add  a,7             ;A =7-A
        sla  a
        sla  a
        sla  a               ;A =A*8
        add  a,198
        ld   (SETPIXL+1),a
        ld   a,h
        cp   $40
        ret  c               ;don't plot if address too low
        cp   $58
        ret  nc              ;don't plot if address too high
SETPIXL:set  0,(hl)          ;bitpos changed by SETPIXL line
        ret

STKSTOR:defs 20
STKENDO:defs 2
</pre>
---<br />
"But why? - I don't understand - Whose mind could conceive of such a bizarre way to kill?"<br />
"A man called Phibes, sir. Doctor Anton Phibes."<br />
---]]></description>
   </item>
   <item>
      <title>Idiots Guide...</title>
      <link>https://worldofspectrum.org/forums/discussion/46185/idiots-guide</link>
      <pubDate>Mon, 13 Jan 2014 20:30:05 +0000</pubDate>
      <dc:creator>Wookiee</dc:creator>
      <guid isPermaLink="false">46185@/forums/discussions</guid>
      <description><![CDATA[...To machine code, or assembler language...whatever the appropriate term is<br />
<br />
Basically at this stage I want to fiddle about and try and get used to the syntax etc so was looking for a glossary or list of functions etc, along with some idea of what they do in plain english or in reference to BASIC etc<br />
<br />
Does much a book/file in the Archives exist and if so which is the best one for a muppet who can barely churn out a shonky game in BASIC and has never poked or peeked knowingly in his life (m'lud)]]></description>
   </item>
   <item>
      <title>Code to test if a rectangle is in a rectangle</title>
      <link>https://worldofspectrum.org/forums/discussion/45927/code-to-test-if-a-rectangle-is-in-a-rectangle</link>
      <pubDate>Mon, 23 Dec 2013 14:09:46 +0000</pubDate>
      <dc:creator>Mr Millside</dc:creator>
      <guid isPermaLink="false">45927@/forums/discussions</guid>
      <description><![CDATA[<span><span>I am looking to write some code that will check if a rectangular shape is outside or overlapping a second rectangle. If the smaller first rectangle isn?t inside the larger second rectangle I need to return some value or flag setting to indicate a failure. Rectangle ?B? is fixed and Rectangle ?A? can be moved. Assuming the first rectangle is ?A? and the second larger one is called ?B?, I have concocted the following sudo code to achieve this outcome:</span></span><br />
<span><span> </span></span><br />
<span><span>If Xpos ?A? &lt; Xpos ?B? or Ypos ?A? &lt; Ypos ?B? or (Xpos ?A? + Width ?A?) &gt; (Xpos ?B? + Width ?B?) or (Ypos ?A? + Height ?A?) &gt; (Ypos ?B? + Height ?B?)</span></span><br />
<span><span> </span></span><br />
<span><span>Return Fail</span></span><br />
<span><span> </span></span><br />
<span><span>Else</span></span><br />
<span><span> </span></span><br />
<span><span>Return <span>Success</span></span></span><br />
<span><span><span></span></span></span><br />
<span><span>Does this seem the most efficient / fastest way to do this kind of check? To prevent me from reinventing the wheel, has anyone got some Z80 code that already does this? I plan to write something along these lines to relieve the boredom of being stuck with the in-laws this Christmas :)</span></span>]]></description>
   </item>
   <item>
      <title>mirroring bits</title>
      <link>https://worldofspectrum.org/forums/discussion/46201/mirroring-bits</link>
      <pubDate>Wed, 15 Jan 2014 11:28:32 +0000</pubDate>
      <dc:creator>Battle Bunny</dc:creator>
      <guid isPermaLink="false">46201@/forums/discussions</guid>
      <description><![CDATA[If I have a string of 1408 bytes, each of which has one bit 'b' set, what's the shortest way of mirroring that string, so that each bit set at position 'b' gets moved to position '7-b'? The bit positions change from byte to byte, as they're plots on a curve.]]></description>
   </item>
   <item>
      <title>Autorun code in an emulator?</title>
      <link>https://worldofspectrum.org/forums/discussion/46214/autorun-code-in-an-emulator</link>
      <pubDate>Thu, 16 Jan 2014 13:43:29 +0000</pubDate>
      <dc:creator>Mr Millside</dc:creator>
      <guid isPermaLink="false">46214@/forums/discussions</guid>
      <description><![CDATA[<span><span>I am using Tommygun and pasmo to develop my game. This works fine but each time the emulator is started and file loaded I then have to manually type a line of code to execute my code. Is it possible to change a setting so that when Tommygun starts the emulator it will auto run my code?</span></span>]]></description>
   </item>
   <item>
      <title>Oneliner contest</title>
      <link>https://worldofspectrum.org/forums/discussion/16019/oneliner-contest</link>
      <pubDate>Wed, 09 May 2007 12:37:32 +0000</pubDate>
      <dc:creator>Dr BEEP</dc:creator>
      <guid isPermaLink="false">16019@/forums/discussions</guid>
      <description><![CDATA[Hello to you all,<br />
<br />
I dare you to make a program on 1 BASIC line.<br />
Here is the place to sent your ONELINERS<br />
<br />
<a href="http://www.zxspectrum.00freehost.com/oneliners.html" rel="nofollow">http://www.zxspectrum.00freehost.com/oneliners.html</a>]]></description>
   </item>
   <item>
      <title>Isometric Games</title>
      <link>https://worldofspectrum.org/forums/discussion/46087/isometric-games</link>
      <pubDate>Mon, 06 Jan 2014 00:27:23 +0000</pubDate>
      <dc:creator>David Jones</dc:creator>
      <guid isPermaLink="false">46087@/forums/discussions</guid>
      <description><![CDATA[As a longer term project I'm thinking of attempting an isometric game, along the lines of Alien8, but with Magic Knight. No promises though, because I've got to finish Finders Keepers+ first.<br />
<br />
Anyway, do any of you have any thoughts about the technical issues? Anybody fancy doing some isometric sprites and blocks? Anybody have any extracted blocks from Alien8 or any of the similar games to save me chopping out development test blocks from screenshots? Or any of you who are better/quicker than me at that fancy giving it a go for me?<br />
<br />
I think it should be easy enough to do, but does anybody know the best way to do it?<br />
<br />
Is it just a case of back to front rendering of stationary blocks and sprites and then re-render the rectangles where anything moves? Or is something smarter going on? Or something simpler?<br />
<br />
As I say, REALLY early thoughts just now, but it's something I'd like to do long term.]]></description>
   </item>
   <item>
      <title>Why this warning in z88dk?</title>
      <link>https://worldofspectrum.org/forums/discussion/46205/why-this-warning-in-z88dk</link>
      <pubDate>Wed, 15 Jan 2014 16:20:27 +0000</pubDate>
      <dc:creator>na_th_an</dc:creator>
      <guid isPermaLink="false">46205@/forums/discussions</guid>
      <description><![CDATA[I'm using 1.10.<br />
<br />
This line:<br />

<pre>saca_a_todo_el_mundo_de_aqui (!(extx &gt; (p_y &gt;&gt; 9)));
</pre>
<br />
where extx is an unsigned char and p_y is an integer throws this warning:<br />

<pre>sccz80:&quot;extern.h&quot; L:82 Warning:#9:Converting pointer to integer without cast
</pre>
<br />
There are no pointers there, why the warning? The unequality should return 0 or 1. If I cast the unequality to (unsigned char) it compiles without warnings.<br />
<br />
What am I doing wrong? Just wondering. No big deal, code works anyways.]]></description>
   </item>
   <item>
      <title>Clearing 22 lines of the screen</title>
      <link>https://worldofspectrum.org/forums/discussion/46193/clearing-22-lines-of-the-screen</link>
      <pubDate>Tue, 14 Jan 2014 12:25:14 +0000</pubDate>
      <dc:creator>daveysludge</dc:creator>
      <guid isPermaLink="false">46193@/forums/discussions</guid>
      <description><![CDATA[How do I go about clearing the top 22 lines of the screen and leave the bottom #0 area untouched?<br />
<br />
I have a routine to reset the attributes, but cant delete the 16384 display data properly.<br />
<br />
Surely there is an easy way to do it without me reverting to PRINTING 22 lines of 32 spaces?]]></description>
   </item>
   <item>
      <title>Lords of Midnight '3D'</title>
      <link>https://worldofspectrum.org/forums/discussion/46161/lords-of-midnight-3d</link>
      <pubDate>Sat, 11 Jan 2014 16:49:58 +0000</pubDate>
      <dc:creator>Farflame</dc:creator>
      <guid isPermaLink="false">46161@/forums/discussions</guid>
      <description><![CDATA[I don't plan to do anything with this right now, but ever since playing the first LOM, I've always wanted to know how the 3D is worked out. I'd assume it's fairly simple perspective calculations, but I really don't know how to do it. Presumably, since the landscape is snapped to a grid, the locations of the graphics could be pre-calculated and pulled from a table rather than calculated on the fly (though I doubt that would matter much with a modern PC).<br />
<br />
Anyway, how are the positions of the landscape sprites calculated?]]></description>
   </item>
   <item>
      <title>Convert .mid files to .asm for AY</title>
      <link>https://worldofspectrum.org/forums/discussion/46191/convert-mid-files-to-asm-for-ay</link>
      <pubDate>Tue, 14 Jan 2014 08:56:42 +0000</pubDate>
      <dc:creator>daveysludge</dc:creator>
      <guid isPermaLink="false">46191@/forums/discussions</guid>
      <description><![CDATA[I've had a mess about with Midibeep for converting midi files to Basic BEEP statements with little success, it got me wondering if there were a program that would convert midi files to assembly code (for 128k AY) in a similar way Beepola does?<br />
<br />
I know the 128 was set up to accept midi input but I can not work out how to implement it...]]></description>
   </item>
   <item>
      <title>Disarray</title>
      <link>https://worldofspectrum.org/forums/discussion/46187/disarray</link>
      <pubDate>Mon, 13 Jan 2014 22:11:57 +0000</pubDate>
      <dc:creator>Hikaru</dc:creator>
      <guid isPermaLink="false">46187@/forums/discussions</guid>
      <description><![CDATA[For the sake of having some clarity <span>for once</span> I have the project data in several source files according to their types. E.g. there's your usual LUTs, aka punch in the values once and then forget about it, and another type of LUTs, those that will require manual adjustments later (kept separate). Variables are likewise kept separate.<br />
<br />
Due to the way the program works, some of these data have to be located next to each other in the memory in a certain manner. For the most part stuff tends to align nicely since most of the LUTs sizes are multiples of 256. There however is one particularly nasty 256B block which is supposed to have a 24 byte LUT in the middle of it, another 8 byte one in the beginning and <i>hopefully</i> something else in there because it's obviously not a good way to make use of the memory space otherwise.<br />
<br />
So here I was thinking about maybe moving a bunch of these other LUTs along with a few variables in there - wherever the order isn't important basically - but I just can't come up with a neat clean-cut way to do it (one that is less of a 'dirty hack', for the object oriented around these parts) seeing as everything is in separate files.<br />
<br />
TL;DR there's 2 source files and I want to take something from the 1st one and locate it (memory wise) in the middle of the 2nd one without repeating what's already been said, using the clipboard and/or resorting to throwing a bunch of ORGs around one way or the other, T.I.A. #naive #trivial]]></description>
   </item>
   </channel>
</rss>