BASIC IV ROM Routines
By Steve Fewell
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|