Announcing the Dragon Toolkit

A place to discuss everything Dragon related that doesn't fall into the other categories.
Post Reply
User avatar
rolfmichelsen
Posts: 299
Joined: Wed Apr 08, 2009 8:43 pm
Location: Oslo, Norway
Contact:

Announcing the Dragon Toolkit

Post by rolfmichelsen »

For some time I have been experimenting with some code to make it easier to work with the Dragon or the emulators from a Windows environment. The goal has been to create an easy to use general library of Dragon-related functionality and build tools on top of that library. There is still a lot of work needed to be even close to achieving this goal, but it is about time to make the current version available for comments.

The focus so far has been on implementing support for virtual file systems, various disk image formats and corresponding filesystems and even some support for CAS files. The support for DragonDos on VDK or JVC virtual disks is relatively complete. There is read only support for OS-9 and DR-Dos. There is even some experimental support for FLEX, you can list the directory but not much else...

Binaries and source code can be downloaded from http://www.rolfmichelsen.com/dragontoolkit.html.

-- Rolf
User avatar
robcfg
Posts: 1530
Joined: Sat Apr 04, 2009 10:16 pm
Location: Stockholm, Sweden
Contact:

Re: Announcing the Dragon Toolkit

Post by robcfg »

Hey Rolf!

Now that's a nice set of functionality!

I'm also making a C++ program to convert wav files to cas files, and I'm trying do a lot of error correction. As soon as I get something that can be used, I'll send it to you and publish it here.

I'm also making a small program to copy .cas data blocks between two files (inspired by CPCTapeXP, nice utility for Amstrad CPC), and it's quite useful as there are tricky wavs to decode.

Do you hear the Dragon roaring? ;)
User avatar
rolfmichelsen
Posts: 299
Joined: Wed Apr 08, 2009 8:43 pm
Location: Oslo, Norway
Contact:

Re: Announcing the Dragon Toolkit

Post by rolfmichelsen »

Yep, I'm also considering the WAV to CAS decoder. I have some hard to decode tapes lying around, so the motivation is definitively there... How are you thinking about approaching this? I haven't done any coding on this yet, but I'm considering implementing a simple band-pass filer followed by detection of the 0-values in the waveform to estimate the frequency.

-- Rolf
User avatar
robcfg
Posts: 1530
Joined: Sat Apr 04, 2009 10:16 pm
Location: Stockholm, Sweden
Contact:

Re: Announcing the Dragon Toolkit

Post by robcfg »

I have the detection of the 0 values plus some error correction. I try to align the bytes, but I guess that would destroy any protection scheme.

I'll send you my code in a couple of days.
admin
Site Admin
Posts: 410
Joined: Thu Jul 17, 2008 10:22 pm

Re: Announcing the Dragon Toolkit

Post by admin »

There are not that many protection schemes on the dragon....and none of them are that complex - certainly nothing compared with other platforms.

The most interesting ones are actually quite simple:

1. Length Check - The file is store on the tape as, for example, 20 blocks and then the EOF block - all looks normal.... but the file is longer than it needs to be. The autorun loader actually only reads in the first 18 of the 20 blocks. The program code checks in RAM to see if the last 2 blocks were loaded, and if they were it fails protection. This works well in defeating tape to disk programs.

2. False EOF - An EOF block placed somewhere in the sequence of data blocks - the autorun loader ignores the EOF block and continues to read the data blocks.... a tape to disk program would stop at the EOF block.

Not protection as such, but many custom loaders won't work if the incorrect number of sync bytes exist between blocks - the loaders are often built to load x bytes and if the number of sync bytes is too high, these get loaded as data (usually visible as corruption on the loading screen - Microdeal used this on the PMODE3 "Cuthbert" loaders).
Simon Hardy
User avatar
rolfmichelsen
Posts: 299
Joined: Wed Apr 08, 2009 8:43 pm
Location: Oslo, Norway
Contact:

Re: Announcing the Dragon Toolkit

Post by rolfmichelsen »

This project is now hosted as a GitHub repository at https://github.com/rolfmichelsen/dragontools. I have cleaned up the code a bit and the repository now contains a complete Visual Studio 2010 solution, including a general .NET library, tools and some limited tests. New binary distributions will eventually be provided in the downloads section.

-- Rolf
Julian
Posts: 51
Joined: Mon Nov 21, 2011 1:06 pm

Re: Announcing the Dragon Toolkit

Post by Julian »

Nice - I'll take a look tonight and see what you've done :D
Post Reply