News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_lynwen

Hello! I'm new/a newbie/a n00b/all that jazz

Started by lynwen, 22:34, 22 January 13

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

lynwen


Hello everyone, my name is my username (original thinking I know  :laugh: ), nearly 30 years old and my sisters and I had a colour and green screen amstrad cpc 464 when we were growing up, from when I was about 5 until my mid teens. My grandad was a computer enthusiast and it was him who always got us the latest tech, and subsequently got me into the field of computing, but he has since passed away and we all miss him very much.


Computers was always a huge hobby of mine until I got into the IT industry then I went off it. I mainly work high level programming in vb6/.net and sql server, as opposed to low end assembly code and electronics which is what I used to tinker with in my teens. I have since forgotten what I had learnt which is a big shame  :'(

Finally I have a (mostly) working amstrad cpc 464! So annoyed I don't still have my original one from .... however many years ago now...


I have far too many cassette tape games, duplicates etc from trying to get the right collection from ebay etc. I have 6 "Animal Vegetable Mineral" tapes for example.


My grandad and I used to sit and read the Amstrad Action magazines that had the free tapes attached. I have found my collection but its not the full collection. Can anyone remember how many tapes they released? I have #1-25 tapes.


In regards to the downloads, how does one download a game and then put it on a cassette tape to play on the Amstrad? Or am I being totally stupid?


So yeah hello and sorry I probably wont have many interesting things to say, I like to read rather than reply due to my lack of knowledge on the subject!

lynwen

Can someone please tell me how to "like" a post, I have looked everywhere and can't see it  ::)  sorry !

MaV

Hello and welcome!

The "like"-button is currently not working. The problem will be solved soon I guess.
Black Mesa Transit Announcement System:
"Work safe, work smart. Your future depends on it."

lynwen

Glad to know Im not going completely crazy  :P

MaV

Black Mesa Transit Announcement System:
"Work safe, work smart. Your future depends on it."

ralferoo

Quote from: lynwen on 22:34, 22 January 13
In regards to the downloads, how does one download a game and then put it on a cassette tape to play on the Amstrad? Or am I being totally stupid?
I'd buy a cheap MP3-tape adaptor from ebay (mine was 99p). You can just put the tape into the CPC tape deck and play back a CDT on your PC using playtzx or cdt2wav or whatever else.

If you really want them on tape, your easiest bet is just get a regular 3.5mm to phono and plug it into the back of your hifi or a 3.5mm to 3.5mm and plug into a microphone socket, depending what you have. Then just record the output, again using playtzx or cdt2wav.

Gryzor

Hello Lynwen, and again welcome to our forum!

Cool grandparents you had... thanks for sharing all tat information with us :)
   
Hope you get that tape deck figured out -or that you find a new one! Converting tape images to real tapes can be a bit tricky, but not overly difficult. You can download [urk=http://cpc-live.com/download.php]JavaCPC[/url] which incorporates the CDT to WAV tool. With this you can take a tape image, convert it to a sound file and then record it normally onto a tape. But as ralferoo said, an mp3 tape adapter is probably the most convenient solution.

Huh, interesting question, how many AA tapes were released? It's not in the wiki article :D I can't be arsed to count the unique tapes in the archive, but you can download them all here: Amstrad Action - CPCWiki . As for Animal Vegetable Mineral, yeah, we could all probably build a fort out of these :D

Hope you can see the "Like" button now, I think I've restored its functionality completely.

Have fun - hope you stay :)

lynwen

Can someone please direct me to an article or such that explains HOW the amstrad interperets the data on cassette tapes? What is with the noises? Is the actually any data stored on the cassette or just noises?Are all programs/games coded in the locomotive basic language?
It would be really interesting to know how it works.
Be nice I'm a novice  ;)

db6128

#8
QuoteCan someone please direct me to an article or such that explains HOW the amstrad interperets the data on cassette tapes?
arnoldemu's CPCTech and the official Firmware Guide are always the safest bets! :D
http://www.cpctech.org.uk/docs/manual/s968se08.pdf
I guess you will want to skip to section 8.3 at first.

QuoteWhat is with the noises? Is the actually any data stored on the cassette or just noises?
Both: the noises represent data.

QuoteAre all programs/games coded in the locomotive basic language?
Nope, and they don't all use the standard Amstrad loading program either! Most reasonably advanced games and applications (or at least the speed-intensive parts thereof) will be programmed directly in machine code a.k.a. assembly language, i.e. directly controlling the Z80 processor rather than wading through the slow interpreted layer of BASIC.

Alternative loading methods have been employed for various reasons: copy protection, simple conversion from the Spectrum, animated or musical loading screens, and/or other reasons. Whenever you load a game now, listen out for files that don't follow the normal doooooooo-diddloo-do, doooooo-WARJASDKLRJASDJGA pattern, and/or watch out for striped borders, counters, or other things; those indicate non-standard loaders. Of course, the CPC cannot load files in these other formats without first having a program to do the loading, so there will be at least one standard-type file before any of the other shenanigans.
Quote from: Devilmarkus on 13:04, 27 February 12
Quote from: ukmarkh on 11:38, 27 February 12[The owner of one of the few existing cartridges of Chase HQ 2] mentioned to me that unless someone could find a way to guarantee the code wouldn't be duplicated to anyone else, he wouldn't be interested.
Did he also say things like "My treasureeeeee" and is he a little grey guy?

ralferoo

#9
Quote from: lynwen on 22:33, 25 January 13
Can someone please direct me to an article or such that explains HOW the amstrad interperets the data on cassette tapes? What is with the noises? Is the actually any data stored on the cassette or just noises?
There's quite a lot of theory that I'm going to gloss over here, but I'll explain a bit here that might pique your interest. It's complicated though, and if you're really interested I'd recommend getting a good book. You'll probably want quite an oldish book as most textbooks on audio now seem to forget that tape ever existed!

But anyway, first you'll need a bit of background information... The tapes that programs are stored on aren't just plastic, they're actually coated with a thin strip of metal or metallic particles in something else, but essentially you have something that got a thin layer of magnetic particles. These can be aligned so they point in a similar directions, by creating a strong enough magnetic field around them, which can be done fairly easily by passing an alternating current through a coil. Most importantly, it turns out that these magnetic particles also create a magnetic field themselves, which can also be detected using the same coil looking at the alternating current being induced in the coil. So, that's most of the physics out of the way. So simply put, the tape records the alternating voltage sent to the coil when it's recording and recreates that voltage in the coil when the tape is being played back. The important thing to note is that you need an alternating current for this process to work.

Going back to computers, it's natural that we'd want to use bits, so we can think of any data as a stream of 0s and 1s. Translating this into the analogue world, we could represent these as + and - voltages. However, as we know from above, we can't just have a long stream of +s or -s as then we'd not have an alternating current in the coil and so we'd not be producing a magnetic field. So, we then need to create a system where long streams of +s and -s can't occur. There are many such systems in use (and actually discs and even CDs use similar principles here too), but for tapes a fairly simple system is employed - the voltage is always inverted for every bit, but we vary the speed depending on the bit value. This idea might be familiar from morse code. For instance SOS (...---...) might be represented as +-+--++--+-+, so the dashes are twice as long as the dots.

That system seems working, but there is a problem with it... sometimes it works, sometimes it's unreliable. That's because the coding system is what's known as NRZ (non-return to zero). For random data, it's fine, but for instance if you were outputting the binary data 010101010101, you'd end up with a stream like: -++-++-++-++-++. What we see from that is that there are far more +s than -s, and so the average voltage isn't 0, but instead a bit closer to the positive voltage. This means that the voltage between the average and the positive peak is lower, and so the magnetic field that's produced is less strong. This effect is known as the DC bias.

Generally, with computer tapes, we take the simplest solution. We double up each bit so that every bit we output actually has two transitions, so e.g. 0101010 is now represented as -+--++-+--++-+--++-+--++. Whatever data we output, we always have an equal number of +s and -s which means we have an alternating current with a DC bias of 0, so we can create a strong magnetic field with which to realign the particles on the tape.

Some systems like the Spectrum and Amstrad use almost this same exact system, others for example the BBC use a variant where each bit is the same length. With the system described above a stream of 0s produces half then length of data as the same length of 1s. So, the BBC uses -+-+ to represent a 0 and --++ to represent a 1. There's no real advantage to doing this on a computer tape, but it is common and gives you a constant bit rate, i.e. you know exactly how long a certain amount of data will take to store, regardless of its content.

As I've mentioned baud and bit rate, I should introduce you to some terminology. "Baud rate" is the number of "symbols" per second, also often known as "symbols per second". "Symbol" is a discrete data value, in this case we have 2 symbols: - and +. "Bit rate" is the number of bits transmitted per data, which is lower than the baud rate as we need 2 or 4 symbols per bit of data. A lot of early 8-bit literature use baud rate and bit rate interchangeably, which can get confusing. Most times you read "baud rate", they actually mean "bit rate".

That's essentially all tape data is, although there's no easy way to discern what data is or what it's for. So, we generally have a header so we can identify the start of some data and maybe even what it is. So, we might have a long sequence of 1 bits, a 0 bit and then our data. The long sequence of 1 bits is generally known as the pilot tone, because it lasts for a long time (maybe as long as a second) and has a constant pattern (--++) it sounds like a single note. Because it's 1 bits, it's generally at a lower frequency than the following data, hence the low-high-low-squeak noise familiar to CPC owners.

You might be wondering about the 0 bit after the pilot tone. That's simply because we don't know if our data starts with a 0 or a 1. If it starts with a 1, it'd get lost amongst the pilot tone, so we always have a 0 bit after the long run of 1s to signify the next bit is the start of data.

That's essentially all there is to it and this is common to every recording system, although there are differences between all different implementations which leads to the unique sounds on each system. The most common addition is a checksum byte. Obviously, there's a lot to go wrong with this system - from the tape being faulty, stretched or even paused during loading. If we perform some calculation on each byte of data (usually just addition), we can check it against the checksum to make sure it's what we expect. The Amstrad actually uses a CRC check which is more resilient to errors that just addition. Additionally, most systems have 8 bits at the start of the header for the type, and often the length is stored in here too.

Whereas some systems like the Spectrum treat the header and data as the same thing (so a single pilot tone, followed by noise), the Amstrad uses a separate data block for the header and the data, and uses a different type byte to distinguish between them. Other systems, typically a quickloader that supports rewinding might use the type byte as a block number and bleeploaders shrink the pilot tone down to a fraction of a second so it sounds like a quick bleep instead of a long tone.

So, now we know what's on the tape, we need to consider how to load it. For most systems, we know the baud rate the data was saved at, typically 2000 symbols per second for a slow loader (this is a bitrate of between 500-100 bits per second). We know that we're therefore expecting a transition somewhere between 1000 and 2000 times per second depending if it's a 0 or a 1, so 0.5ms to 1.0ms. Typically, we add some error margin, so e.g. 0.4ms-0.8ms is a 0 and 0.9ms-1.1ms is a 1. We also expect that pulses come in pairs, so we ensure that we don't have a long pulse and short pulse together in the same pair. The pilot tone is typically used as a time when this can be calibrated. So, then it's simple - we time how long it takes for 2 pulses to arrive. If it's short, it's a 0, if it's long it's a 1. If it's midway, we're considering two halves of different bits. If it's too short then we have a dirty tape, if it's too long then we might have a stretched tape or just nothing on the tape.

The Amstrad's system is particularly clever, in that it times the pulses in the pilot tone and works out the correct frequency from that. This allows the same loading code to be used whatever the baud rate (SPEED WRITE 0 or 1) but also allows better results for stretched tapes and for variation in tape motor speeds. This is actually pretty unusual in tapes, probably even unique to the Amstrad.

Also, a final note is that the "baud rate" in Amstrad terminology is the "average bit rate". So that means that SPEED WRITE 0 which is described as 1000 baud is actually a bit rate of 667 1 bits per second or 1333 0 bits per second, and so a symbol rate of 2666 baud.

There's a lot more complexity that can go into tape loaders and personally I find it a really fascinating area to explore, but that should cover the basics.
QuoteAre all programs/games coded in the locomotive basic language?
No, almost none are written in BASIC. Generally just some of the simpler games from the early months of the 464. Basic programs are most obvious because the load using the standard system and have many blocks. Some early machine code games used the same loaders, but typically the first thing a machine code game does is load a loader than can load data more quickly than the standard loader.

Gryzor

Wow, from reading this reply I got into a tape-loading-sound zone, a-la Matrix. 

lynwen

What a brilliant explanation thanks!!

Our local library used to have tapes back I the day which we would borrow but never managed to copy, is that because they were normal audio tapes taped by using a normal dual tape stereo? Made all thr right sounds but didn't have the strip of metal particles?

ralferoo

It could just have been bad luck because you'd not found the right volume setting on the copy. However, there were lots of nasty tricks played in copy protection systems. One of them involved having a quiet pilot tone so the automatic gain control in most hifis would boost the signal, making the signal during the data too loud. This would have the effect of lengthening the + symbols relative to the length of the - symbols and so upset the timing systems used by the loader.

Copy protection was a very delicate game, trying to work on the edge of usability. I've heard that some games had to be remastered because the tapes used at the duplicators weren't of the same quality that the protection system was tested with and none of the mass produced games would load on any system.

It could have been the type of tape used. The different types of tapes, e.g. "chrome", "metal", "ferric" etc all have different frequency responses and so could have very different results with computers. The more advanced ones particularly were designed to be used with noise reduction systems (e.g. Dolby) and so weren't good if you tried to turn that off (in fact, tape decks were supposed to ignore that setting and always use NR with metal tapes).

But on the whole with cassettes, copy protection was always fighting a losing battle. Most people had access to a half decent tape-to-tape deck and found a combination of tapes and volume levels that worked for them..

db6128

Just to add to ralferoo's excellent posts (which totally make mine look like nothing! :P) regarding something else you asked: all tapes have magnetic coating; that's how any sound (and thus data) is stored, so they have to.
Quote from: Devilmarkus on 13:04, 27 February 12
Quote from: ukmarkh on 11:38, 27 February 12[The owner of one of the few existing cartridges of Chase HQ 2] mentioned to me that unless someone could find a way to guarantee the code wouldn't be duplicated to anyone else, he wouldn't be interested.
Did he also say things like "My treasureeeeee" and is he a little grey guy?

Gryzor

The tip about the quiet lead-in is very interesting - a while back I asked if there were any audio->audio copy protections but this didn't come up...

Hey, wasn't it a problem if you did it in stereo or am I remembering things?

ralferoo

#15
Quote from: Gryzor on 08:22, 28 January 13
Hey, wasn't it a problem if you did it in stereo or am I remembering things?
Possibly, but I'd be surprised if any copy protections relied on this. The stereo tape head has 2 narrow sensors that in theory cover the same area as a mono sensor (but has a gap in the middle). In theory, you should get the same signal using a mono lead with a stereo deck as a stereo lead on a mono deck. So, you could have a protection system that had left and right out of phase to cancel each other out, but if you were using a mono lead or deck with such a tape you'd just hear a very faint or no signal. Likewise, you could put some of the signal on each channel so that it only works when it's all added together. Certainly with spectrums, the EAR signal was a mono connector but most people would probably have been using a stereo tape recorder. I guess Amstrad and C64 were both mono tape decks, but I've never actually checked. I think the chances of such a system working reliably though is pretty low, but I wouldn't be at all surprised if it was done.

Bryce

There was a problem with Stereo copying, because the mono head in the CPC isn't properly aligned with either the left or the right channel on the tape. The mono head is reading in the middle, so the signal strength is weaker. If you were using a Stereo player (with a lead to the 6128 for example), then this wasn't a problem. It only occured if you copied a tape in a Stereo Hifi and tried to use it on the 464 tapedeck.

Bryce.   

Gryzor

Ah yes, I think it was the latter that I recalled and I remember it not being so simple as just using your hi-fi to do it - cheap, mono decks were in demand...

Powered by SMFPacks Menu Editor Mod