8-Bit Software

The BBC and Master Computer Public Domain Library

BASIC ROM Routines
Page Last Altered:
Wherever you see this graphic:

Clicking on it brings you back to this page

By Steve Fewell

MENU:   Introduction/News   Routines listed in
 Address order
  Routines listed
 by Category
  BASIC ROM documentation
 by Christopher Dewhurst

I decided to begin something I've been wanting to do for a long time, that is to produce listings of BASIC 4 ROM's routines, together with detailed descriptions of how they work.

Please let me know what you think, and whether you'd like to see more like it. If anyone else wants to have a go at writing up with me then please feel free to post (added CJR: send them to 8BS) your own descriptions of routines from BASIC 4 (or another version of BASIC).

If I've made a mistake, and someone wants to correct/expand on something, then please do so.

03/Mar/2004 Addition of keywords: PROC, LOCAL, ENDPROC, FN, and routines Search Subroutine Name in Lookup Table, '=' Return from a Function call, Create lookup reference for Subroutine Name, Add subroutine name to FN/PROC variable lookup table, Call Subroutine, Load variable and push its value to the BASIC stack, Set Variable to value from the BASIC Stack,
19/Jan/2004 Addition of keywords: FOR, NEXT, ON, REPEAT and UNTIL
06/Jan/2004 Addition of the 'Get Line Number & find Program Address of the Line Number' routine and keywords: TRACE, GOSUB, RETURN, GOTO, RESTORE, READ and IF
28/Dec/2003 Greetings during this Christmas and new year period!
This update contains descriptions for the Trigonometry functions!
Addition of keywords: TAN, ACS, ASN, ATN, SIN and COS
05/Oct/2003 Addition of the 'BASIC error handler' routine and keywords: CHAIN, RUN, LOAD, END, CALL, DELETE, RENUMBER, AUTO, USR, EXT, =PTR, BGET, OPENIN, OPENOUT, OPENUP, EOF, INSTR, STRING$, CHR$, SAVE, OSCLI, CLOSE and BPUT
12/Sep/2003 Addition of "'[' - Begin Assembly", "Execute '*'-command", "Execute next command line / program statement", 'skip end of program line' and 'Display current Line Number to screen [for TRACE]' routines and keywords: OLD, EXT= and PTR=
20/Aug/2003 Addition of 'Print Line Number on screen', 'Calculate next Random Number Seed value', 'Output ASCII character/BASIC Token (in ASCII text)' routines and keywords: TIME=, TIME$=, MOVE, DRAW, PLOT, REPORT, VDU, RND, POS, VPOS, EVAL, INT, INKEY, INKEY$, SGN, POINT(, ADVAL, =TIME, =TIME$, LEFT$(, RIGHT$(, MID$(, EDIT, LIST, LISTO
01/Aug/2003 Addition of 'BASIC ROM Startup Initialisations', 'Find positon of Program Line', 'Tokenise command line text', 'Insert line into Program', 'Remove line from program', 'Check program can be read correctly' and 'Detokenise Line Number' routines and keywords HIMEM=, LOMEM=, PAGE=, CLEAR, GCOL, COLOUR and MODE
10/Jun/2003 Addition of 'Assemble Assembly Statement', 'Output character to screen' and 'Extract next field' routines and keywords PRINT, PRINT#, CLG, SOUND, ENVELOPE, WIDTH, INPUT and INPUT#
01/May/2003 Addition of Numeric to ASCII (NUMASC) routine and keywords: NOT, VAL, ASC, ABS, LEN, =PAGE, TOP, COUNT, =LOMEM, =HIMEM, ERL & ERR
09/Apr/2003 Addition of Disassembler program to the analysis disc images, Added LET & DIM keywords, and added &AD36 (get value routine)
24/Mar/2003 Addition of Reference Disk Images, SQR & routine [&9909] to evaluate Variables and Arrays (and get address of the required value/variable parameter block).
28/Feb/2003 First of the Floating-Point Series calculations for functions such as LOG, LN and EXP

BASIC 4 ROM - Reference information:

Error Messages

Character Set

Memory Map


8000 to 9000 HTML TEXT CSV
9000 to A000 HTML TEXT CSV
A000 to B000 HTML TEXT CSV
B000 to C000 HTML TEXT CSV

Reference Disc images


 Back to 8BS
Return To On Line Magazine