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.
Other remastered books you may be interested in:
BASIC ROM User Guide
BBC Micro User Guide (Model B and B+ editions)
Advanced BASIC ROM User Guide [Remastered PDF]
Advanced BASIC ROM User Guide [Remastered PDF]
Last edited by dv8 on Sat Apr 15, 2023 12:00 pm, edited 5 times in total.
Re: Advanced BASIC ROM User Guide
Great book, outstanding digitisation!
Re: Advanced BASIC ROM User Guide
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.
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
Stephen
Re: Advanced BASIC ROM User Guide
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.
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.
-
- Posts: 42
- Joined: Fri Dec 09, 2011 9:56 am
- Contact:
Re: Advanced BASIC ROM User Guide
I wanted to echo the comments congratulating you on the quality of the the production.
Re: Advanced BASIC ROM User Guide [Remastered PDF]
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.
Re: Advanced BASIC ROM User Guide [Remastered PDF]
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.
Re: Advanced BASIC ROM User Guide [Remastered PDF]
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.
Re: Advanced BASIC ROM User Guide [Remastered PDF]
An updated PDF of this book has been added to the opening post.
Changes since revision 1 (October 2017):
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
-
- Posts: 215
- Joined: Tue Jul 03, 2007 10:40 am
- Location: italy
- Contact:
Re: Advanced BASIC ROM User Guide [Remastered PDF]
Thanks for the big effort. It is always a pleasure to read your productions.