Vision BASIC
This article is very short and not very detailed. Please help to improve it. |
Vision BASIC | ||
---|---|---|
Developer | Dennis Osborn | |
Company | ||
Publisher | ||
Release | 2022 | |
Licence | Full version | |
Platform | C64 | |
Genre | BASIC Expansion | |
Operation | ||
Media | ||
Language(s) | ||
Information | Several versions Price: 49 U$ / 59 U$ |
Vision BASIC was created by American programmer Dennis Osborn and released in 2022 for the Commodore 64. This development tool provides over 100 new BASIC commands for bitmap graphics, sprites, characters, sound, interrupts, and more. The programming environment includes features such as a memory manager, an improved program editor, simplified disk commands, user-created commands, and complete compatibility with emulators such as VICE and THEC64. All Vision BASIC programs are compiled into extremely fast standalone machine language for execution, and assembly language can be mixed seamlessly with BASIC code to give an even further speed boost.
Technical Details[edit | edit source]
Requirements:[1]
- A C64 or C128 or suitable C64 emulation (like VICE).
- An extra 256K of RAM in the form of an REU or a SuperCPU with added RAM. However, this extra RAM is for the development environment. Compiled programs will run on a standard C64 without the extra RAM unless the program actually requires an REU.
- A peripheral that can read the provided media.
- A decent familiarity with C64 BASIC and the C64 itself.
Recommended:
- At least 512K expanded RAM.
- A Turbo Chameleon 64, a SuperCPU, 1541 Ultimate or Ultimate 64 (to improve compilation speed).
Versions[edit | edit source]
The following versions of Vision BASIC exist:
- Vision BASIC 1.0a - Launch Package (59 U$, with disk)
- Vision BASIC 1.0b - Basic Package (59 U$, with disk)
- Vision BASIC 1.0d - Basic Package Digital Only (49 U$)
- Vision BASIC 1.0e - Manual + Digital (49 U$, included shipping)
Starting Screen[edit | edit source]
If you use Vision BASIC with a REU the starting screen shows that in green background and lighter green border and text color:
VISION BASIC 1.0 COPYRIGHT 2017 BY DENNIS M. OSBORN 96K FREE FORE SOURCE CODE XRAM: REU - 6 OF 256 BANKS USED MODE: FULL READY.
New Commands[edit | edit source]
These BASIC commands are new:[2]
- ADD
- COMP
- COMPARE
- CLOCK
- CLS [poke-code [, color]] - clear the screen. If you use poke-code a char as value from 0 to 255 is printing on the whole screen (optional space; 32), also by using POKE; also can use a color for the char from 0 until 15 (optional no).
- COLORS
- DEC
- DECIMAL
- DO
- ELSE
- FILE
- RANDOM
- INCE
- TAG <label> - define a label
- [assembler code]
These BASIC command are enhanced:
- CHR$ (more parameters) - like
CHRS$(96,20)
- GOSUB - also can used tags or labels - like
GOSUB DEMO
- GOTO - also can used tags or labels - like
GOTO MORE
- LET
- IF-THEN-ELSE (can also split other more columns!)
- PEEK (more parameters) - like
PEEK(53280,2)
- POKE (more parameters) - like
POKE 1065,8,5,12,12,15," C64-WIKI"
- SAVE "file",<device_number>,<device_number2|address1>,<address2> - for saving machine language codes or memory areas like
SAVE "C64WIKI-DATAS",8,49125,50000
Using Machine Code[edit | edit source]
Vision BASIC allows to mix Vision BASIC code with Machine Language.
- If a machine language code is using together with BASIC lines, brackets are need for the mnemonics:
[ ...assembler... ]
100 REM *** MACHINE CODE *** 200 [JMP C000]
- Important is only the open bracket [ !
130 [LDA#7: STA646 :PRINT"YELLOW TEXT!"
Also you can use the integrated machine language monitor:
START address
- the start address of a machine language program. It should be used as first command of the machine language program and only once time.
- This reserved commands can be used only in the machine monitor as command (not as variable or tag name!): ADD< SUBTRACT, BYTES, COMPARE, DEBUG, DOUBLE, GOTO, GOSUB, HALF, HALT, LOCAL, GLOBAL, MODULE, PROC, RASTER, RETURN, REM, RESUME, START, STARTINT, STRINGS, TAG, VARIABLES, VERSION.
- Tags and variables can replaced values and addresses
- ; - a semicolon starts a comment in machine language mode.
Important Tips[edit | edit source]
Difference to BASIC V2.0 are:
- Loops with FOR-TO-STEP-NEXT and DO will only work with integer variables.
- Strings and string variables cannot be returned from Vision BASIC subroutines.
- By using the new sound commands
FREQ
,PULSE
,ADSR
andWAVE
you must first set a currentVOICE
before calling them. - The maximal value for variables in Vision BASIC is: ±16.777.215
- Parentheses are not allowed in mathematical expressions like
A = 1+ ((2*5) *9)
. If you use this, you must write it like:A = 2*5: A = A*9 = A = A+1
- All mathematical expressions are strictly evaluated from left to right!
- The file commands are optimize for the device floppy disc (optional 8, or 9 until 12)
Not available BASIC commands[edit | edit source]
BASIC commands that aren't available in Vision BASIC:
Example[edit | edit source]
A little example of a Vision BASIC program:[3]
0 clock0 1 clr 2 random 5 dim a(4),b(4) 6 decimal sr, ti 10 colors 1,0,0:cls 20 a(0)=-2:a(1)=-80:a(2)=2:a(3)=80 22 b(0)=-1:b(1)=-40:b(2)=1:b(3)=40 30 sc=1105 31 sr=rnd*10:a=sr*80+sc 33 sr=rnd*10:a=sr*2+a 40 [lda #160:ldx #0] 41 [sta 1064,x:sta1304,x:sta1544,x:sta1784,x:inx:cpx#240:bne41:lda#32:ldx#0] 42 [sta1984,x:inx:cpx#40:bne42] 43 fori=0to23:p=i*40+1063:pokep,32:next 100 poke a,4 110 j=rnd(2)and3:let x=j 112 compare s,sm:[bcc120]:let sm=s,fi=b 120 pb=peek(a,a(j)) 122 compare pb,160:[bne130 123 aa=b(j):add a=a+aa:pokea,32 125 : :add a=a+aa:pokea,j 127 let b=a:incs 129 goto110 130 inc j:j=j and3 131 compare j,x:[bne120 140 j=peek(a) 141 poke a,32 142 dec s 143 comp j,4:[bcs150 144 a=a-a(j):goto110 150 pokea,1:pokefi,2 160 ti=clock/60:printti
Links[edit | edit source]
- Vision BASIC - Official Website with demos and video tutorials
- All commands of Vision BASIC in "Vision BASIC Cheat Sheet" by DNSGeek at cheatography.com
- Forum64.de: "Neuer C64 BASIC-Compiler "Vision BASIC" Kuriosum oder echte Chance?"