SuperBASIC: Difference between revisions

From F256 Foenix
Jump to navigationJump to search
No edit summary
(Add info about control characters)
Line 54: Line 54:
===== Behaviour of load and bload =====
===== Behaviour of load and bload =====
The <code>bload</code> statement does not print <code>Completed</code> when loading is successfull whereas <code>load</code> does.
The <code>bload</code> statement does not print <code>Completed</code> when loading is successfull whereas <code>load</code> does.
===== Control characters for cursor and colour control =====
In BASIC the following character codes can be used with <code>print</code> to control the cursor position and colours on the screen.
{| class="wikitable"
!Code
!Effect
|-
|chr$(12)
|Clear screen and set cursor to upper left corner
|-
|chr$(16)
|Cursor up
|-
|chr$(14)
|Cursor down
|-
|chr$(2)
|Cursor left
|-
|chr$(6)
|Cursor right
|-
|chr$(1)
|Set cursor to leftmost position in current line
|-
|chr$(5)
|Set cursor to righmost position in current line
|-
|chr$(128) - chr$(143)
|Set foreground color. Code 128 is black 143 is white. The rest follows the sequence given above
|-
|chr$(144) - chr$(159)
|Set background color. Code 144 is black 159 is white. The rest follows the sequence given above
|}

Revision as of 02:59, 30 March 2024

SuperBASIC is inspired by BBC BASIC but offers quite a bit more.

An informal list of tips, "gotchas":

IF, THEN, ELSE
Source of this tip: Ernesto
  • A regular if then condition can't contain an else statement, as in this example:

10 if a=0 then x=10

  • If you need to do an if then else structure, you actually have to do an if else endif structure like in the following example, skipping the then statement.

10 if a=0
20 x=1
30 else
40 x=2
50 endif

  • If you do it in one line it needs to have some colons added, making it look weird like this:

10 if a=0:x=1:else:x=2:endif

  • if you dare to omit the endif thinking that the if statement won't need it, (mmm.., everything is in one line, so no need, right?) -Nope...all hell breaks loose!-

10 if a=0:x=1:else:x=2: REM "<-- Error, omited the endif"

  • be careful not to add an extra then statement by mistake to an if else endif structure, if you do -All hell breaks loose again!!-

10 if a=0 then  : rem "<-- Error, THEN is not needed!!!"
20 x=1
30 else
40 x=2
50 endif

Debugging hint: If you encounter an error like "open structure" or "endproc without a proc": do not trust the line number that you are given. The root of the problem is probably in a structure earlier on in the code.

Using procedures

The proc keyword is only valid if it appears after an end statement.

Keyboard shortcuts
Key combination Effect
ctrl-c or RUN STOP on the F256K Stops a listing or a running program
ctrl-l Clears the screen
ctrl-a or CLR/HOME on the F256K Move cursor to the first character in the current line
ctrl-e Move cursor to the last character in the current line
Behaviour of load and bload

The bload statement does not print Completed when loading is successfull whereas load does.

Control characters for cursor and colour control

In BASIC the following character codes can be used with print to control the cursor position and colours on the screen.

Code Effect
chr$(12) Clear screen and set cursor to upper left corner
chr$(16) Cursor up
chr$(14) Cursor down
chr$(2) Cursor left
chr$(6) Cursor right
chr$(1) Set cursor to leftmost position in current line
chr$(5) Set cursor to righmost position in current line
chr$(128) - chr$(143) Set foreground color. Code 128 is black 143 is white. The rest follows the sequence given above
chr$(144) - chr$(159) Set background color. Code 144 is black 159 is white. The rest follows the sequence given above