Page 1 of 2

Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Wed Jul 31, 2013 11:47 pm
by davidbowman
Hi there,

Hope someone here might be able to help with a problem I'm having with Alldream wavs created in XRoar loading into a real Dragon32 (and vise-versa).
When I save an Alldream wav file in XRoar it saves and loads just fine in XRoar, and if save an Alldream wav file in a real Dragon32 it saves and load just fine to the real Dragon32.
But if I try to load the Alldream file created in XRoar into Alldream in the real Dragon32 it will display the file name and the E error, and when finished loading all I get is a row of question marks; and when I try to load an Alldream file created on a real Dragon32 into Alldream in XRoar it displays the file name, then the emulator screen freezes and a reset is required.

Many thanks,
dB.

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 7:20 am
by sixxie
When loading into a real Dragon, are you using a tape recorder with motor control? If not, try (under emulation) typing POKE144,2 before saving - this increases the leader length to account for a gap that gets left out of the audio file because it "turned the motor off".

The other way around I don't have a good explanation for offhand - might need to see an example wav. The default Dragon 32 leader is quite short, could just be that (in which case same fix might apply)... Same version of Alldream both sides?

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 10:54 am
by zephyr
The Dream assembler always resets the cassette header tone length to only 4 bytes. See the October 1984 issue of Dragon User (Dragon Answers) for more information.

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 11:59 am
by sixxie
4 bytes? Crazy. But good catch!

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 2:13 pm
by davidbowman
sixxie wrote:... try (under emulation) typing POKE144,2
Same version of Alldream both sides?
...might need to see an example wav.
Tried the POKE, both ways, and it didn't work.
I'm using the Alldream ROM in XRoar, and a separate PC (as a glorified tape recorder/player) to load the cassette version of Alldream onto the real Dragon.
A test copy of the wavs from XRoar and the real Dragon are posted here: http://www.mediafire.com/download/yctov ... amtest.zip
The file "testrd.wav" has been created on the real Dragon and "testxd.wav" on XRoar.
The files contain nothing more than 3 lines of useless code, different "yy" in both files:

LDA #$11
LDB #$yy
RTS

Thanks for the help.
dB.

P.S.
I tried the POKEs suggested in Dragon User Oct 1984 and that didn't work.

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 4:01 pm
by zephyr
Which version of Alldream (Cartridge or Cassette) are you using?

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 5:09 pm
by davidbowman
zephyr wrote:Which version of Alldream (Cartridge or Cassette) are you using?
I'm using Cartridge version for XRoar and Cassette version for real Dragon.

dB.

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 6:07 pm
by zephyr
Try the attached (experimental) patched copy of the Alldream cartridge version under XROAR.

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Thu Aug 01, 2013 7:08 pm
by davidbowman
zephyr wrote:Try the attached (experimental) patched copy of the Alldream cartridge version under XROAR.
Thanks, but the file it created still won't load onto a real Dragon (works OK in XRoar); it finds the file name then
displays the E error and when finished loading displays about 6 lines of question marks.

I just received my Dragon Cartridge PCBs from iteadstudio and will burn a ROM version of Alldream onto it - once
the EPROMs arrive; hopefully this may fix the problem.

dB.

Re: Alldream(XRoar)wav<--->Alldream(real Dragon)wav, Errors.

Posted: Fri Aug 02, 2013 5:14 am
by Sarah
I seem to remember early and later (or tape and cartridge?) versions of Alldream used different save/load formats? The ones you're using might be incompatible with each other; you could work around that by loading the cartridge version of Alldream into RAM on your cassette based machine although it'll occupy more RAM by itself leaving you less workspace.

The short leader format used by Alldream put each line of the source into a separate block, didn't it? It doesn't need to sync all those blocks in the usual way when loading back, though, so really only the first block needs a long leader but others still need to be sufficient for Alldream to successfully complete an insert. It can become unreliable with longer text and was rather inefficient due to all the overhead anyway. I only used the built-in save/load functions with really small projects... anything longer than a trivial amount of source code and you're often better off simply using CSAVEM and CLOADM instead. Obviously you need to figure out a safe start address to begin your CSAVEM, ensuring that you save all your text, ending at the top of reserved RAM.

For example, if you were using cartridge Alldream and had done the usual CLEAR200,20001 then a really conservative CSAVEM"WHATEVS",&H4E21,&H7FFF,&HC000 would be sure to save all your source (but includes any unused memory too). It can be loaded back with the same CLEAR followed by CLOADM and EXEC then reply 'Y' when asked 'OLD TEXT?' and away you go. The same idea can be used with cassette Alldream just substitute the appropriate end and exec addresses.

Tip: Working on a large project? CLEAR200,1224 allows all of $600-$7FFF to be used as workspace for Alldream... once that's not enough memory then you'll need to split your project up!