Login
Back to forumReply to this topicGo to last reply

Posted By

NinjaDRM
on 2007-04-15
05:45:11
 FLD on +4?

Greetings all,

I got a question which I can't solve myself, as my real +4 is 8000km away happy

I wanted to do a FLD like i know them from the c64, that is: get $ff1d, process the lower three bits and write to $ff06. On a c64, then the last byte of the current videobank gets displayed in the character area.

But just having Forever+4, VICE and YAPE here, they give me all different results. VICE displays what I would see on a c64. The other two give me colorful garbage. I assume that YAPE is correct? Is there a way to get an idle-state-display (perhaps using $ff1f)?

Posted By

Degauss
on 2007-04-15
06:29:44
 Re: FLD on +4?

correct me if i'm wrong:

i noticed that $ff06 is triggering the DMA-cycle, while $ff1f is responsible for adding 40 to the read-cursor ($ff1a/1b aswell as the read-cursor for the DMA-cycle). to go safe, you have to modify both.

a "standard" +4-technique is to do this:
-modify $ff06 to circumvent the DMA-cycle
-modify $ff1f/1a/1b to display the line you want

this has more overhead but it's more powerful at the same time since you can flip a whole screen (which is not possible with *real* FLD)

Posted By

Gaia
on 2007-04-15
12:34:58
 Re: FLD on +4?

Oops, the DMA story could fill a whole book happy As a rule of thumb: do not rely too much on your knowledge of the C64 as although the basic mechanism is very similar, there are subtle differences between the two machines. For a few ideas of FLD on the plus/4, you can check a couple of demos that were basically converted from C64 (like A Trip for example).

FLD is also depending on whether you are using text or bitmap mode. FF1A/B does not play a role in text mode (unless you're messing with the cursor). If you delay the first "bad line" (aka DMA line) by appropriately changing the lowest 3 bits of FF06 not to be equal to that of FF1C/D, you are basically doing an FLD. You can do the same in bitmap mode by not allowing the lowest 3 bits of FF1F to be 7 (the vertical sub address, increasing every non idle TED rasterline).

Posted By

NinjaDRM
on 2007-04-15
19:58:13
 Re: FLD on +4?

Thanks for the replies :D

I know that my c64-knowledge cannot be transferred 1:1 to the plus4. Still, it is the only approach I have so far wink (Especially when lacking the real thing right now)

But what do I see when preventing the DMA in textmode using $ff06? The option of flipping the screen sounds nice, but an "idle-display" byte would be most useful for my problem. Maybe "A Trip" can help me...



Back to topReply to this topic


Copyright © Plus/4 World Team, 2001-2024