SE Basic 0.93e User Guide Note: This version fixes LIST and LLIST support in the 128 Editor. This version also fixes SCREEN$ (n,n) support in the SE Basic Compiler. Editor changes (brief summary): * All the bugs are fixed. * SE Basic's routines are optimized so it is marginally faster than the original version of BASIC and much faster than 128 BASIC. * The machine resets much faster. * 128-style copyright message. * New 6x8 font for use in 32, 42, 64 and 85 column modes. * The FREE MEMORY routine is relocated. Call it with: PRINT 65536 - USR 95. * The NMI button calls a default Break routine or you can assign your own routine by poking the address into NMIADD. * Keywords are now ANSI compatible. * Simplified the keyboard. All the symbols are now available via symbol- shift and the normal key for that symbol. The copyright character is on the 'I' key which does not normally have a symbol. * Added a tokenizer and removed 'K' mode. All keywords must be typed in full but macros are available for the most common ones. Commands and functions can be entered in upper, lower, or mixed case. * Hid EXTEND mode. Normally has no function but can still be used to get in-line control codes and macros. * Added macros to certain number keys with EXTEND+SYMBOL SHIFT: 6 - RUN [ENTER] 7 - SAVE "" [<-] 9 - LOAD "" [ENTER] 0 - CLS 56 [ENTER] * Replaced the letter cursors with block colour cursors as follows: 'L' - Blue 'C' - Yellow 'G' - Green '?' - Red * Inverted the '>' cursor which appears in the auto listing (just like on the ZX81). * Changed the error cursor to behave like the 128. If you enter a line with incorrect syntax, the machine beeps, the cursor goes red and jumps to where it thinks the error is. * Extended the valid line range to 1-16383. * Cursors can move up and down as well as left and right in an edit line. * New editing keys: TRUE VIDEO = down ten lines, INV. VIDEO = up ten lines. <= = jump to start of edit line. >= = jump to end of edit line. * Since the 'STOP' token is removed from the keyboard, pressing cursor down during an INPUT A or INPUT A$ command will produce the token. It will still Break into the program as normal during an INPUT LINE A$ command. * Changed the error messages and the way they are output. Whereas before you might have got the error: R Tape loading error, 10:1 Now you would get: Loading error 10:1 * Prevented the keys V-Z from producing tokens in 'G' mode. * Inverted the cursor so it shows up in 512x192 mode on Timex machines. * Six new keywords (although they don't do anything yet and are ignored by the editor - they are recognized by the tokenizer though): DELETE EDIT ON ERROR RENUM SYSTEM TRACE * Numbers can be entered in hex using the '&' prefix. Works in much the same way as the BIN function and can be used in conjunction with other functions and mathematical operators. * Enhanced some of the commands and functions: CLS - Now takes parameters. Works as normal without a parameter (defaults to CLS 0) but sets border and attributes with a value from 1 to 255. Produces 'Out of range' error with higher values. CONT - Replaces CONTINUE. Works as normal. COPY - Now a file command. Now takes any syntax. Produces 'Bad device' error unless additional hardware connected. DEL - Replaces ERASE. Now takes any syntax. Produces 'Bad device' error unless additional hardware connected. DIR - Replaces CAT. Now takes any syntax. Produces 'Bad device' error unless additional hardware connected. FORMAT - Now takes any syntax. Produces 'Bad device' error unless additional hardware connected. GOTO - Replaces GO TO. Works as normal. GOSUB - Replaces GO SUB. Works as normal. LIST - LIST only lists the line you name rather than the whole program starting at that line. The full syntax of LIST is: LIST [x][,[y]] where x is the starting line number (default 0) and y is the ending line number (default 16383). Produces 'Out of range' error with line numbers greater than 16383. LLIST - Equivalent of the new LIST command only sent to stream #3. MOVE - Now takes any syntax. Produces 'Bad device' error unless additional hardware connected. NEW - Now takes parameters. Works as normal without a parameter (defaults to NEW 0). NEW 1 is the equivalent of PRINT USR 0. NEW n is the equivalent of CLEAR n: NEW. Produces 'Bad RAMTOP' error with values outside the range of CLEAR. SCREEN$ - Can now detect UDGs as well as normal ASCII characters. It cannot detect predefined graphics as there is no bitmap to compare them against.