- Top Stats

Top Posters Top Topic Starters Top Topics
Bryce 5309
TFM 2507
Gryzor 2256
arnoldemu 1273
TotO 1203
Bryce 90
arnoldemu 70
Gryzor 42
LambdaMike... 38
CraigsBar 35
Amstrad CPC WiFi - 292570 Views Duke 09:36, 07 May 16
CPC Plus cartr... - 211474 Views gerald 17:39, 01 November 14
ACID chip inside - 82848 Views MacDeath 15:52, 23 October 09
Gotek USB in a... - 72016 Views gryzor 18:01, 18 March 14
Pros & Con... - 59638 Views CPCIak 15:07, 11 May 10


Author Topic: high speed tape loading  (Read 6109 times)

0 Members and 1 Guest are viewing this topic.

Offline steve

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.263
  • Country: gb
  • Liked: 177
high speed tape loading
« on: 18:57, 16 August 10 »
Is it feasible to move the cassette read head forward a bit so it can read the tape when the tape mechanism is in fast forward mode?
There is more to it than that but this first question determines whether the idea is practical or not, I doubt if anyone wants to write to tape so that is one thing we don't need to worry about.

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.331
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2244
Re: high speed tape loading
« Reply #1 on: 19:17, 16 August 10 »
Is it feasible to move the cassette read head forward a bit so it can read the tape when the tape mechanism is in fast forward mode?
There is more to it than that but this first question determines whether the idea is practical or not, I doubt if anyone wants to write to tape so that is one thing we don't need to worry about.
Have you heard of project otla?
http://code.google.com/p/otla/

I am not sure this is what you are wanting.. but it does speed up loading.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Offline steve

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.263
  • Country: gb
  • Liked: 177
Re: high speed tape loading
« Reply #2 on: 19:40, 16 August 10 »
What I would like to do is put a cassette tape in a 464 tape drive press play+enter, then press fast forward, the program then loads into memory, only much faster than normal.

Edit: I now realise that pressing play will move the head forward so I just need to engage fast forward without retracting the head or wearing out the tape too quickly.

Another possibility is changing the pulleys so in play the tape moves twice as fast.
« Last Edit: 20:03, 16 August 10 by steve »

Offline nocash

  • 464 Plus
  • *****
  • Posts: 352
  • Liked: 0
Re: high speed tape loading
« Reply #3 on: 13:20, 18 August 10 »
Similar thing did exist for ZX Spectrum:

Challenge Research Ltd: Challenge Sprint and Sprint Mk II
This is a quad-speed "audio" cassette drive, it connects to the expansion port, apparently spins faster than normal cassette drives, and works with existing cassette software (that was recorded at slow speed). The included BIOS replaces the normal cassette functions by faster functions, works only with software that uses the BIOS functions, eg. not with copyprotected games.

As far as I remember, the CPC BIOS does autodetect baudrate, so one wouldn't need a modified BIOS here. But you may get problems with copy-protected/turbo-loader games (they may use hardcoded baudrates, and they often have more bits/second than the BIOS, so with further speed-up, the bits may arrive much too fast).

Offline steve

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.263
  • Country: gb
  • Liked: 177
Re: high speed tape loading
« Reply #4 on: 14:04, 18 August 10 »
It is interesting that a company has already done this, so the idea is sound.
I had not considered copy protection schemes, I just need to be sure that the number of incompatible tapes is not so high that the project is useless.

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #5 on: 14:46, 18 August 10 »
From what I've read, you can only go so fast with the tape before you begin missing data which needs to be loaded in and Fast Foward to my understanding is faster again.
 
What I found (many years ago) was Programs like JL-COPY are good for taking a Unprotected Tape and saving it at a much faster rate, though there was a really good program many years ago in AA which had a routine to speed up the baud rate to 3500 and you could load and save stuff in Headerless format, unfortunately you'd need all the details - start address, length, filesync code which is like a filename in number format and of the program you want to save and load in order, once you did all that you'd be in business with the Execution Address!  ;D
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)

Offline ivarf

  • 6128 Plus
  • ******
  • Posts: 525
  • Country: no
  • Liked: 150
Re: high speed tape loading
« Reply #6 on: 15:33, 18 August 10 »
Have anyone tried connecting something like these to an Amstrad CPC?
 

 
 

 
 
More good retrofeelings  8)

Offline Cholo

  • 6128 Plus
  • ******
  • Posts: 512
  • Country: dk
  • Liked: 95
Re: high speed tape loading
« Reply #7 on: 20:35, 19 August 10 »
Actually hooking up a vcr to a amstrad should be totally possible. I remember back before cd-r arrived someone got the brilliant idea of using normal vhs machines as a " tapestreamer". It was a extremely easy setup with a scart cable with very few "teeth/wires" and a nearly empty pci board. The VCR part was easy as you would simply use it manually like normal. The complex thing was the pc software where you could choose "speeds" and CRC size. Also the software used index files you need to save on hdd, so no headers was used at all. Playing a "tape and youd noticed that all it did was make lines of black and white on the tape (or whole screens). The pc version used CRC-error correction and so you could save 100mb data easy on a 2 hour tape. Of cause the pc was using the "top" capacity of vhs tape (thats why all the crc was needed) and if something similar is done with a amstrad it wouldnt need to make those "crazy" speeds, as i think we all agree that even 10mb is a "unthinkable" large size.
Of cause then i got a iomega 100mb floppy disc drive and then one of the early cd-rw drives (1x speed yay!) and who would then sit and wait 2 hours (or 4 lol) for to load data from vhs tape?

Here is that old video where you load a protected game 300%-ish faster than normal (CD+tape-adapter):

http://www.youtube.com/watch?v=9bv3d3pmA9U

Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 14.845
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 2860
Re: high speed tape loading
« Reply #8 on: 11:25, 23 August 10 »
Back to the original question Steve posed: I think that, even if you tweak the deck to allow both play and FF to be pressed (some decks do allow that if you force them -many do, actually), you begin hitting physical limits. Even if you had a 100% perfect read rate, which sounds difficult with the cheap recorders they used, it's only a matter of time, I would think, before the tape itself starts withering away...

But it'd be a very interesting experiment!

Offline OCT

  • 464 Plus
  • *****
  • Posts: 349
  • Liked: 42
OTLA Manic Miner @ 12600 baud
« Reply #9 on: 19:19, 24 August 10 »
Have you heard of project otla?
http://code.google.com/p/otla/
As a matter of fact there's an OTLA demo of Manic Miner speed-loading at 12600 baud at
http://www.youtube.com/watch?v=zOk5wY9pMhg

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #10 on: 10:03, 14 January 15 »
Have you heard of project otla?
otla - Tool for loading programs into vintage computers via their cassette

I am not sure this is what you are wanting.. but it does speed up loading.


I'm more curious about this otla project.


I tried downloading v2.2.0 of the program twice, and twice I had the program coming up with bugs (send error report on exit & some kind of conflicting error I think when trying to convert cdt file).


Unsure if I need an earlier version because I'm using Windows XP?
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)

Offline robcfg

  • Supporter
  • 6128 Plus
  • *
  • Posts: 2.116
  • Country: se
  • 8-Bit Technomancer
    • index.php?action=treasury
  • Liked: 936
Re: high speed tape loading
« Reply #11 on: 13:05, 14 January 15 »
Maybe it's compiled for 64-bit machines.

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #12 on: 10:56, 15 January 15 »
Maybe it's compiled for 64-bit machines.


I downloaded their early version 1.3 or something, but it doesn't look like I'm using the program appropriately because that's coming back with the same problems.


I thought I made something with it using Disk Image, but all it seemed to do was made a cdt load the first block and give me some Speedlock border, wouldn't load the rest on my 6128.


Would have been nice if there was a step-by-step guide for creating the resulting file, I'm unsure if this program is user friendly for BASIC programs either, but it doesn't seem to like CDT images with Firebird Loaders either.
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)

Offline Pentagon

  • Supporter
  • CPC664
  • *
  • Posts: 148
  • Country: de
  • Liked: 37
Re: high speed tape loading
« Reply #13 on: 22:07, 16 January 15 »
Have anyone tried connecting something like these to an Amstrad CPC?
 

More good retrofeelings  8)

Hello,
i tried a VCR to record CPC Data some years ago and it worked very fine. I had used a HIFI Stereo VCR with six heads and a usual Stereo to 5 Pin Adapter cable. Of course it was not faster to load, but it was possible to use up to 3600 Baud Loaders.

Regards
Tom

Offline robcfg

  • Supporter
  • 6128 Plus
  • *
  • Posts: 2.116
  • Country: se
  • 8-Bit Technomancer
    • index.php?action=treasury
  • Liked: 936
Re: high speed tape loading
« Reply #14 on: 00:17, 17 January 15 »
I tried it and I also get the same error. As the source is available I can try to compile and debug it.

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #15 on: 00:44, 17 January 15 »
Hello,
i tried a VCR to record CPC Data some years ago and it worked very fine. I had used a HIFI Stereo VCR with six heads and a usual Stereo to 5 Pin Adapter cable. Of course it was not faster to load, but it was possible to use up to 3600 Baud Loaders.

Regards
Tom


Good, now you can try with a DVD player with USB Hub, load your digitised tape image from Jump/Flash Drive. I selected a cheap LG DVD player with USB, but found it only supports WMA/MP3 as an audio source. I believe Sony put out a cheap DVD player with USB which supports WAV (I have a BluRay which does this).


I was trying to use OTLA to speed up a program and load it though my setup, but haven't had much luck with it.
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)

Offline Pentagon

  • Supporter
  • CPC664
  • *
  • Posts: 148
  • Country: de
  • Liked: 37
Re: high speed tape loading
« Reply #16 on: 10:09, 17 January 15 »
Yes that should work too, but at the moment i found a really good solution with an old iPod Touch. I just did a fresh iTunes Database with images of CPC Tapes and dropped them on my old iPod. It works very fine in lossless Apple Format.

It should be possible with an iphone too. It loads Sorcery Flash Loader without problems.

Regards
Tom

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #17 on: 23:47, 17 January 15 »
Yes that should work too, but at the moment i found a really good solution with an old iPod Touch. I just did a fresh iTunes Database with images of CPC Tapes and dropped them on my old iPod. It works very fine in lossless Apple Format.

It should be possible with an iphone too. It loads Sorcery Flash Loader without problems.

Regards
Tom


I was wondering if it was possible to use those gadgets just for that purpose, though I was also trying to keep it to a cheap budget, I seemed to have created a Hi-Fi System with Video Screen w/ USB & DVD Support. No wonder the price of sound systems is so low these days.
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #18 on: 04:43, 18 January 15 »
I tried it and I also get the same error. As the source is available I can try to compile and debug it.


I've had success using Otla 1.3 by creating a sbb file out of a Binary Program which I created from Hisoft Pascal. Instead of dealing with CDTs or DSKs, I just put the BIN file in the samples/cpc area, use OtlaBuilder 1.3 by adding the Binary file to it to create the SBB file and use OtlaPlayer 1.3. Initially I had some loading problems, but I adjusted the ms pause between blocks to 2000 which worked on my 6128 and loaded my 8Kb program in 11 seconds.


I've attached the resulting WAV file. Sorry I tried to upload to Linkedin, but they don't seem to appreciate people's sound editing abilities. :(
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #19 on: 06:43, 22 January 15 »
I was just wondering if someone has some knowledge about location the Loader program that otla writes?


I found this bit of code on Amstrad.ES Forum:


Code: [Select]
Hdir    equ   &ff



        org   Hdir+&100
         






        ld    hl , inicio  ;;&800e
        ld    de , &ff0e
        ld    bc , 250 - 14
        ldir
        jp    start_loading
         


inicio     


       
table
       defb  &40,&40              ;defb  &fc,&fc
       defb  &40,&40              ;defb  &fc,&fc
       defb  &40,&40,&40,&40,&40  ;defb  &fc,&fc,&fc,&fc,&fc
       defb  &41,&41,&41,&41,&41  ;defb  &fd,&fd,&fd,&fd,&fd
       defb  &42,&42,&42,&42,&42  ;defb  &fe,&fe,&fe,&fe,&fe,&fe
       defb  &43,&43,&43,&43,&43  ;defb  &ff,&ff,&ff,&ff,&ff,&ff
       defb  &43,&43,&43,&43,&43  ;defb  &ff,&ff


 
men
     defb  &0a
     defb  "Loading error"
     defb   0   




velozloader
pilot


        ld    d, (hl)
        dec   hl
        ld    e, (hl)
        push  de
        push  hl


        ex    de,hl


        di


        exx
        push  bc
        ld    bc,&7f10       
        out   (c),c         ;border
        ld    c , &44
        exx     


pii_0


        ld   bc, &f510     ; ear


pii     
        exx 
        out  (c), b    ; a  ;
        exx


        xor  a
         
pi_LOW  inc  a
        in   a,(c)
        jp   m, pi_LOW


        exx 
        out  (c),c 
        exx


pi_HIGH inc  a
        in   a,(c)
        jp   p , pi_HIGH




        cp   &39   
        rl   c   ;  d
        cp   &29   
        jr   nc, pii


        inc  c   ;  d
        jr   nz , pii_0
 
syn_LOW in   a,(c)
        jp   m, syn_LOW


        cp   &19       
        ld   a, &f2     ;e ; &fa


        jr   c, no_inv


        xor  8


syn_hi  in   a,(c)
        jp   p , syn_hi


no_inv
        ld   (p1),a
        xor  8
        ld   (m1),a






        xor  a
        ld   c,a
        jr   enter




full    and  H
        ld   (de),a
        inc  de
        xor  c
        ld   c,a
        ld   a, &fe;      ; 1+2+2+1+1+2 =  9


enter   
more 


HIGH1  inc  l
       in   a , (c)
p1     jp   p , HIGH1
       exx
       inc  c
       res  3,c
       exx


       ld   h, Hdir    ;


       ld   h, (hl)


       ld   l, table - (Hdir  * &100) -2
                     
                     ; 11




LOW1    inc  l
        in   a,(c)
m1      jp   m, LOW1 
         
        rlca
        rla       


        jr   nc, full      ;p   nC, full
       
        exx
        out  (c),c
        exx


        and  H
        jp   m, more   ; 1+4+1 +1+3 = 10


        exx
        pop  bc
        exx
 
        pop  hl
        pop  de
        ld   (hl),e
        inc  hl
        ld   (hl),d


        ld   a,  c
        or   a


        di  ;;ei
        ret z


        ld   hl, men
wr_men       
        call  &bb5a


        ld   a,(hl)
        or   a
        inc  hl
       
        jr nz, wr_men


        ei
        ret   




start_loading     


        ld    bc, inicio ; pila


        ld    bc,&f610
        out   (c),c       ;OUT &F600,&10 motor


        call  entra_multiblock




        ld    bc,&f6ef
        out   (c),c       ;OUT &F600,&10 motor off


        ld    hl,(bu+1)
        ei 
        jp    (hl)   
dexec   
        ret






header  defw   &c020-1  ;&bfff
bu      defb   01  ; ret           ;ret/ld de,/jp/call   
        defw   dexec


entra_multiblock       
         
        ld     hl,  header -1
        call   velozloader


        ld     hl,(header)
        call   velozloader       
        jr     bu


which looks like the loader otla makes, though when I compile it with pasmo assembler, all I get is a loader which doesn't load the blocks of code (maybe due to it not being setup to load screen+code).


Thought it would be nice to covert some of those Codemasters games where the Loading Screen becomes part of the game.
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.598
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 862
Re: high speed tape loading
« Reply #20 on: 09:35, 22 January 15 »
I've downloaded the Source of Otla 1.3 which is where that section of code was from and it's looking like the issue is lack of Header Information which I presume is imbedded as part of the loader, but I don't know if it's in the Header of the Loader or in the Source (I hope the later), but I didn't see any clues to suggest where it was situated.  :'(


Only have this to go by:


Code: [Select]

unsigned char     header_cpc_loader[259]//=
={
            0x2c,
            'o' ,'t' ,'l' ,'a' ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            1,           //block number
            0xff,        //flag last block
            2,           //type machine code
            255 ,   0,   //length
            0x00,0x80,   //start address
            0xff,        //flag first block
            255 ,   0,   //logical length
            0x00,0x80    //exec address
        } ;


I thought it would be better to have the loader at &AF00 instead of onscreen.


I played around with the Latest Version of otla 2.2.0, but it doesn't allow the user to relocate the loader either and if Screen Images are used, it will only display what it can leading up to the Loader program (which means there's still loader code embedded on the game screen if it's one of those games which uses part of the title screen for the game).
* Using some of the hardly used Amstrad compilers :D
* I use Firmware in my Assembly code :P
* Have interpreted some BASIC 1.1 programs for BASIC 1.0. :)