BBC BASIC for the PDP-11 - Changes list ======================================= 08-Nov-2009 ----------- Commands: PROC(addr%), FN(addr%), string buffer is at ^@%-256. 05-Nov-2009 ----------- Commands: RESTORE [DATA|ERROR], LOCAL [DATA|ERROR], ENDPROC, =, drop and restore locals. 25-Oct-2009 ----------- Word pushed onto empty stack when executing so when structure terminators check 2(sp) for matching structure opener, not reading past end of allocated memory. Program structures push structure token on stack, not return address. 09-Mar-2009 ----------- LOAD/CHAIN can load and tokenise text file. Tokeniser sped up with offsets to each initial letter, line numbers tokenised correctly, LineFind written to search for program line for GOTO/GOSUB/RETURN and line editing. 03-Mar-2009 ----------- LOAD file$,addr, 31-bit decimal numbers working, times10 subroutine working. 27-Feb-2009 ----------- HostIO: Hurrah! Finally managed to get through the stty()/ioctrl() madness on real UNIX. Using stty() causes no end of problems when switching to and from raw/cooked/echo mode, needed to output something to kick the output stream before things like quit would work. Now using ioctrl(), but that's not available on v6. Will have to work aroud this. Quit now restores tty characters as well as settings. SIGQUIT calls Quit. SIGINT terminates read() so Escape works in OSRDCH and Input. Character delays and crmod turned off in tty. OSARGS 0,0 returns 24 for UNIXFS. 25-Feb-2009 ----------- HostIO: Bashing away at getting iotty and SIGINT handling working on real UNIX. Functions: Calls to MOS entries working, registers returned right way around from USR. Evaluate: ^ implemented. Commands: Variable assignment mostly written. Variables: Static variables and indirection implemented. 18-Jan-2009 ----------- Execute: \ line continuation character implemented 04-Sep-2008 ----------- Evaluate: &oXXX octal numbers, %xxxx binary numbers Functions: STRING$, STR$, LEFT$, RIGHT$, VAL, EVAL, LineNum, USR, CALL, RND Commands: LIST, REPEAT/UNTIL, GOTO/GOSUB/RETURN, RESTORE, IF, TRACE Tokens: Detokeniser 31-Aug-2008 ----------- Interface: SOUND ON|OFF, =TIME$ checks for null return, GET$#chn, BPUT#chn,s$ GCOL c, COLOUR l,[p|r,g,b], PLOT x,y, SOUND, ENVELOPE Commands: NumberToString does integer hex and decimal Functions: Added binary functions to dispatch table, OR, EOR, AND, +, -, *, /, DIV Full general integer arithmetic now fully implemented Evaluate: Full seven-level recusive evaluator written, hex numbers, double quotes Stack: Push and pop items from BASIC stack, prechecks non-string arguments before dispatching to function code Tokens: Added 'Missing ' token to use in error messages. 12-Feb-2008 ----------- HostIO: IO_Init IO calls vector to subroutines IO_Init sets tty to raw/noecho quit sets tty to noraw/echo word0 does delete with vdu 8,32,8 RDCH/WRCH use direct TRAP calls CLI checks for *Quit command GeneralIO: printR0 processes COUNT IO_ReadLine calls OSWORD 0 IO_Escape generates error if escape state SysVars: Added SV_Escape Added IO calls vector table Vector table has default UNIX_* entries Commands: Command table uses dest-$ Command table is 80-FF STOP temp. used for QUIT PRINT uses test code ERROR, STOP, NEW, LIST done PAGE=, LOMEM=, HIMEM= done 28-Jan-2008 ----------- Startup: Doesn't clear sysvars - done by loader Execute: Error handler, ON ERROR dispatch REPORT, RUN, CHAIN Tokens: Uses Acorn-style token table Tokeniser written - needs optimising Interface: CLS, CLG, COLOUR, MODE, =MODE, =POS, =VPOS, OSCLI, DRAW, MOVE, PLOT, GCOL VDU gives 'missing comma' close, bput, ptr, ext, load, loadprogram save, =ptr, =ext, =bget, =eof, oscli, =oscli, adval Evaluate: EvalXXX check for char, then evaluate integer temp. simple integer and string evaluation Functions: = Commands: PRINT works fully, number conversion not yet implemented