ダウンロードリスト

Sponsored link

プロジェクト概要

JIS Full BASIC規格のBASIC処理系 (仮称)十進BASICのマルチプラットフォーム化および国際化。

システム要件

システム要件が設定されていません

リリース時刻: 2018-09-14 11:36
BASICAcc2 (formerly Paract BASIC) 2.1.1.3 (4 個のファイル 非表示)

リリースノート

BASIC Accelerator Ver. 2.1.1.3 (2018.09.14)

Summary

BASICAcc 2 is a Full BASIC to Object Pascal translator.
Translated programs shall be executed using FPC + Lazarus.
This verision is applicable for Lazarus 1.6.4 ~ 1.8.4


Windows

Set up (Lazarus)

Download Lazarus 1.8.4 (FPC3.0.4) and install it into the folder that has no space character on its path name.
Lazarus Download (SourceForge)
Mirror
Mirror

Set up (BASICAcc2)

Download BASICAcc2113.zip from Decimal BASIC Open Source Project Download
BASICAcc2 should be extracted into a regular 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 BASICAcc2.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 3.0.4 on C drive, the two paths must be rewritten as following.

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

Note.
If you use 64 bit Windows, Lazarus win64 also can be used.
Lazarus Win64
Select Setup - Path menu to set Target CPU to 64bit and set the paths.
When you use lazarus-1.6.4-fpc-3.0.2-win64.exe, for instance, the fpc path is like as follows.
C:\lazarus\fpc\3.0.2\bin\x86_64-win64
However when cros-x86_64 add-on is installed to 32 bit Lazarus, the fpc path is same as the path to 32 bit fpc.

Note that FPC win64 does not support 80 bit extended precision floating point, thus some may perform inaccurate, that is, 64 bit mode on Windows is fast but rough.


Linux (i386)

Set up (fpc and Lazarus)

Download and install fpc 3.0.4, fpc-src 3.0.4 and Lazarus 1.8.4 from
Lazarus i386 RPM,
Lazarus i386 DEB.

Set up (BASICAcc2)

Download BASICAcc2113.tar.gz from Decimal BASIC Open Source Project Download.
This system must 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.4/
or
/usr/share/lazarus/1.0



Linux (x86_64)

Set up (fpc and Lazarus)

Download and install fpc 3.0.4, fpc-src 3.0.4 and Lazarus 1.8.4 from
Lazarus x86_64 RPM,
Lazarus AMD64 DEB.

Set up (BASICAcc2)

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


MAC(Intel) 

Set up(Xcode tools)

Install the Apple Developer Tools (or Xcode tools).
In case of OS 10. 7 or later, optional Command Line Tools must be contained.
See Installing Lazarus on MacOS X.

Set up(fpc and Lazarus)

Install FPC 3.0.4 and Lazarus 1.8.4 according to Installing Lazarus on MacOS X,
downloading from Lazarus Download

Set up (BASIC Acc)

Download BASICAcc2113.dmg 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 1. Overwriting update is undesirable. Old files must be erased before update.
Note 2. On OS 10.9, for the first time any program is compiled, click to execute NoName.app in the OUTPUT folder with Ctrl-key pressed.

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).


BASICAcc 2.0.0.1 or later can generate 64bit code, when "64bit" is set on Setup-Path menu.
For preparatory, launch Lazarus and follow the sequence as follows.
(1) Select "Project" and then "New Project", and select "Application".
(2) Select "Tools"-"Options"-"Environment"-"files", rewrite "Compiler Executable to "usr/local/bin/ppcx64".
(3) Select "Project" and then "Project Option", click "Config and Target",click "Select another LCL widgetset (macro LCLWidgetType)", click "Set " LCLWidgetType"" and then click "Value "cocoa"".
(4) Select "Run" menu and then click "Build".
(5) Select "Package" menu, select "Open Loaded packages" and then compile the followngs.
  SynEdit
  Printer4Lazarus
(6) Quit Lazarus.

 

Specifications

Language Specifications are in accordance with the Graphics module, the modules module, and the individual character input module of ISO Full BASIC , while statements related to PROCESS and TIMEOUT in SEIZE statments are not available.

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.

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.)

Known Faults

EXTYPE,RETRY and CONTINUE do not work properly for exceptions raised in exception handlers.

DRAW MODE NOTXOR (MASK, MERGE, XOR),which are Decimal BASIC original enhancement, do not work properly.
On Mac, they are neglected. On Windows and Linux, then won't work until a PLOT LINES is executed.

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 setting of "Unit of string manipulation" to "byte" in the Option Compatibility menu.
In such a case, no ANSI encoded non-ASCII characters can be displayed on the screen.

UTF-8 encoding slows some string manipulation such as s$(m:n).
If you use only ASCII 7-bit characters, consider to change the "Unit of string manipulation" to "byte" in the Option Compatibility 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 which 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.

miscellaneous

The decimal 1000 digit mode and the rational arithmetic mode, which Decimal BASIC has, are also not avaialable.

The Microsoft BASIC compatible mode is not available.
Also Metafiles, OLE, ActiveX and CallBack functions are not available.


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 2018 SHIRAISHI Kazuo

BASIC Accelerator Ver. 2.1.1.3   (2018.09.14)

概要

Full BASICのプログラムをObject Pascalのプログラムに変換し,FPC + Lazarusを利用して高速に実行します。
Lazarus 1.6.4~1.8.4 に対応します。


Windows

Set up(fpc + Lazarus)

32ビット版Lazarus1.8.4をダウンロードしてインストールしてください。
インストール先は,パス名に空白や日本語文字を含まない所を選択してください。
Lazarus Download (SourceForge)
Mirror
Mirror

Set up(BASICAcc)

BASICAcc2113.zipをダウンロードし,ユーザーの書込み権限のあるところに展開してください。
ただし,パス名に空白や日本語文字を含むところは避けてください。 (たとえば,デスクトップやマイドキュメントは不可。USBメモリは可。)
既存のBASICAccフォルダに上書きでアップデートしたときは,一旦,OUTPUTフォルダを空にしてください。

Lazarusのインストール時にインストール先を変更したときは,BASICAcc2.exeの起動後, Set upメニューのpathの設定を書き換えてください。
fpc path は,fpc.exe が存在するフォルダです。
Lazarus path は,lazarusインストール先のフォルダを指定してください。
なお,win32 Lazarus + fpc 3.0.4 をCドライブにインストールした場合,それら2つのPathは

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

です。

Note.
Lazarus 1.6.4でも使えますが,SetUpメニューのPathでFPC pathのバージョン番号の部分を正しく書き換えてください (3.0.4→3.0.2)。

Note.
内部文字コード,ファイル入出力ともにUTF-8です。shift-JISファイルを使用する場合は,OPEN文に続けて
SET #n CODING "SYSTEM"
を実行してください。
プログラムファイルの入出力はshift-JISですが,Optionメニューの"Editor Option"でプログラムファイル入出力をUTF-8に変えることができます。
プログラム中にユニコード文字を書くときは,Editor Optionを変更してください。

Windowsが64ビットの場合,64ビット版Lazarusを使うこともできます。
Lazarus Win64
SetupメニューのPathで「64bit」を選択し,FPC pathの末尾が \x86_64-win64 であることに注意して FPC PathとLazarus Pathを設定してください。
これらのpathは32bitと独立しています。随時,切り替えて使用することができます。
ただし,lazarus64ビット版でなく,32ビット版Lazarusにadd onのcross-x86-64をインストールしたとき,FPC pathは32ビット版FPCのところです。
Note
Win64版のFPCでは拡張精度浮動小数点演算が利用できないので,計算結果に無視できない誤差を生じる可能性があります。


Linux (32ビット)

Set up(fpc, Lazarus)

i686版 fpc 3.0.4 , fpc-src 3.0.4 , Lazarus 1.8.4 をダウンロードしインストールしてください。
Lazarus Download (SourceForge) (rpm)
Lazarus Download (SourceForge) (deb)


Set up(BASIC Acc)

BASICAcc2113.tar.gzをダウンロードし,ユーザーの書込み権限のあるフォルダに展開してください。
既存のBASICAccフォルダに上書きでアップデートしたときは,一旦,OUTPUTフォルダを空にしてください。
basicAccを起動して,「failed to set Lazarus Path」と表示されたときは,SetUpメニューのPathでLazarusがインストールされているディレクトリを指定してください。Lazarus Pathで指定するディレクトリは,lazarus本体があって,components, unitsなどのサブディレクトリを含むディレクトリです。

トラブル対策

Can't find unit fileutil のエラーになるとき。
lazarus pathを設定し直してください。
Lazarus pathで指定するフォルダにはcomponentsやunitsなどのフォルダが置かれています。
/usr/lib/lazarus/0.9.30.4/
のようにlazarusフォルダ内のバージョン番号名のフォルダになっている場合や,
/usr/share/lazarus/1.0
などのようになっていることがあります。

NoName.errが見つからないという趣旨のエラーになるとき。
fpcが正しくインストールされていません。/etc/fpc.cfgが存在することを確認してください。
--scriptsを指定せずにalienを用いてrpmパッケージをdeb形式に変換してfpcをインストールすると,この問題を引き起こします。

その他,プログラムの実行結果が現れないとき。
runメニューからcodeを選択し,Pascalコードが表示されたら,そのウィンドウでrunを選ぶとfpcが出すエラーが読めると思います。

既知の不具合

画像の保存ダイアログで保存形式を変えても拡張子が変化せず,手動で書き換える必要がある。


Linux (64ビット)

Set up(fpc, Lazarus)

x86_64版 fpc 3.0.4, fpc-src 3.0.4 , Lazarus 1.8.4 をダウンロードしてインストールしてください。
Lazarus Download (SourceForge) (rpm)
Lazarus Download (SourceForge) (deb)


Set up(BASIC Acc)

BASICAcc2113_Linux64.tar.xzをダウンロードし,ユーザーの書込み権限のあるフォルダに展開してください。


MAC(Intel) 

Set up(Xcode tools)

Apple Developer Tools (Xcode tools) をインストールしてください。
OS 10.7以降の場合,Command Line Tools の追加インストールが必要です。
参照 Installing Lazarus on MacOS X.
参考 Installing Xcode for Mac OS X

Set up(fpc, Lazarus)

Installing Lazarus on MacOS Xを参照し,
fpc 3.0.4 と Lazarus 1.8.4 をダウンロードしインストールしてください。
Lazarus Download

Set up(BASIC Acc)

BASICAcc2113.dmgをダウンロードし,
ユーザーの書込み権限のあるフォルダに展開してください。
パス名に空白を含むと正しく動作しません。USBメモリを使うときは,ドライブ名を空白を含まないものに変えてください。
Note.
 上書きアップデートを行うと不具合を生じることがあります。また,Lazarusのupdateを行った場合も再インストールしてください。

既知の不具合
MOUSE POLL文が正しく動作しない。
SET DRAW MODE (NOTXOR, MASK, MERGE, XOR)は機能しない。
画像の保存ダイアログで保存形式を変えても拡張子が変化せず,手動で書き換える必要がある。
プリンタは正しく動作しない。

トラブルシューティング
1.初めて実行するとき
(1) Unabe to create file "/private/var/folders/0b ……  のエラーが出て実行できない。
 BASICAcc2内のアイコンで表示されるBASICAcc2をフォルダの外にドラッグしてから実行してください。
 一度,正常に動作すれば,元のフォルダに戻しても大丈夫なようです。
 BASICAcc2内のアイコンで表示されるBASICAcc2のみをアプリケーションフォルダにコピーしてもよいようです(フォルダごとのコピーでは駄目)。
 詳細は,"App Translocation"を検索して調べてください。

(2) ReportFormに何も表示されず,プログラムも実行されない。
 ターミナルでsudo xcrun ccを実行し,最後にagreeを入力する。
 参照 Agreeing to the Xcode/iOS license... のエラーがでた時の対処法
(3) ReportFormに,
 PPU Source :synedit.pp not found.
 が出る。
 Lazarus IDEを起動して,パッケージメニューから,「読み込まれているパッケージを開く」を選択し,
 以下の各パッケージのコンパイルを実行する。
 SynEdit
 Printer4Lazarus
(4)「"NoName"は、開発元が未確認のため開けません。」
Finderで,BASICAcc/outputフォルダ内のNoName.appをCtrlキーを押しながらクリックして表示されるコンテキストメニューから「開く」を選ぶ。
上記(1)~(4)は,一度実行すれば,次回からは問題なく動作します。
Note. Mac版BASICAccでは,次のプログラムの実行前に必ずNoNameを終了させてください。
2.プログラムの実行を途中で打ち切りたい
Mac版はBASICAcc2の側から中止できないので,画面左上のアップルメニューで「強制終了」してください。

BASICAcc 2.0.0.1(以降)は,Setup-Path で64ビットを選ぶと64ビットコードを生成します。
準備として,Lazarusを起動し以下の操作を順に実行してください。
(1) 「プロジェクト」メニューから「新規プロジェクト」を選択して「アプリケーション」を選ぶ。
(2) 「ツール」-「オプション」-「環境」-「ファイル」を選択して,「Compiler executable」を「usr/local/bin/ppcx64」に書き換え。
(3) 「プロジェクト」メニューから「プロジェクトオプション」を選択して「設定と対象」をクリック。
  「Select Anohter Widgetset (Macro LclWidgetType)」をクリックし,さらに「Set "LCLWidgetType"」をクリックして,「値 "cocoa"」を選ぶ。
(4) 「実行」メニューで「構築」を実行。
(5) 「パッケージ」メニューで「読み込まれているパッケージを開く」を選択して,以下の各パッケージのコンパイルを実行する。
  SynEdit
  Printer4Lazarus
(6) Lazarusを終了する。


言語仕様

言語仕様は,JIS Full BASIC (図形機能単位+モジュール+単文字入力)に準拠します。
実時間機能のうち,PROCESS関連は未実装で,また,SEIZE文のTIMEOUT句は書けません。
十進演算も可能ですが,Full BASICの規定と異なる部分があるかも知れません。

規格との相違

OPTION ARITHMETIC文を省いた場合には,ARITHMETIC NATIVEが指定されたものと解釈します。

次の場合,行番号分岐(GOTO文,IF ・・・ THEN 行番号) は実行できません。

WHEN本体内から保護区の外への分岐
保護区を含み,その保護区内にEXIT DO文を持つDO区の内から外への分岐(fpcコンパイラのエラーになります)
保護区を含み,その保護区内にEXIT FOR文を持つFOR区の内から外への分岐(fpcコンパイラのエラーになります)

WHEN-IN区に属する例外処理区がGOSUB~RETURNを持つと,いずれの保護区にも属さないGOSUB~RETURNを書くことができません。(fpcコンパイラのエラーになります)

PROGRAM文,CHAIN文の引数は単純変数に限ります(配列不可)。

文字列変数の最大長指定を無視します(切り詰めを行わない)。

その他,(仮称)十進BASICのJIS非互換項目は, ほぼそのまま本システムの非互換項目になります。

既知の不具合

例外処理区で発生した例外に対してEXTYPE関数,RETRY文,CONTINUE文は正しく機能しません。

CHARACTER INPUT文(画面からの入力)は日本語入力に対応しません。

十進BASIC独自拡張のDRAW MODE NOTXOR (MASK, MERGE, XOR) は,正常に機能しないことがあります。
 (Macでは,無視されます。Windows,Linuxでは,PLOT LINES文を実行しないと機能しません。)

(仮称)十進BASIC(Windows版)との非互換

識別名に使える文字は英数字のみです。

内部の文字コードはUTF-8です。ORD関数,CHR$関数はユニコードで定義されます。書式指定は漢字1文字に対し # 3文字を必要とします。
ファイル入出力もUTF-8ですが,OPEN文実行後,
SET #n: CODING "SYSTEM"
を実行すると,ファイル入出力をShift-JISで行います(日本語Windowsの場合)。

プログラムの保存形式の初期設定はshift-JISになっていますが,Optionメニューの「Editor Option」でUTF-8に変更することができます。

文字列処理の単位の初期値は,Option メニューのCompatibilityで設定します。

CHAIN文に 拡張子が".BAS"のファイルを指定すると関連付けで起動します。

EXECUTE文の引数に配列を指定することはできません。

BREAK文は動作しますが,プログラムを中断するだけの機能しか持ちません。

GOSUB文を含むプログラムは行番号が必須です。

(仮称)十進BASICでは主プログラムの外部から主プログラムの内部手続きを呼び出すプログラムが実行できてしまいますが,その種のプログラムは実行できません。

独自拡張命令 SET BITMAP SIZEの挙動は Windows版十進BASICと少し異なります(拡張部分の色が異なる)。

画像の保存形式にGIFを選ぶことができません(読み込みは可)。

その他,DelphiとLazarusの非互換のために動作が異なるところがあります。

未対応の機能

十進BASIC独自拡張の10進1000桁,有理数の演算には対応しません。

Microsoft BASIC互換モードには対応しません。
また,Windows版(仮称)十進BASICが対応するメタファイル,OLE,ActiveX,CallBack,TextWindow にも未対応です。


システム詳細

実行ファイルはoutputフォルダに NoName.exe として生成されます。CHAIN文の連鎖先として用いたいときには,適宜,名称を変更してください。

生成したPascalプログラムは,outputフォルダにBASICunit.pas という名称で保存されます。
runメニューのcodeを選択して表示されるコードビューから書き換えて実行させることができます。
BASICの識別名は,数値型の場合は直前に _ を,文字列型の場合は 末尾の $ を除去して直前に s_ を付加した名前に変わります。
ただし,PUBLICまたはSHARE宣言された変数の名前は,_を2個重ねます。
主プログラムの内部手続きの名前は,_0,または,s_0 を付加した名前になります。
BASICのmoduleは,(古い型の)静的オブジェクトに変換されます。
詳細 Full BASICのObject Pascalへの埋め込み

 

変更履歴

Fixed the fault that array parameters of functions caused memory leak.

関数の配列引数がメモリーリークを起こすバグを修正。