News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Devilmarkus

Ripped Dinamic tape loader

Started by Devilmarkus, 14:54, 29 October 13

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Devilmarkus

Hello Tape-Fans,

I talked with MiguelSky about the Dinamic-Tape loader.

He then sent me a few files, and I ripped the routines.

The result is a handy RSX-routine to save and load binary files to/from tape.

How to use it?

- RUN"DINAMIC.BAS" from my DSK file "dinamic.dsk"
- Commands are displayed:

|SAVE,<sync>,<start>,<length> - Saves a binary file to tape in dinamic format.
|LOAD,<sync>,<start>,<length> - Loads a binary file from tape in dinamic format.

Important: <sync> for loading and saving must be the same value. (1-255)

I'll attach 2 files:
dinamic.dsk -> The RSX routine
cauldron_dinamic.cdt -> An example tape I made using this routine.

I hope, this is useful :)

Edit: Forgot to explain, how to put this loader on tape:
- LOAD"DINAMIC.BIN" from my dsk file.
- Write a BASIC loader like this:
10 MODE 1:LOAD"!":CALL &A000
20 INK 0,0:BORDER 0:INK 1,9:INK 2,24:INK 3,6:CLS:CALL &BD19
30 |LOAD,1,&C000,&4000
40 |LOAD,1,&1800,&8656
50 INK 1,0:INK 2,0:INK 3,0:CLS:CALL &BD19
60 |LOAD,1,&C800,&3100
70 CALL &C800

- Save this loader to tape: |TAPE:SPEED WRITE 1:SAVE"CAULDRON" (It's the loader on the cauldron tape)
- Save the DINAMIC.BIN to tape: SAVE"LOADER",b,&A000,&0340
- Execute DINAMIC.BIN with CALL &A000
- Load the files you want to copy to tape and save them with: |SAVE,1,&C000,&4000 to tape, too (This is example for the title screen)
- Done...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Bryce

Without knowing what sync value you used for the Cauldron example, it's not going to be of much use to anyone :)

Bryce.

Devilmarkus

Quote from: Bryce on 15:19, 29 October 13
Without knowing what sync value you used for the Cauldron example, it's not going to be of much use to anyone :)

Youself define the sync value, so where's the problem? ;)

I used 1 here.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Bryce

Let me put it in BASIC for you:  :P

10 REM Cauldron Example Loading Sequence
20 Counter=255: Saver = "Markus"
30 INPUT "Sync Value (required)"; LoadingSync
40 IF LoadingSync>0 AND LoadingSync<256 AND LoadingSync <> SavingSync THEN GOTO 80 ELSE GOTO 90
50 IF Saver = "Markus"[Nb]Who didn't bother to tell us what Sync value he chose[/Nb] THEN INPUT "Markus... What sync value did you use";A
60 IF A>0 AND A<256 THEN GOTO 90
70 PRINT "Doh, If I don't know the value then I can't try the Cauldron Example, lets ask again...":GOTO 50
80 Counter=Counter-1:PRINT "No, that value didn't work, just";Counter;" more values to try":GOTO 30
90 Print "Yeeeaaa, finally I have enough information to load the Cauldron example. Sync value is";A:END
100 Print "Doh, if he's not going to tell me I'm just going to have to guess after all":GOTO 30

(Probably full of errors that you DON'T need to point out to me :) )

Bryce.

Devilmarkus

Good idea...
Another is:
Just use the routine for what it's designed for.

(And when you make your own tapes, I'm sure, you can remember the sync value you used)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

ralferoo

I'm interested in tape loaders, so I downloaded this. What's so special about this loader?

As far as I can tell, it's just a standard speccy turbo loader with a pulse width of 607 T states. That'd be on average a 1900 baud recording (1440 all ones-2880 all zeros), which is actually slower than the standard CPC SPEED WRITE 1.

EDIT: I'm not trying to diss your work, just interested why you'd use this over any other turbo loader... :)

Devilmarkus

Quote from: ralferoo on 22:05, 29 October 13
I'm interested in tape loaders, so I downloaded this. What's so special about this loader?

As far as I can tell, it's just a standard speccy turbo loader with a pulse width of 607 T states. That'd be on average a 1900 baud recording (1440 all ones-2880 all zeros), which is actually slower than the standard CPC SPEED WRITE 1.

EDIT: I'm not trying to diss your work, just interested why you'd use this over any other turbo loader... :)

I wanted to allow normal users like me, to be able to save such files to tape and read them.

For this I modified the Dinamic Loader / Save routine to a little RSX routine, which allows that.

It's not meant to be used by super-coder-hacker-mega-brains but by normal people, who just want to save / load a few files in a nice way to/from tape ;)

The coders here can code their loaders themselves, I think...

But people like me can't... So for me this is a helpful routine.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

redbox

Quote from: Devilmarkus on 23:10, 29 October 13
The coders here can code their loaders themselves, I think...
But people like me can't... So for me this is a helpful routine.

I still haven't written a tape loader so this is useful.

However, if some kind soul wants to post a fast(er) spanish loader I'd also be very grateful :)

Devilmarkus

No worries ;)

My last reply was meant a 'bit' ironic :D

I know, it's not the fastest loader, but the almost most beautiful :D
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Axelay

Quote from: redbox on 00:14, 30 October 13
I still haven't written a tape loader so this is useful.

However, if some kind soul wants to post a fast(er) spanish loader I'd also be very grateful :)


Have you seen the bugfixed toposoft loader by arnoldemu?

redbox


Devilmarkus

Quote from: Axelay on 08:44, 30 October 13

Have you seen the bugfixed toposoft loader by arnoldemu?

Sure, I first worked with this. But as there is no save routine (You have to use 2CDT.exe), or I'm too blind to find one, I used the dinamic loader...

It's also bit faster.

Also it doesn't mess the registers etc... So very handy for keeping firmware etc. alive.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Gryzor

So - what's interesting about the Dinamic loader?

TFM

It works.  :)  And makes nice color effects.  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

remax

Do we have to be from Dinamic Software to use it?
Brain Radioactivity

ralferoo

This reminded me of a project I started 2 years ago but never finished. Over the weekend I took another look and decided to start again.

This is the first prototype, running at 3680 baud, which is about double the speed of the Dinamic loader:

Phase 1 of turboloader on CPC

It's just the loading screen - I just wanted something that I could check for obvious corruption!
I have plans to further massively improve speeds too, but I'll hold off on the details until it works... :D

CanonMan

Quote from: ralferoo on 09:38, 05 November 13
[size=78%]This is the first prototype, running at 3680 baud, which is about double the speed of the Dinamic loader:[/size]

It's just the loading screen - I just wanted something that I could check for obvious corruption!
I have plans to further massively improve speeds too, but I'll hold off on the details until it works... :D


Wow, that's fast!


I would imagine it's going to be very picky about how accurate the tape head azimuth alignment is though.....

ralferoo

#17
Quote from: CanonMan on 15:02, 05 November 13
Wow, that's fast!
I would imagine it's going to be very picky about how accurate the tape head azimuth alignment is though.....
Hopefully not too picky. As I said when I looked at the Dinamic loader, it was using pulses at 607 T states apart. My loader is using pulses 542 T states apart, so only a 10% faster pulse rate than Dinamic when it's at it's maximum. It's all about optimising what pulses to send!  8)

I plan to test with some real (20 year old) tapes later this week - I just need to find some blank ones first! But I'm pretty confident it'll work fine as I know quite a bit about the theory and strive to keep the bias at 0 at all times... :D

Interestingly, I'm pretty sure this approach hasn't been used before on the CPC as it shows up serious bugs in both WinCPC and WinAPE as to how they handle 0x15 (pure data) chunks in CDT files.  >:(

TFM

Quote from: CanonMan on 15:02, 05 November 13

Wow, that's fast!


I would imagine it's going to be very picky about how accurate the tape head azimuth alignment is though.....


Yes. Great for emulation. But senseless on real machines. Everything above about 2000 Baud makes no sense. That kind of tapes won't work after a year any longer. All that turbo loader fancy shmancy stuff is crap in real live. However a nice to have for emulation.[nb]On which I use DSKs instead of tapes of course!!![/nb]
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TFM

Quote from: ralferoo on 15:50, 05 November 13
... as it shows up serious bugs in both WinCPC and WinAPE as to how they handle 0x15 (pure data) chunks in CDT files.  >:(


What's about JavaCPC? It should work better.

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

redbox

That's really cool. Hope you get it working with real tapes!

Another use could of course be its implementation from an MP3 player (is this what you're doing in the video?) as I'd much rather load this fast on my 464 :)

ralferoo

Quote from: TFM on 18:50, 05 November 13
What's about JavaCPC? It should work better.
Yes, JavaCPC worked fine as far as I can tell (but my loading code wasn't working at all then, I was just testing being able to detect pulses). The problem with JavaCPC for me is that my only Windows box is too slow to run it at an acceptable speed, but that's more the fault of my PC! :(

TFM

Would be interesting to see how tapes (previously used OR not used) will be able to keep data at such high speeds. Charly (German forum) had problems to read Turbo Tapes of back the day (most could not be read), but anything using speed write 0 or 1 worked very well - even after decades.



Thinking of a tool to sense the integrity of the data, by analyzing the integrity of the frequency for every bit.
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

dragon

I think the best loader, is the loader of rescue to atlantis. You can't play mastermind in many games when a tape is loading...

ralferoo

Hmmm. Looks like I might have more hardware repair work in store for me... :(

Of my 3 464s, one doesn't have a working tape deck at all, one can't drive the motor and the last has a stretched belt that it struggles to load its own recordings made on SPEED WRITE 0.

So, the short version is that I have no idea if this will work on a real tape after all!  >:(

Powered by SMFPacks Menu Editor Mod