BASIC Accelerator Ver. 0.9.5.5 (2012.10.22)

Summary

BASICAcc is a Full BASIC to Object Pascal translator.
Translated programs shall be executed using FPC + Lazarus.
Numbers are double precision floating point, not decimal.
Numerical operation shall be considerably faster than Binary mode of Decimal BASIC.
This verision is applicable for Lazarus 0.9.30.4, 1.0 or 1.0.2.


Windows

Set up (Lazarus)

Download Lazarus1.0.2-fpc-2.6.0-win32.exe and install it into the folder that has no space character on its path name.
Lazarus Download (SourceForge)
Mirror
Mirror


Set up (BASIC Acc)

Download BASICAcc0955_1.zip from Decimal BASIC Open Source Project Download.
Note.
BASICAcc0955.zip, which was published at Oct.22, lacked some files. BASICAcc0955_1.zip is the revised edition.

BASICAcc should be extracted into any normal folder on which the user has write permission.
The name of the folder must not contain any space characters.
For example, Desktop is not suitable. USB flush drives shall be suitable.
When the system is updated by overwriting, the OUTPUT folder must be cleared.
Afterward, execute BASICAcc.exe, and set up two paths.
Click "Set Up" and select "Path".
"fpc path" is the path to the folder on which fpc.exe exists.
"Lazarus path" is the full path name of the folder "lazarus".

If you have installed win32 Lazarus + fpc 2.6.0 on C drive, the two paths are following.

C:\Lazarus\fpc\2.6.0\bin\i386-win32
C:\Lazarus

Note.
If you use 64 bit Windows, Lazarus 1.0.2 win64 also can be used.
Lazarus Win64
Select Setup - Path menu to set Target CPU to 64bit and set the paths.
Note that FPC win64 does not support 80 bit extended precision floating point, thus power operation or some transcendental functions may perform inaccurate.


How to uninstall BASICAcc
Remove the whole folder in which BASICAcc has been installed.


Linux (i386)

Set up (fpc and Lazarus)

Download and install fpc 2.6.0, fpc-src 2.6.0 and Lazarus 1.0.2 from
Lazarus Dwonload (SourceForge).
For DEB format, Lazarus i386 DEB

Set up (BASIC Acc)

Download BASICAcc0955.tar.gz from Decimal BASIC Open Source Project Download.
This system should be installed into the folder on which the user has write permission.
When the system is updated by overwriting, the OUTPUT folder must be cleared.

Troubleshootings


Can't find unit fileutil
When you see this error, modify Lazarus Path on the SetUp menu.
Folders such as components and units are put on the folder that the Lazarus Path directs.
That may as follows.
/usr/lib/lazarus/0.9.30.2/
or
/usr/share/lazarus/1.0



Linux (x86_64)

Set up (fpc and Lazarus)

Download and install fpc 2.6.0, fpc-src 2.6.0 and Lazarus 1.0.2 from
Lazarus Download (SourceForge).

For DEB format files, download from
Lazarus AMD64 DEB

Set up (BASIC Acc)

Download BASICAcc0955_linux64.tar.xz from Decimal BASIC Open Source Project Download.
This system should be installed into the folder on which the user has write permission.

Known faults Viewports are not managed and yield zero division errors.


Mac (Intel)

Set up (fpc and Lazarus)

Install the Apple Developer Tools (or Xcode tools).
See Installing Lazarus on MacOS X or Installation instructions for Mac OS X.
In case of Xcode 4.3.2 for Lion, optional Command Line Tools must be contained.


Download fpc 2.6.0 fpcsrc 2.6.0 and Lazarus 0.9.30.4 from Lazarus Download (SourceForge)
Note. Lazarus 1.0 and Lazarus 1.0.2 can be used, but using them are not recommended. On the environment except with 32 bit video card, ASK PIXEL statements may cause errors.

Set up (BASIC Acc)

Download BASICAcc0955_Mac.zip from Decimal BASIC Open Source Project Download.
This system should be installed into the folder on which the user has write permission.
And the folder must not contain a space character. Note that when you use a USB drive, if it has a name such as "NO NAME", it must be renamed.
Note. Overwriting update is undesirable. Old files should be erased before update.

Known Faults
SET DRAW MODE (NOTXOR, MASK, MERGE, XOR) do not work.
MOUSE POLL statement does not work properly.
Printers do not work good. And if no printer is registered on the OS, BASICAcc can not start.
Behaviors of some graphics statements are no good as in Decimal BASIC Mac(Intel).
As for Lazarus 1.0 to 1.0.8, ASK PIXEL statements may cause invalid pointer errors. cf. http://bugs.freepascal.org/view.php?id=23112


Specifications

Language Specifications are in accordance with the Graphics module, the modules module, and the individual character input module of ISO Full BASIC , while the following are not available.
OPTION ARITHMETIC DECIMAL

Restrictions

On the following cases, GOTO statements and IF-THEN-line_number statements can not be executed.
branches from inside to outside of when-body (i.e. inside of WHEN~USE)
branches from inside to outside of a DO block that contains a protection block that contains a EXIT DO.
branches from inside to outside of a FOR block that contains a protection block that contains a EXIT FOR.

If a routine (or the main program) has a when-in block that has an exception-handler containing a GOSUB~RETURN subroutine, the routine can not have a GOSUB~RETURN subroutine that is not contained in any protection block.

A program that has a module which contains an external procedure that has a local variable whose name coincides with a variable that is declared shared or public on that module can not be executed.

Parameters of PROGRAM or CHAIN statements should be simple variables (Arrays not allowed).

Maximum length declaration for string variables is ignored. (no cut off done.)

Incompatibilities with Decimal BASIC

Character Encoding

The character encoding is UTF-8.
This is a problem when non-ASCII characters such as © , µ , ° , ± , Ä or Æ are used.
ORD-functions and CHR$-functions are defined under Unicode.
File I/O assumes the character encoding is UTF-8.
Executing a line like
SET #n: CODING "SYSTEM"
just after the execution of the OPEN-statement enables files of system default encoding to be read or written.
Even in such a case, the internal encoding remains to be UTF-8.
PRINT USING-statements and USING$-functions need the formatting characters as many as the byte length of the string.

If you want to manipulate byte files, you can change the internal character encoding to byte encoding by adding a line
OPTION CHARACTER BYTE
into each program unit, or change the Compatibility setting in the Option menu.
In such a case, no ANSI encoded non-ASCII characters can be displayed on the screen.

UTF-8 encoding slows some string operations such as s$(m:n).
If you use only ASCII 7-bit characters, consider to change the Compatibility setting in the Option menu.

Program Encoding

Programs shall be encoded to the system default encoding on saving and decoded on loading.
That is, program files have compatibility with Decimal BASIC.
If you want programs to be saved and loaded remaining the character encoding UTF-8, change the Editor Option setting in the Option menu.

CHAIN statements

A CHAIN statement launches a file of extension ".BAS" with file association. The destination programs shall not be compiled.
No CHAIN or EXECUTE statement can have array parameters.

BREAK

Any BREAK statement will do, but it only breaks the program.

GOSUB

When GOSUB statements are used, each line must has a line number.

Bugs Decimal BASIC has

Decimal BASIC has a fault that an internal procedure of the mainprogram can be invoked from an external procedure, but BASICAcc does not allow such a program.


About System

The executable file is generated as 'NoName.exe' in the 'output' folder. This can be renamed and used for the destination of a CHAIN statement.


Copyright

This software is free software published under GPL.

If you noticed any bugs, report at
Decimal BASIC Open Source Project Open Discussion Forum

Copyright 2012 SHIRAISHI Kazuo


Decimal BASIC home page