With Virtual Basic Editor (see pict above) and Virtual Basic rules we can improve the way to code Applesoft Basic.
Virtual Basic is copyleft !
Copyright © 2011-2016, Andres Lozano aka Loz
Copyleft: This work is free, you can redistribute it and / or modify it under the terms of the Free Art License. You can find a copy of this license on the site Copyleft Attitude well as http://artlibre.org/licence/lal/en on other sites.
Virtual Basic is Applesoft basic, all commands and operators are available, only the way to write your code change.
In Virtual Basic you don't need to number lines, the links between calls (goto, gosub) and code parts aren't numbered, indeed you use names @xxxx in order to go to subscript and £xxxx in order to indicate the place of the subscript. So you can add, delete and move parts of your code freely. When you convert Virtual Basic with baz-to-bas.py (python) it will numbers lines for you.
Virtual Basic | Applesoft Basic |
£test if i > 10 then gosub @alert i= i + 1:goto @test £alert print i;" is greater than 10" return end |
10 REM - APPLESOFT - BASIC 20 REM->TEST 30 IF I > 10 THEN GOSUB 60 40 I= I + 1:GOTO 30 50 REM->ALERT 60 PRINT I;" I IS GREATER THAN 10" 70 RETURN 80 END |
And Virtual Basic allows you:
to add comments everywhere in your code using braces {xxxx}
bp%= bp%{mainLoop} + 1
to indent code
for b1=0 to 23 for b2=0 to 59 for b3=0 to 59 home h$= str$(b1) if b1 < 10 then h$= "0"+h$ m$= str$(b2) if b2 < 10 then m$= "0"+m$ s$= str$(b3) if b3 < 10 then s$= "0"+s$ print "time is ";h$;":";m$;":";s$ for b4=0 to 500 next:next:next:next
to import Virtual Basic scripts already written
===insert path/head.baz===
to ignore lines using # ignored code
# hidden code
or using
[ ignore multiple lines ]
to have 2 rem, rem * comment level to save space
rem mostly preserved rem * often preserved
to have low case / up case in your scripts, up case is automatically converted
to split code into sections (divisions)
section main program £begin rem * my basic program r{loops}= 100 for i= 1 to r print i{increase};" hello world" next if r < 99 goto @begin print "stop" closesection end
Virtual Basic allows you to compact the code and save memory space.
Virtual Basic | Applesoft Basic compressed |
section main program £begin rem maximum = 100 mx = 100 rem reset screen to black home rem first loop for i{increase}= 1 to mx{maximum} rem cursor position vtab(12):htab(1) print "loops -> ";i; next rem second loop to make a circle rem switch on graphic screen hgr rem circle = 2 * pi ci{circonference}= 2 * 3.141516 rem number of points s{step}= ci / 12 rem center of max width xo= 279 / 2 rem center of max height yo= 159 / 2 rem radius of the circle r= 50 for i{increase}= 0 to ci{circonference} + 0.1 step s{step} rem multiply radius by sin(increase) v1= r * sin(i) rem add to center x= xo + v1 rem multiply radius by cos(increase) v2= r * cos(i) rem add to center y= yo + v2 rem hplot draw a point at x,y rem first point i = 0 if i = 0 then hplot x,y rem next points if i > 0 then hplot to x,y next rem waiting for a keystroke get s$ text:home closesection end |
10REM-VIRTUALBASIC.ORG-ONLINE-TOOL.BAS-07/03/2011-22h23 40MX=100 60HOME 80FORI=1TOMX 100VTAB(12):HTAB(1) 110?"LOOPS -> ";I; 120NEXT 150HGR 170CI=2*3.141516 190S=CI/12 210XO=279/2 230YO=159/2 250R=50 260FORI=0TOCI+0.1STEPS 280V1=R*SIN(I) 300X=XO+V1 320V2=R*COS(I) 340Y=YO+V2 370IFI=0THENHPLOTX,Y 390IFI>0THENHPLOTTOX,Y 400NEXT 420GETS$ 430TEXT:HOME 440END |
With Virtual Basic to write Applesoft Basic scripts become easy and very productive.
,