LOADOBJ PHONE.GEO
LOADOBJ PHONE
LOADOBJ phone etc etc
Dispensed with the B9KDATA dir. Objects now get installed into PRIVDATA (not normally visible) and LIBDIR is obsolete. Everything should be automatic. You can now safely put the LOADOBJs in AUTOEXEC.B9K (dont forget the quotes eg LOADOBJ "phone").
Added external objects REMOTE and CONTACT, and brought USER and PHONE up to V2 object format. There a _many_ internal changes in Bas9k and the objects to support the V2 format.
Numerous small changes to improve stability and speed, too numerous to mention infact.
1.01 (Ozzy Pete)
Improved Object type and error checking and DEBUG.OBJECT output. Type 2 objects can now trigger RT errors in Bas9k.
Fixed a problem with Property Let type object assignments.
Trying to GOTO/GOSUB a non-existent label now gives an error.
Fixed a unlocked pointer causing compile to not find labels sometimes.
Added conditionals to create a non-debug version (10k smaller). This has also made dgroup a bit smaller which always seems to aid stability.
1.0 (Hotter than Habanero) First public release.
FIRST STEPS
To make a start, press "Edit" and enter your text:
10 PRINT "hello"
GOTO 10
leave Edit mode press "Close" / "Schließen" (german)
Enter SAVE firstprog (firstprog.b9k will be saved)
Enter RUN ... now be happy... and Press Break-button.
LOAD HELLO.B9K
Bas9k will load the program you just created. Note that all this is not case sensitive. Now type
RUN
Guess what happens?
Thats all there is to it. Just like old times, but no dodgy Microdrives. Or thermal printers for that matter.
Note: there is currently a bug that causes the b9k file not to load properly the second time you edit it. Just edit it a third time and it will be fine. Depending on the priorities it may be while before I fix it as I dont fully understand the text objects VM file yet.
Here are some as they come to mind tips for using Bas9k:
Bas9k source files are not case sensitive.
- Labels must be Numeric (in version before 1.1.2). They are like Line Numbers, but you only need them if you are going to use them ie they are the subject of a GOTO or GOSUB. There is a 100 label limit currently. Alphabetic labels (followed by a colon : ) is implemetet in version 1.1.2.
- Variables must be DIMed before use. However, the DEFLONG command will predim A to Z as long, like Basics of the past.
- Bas9k tries to do datatype conversions for you, ie moving a DOUBLE variable to a STRING variable will not give an error. The reverse is not true however. This applies to IF comparisons.
- Everywhere and expression is called for (<expr>) anything that can evaluate to an expression of the correct type is allowed.
- Source files cannot be larger than 30k. This restriction will be removed soon.
- For debugging, put the BREAK command in the source where you have a problem, and use DEBUG DUMPVAR ALL or DEBUG DUMPVAR varName to inspect variables.
- NEXT does not take a variable parameter. It simply applies to the preceding FOR.
- You can use single quotes to specify character values like in VB, eg IF INKEY() = a THEN &ldots;..
- You cannot edit source files in the immediate window, but you can execute any commands. This is useful for testing out syntax eg PRINT USER(name)
- The output of graphics commands are not persistent ie if they get overwritten by another app they are lost you will have to redraw them.
- Arrays can have only one dimension ie if you need a 2 dimensional array (space invaders??) you will have to do the maths in code. Not difficult.
- Only one command per line is allowed, ie you cannot separate statements with a colon.
- The current Text and Graphics positions are maintained separately. All screenmodes have graphics only the text font/size changes.
- Graphic screen for all video modes is 200x500 pixels wide.
SAMPLE:
screenmode 2
print "Hello World"
rechtangle (0,0) (499, 199)
rechtangle (10,10) (489, 189)
LOOK AT THE SAMPLES. I can't stress this enough because I do not have time to do in-depth docs. The Samples show how to use the various commands and good ways to do things.