Advanced BASIC ROM User Guide [Remastered PDF]

avoid work duplication! collaborate on the archival of acorn literature!
Post Reply
User avatar
dv8
Posts: 397
Joined: Mon Jun 22, 2009 10:07 pm
Contact:

Advanced BASIC ROM User Guide [Remastered PDF]

Post by dv8 »

Attached is an OCRed and re-typeset copy of The Advanced BASIC ROM User Guide by Colin Pharo.

The SSD disc image contains all the listings in the book.

Advanced_BASIC_ROM_User_Guide.pdf
Second revision (March 2023)
(361.15 KiB) Downloaded 228 times
Advanced_BASIC_ROM_User_Guide.ssd
(40.75 KiB) Downloaded 74 times

Other remastered books you may be interested in:

BASIC ROM User Guide
BBC Micro User Guide (Model B and B+ editions)
Last edited by dv8 on Sat Apr 15, 2023 12:00 pm, edited 5 times in total.
User avatar
lurkio
Posts: 4351
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: Advanced BASIC ROM User Guide

Post by lurkio »

Great book, outstanding digitisation!

=D> =D> =D>
User avatar
sweh
Posts: 3314
Joined: Sat Mar 10, 2012 12:05 pm
Location: 07410 New Jersey
Contact:

Re: Advanced BASIC ROM User Guide

Post by sweh »

I learned so much from this book! I'm pretty sure it almost cost me an "A" in Computer Studies at O Level.

See, there was a section on how floating point numbers were stored. And after the teacher went through the lesson I said "this is wrong; what you've described is _fixed point_ numbers. There's always 3dp in your examples". Next week she came back and said "yes, you're right".

Roll forward... and the o-level exam had a question on floating point numbers. And so, of course, I used exactly how the Beeb stored numbers (based on this book) and not the incorrect lesson.

Final grade was a "B". Huh. So we paid to get the exam re-marked. I got an "A" with the comment "The student provided an alternate but correct answer to the question".

30+ years later and I'm still convinced the official exam was wrong on floating point numbers!

And much kudos for the excellent quality PDF.
Rgds
Stephen
Coeus
Posts: 3557
Joined: Mon Jul 25, 2016 12:05 pm
Contact:

Re: Advanced BASIC ROM User Guide

Post by Coeus »

Indeed, thanks dv8.

On the question of the floating point numbers it reminds me that when we did computer studies at school a few of us in the class were familiar with microprocessors and microprocessor assembly language whereas the course was probably based on mainframe computing. The one I remember was an example assembly language for some fictional computer which had a multiply instruction and I remember thinking "not on anything I've seen - usually you have to write a subroutine for that".

I wonder how much floating point was used on mainframes. Probably not at all in most COBOL programs. Maybe in FORTRAN. I also wonder if there was confusion by assuming that real numbers were held in floating point form. Of course they could be, a microprocessor BASICs generally did, but fixed point (scaled) representations would have also been practical for some applications.
thearttrooper
Posts: 42
Joined: Fri Dec 09, 2011 9:56 am
Contact:

Re: Advanced BASIC ROM User Guide

Post by thearttrooper »

I wanted to echo the comments congratulating you on the quality of the the production.
User avatar
lurkio
Posts: 4351
Joined: Wed Apr 10, 2013 12:30 am
Location: Doomawangara
Contact:

Re: Advanced BASIC ROM User Guide [Remastered PDF]

Post by lurkio »

dv8 wrote: Mon Oct 09, 2017 11:03 am Attached is an OCRed and re-typeset copy of The Advanced BASIC ROM User Guide by Colin Pharo.
Hi. Don't know if you're interested in possible errata, but I think locations &1C and &1D actually hold the "data pointer" rather than "BASIC PROGRAM START ... pointer to start of BASIC program" as the PDF currently says on page 138.

More info here:

viewtopic.php?f=54&t=20782

:?:

EDIT: Page 60 of Plumbley's BASIC ROM User Guide confirms.
User avatar
dv8
Posts: 397
Joined: Mon Jun 22, 2009 10:07 pm
Contact:

Re: Advanced BASIC ROM User Guide [Remastered PDF]

Post by dv8 »

lurkio wrote: Thu Oct 15, 2020 8:12 pm Hi. Don't know if you're interested in possible errata, but I think locations &1C and &1D actually hold the "data pointer" rather than "BASIC PROGRAM START ... pointer to start of BASIC program" as the PDF currently says on page 138.
I would like these books to be as accurate as possible, any corrections are always welcome.
I've added this error to the list, thanks.
Coeus
Posts: 3557
Joined: Mon Jul 25, 2016 12:05 pm
Contact:

Re: Advanced BASIC ROM User Guide [Remastered PDF]

Post by Coeus »

Another correction - not in the conversion I am sure, but in the original. Section 7.5, Variable Pointer Table, bottom of page 141 over the page to 142, in the example of an array being stored the 2nd byte after the number of array dimensions is not the size of a second dimension - the example is a one dimensional array. Rather the size of each dimension is a 16bit number so the zero byte at &1619 is the MSB of that one dimension.
User avatar
dv8
Posts: 397
Joined: Mon Jun 22, 2009 10:07 pm
Contact:

Re: Advanced BASIC ROM User Guide [Remastered PDF]

Post by dv8 »

An updated PDF of this book has been added to the opening post.

Changes since revision 1 (October 2017):
  • p138 (140) 7.1 Zero page &1C-&1D : 'BASIC PROGRAM START' should be 'DATA POINTER'
  • p138 (140) 7.1 Zero page &20 : TRACE FLAG &00 = trace off, &FF = trace on
  • p139 (141) 7.1 Zero page &29-2B : ASSEMBLER CODE BUFFER (29=opcode, 2A=operand-lo, 2B=operand-hi)
  • p142 (144) 7.5 Variable pointer table &1618/1619 : should be 'number of elements in 1st dimension' LSB/MSB
Thanks to Lurkio and Coeus for your corrections.
nicolagiacobbe
Posts: 215
Joined: Tue Jul 03, 2007 10:40 am
Location: italy
Contact:

Re: Advanced BASIC ROM User Guide [Remastered PDF]

Post by nicolagiacobbe »

Thanks for the big effort. It is always a pleasure to read your productions.
Post Reply

Return to “scanning of books, magazines, ads and letters”