Orchestra90 converted to Dragon 64

A place to discuss everything Dragon related that doesn't fall into the other categories.
Post Reply
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Orchestra90 converted to Dragon 64

Post by pser1 »

Hello,
after a long time working on that project, we may finally present a working program.
We have converted the Orchestra90-CC for the Tandy CoCo to the Dragon 64.
- Tony Jewell modified the keyboard routines so that any keypress generates the CoCo code expected by the program.
- Stewart Orchard found a way and programmed the audio mods necessary to add the two channels signals (stereo) and
send the result to the internal Dragon DAC, so no need for the cartridge to be present any more!
Of course if you have it you can benefit the extra two bits definition and its stereo output.
He pushed a lot on the analysis part of the project, specially on the hardware related routines.
- I have added the code to deal with the drives natively, that means without any DOS being installed, sending commands
right to the chip inside the controller (WD2797)

This program needs a Dragon64 as it switches to all RAM mode (map1).
In order to take advantage of the Orchestra90, it is better to get the user manual and read it thoroughly. There are quite a lot of interesting possibilities ...
One nice trick that is not in the manual is that if you press "Shift and Intro" on the credits screen, a flag is set to allow the user
to play at double speed. In CoCo if you forgot to do it you have to re-init the program. We can simply use the command F that will play
the loaded song at double speed and set the flag too. Another not documented feature is that any 'play' command, for
instance P, G, M (play, get, multi) if launched with "Shift Intro" instead of just Intro, will switch to double speed while playing.

I will complete the information on another post so that this is not too big to discourage reading it!

cheers
pere
_Orchestra90-D64_V3R0.ZIP
(74.8 KiB) Downloaded 200 times
Some screenshots:
Credits-small.jpg
Credits-small.jpg (59.05 KiB) Viewed 3837 times
DIR command.jpg
DIR command.jpg (62.39 KiB) Viewed 3837 times
Attachments
Help.jpg
Help.jpg (89.36 KiB) Viewed 3837 times
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Orchestra90 converted to Dragon 64

Post by pser1 »

Hello,
and this is the second part of the presentation ...

The directory has been changed to show the extension too, as you can see in the screenshots of previous message.
The program accepts * as a wild card, so you can
D 1:*.ORC will show ORC files in drive 1
D *.BAS:2 will show BAS files in drive 2
D *.* will show all files in disk 1 (default)
Load commands R, M, G have a register to remember the last song that was requested, so if you use a wildcard next, they will look
for that song from the last one, making it easy to load sequentially.
In case you issue:
G B*.ORC it will load sequentially all files beginning with B until it reaches the end of the directory.
If M were used instead of G, then playing will loop back to the beginning endlessly.

There are some changes I made to the program, specially adding commands to give more options to the user:
- F allows playing any previously scored song at double speed, at the cost of losing the screen, but it comes back when the
song ends and you gain sound quality!
- H will show a text page containing all of the accepted commands.
- K filename.ext will delete that file from the disk1
- Q allows quitting the program to the Basic interpreter to do whatever you'd need. Of course when quitting, there is NO DOS,
so dos commands will result in ?SN Error
- X allows renaming a file to another name
- < unprotects a file in the disk
- > protects a file
If you use XRoar and emulate a MPI interface to work with drives and Orchestra, you will find that you cannot access one slot from
the other. Eg being in the Orchestra one you cannot read discs! In real life you could. So I added commands 0, 1, 2, 3 to switch to the desired slot.
In the commented case you will issue 3 to switch to disks, read a score and then press 0 to switch back to Orchestra to play it ...

I will be reworking some 16 big disks 720k each with a lot of scores inside. They were published some time ago but I have found that some
of them lose the last byte when loading, so fail to score and others are cut (not complete) and fail scoring too. As soon as I have been
able (and have the time) to clean them, I will add those disks here again so that you can use them with the program.
With such disks you could simply enter G *.ORC with Shift+Intro
and let the machine play all of the scores in the disk looping to the beginning when it reaches the end ...

You will find in the attached ZIP file the actual VDK virtual file that contains two programs:
- TDDAC to start the program without the Orchestra cartridge
- TCART to start it with the cartridge plugged in

cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Orchestra90 converted to Dragon 64

Post by pser1 »

Hello,
back again ...
This is just to tell you that this version is to be considered a beta!
I have made quite a lot of tests on XRoar, on my Dragon64 both with and without the Orchestra cartridge
and it has worked flawlessly, but one never knows ...

Any feedback on this version would be highly appreciated
As soon as we can tell that there are no bugs on it, I will upload the source file. This is freeware!


cheers
pere
prime
Posts: 266
Joined: Fri Apr 10, 2009 1:40 am

Re: Orchestra90 converted to Dragon 64

Post by prime »

Hopefully when you converted it to DragonDOS / SuperDOS you used the official entry points by using the jump table at $c003?

Do you have the source for this as it would be usefull to port it to work with DragonMMC.

Cheers.

Phill.
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Orchestra90 converted to Dragon 64

Post by pser1 »

Hi Phill,
no, I didn't use DOS at all.
In fact the installer contains a variant of the DOSmate from Steve Evans that
disables totally the installed DOS.
Everything is done at low level, sending the right commands to the WD2797
and 'only' using a page (256 bytes) as buffer instead the three that the DOS requires.
I didn't want the source to be published for everybody right now as I am afraid
there would arise some bugs ...
But I have no problem to send it to you, I will try pm

cheers
pere
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Orchestra90 converted to Dragon 64

Post by pser1 »

Hello,
first day testing one big disk (720k with 160 scores). I listen o them sequentially issuing this command:
G *.ORC and then Shift+Intro
When it has reached song number 101 the program has issued this message:
NE Error (for file Not Exists)

But I could load the song manually, so the sequential system has a problem!
It has been fast and easy to find out ...
Unfortunately I wrote in a sector number control this code:
cmpb #12
Instead of the correct value 18 decimal or 12 hexa
cmpb #$12

Only a byte changed, and now there are no more problems. I can listen to all of the scores in that disk.
I attach here a VDK with the new version OR90V3R1

cheers
pere
Attachments
Orchestra90V3R1.zip
new version to correct sequential loading
(74.82 KiB) Downloaded 212 times
pser1
Posts: 1655
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: Orchestra90 converted to Dragon 64

Post by pser1 »

prime wrote:Hopefully when you converted it to DragonDOS / SuperDOS you used the official entry points by using the jump table at $c003?
Do you have the source for this as it would be usefull to port it to work with DragonMMC.
Cheers.
Phill.
Hi Phill,
Unfortunately Orchestra uses the RAM area that the Dragon Data DOS would use as buffers ($800-$900-$a00 in fact till $7ff is fully used!)
So, I chose $1da as buffer and detached the DOS because it was not of use.
They do the same with RSDos, all accesses are low level, only tape accesses use Basic routines!

cheers
pere
Post Reply