ICL OPD

The Thor, Aurora, Q40, Q60 & Q68 etc. are discussed here.
Post Reply
User avatar
tofro
Font of All Knowledge
Posts: 2679
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: ICL OPD

Post by tofro »

RalfR wrote:I do not quit right remember but someone told me, that MDV handling on the Spectrum/IF 1 was hardware and on the QL it is software or vice versa.
That's not true. Microdrives on Spectrum/IF1 and QL basically work identically. It is true that the QL implements more software, because it supports non-sequential random access - But that's just a thicker software layer on top of the HW the Spectrum doesn't have.


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
janbredenbeek
Super Gold Card
Posts: 628
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

Re: ICL OPD

Post by janbredenbeek »

RalfR wrote:I do not quit right remember but someone told me, that MDV handling on the Spectrum/IF 1 was hardware and on the QL it is software or vice versa. Would be interesting to know, how it is handled by OPD
AFAIK the write protect handling was in software on the Spectrum and in hardware on the QL. On the Spectrum, you could lose a cartridge's contents if a program went berserk and sent an ill-formed OUT instruction to the wrong port (in fact, a number of ports since the decoding used just two bits). On the QL, the hardware prevented writing to the cartridge but the software didn't know about that, so it retried several times before giving up with a 'bad or changed medium' message.
Don't know about the OPD though...


User avatar
janbredenbeek
Super Gold Card
Posts: 628
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

Re: ICL OPD

Post by janbredenbeek »

tofro wrote: That's not true. Microdrives on Spectrum/IF1 and QL basically work identically. It is true that the QL implements more software, because it supports non-sequential random access - But that's just a thicker software layer on top of the HW the Spectrum doesn't have.
The hardware is only different for the write protection mechanism (see previous post). Even the Spectrum supports random access (in a sense that it can scatter-load parts of a file - the physical access to the media is always sequential since it's a tape loop!) when using LOAD etc. The QL is more sophisticated in that most of the physical access is done under interrupts so normal processing can continue, albeit somewhat slower.


User avatar
tofro
Font of All Knowledge
Posts: 2679
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: ICL OPD

Post by tofro »

janbredenbeek wrote: Even the Spectrum supports random access (in a sense that it can scatter-load parts of a file - the physical access to the media is always sequential since it's a tape loop!) when using LOAD etc. The QL is more sophisticated in that most of the physical access is done under interrupts so normal processing can continue, albeit somewhat slower.
My mentioning of sequencial access only on the Spectrum:
The Spectrum doesn't have a concept of a user-modifiable file pointer - You cannot append to a file once it's closed, you can't write to a file you have opened for reading (that is, no "rw" mode) and you cannot access specific records in a file. That's probably more due to the limited amount of memory for buffers and the general limitations of the Spectrum ROM rather than the capabilities of the IF1.

Tobias


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
janbredenbeek
Super Gold Card
Posts: 628
Joined: Wed Jan 21, 2015 4:54 pm
Location: Hilversum, The Netherlands

Re: ICL OPD

Post by janbredenbeek »

tofro wrote: My mentioning of sequencial access only on the Spectrum:
The Spectrum doesn't have a concept of a user-modifiable file pointer - You cannot append to a file once it's closed, you can't write to a file you have opened for reading (that is, no "rw" mode) and you cannot access specific records in a file. That's probably more due to the limited amount of memory for buffers and the general limitations of the Spectrum ROM rather than the capabilities of the IF1.
Tobias
IIRC the Spectrum IF1 ROM did have a number of system calls (called 'hook codes' - essentially RST 8 instructions followed by a byte code, above the range used for ordinary error codes) that allowed a machine code program to access a data file randomly. That said, file handling was more limited compared to the QL - there was no OPEN_IN/OPEN_NEW, if the file opened did not exist on the medium it was simply opened for write, else for read. Also, it wasn't possible to read files written by SAVE in this way (which was a means of copy protection).


User avatar
tofro
Font of All Knowledge
Posts: 2679
Joined: Sun Feb 13, 2011 10:53 pm
Location: SW Germany

Re: ICL OPD

Post by tofro »

janbredenbeek wrote:
tofro wrote: My mentioning of sequencial access only on the Spectrum:
The Spectrum doesn't have a concept of a user-modifiable file pointer - You cannot append to a file once it's closed, you can't write to a file you have opened for reading (that is, no "rw" mode) and you cannot access specific records in a file. That's probably more due to the limited amount of memory for buffers and the general limitations of the Spectrum ROM rather than the capabilities of the IF1.
Tobias
IIRC the Spectrum IF1 ROM did have a number of system calls (called 'hook codes' - essentially RST 8 instructions followed by a byte code, above the range used for ordinary error codes) that allowed a machine code program to access a data file randomly. That said, file handling was more limited compared to the QL - there was no OPEN_IN/OPEN_NEW, if the file opened did not exist on the medium it was simply opened for write, else for read. Also, it wasn't possible to read files written by SAVE in this way (which was a means of copy protection).
The IF ROM has a number of RST8 hook codes, yes (They're listed in the famous "ZX Microdrive Book"). But none for appending a file or positioning a file pointer. They are more or less resembling what BASIC could do. You could tell it to read or write a specific sector number on the drive, but that's obviously not what we'd call "random access" for files.


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
Pr0f
QL Wafer Drive
Posts: 1297
Joined: Thu Oct 12, 2017 9:54 am

Re: ICL OPD

Post by Pr0f »

tofro wrote:
Chr$ wrote:... The speech synthesis is fun but has a very limed vocab... so you can't make it say rude works :geek:
Now, that makes it entirely useless - Because what else you'd use it for :)
I think you could provide your own 'data' to produce the desired words.

As far as I know, there is no speech ROM on board, so the speech processing data must come from the ROMS in the 68K's address space.

the PDF for the speech chip is too large to upload, at 7.5MB


User avatar
Chr$
QL Wafer Drive
Posts: 1302
Joined: Mon May 27, 2019 10:03 am
Location: Sachsen, Germany
Contact:

Re: ICL OPD

Post by Chr$ »

Pr0f wrote:
As far as I know, there is no speech ROM on board
I was under the impression that there was a speech ROM installed.
A further ROM contains the vocabulary for the speech synthesiser.
(source: http://www.tebbo.com/archive/pw8412.htm)


https://QXL.WIN
Collector of QL related computers, accessories and QL games/software.
Ask me about felt pads - I can cut them to size and they have proved excellent for mdv data recovery.
User avatar
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: ICL OPD

Post by RalfR »

tofro wrote:They're listed in the famous "ZX Microdrive Book"
Is that the book from Jochen Merz? I remember that he has written a book of that.


4E75 7000
User avatar
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: ICL OPD

Post by RalfR »

Chr$ wrote:But you could use the CUB with the OPD to test it out? That's 2 OPD's in Germany then at least, there can't be many.
When Tony Firshman has sent the OPD with a monitor to me, the monitor was totally destroyed, a slightly bad package. So I had to modify my CUB to test the OPD. All work as expected but I just used it for a few hours, then back in the cellar.

In retrospect it wasn't a good idea to modify the CUB.


4E75 7000
Post Reply