hoglet67 / BeebFpga

45 stars 8 forks source link

Feature request: tape loading #10

Open rcmolina opened 4 years ago

rcmolina commented 4 years ago

Could you please reconsider implementing tape interface, as in the real machine?

Thanks in advance!

Rafael

hoglet67 commented 4 years ago

There are three parts to the tape interface on the Beeb:

  1. the analog signal conditioning (3 op amps, that amplifiy, filter and square the signal)
  2. the serial ULA (this does frequency detection and clock/data separation)
  3. a 6850 ACIA (converts synchronous bits back to bytes)

(2) and (3) would be straightforward to implememt in the FPGA

(1) is the tricky part. You either need to replicate the analog circuitry from the Beeb, or you need an ADC and do this digitially.

What FPGA board are you using? I'd guess the Spectrum Next looking at your avatar.

Do you think the Ear circuitry on the Spec Next would be suitable for the Beeb casette format?

image

It's much simpler that what the Beeb uses.

Dave

rcmolina commented 4 years ago

Thanks for the info David, I read some time ago about the procedure to amp and get the square waves, very tricky. Regarding my logo, I am zx native from 13 years old, and only 2 years ago I bought an electron and a bbc micro to implement advanced maxduino/tzxduino tape loading firmware. Before this I got frustrated with fpgas cause only acorn electron port was implementing tape loading, but this helps me at the beginning... after that, real machine testing. No, I did not buy an Spectrum Next cause I have several fpgas: 2 x zx-uno and a Sidi (mist compatable by manuferhi) better for external tape loading. I could not understand very well why electron fpga implementation support this, and not bbc micro core.

Thanks for your attention,

Rafa

hoglet67 commented 4 years ago

The main reason my Electron FPGA implementation has the tape interface implemented is that some games make use of tape interrupts as a simple hardware timer, and fail if it's not implemented.

The second reason was I was interested in the fully understanding the Electron ULA (and we had just got hold of a set of original schematics).

The BBC Serial ULA is more of an unknown quantity. Very little is known about how the tape data seperator actually worked. There are no original schematics, and I know of no one that's decapped one for reverse engineering.

rcmolina commented 4 years ago

Thanks Dave, understood. I've seen in Belgium a descendant, the main uk enterprise broke up. Don't know if emailing them could be useful. ¿?

Ferranti Computer Systems N.V. (HQ) Romeynsweel 7 B-2030 Antwerpen Belgium

T: +32 3 540 49 11 E: info@ferranti.be

VAT BE 0416.296.878