Author Topic: Ripped Dinamic tape loader  (Read 4507 times)

0 Members and 1 Guest are viewing this topic.

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1016
  • Likes Given: 926
Ripped Dinamic tape loader
« on: 15:54, 29 October 13 »
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:
Code: [Select]
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...
« Last Edit: 16:08, 29 October 13 by Devilmarkus »
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

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 11.844
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4282
  • Likes Given: 450
Re: Ripped Dinamic tape loader
« Reply #1 on: 16: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 :)

Bryce.

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1016
  • Likes Given: 926
Re: Ripped Dinamic tape loader
« Reply #2 on: 16:57, 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

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 11.844
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4282
  • Likes Given: 450
Re: Ripped Dinamic tape loader
« Reply #3 on: 17:41, 29 October 13 »
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.

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1016
  • Likes Given: 926
Re: Ripped Dinamic tape loader
« Reply #4 on: 17:52, 29 October 13 »
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

Offline ralferoo

  • Supporter
  • 6128 Plus
  • *
  • Posts: 970
  • Country: gb
  • Liked: 583
  • Likes Given: 222
Re: Ripped Dinamic tape loader
« Reply #5 on: 23: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... :)

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1016
  • Likes Given: 926
Re: Ripped Dinamic tape loader
« Reply #6 on: 00:10, 30 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

Offline redbox

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.751
  • Country: gb
    • redbox
  • Liked: 326
  • Likes Given: 267
Re: Ripped Dinamic tape loader
« Reply #7 on: 01:14, 30 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 :)

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1016
  • Likes Given: 926
Re: Ripped Dinamic tape loader
« Reply #8 on: 08:20, 30 October 13 »
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

Offline Axelay

  • 6128 Plus
  • ******
  • Posts: 585
  • Country: au
  • Liked: 383
  • Likes Given: 87
Re: Ripped Dinamic tape loader
« Reply #9 on: 09:44, 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?

Offline redbox

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.751
  • Country: gb
    • redbox
  • Liked: 326
  • Likes Given: 267
Re: Ripped Dinamic tape loader
« Reply #10 on: 09:54, 30 October 13 »
Have you seen the bugfixed toposoft loader by arnoldemu?

No, I missed that one - thanks!

Offline Devilmarkus

  • Vivid source of indefiniteness
  • 6128 Plus
  • ******
  • Posts: 4.035
  • Country: de
  • WebCPC / JavaCPC developer
    • index.php?action=treasury
    • CPC-Live website
  • Liked: 1016
  • Likes Given: 926
Re: Ripped Dinamic tape loader
« Reply #11 on: 10:53, 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

Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 16.085
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3493
  • Likes Given: 6294
Re: Ripped Dinamic tape loader
« Reply #12 on: 20:30, 31 October 13 »
So - what's interesting about the Dinamic loader?

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1983
  • Likes Given: 4650
Re: Ripped Dinamic tape loader
« Reply #13 on: 22:54, 31 October 13 »
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

Offline remax

  • 6128 Plus
  • ******
  • Posts: 1.126
  • Country: fr
  • Liked: 413
  • Likes Given: 456
Re: Ripped Dinamic tape loader
« Reply #14 on: 23:17, 04 November 13 »
Do we have to be from Dinamic Software to use it?

Offline ralferoo

  • Supporter
  • 6128 Plus
  • *
  • Posts: 970
  • Country: gb
  • Liked: 583
  • Likes Given: 222
Re: Ripped Dinamic tape loader
« Reply #15 on: 10:38, 05 November 13 »
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

Offline CanonMan

  • CPC6128
  • ****
  • Posts: 152
  • Liked: 19
  • Likes Given: 41
Re: Ripped Dinamic tape loader
« Reply #16 on: 16:02, 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.....

Offline ralferoo

  • Supporter
  • 6128 Plus
  • *
  • Posts: 970
  • Country: gb
  • Liked: 583
  • Likes Given: 222
Re: Ripped Dinamic tape loader
« Reply #17 on: 16:50, 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.  >:(
« Last Edit: 17:00, 05 November 13 by ralferoo »

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1983
  • Likes Given: 4650
Re: Ripped Dinamic tape loader
« Reply #18 on: 19:47, 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

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1983
  • Likes Given: 4650
Re: Ripped Dinamic tape loader
« Reply #19 on: 19: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

Offline redbox

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.751
  • Country: gb
    • redbox
  • Liked: 326
  • Likes Given: 267
Re: Ripped Dinamic tape loader
« Reply #20 on: 20:01, 05 November 13 »
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 :)

Offline ralferoo

  • Supporter
  • 6128 Plus
  • *
  • Posts: 970
  • Country: gb
  • Liked: 583
  • Likes Given: 222
Re: Ripped Dinamic tape loader
« Reply #21 on: 20:39, 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! :(

Offline TFM

  • Visit the mysteries of the CPC at www.futureos.de
  • Supporter
  • 6128 Plus
  • *
  • Posts: 9.899
  • Country: aq
  • Space Chicken for FutureOS is free!
    • index.php?action=treasury
    • FutureOS - The revolution on CPC!
  • Liked: 1983
  • Likes Given: 4650
Re: Ripped Dinamic tape loader
« Reply #22 on: 20:48, 05 November 13 »
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

Offline dragon

  • 6128 Plus
  • ******
  • Posts: 1.498
  • Country: es
  • Liked: 651
  • Likes Given: 494
Re: Ripped Dinamic tape loader
« Reply #23 on: 00:07, 06 November 13 »
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...

Offline ralferoo

  • Supporter
  • 6128 Plus
  • *
  • Posts: 970
  • Country: gb
  • Liked: 583
  • Likes Given: 222
Re: Ripped Dinamic tape loader
« Reply #24 on: 00:38, 06 November 13 »
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!  >:(