high speed tape loading

Started by steve, 18:57, 16 August 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

steve

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.

arnoldemu

Quote from: steve 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.
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

steve

#2
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.

nocash

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).

steve

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.

AMSDOS

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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

ivarf

Have anyone tried connecting something like these to an Amstrad CPC?







More good retrofeelings  8)

Cholo

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

Gryzor

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!

OCT

Quote from: arnoldemu on 19:17, 16 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

AMSDOS

Quote from: arnoldemu on 19:17, 16 August 10
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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

robcfg

Maybe it's compiled for 64-bit machines.

AMSDOS

Quote from: robcfg on 13:05, 14 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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Pentagon

Quote from: ivarf on 15:33, 18 August 10
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

robcfg

I tried it and I also get the same error. As the source is available I can try to compile and debug it.

AMSDOS

Quote from: Pentagon on 22:07, 16 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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Pentagon

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

AMSDOS

Quote from: Pentagon 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


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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

AMSDOS

Quote from: robcfg 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.


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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

AMSDOS

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:


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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

AMSDOS

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:




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 the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

Powered by SMFPacks Menu Editor Mod