Oh, your implied guess was quite right, I was a version behind. I'd
say you fooled me by leaving "Version 1.1, released 13 April 2007" at
the top of the read me despite having updated the version history but
actually I spotted 1.2, downloaded it and then failed to do anything
more whatsoever.

Entirely my own fault, apologies.

On Sun, Oct 25, 2009 at 12:09 AM, Andrew Collier
<[email protected]> wrote:
> On 24 Oct 2009, at 23:46, Thomas Harte wrote:
>
>>> By the way:
>>>
>>>>      ld d, (NUMVERTS)
>>>
>>> I don't think you can do this?
>>
>> No, you're right, you can't. It silently substituted ld a, (NUMVERTS),
>> so that loop was running quite a bit longer than it needed to and the
>> result not being visibly different unless the polygon hits the first
>> scanline. So easy to miss.
>
>
> Which version of pyz80 are you using? For me, this instruction is caught by
> a testcase:
>
> $ cat > test.z80s
> NUMVERTS: db 0
> ld d,(NUMVERTS)
> $ pyz80 test.z80s
> pass  1 ...
> Error: Illegal combination of operands
> test.z80s:1 "ld d,(NUMVERTS)"
> Error: OpCode not recognised
> test.z80s:1 "ld d,(NUMVERTS)"
>
> Presumably your longer code sequence is catching it out somehow...
>
> As an aside, it's rather unfortunate that zilog chose to use parentheses to
> denote memory dereferences, as they're ambiguous with mathematical ordering
> operators. It's not immediately obvious that the following examples generate
> entirely different instructions, but that is a consequence of the only
> useful way I could parse them!
>
>        ld hl,(NUMVERTS + 1)
>        ld hl,(NUMVERTS) + 1
>
> Andrew
>
> --
> http://www.intensity.org.uk/
>
>
>
>

Reply via email to