Advanced QL User Guide

A place to discuss general QL issues.
Derek_Stewart
Font of All Knowledge
Posts: 3928
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Advanced QL User Guide

Post by Derek_Stewart »

I have scanned and OCRed my copy of the Advanced QL User Guide by Adrian Dickens and am in the process of converting the book into searchable PDF file, with LibreOffice.

My plan was to make the final procssed book available, but the book maybe still copyright to Adrian Dickens, ADDER Publications, or ADDER Technology.

Should I approach ADDER Technology to see if they wiil release he copyright of the book, or can a Common Creative Licence be applied, to make the book available, for creation of an updated revision.


Regards,

Derek
Derek_Stewart
Font of All Knowledge
Posts: 3928
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: Advanced QL User Guide

Post by Derek_Stewart »

Hi,

Nearly finished the checking of ebook.

But I have come across an issue:


I have come across a problem with an example code fragment in the physical book, for the use of IO.SERIO or IOU.SSIO in SMSQ/E.

The example in the Advanced QL User Guide, uses the same example in the QL Technical and the SMSQ/E Reference Guide, Section 16 Page 7:

Code: Select all

MOVE.W  $E8,A4
JSR     (A4)
DC.L    TEST
DC.L    FETCH
RTS 
Should A4 not be assigned to $EA for general I/O handling?


Regards,

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

Re: Advanced QL User Guide

Post by tofro »

Derek_Stewart wrote:Hi,

Nearly finished the checking of ebook.

But I have come across an issue:


I have come across a problem with an example code fragment in the physical book, for the use of IO.SERIO or IOU.SSIO in SMSQ/E.

The example in the Advanced QL User Guide, uses the same example in the QL Technical and the SMSQ/E Reference Guide, Section 16 Page 7:

Code: Select all

MOVE.W  $E8,A4
JSR     (A4)
DC.L    TEST
DC.L    FETCH
RTS 
Should A4 not be assigned to $EA for general I/O handling?
IO.SERQ shold be vector E8.
IO.SERIO should be vector EA.

If this example code is indeed to be calling IO.SERIO, the vector is to be $EA, and the code is wrong as well: there should be a third pointer after the call (JSR (a4)) pointing to a "put byte" routine. Using vector $E8 as in your example - will crash - that calls IO.SERQ, and that doesn't expect longword pointers after the JSR (but code instead).

Apparently, this code is a direct copy from the Technical Guide - Which is just as wrong...

Note Dilwyn's edition of the technical guide seems to have a scanning glitch on this page - It mentions vector $EB for IO.SERQ, which clearly cannot be - that's an odd address.


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
Derek_Stewart
Font of All Knowledge
Posts: 3928
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: Advanced QL User Guide

Post by Derek_Stewart »

tofro wrote:
Derek_Stewart wrote:Hi,

Nearly finished the checking of ebook.

But I have come across an issue:


I have come across a problem with an example code fragment in the physical book, for the use of IO.SERIO or IOU.SSIO in SMSQ/E.

The example in the Advanced QL User Guide, uses the same example in the QL Technical and the SMSQ/E Reference Guide, Section 16 Page 7:

Code: Select all

MOVE.W  $E8,A4
JSR     (A4)
DC.L    TEST
DC.L    FETCH
RTS 
Should A4 not be assigned to $EA for general I/O handling?
IO.SERQ shold be vector E8.
IO.SERIO should be vector EA.

If this example code is indeed to be calling IO.SERIO, the vector is to be $EA, and the code is wrong as well: there should be a third pointer after the call (JSR (a4)) pointing to a "put byte" routine. Using vector $E8 as in your example - will crash - that calls IO.SERQ, and that doesn't expect longword pointers after the JSR (but code instead).

Apparently, this code is a direct copy from the Technical Guide - Which is just as wrong...

Note Dilwyn's edition of the technical guide seems to have a scanning glitch on this page - It mentions vector $EB for IO.SERQ, which clearly cannot be - that's an odd address.
HI,

Thank you for the clarification, I did correct the Advanced QL User Guide, which the example code is taken from the published book.

It seems that the error was present in the QL Technical Manual, Adrian Dickens must of just copied Tony Tebby's manual, assuming no error, then the SMSQ/E Reference Manual was written, using the information from the QL Technical Manual, changing the operating system constants, this error went unnoticed, I have informed Wlolfgzng about required change.

The only correct information about IO.SERIO was in the Qdos Companion.

Just shows how much we all read the detail of the manuals.


Regards,

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

Re: Advanced QL User Guide

Post by tofro »

Derek_Stewart wrote:
HI,

Thank you for the clarification, I did correct the Advanced QL User Guide, which the example code is taken from the published book.

It seems that the error was present in the QL Technical Manual, Adrian Dickens must of just copied Tony Tebby's manual, assuming no error, then the SMSQ/E Reference Manual was written, using the information from the QL Technical Manual, changing the operating system constants, this error went unnoticed, I have informed Wlolfgzng about required change.

The only correct information about IO.SERIO was in the Qdos Companion.

Just shows how much we all read the detail of the manuals.
Well, you only need io.serio/io.serq when writing a device driver. Not many people have taken up that challenge.


ʎɐqǝ ɯoɹɟ ǝq oʇ ƃuᴉoƃ ʇou sᴉ pɹɐoqʎǝʞ ʇxǝu ʎɯ 'ɹɐǝp ɥO
User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: Advanced QL User Guide

Post by dilwyn »

Have amended that and a few other scanning glitches in the QL Technical Guide on the Replacement Manuals page.


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

Re: Advanced QL User Guide

Post by janbredenbeek »

tofro wrote: Well, you only need io.serio/io.serq when writing a device driver. Not many people have taken up that challenge.
And not straightforward to use, since it contains absolute long pointers to the actual handling routines. Which means you have to set up the code in RAM unless you're absolutely sure about its address (probably only if it's in the ROM or $C000-$FFFF area. In Minerva, this was avoided by adding an io.relio routine which uses relative pointers).


Derek_Stewart
Font of All Knowledge
Posts: 3928
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: Advanced QL User Guide

Post by Derek_Stewart »

Hi,

I have finished checking the OCRing of the scan of The QL Advanced User Guide.

The manual maybe still under copyright to ADDER Publications, or ADDER Technology as it is now. So I have emailed them to ask if they would like to release the book from copyright. Once this request has been acceted I will post finished book here.

Meanwhile, I will type in all the listings and make sure they as expected.


Regards,

Derek
User avatar
Cristian
Aurora
Posts: 960
Joined: Mon Feb 16, 2015 1:40 pm
Location: Veneto

Re: Advanced QL User Guide

Post by Cristian »

Derek_Stewart wrote: The manual maybe still under copyright
In any case, great job Derek, and thanks for your effort


Derek_Stewart
Font of All Knowledge
Posts: 3928
Joined: Mon Dec 20, 2010 11:40 am
Location: Sunny Runcorn, Cheshire, UK

Re: Advanced QL User Guide

Post by Derek_Stewart »

Hi

Do response from Adder Technology, so if there is nothing forth comming I will apply a Open Source Licence to the scanned text, which has many corrections to be a Community Edition.

I will wait till the en of June for this.


Regards,

Derek
Post Reply