Difference between revisions of "NextBASIC"
From SpecNext official Wiki
(→Graphics) |
|||
Line 45: | Line 45: | ||
| DRAW [modifier|x,y].. || Draw line from plot cursor to given coordinate | | DRAW [modifier|x,y].. || Draw line from plot cursor to given coordinate | ||
|- | |- | ||
− | | INK c || Set ink (foreground) color for print and graphics commands | + | | INK c || Set ink (foreground) color for print and graphics commands. If ULANext is enabled, this can use any legal palette value. |
|- | |- | ||
| LAYER DIM left, top, right, bottom || Sets visible area for current layer | | LAYER DIM left, top, right, bottom || Sets visible area for current layer | ||
+ | |- | ||
+ | | PALETTE CLEAR || Resets all palettes and palette settings | ||
+ | |- | ||
+ | | PALETTE DIM x || Sets number of color bits in the active palette; x must be 8 or 9 | ||
+ | |- | ||
+ | | PALETTE FORMAT x || Enables [[Enhanced ULA|ULANext]] colors with x inks. X must be a bitmask which masks off bits on the right of a value (1, 3, 7, 15, 31, 63, 127 or 255) | ||
+ | |- | ||
+ | | PALETTE OVER x || Sets the global transparency color to x | ||
|- | |- | ||
| PAPER c || Set paper (background) color for print and graphics commands | | PAPER c || Set paper (background) color for print and graphics commands | ||
|- | |- | ||
− | | PLOT [modifier | + | | PLOT [modifier or x,y].. || Plot listed points as single pixels on current layer |
|- | |- | ||
| POINT x, y, var || Stores the color at point x, y in variable var | | POINT x, y, var || Stores the color at point x, y in variable var | ||
Line 72: | Line 80: | ||
| BANK b COPY start, len TO c, start || Copy len bytes from start in bank b, to start in bank c | | BANK b COPY start, len TO c, start || Copy len bytes from start in bank b, to start in bank c | ||
|- | |- | ||
− | | BANK b ERASE x? || | + | | BANK b ERASE x? || Erase all data in bank by overwriting with zeros (or x) |
|- | |- | ||
− | | BANK b ERASE | + | | BANK b ERASE off, len, value || Overwrite len bytes of data at off in bank b with value |
|- | |- | ||
| BANK b PEEK addr || Returns value at given address in bank b (address is from start of bank) | | BANK b PEEK addr || Returns value at given address in bank b (address is from start of bank) |
Revision as of 18:34, 11 October 2017
NextBASIC is an extended version of the classic Spectrum BASIC which adds extra commands supporting the new features of the NEXT.
? after parameters indicate they are optional. Square brackets [] indicate scope of optional or repeated areas (parenthesis are not used for this because they are part of the BASIC language). Bracketed sections in the effects only apply if the optional parameters are specified.
Basic Interaction Commands
Command | Effect |
---|---|
CLEAR x? | Resets variables, clears screen, resets plot cursor (and sets ramtop to X) |
LIST x? | Lists source code (from line x) |
LLIST x? | Lists source code to printer (from line x) |
NEW | Clear stored program |
RUN x? | CLEAR then run program (from line x) |
Control Flow
Command | Effect |
---|---|
DEF FN func(param[,param..])=expr | Creates a user defined function based on a parameterised expression |
FOR var = start TO end [STEP step]? | Starts FOR loop between given numeric values (with given step) |
IF c THEN statements.. | Run statements only if expression c is true |
GO TO x | Jump execution to line X |
GO SUB x | Jump execution to line X, storing current location on gosub stack |
NEXT var | Marks end of FOR loop regarding VAR |
RETURN | Restore execution location from gosub stack |
Graphics
Command | Effect |
---|---|
CIRCLE x,y,r | Draw circle centered at x, y with radius r |
x,y].. | Draw line from plot cursor to given coordinate |
INK c | Set ink (foreground) color for print and graphics commands. If ULANext is enabled, this can use any legal palette value. |
LAYER DIM left, top, right, bottom | Sets visible area for current layer |
PALETTE CLEAR | Resets all palettes and palette settings |
PALETTE DIM x | Sets number of color bits in the active palette; x must be 8 or 9 |
PALETTE FORMAT x | Enables ULANext colors with x inks. X must be a bitmask which masks off bits on the right of a value (1, 3, 7, 15, 31, 63, 127 or 255) |
PALETTE OVER x | Sets the global transparency color to x |
PAPER c | Set paper (background) color for print and graphics commands |
PLOT [modifier or x,y].. | Plot listed points as single pixels on current layer |
POINT x, y, var | Stores the color at point x, y in variable var |
POINT x, y | Returns the color at point x, y |
Modifiers for graphics commands can be inline INK, PAPER, INVERSE, and OVER. INVERSE 1 causes drawing to be in the paper color. OVER 1 causes pixels in the line to be flipped.
Memory and Port Access
Command | Effect |
---|---|
BANK 1346 FORMAT | Re-enable RAMdisk having been disabled by previous BANK 1346 USR |
BANK 1346 USR | Disable RAMdisk, allowing banks 1, 3, 4, and 6 to be used |
BANK b COPY TO c | Copy entire bank b to bank c |
BANK b COPY start, len TO c, start | Copy len bytes from start in bank b, to start in bank c |
BANK b ERASE x? | Erase all data in bank by overwriting with zeros (or x) |
BANK b ERASE off, len, value | Overwrite len bytes of data at off in bank b with value |
BANK b PEEK addr | Returns value at given address in bank b (address is from start of bank) |
BANK b POKE addr, value | Sets address in bank b to value (address is from start of bank) |
IN port | Returns current value at port |
PEEK addr | Returns value at given address |
POKE addr, value | Sets address to value |
OUT port, value | Sends value to port |