How to run the Dragon at double speed

Hardware Hacking, Programming and Game Solutions/Cheats
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: How to run the Dragon at double speed

Post by pser1 »

Hello Steve,
a great idea indeed, you are a genius!
I think it's a very useful routine, thanks for sharing it with us.

Concerning the other exemple you put to use the POKE&HFFD9,0 but without losing the screen and ram refreshing, I have a question:
How should I proceed if the part of code is much larger (in time) than the updating of the text screen in your example?
How could I know that the 'bonus' time has finished without using interrupts?
If there is any documentation about that trick I would appreciate a direct reference to it
thanks a lot
pere
zephyr
Posts: 1474
Joined: Mon Jul 21, 2008 1:18 am

Re: How to run the Dragon at double speed

Post by zephyr »

pser1 wrote: How should I proceed if the part of code is much larger (in time) than the updating of the text screen in your example?
Do your best to work out a compromise. :)
pser1 wrote: How could I know that the 'bonus' time has finished without using interrupts?
The time period is always exactly the same (remember that it is shorter for NTSC machines). Just make sure the cycle time taken by your routine does not exceed the time period.
pser1 wrote: If there is any documentation about that trick I would appreciate a direct reference to it
I don't think so.
Commodore
Posts: 125
Joined: Thu Nov 20, 2014 1:37 am
Location: UK

Re: How to run the Dragon at double speed

Post by Commodore »

So I let the D32 warm up for just over 30 minutes.
POKE 65495,0 gives a return of OK

POKE 65497,0 gives a garbled flickering green and yellow screen that travels from top to bottom. If I hit the break key it gets greener and displays lots of @ symbols and the flicker changes to right to left. RESET did bring it back though, but BREAK or CLEAR did not.

POKE 65495,0:POKE65497,0:PLAY"CDEFGAB":POKE65496,0:POKE65494,0

This works but with a garbled screen. If I press break, it comes back to the boot screen, but with @ symbols randomly displayed. If I press CLEAR, all seems to be normal.

As for the 4 line program, it sent my Dragon nuts!

When I typed RUN I got another garbled screen with flickering. I pressed BREAK and it changed to the same flickering that I had with POKE69547,0.
I pressed BREAK again and got the boot screen back with the program listing and BREAK in 20, but lost of random @ across the screen (an other characters too I think). I pressed RESET and I got a cleared screen with OK. When I typed LIST, the program was there in memory.

I guess my Dragon doesn't work at double speed then. What's the advantage of double speed, are there programs that make use of it?

I like trying though, so thanks for the info. If there are any other tests or info based on my findings, I'd be interested to hear.
Commodore
Posts: 125
Joined: Thu Nov 20, 2014 1:37 am
Location: UK

Re: How to run the Dragon at double speed

Post by Commodore »

With this one:

POKE65495,0:POKE65497,0:SOUND1,255":POKE65496,0:POKE65494,0

I got the tone but a garbled screen. It was non responsive to BREAK. After hammering the BREAK key for some time I got a garbled boot screen and silence was restored.
I pressed restore and the boot screen came back. I typed LIST, but the program was gone.
Commodore
Posts: 125
Joined: Thu Nov 20, 2014 1:37 am
Location: UK

Re: How to run the Dragon at double speed

Post by Commodore »

Is it worth upgrading the CPU as some have suggested?

Is it easy to do, i.e. socketed?

I have replaced Z80s on Spectrums before, would I be right in thinking that it's a similar process?
Alastair
Posts: 669
Joined: Fri Jul 18, 2008 11:33 pm

Re: How to run the Dragon at double speed

Post by Alastair »

Commodore wrote:As for the 4 line program, it sent my Dragon nuts!

When I typed RUN I got another garbled screen with flickering. I pressed BREAK and it changed to the same flickering that I had with POKE69547,0.
I pressed BREAK again and got the boot screen back with the program listing and BREAK in 20, but lost of random @ across the screen (an other characters too I think). I pressed RESET and I got a cleared screen with OK. When I typed LIST, the program was there in memory.

I guess my Dragon doesn't work at double speed then. What's the advantage of double speed, are there programs that make use of it?
It may work at double speed, POKE65497,0 disables the video display, hence the garbled screen. If you break the four line program instead of quitting (due to the for/next it takes some time for a press of the Q key to be registered) type POKE65496,0 or POKE&HFFD8,0 blind to see if the screen reappears.

There are some BASIC programs that use the POKE65495,0 / POKE&HFFD7,0 double speed poke. The nice ones ask if your Dragon can take the poke, others - such as the original Pimania for the Dragon and Kriegspiel (if I recall correctly) - do not, oh the joys of listing the programs on the screen to locate the pokes so that in future I would know which lines to edit before running the game!
zephyr
Posts: 1474
Joined: Mon Jul 21, 2008 1:18 am

Re: How to run the Dragon at double speed

Post by zephyr »

Commodore wrote:With this one:

POKE65495,0:POKE65497,0:SOUND1,255":POKE65496,0:POKE65494,0

I got the tone but a garbled screen. It was non responsive to BREAK. After hammering the BREAK key for some time I got a garbled boot screen and silence was restored.
I pressed restore and the boot screen came back. I typed LIST, but the program was gone.
Hammering at the break key during these tests is not a good idea because you are preventing the test code from restoring the computer back to normal speed (POKE65496,0:POKE65494,0). The point of these tests is to see if the computer runs stable enough at double speed to complete the test and return to BASIC with no corruption (or as little as possible) of the RAM contents. Random characters left on the green text screen screen after the test has ended indicate that the RAM has been corrupted during the test. A garbled screen during the test is normal. It is an indication that the computer has crashed if you can still see the garbled screen after the test has finished (The computer should always be powered off and back on again on again if this happens).

The most useful double speed mode is what is known as the "address dependent" mode (Switch to double speed with POKE65495,0. Return to normal speed with POKE65494,0). In this mode the computer runs the processor at double speed only when running code in ROM (The BASIC interpreter at $8000 to $BFFF or Cartridge ROM at $C000 to $FEFF). This mode is useful for running BASIC programs and Cartridge based software at nearly double normal speed.
Alastair
Posts: 669
Joined: Fri Jul 18, 2008 11:33 pm

Re: How to run the Dragon at double speed

Post by Alastair »

BTW Steve should there be a quote mark after the SOUND instruction?
zephyr
Posts: 1474
Joined: Mon Jul 21, 2008 1:18 am

Re: How to run the Dragon at double speed

Post by zephyr »

Alastair wrote:BTW Steve should there be a quote mark after the SOUND instruction?
No. The extra quote mark after the SOUND instruction would result in a syntax error (?SN ERROR) being displayed and a return to the BASIC command prompt without restoring the Dragon to normal speed mode. The syntax error message would not be visible because of the loss of display caused by the computer running at double speed (POKE65497,0).

Thanks, Alastair!
Commodore
Posts: 125
Joined: Thu Nov 20, 2014 1:37 am
Location: UK

Re: How to run the Dragon at double speed

Post by Commodore »

OK, thanks both, I shall certainly try those things.

When I said Hammering the Break key, I wasn't really hammering it that hard. I do have a respect for my old machines. :)

So it looks as though it may well do double speed after all then.
More testing when I get a chance!
Post Reply