Author Topic: Chameleon BASIC  (Read 13931 times)

0 Members and 3 Guests are viewing this topic.

Charles Pegge

  • Guest
Re: Chameleon BASIC
« Reply #15 on: November 20, 2014, 02:38:33 PM »
Hi John,

Have you found any gallery pics for this ChameleonBasic language. Visuals are often a good indicator as to whether a programming language is alive, or not.

I am still engaged on last weeks data-table project, which is proving to yield some very useful support functions for data processing.

JRS

  • Guest
Re: Chameleon BASIC
« Reply #16 on: November 20, 2014, 02:55:23 PM »
The original KoolB project was well documented in tutorial form for the first round. (7 keywords) The author added functionality and documented it in the source. The  Chameleon project took it even further. (what we have today) That's all I know at this point.

JRS

  • Guest
BASM
« Reply #17 on: November 20, 2014, 08:20:08 PM »
I setup the BASM Bitbucket repository which includes both KoolB and Chameleon projects for reference. Please use the issue tracking system to report problems or offer suggestions or code.

If this picks up momentum than I'll fire up the www.basic-compiler.com site with a SMF 2.0 forum.

I have gone as far as I can with this and it needs someone like Mike to steer.

.
« Last Edit: November 21, 2014, 12:27:44 AM by John »

JRS

  • Guest
KoolB Linux
« Reply #18 on: November 20, 2014, 09:50:00 PM »
I tried to compile KoolB under Linux but get the following errors.


jrs@laptop:~/XP-xfer/KoolB 15.02/Source$ g++ KoolBmain.cpp -o bsam
In file included from KoolBmain.cpp:45:0:
Misc.h: In function ‘void Run(std::string)’:
Misc.h:42:22: error: ‘CLK_TCK’ was not declared in this scope
       if ((clock() / CLK_TCK) - StartTime > 120);
                      ^
Misc.h: At global scope:
Misc.h:48:3: error: ‘FileStart’ does not name a type
   FileStart = File.tellg();
   ^
Misc.h:49:3: error: ‘File’ does not name a type
   File.seekg(0, ios::end);
   ^
Misc.h:50:3: error: ‘FileEnd’ does not name a type
   FileEnd   = File.tellg();
   ^
Misc.h:51:3: error: ‘File’ does not name a type
   File.seekg(0, ios::beg);
   ^
Misc.h:54:3: error: expected unqualified-id before ‘if’
   if (FileEnd - FileStart > 0){
   ^
Misc.h:71:3: error: ‘File’ does not name a type
   File.close();
   ^
Misc.h:72:3: error: expected unqualified-id before ‘return’
   return;
   ^
Misc.h:73:1: error: expected declaration before ‘}’ token
 }
 ^
jrs@laptop:~/XP-xfer/KoolB 15.02/Source$


I also gave it a try compiling KoolB with MinGW using the supplied Makefile.win file.

E:\KoolB 15.02\Source>mingw32-make -B -f Makefile.win
g++.exe -c KoolBmain.cpp -o KoolBmain.o -I"C:/Programs/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/Programs/Dev-Cpp/include/c++/3.
4.2/backward"  -I"C:/Programs/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/Programs/Dev-Cpp/include/c++/3.4.2"  -I"C:/Programs/Dev-Cpp/
include"  -s
In file included from KoolBmain.cpp:45:0:
Misc.h:48:3: error: 'FileStart' does not name a type
   FileStart = File.tellg();
   ^
Misc.h:49:3: error: 'File' does not name a type
   File.seekg(0, ios::end);
   ^
Misc.h:50:3: error: 'FileEnd' does not name a type
   FileEnd   = File.tellg();
   ^
Misc.h:51:3: error: 'File' does not name a type
   File.seekg(0, ios::beg);
   ^
Misc.h:54:3: error: expected unqualified-id before 'if'
   if (FileEnd - FileStart > 0){
   ^
Misc.h:71:3: error: 'File' does not name a type
   File.close();
   ^
Misc.h:72:3: error: expected unqualified-id before 'return'
   return;
   ^
Misc.h:73:1: error: expected declaration before '}' token
 }
 ^
Makefile.win:30: recipe for target 'KoolBmain.o' failed
mingw32-make: *** [KoolBmain.o] Error 1

E:\KoolB 15.02\Source>

« Last Edit: November 20, 2014, 10:32:04 PM by John »

JRS

  • Guest
Re: Chameleon BASIC
« Reply #19 on: November 20, 2014, 11:20:41 PM »
Here is a Petzold Sprial Chameleon example. I wonder how many of the Petzoil examples could be run in BASM? Could be a cool learning tool with BASIC, C++ and ASM all rolled into one.

@Mike or @Charles: Not that I have the time to do so but do you see any reason SB couldn't be used to build a like compiler?

Code: Visual Basic
  1. '**************
  2. '* Spiral.bas *
  3. '**************
  4.  
  5. ' Based on a Petzold example.
  6.  
  7. $AppType GUI
  8. $Optimize Off
  9. $Compress Off
  10.  
  11. $Include "Windows.inc"
  12. $Include "Math.inc"
  13.  
  14. $Const iNumRevs = 20
  15. $Const crAppleGreen = 0x0044AA00
  16. $Const PI = 3.14159
  17.  
  18. Dim message As MSG
  19. Dim wc As WNDCLASS
  20. Dim ps As PAINTSTRUCT
  21. Dim strClassName As String
  22. Dim strAppTitle As String
  23. Dim hWindow As Integer
  24. Dim cxClient As Integer
  25. Dim cyClient As Integer
  26.  
  27. Function OnSize(hWnd As Integer, uMsg As Integer, _
  28.                 wParam As Integer, lParam As Integer) As Integer
  29.   cxClient = LoWord(lparam)
  30.   cyClient = HiWord(lparam)
  31.   Result = 0
  32. End Function
  33.  
  34. Function OnPaint(hWnd As Integer, uMsg As Integer, _
  35.                 wParam As Integer, lParam As Integer) As Integer
  36.   Dim hdc As Integer
  37.   Dim iNumPoints As Integer
  38.   Dim ptX As Integer
  39.   Dim ptY As Integer    
  40.   Dim i As Integer
  41.   Dim fAngle As Double
  42.   Dim fScale As Double
  43.  
  44.   hdc = BeginPaint(hWnd, ps)
  45.   iNumPoints = iNumRevs * 2 * (cxClient + cyClient)
  46.   i = 0
  47.   While i < iNumPoints
  48.     fAngle = i * 2.0 * PI / (iNumPoints / iNumRevs)
  49.     fScale = 1.0 - i / iNumPoints
  50.     ptX = cxClient / 2.0 * (1.0 + fScale * Cos(fAngle))
  51.     ptY = cyClient / 2.0 * (1.0 + fScale * Sin(fAngle))
  52.     SetPixel(hdc, ptX, ptY, crAppleGreen)
  53.     i = i +1
  54.   Wend
  55.   EndPaint(hWnd, ps)
  56.   Result = 0
  57. End Function
  58.  
  59. Function WindowProc(hWnd As Integer, uMsg As Integer, _
  60.                     wParam As Integer, lParam As Integer) As Integer
  61.   If uMsg = WM_SIZE Then
  62.     Result = OnSize(hWnd, uMsg, wParam, lParam)
  63.   ElseIf uMsg = WM_PAINT Then
  64.     Result = OnPaint(hWnd, uMsg, wParam, lParam)
  65.   ElseIf uMsg = WM_DESTROY Then
  66.     PostQuitMessage(0)
  67.     Result = 0
  68.   Else
  69.     Result = DefWindowProc(hWnd, uMsg, wParam, lParam)
  70.   End If
  71. End Function
  72.  
  73. '***
  74.  
  75. strAppTitle = "Spiral"
  76. strClassName = "SpiralClass"
  77.  
  78. wc.style = CS_HREDRAW + CS_VREDRAW
  79. wc.lpfnWndProc = CodePtr(WindowProc)
  80. wc.cbClsExtra = 0
  81. wc.hInstance = GetModuleHandle(0)
  82. wc.hIcon = LoadIcon(0, MakeIntResource(IDI_APPLICATION))
  83. wc.hCursor = LoadCursor(0, MakeIntResource(IDC_ARROW))
  84. wc.hbrBackground = GetStockObject(WHITE_BRUSH)
  85. wc.lpszMenuName = ""
  86. wc.lpszClassName = strClassName
  87.  
  88. If (RegisterClass(wc)) = 0 Then
  89.   MessageBox(0, "RegisterClass failed.", strAppTitle, MB_OK)
  90.   ExitProcess(0)
  91. End If
  92.  
  93. hWindow = CreateWindowEx(0, strClassName, strAppTitle, _
  94.                          WS_OVERLAPPEDWINDOW, _
  95.                          165, 50, 380, 435, _
  96.                          0, 0, wc.hInstance, 0)
  97. If hWindow = 0 Then
  98.   MessageBox(0, "CreateWindowEx failed.", strAppTitle, MB_OK)
  99.   ExitProcess(0)
  100. End If
  101.  
  102. ShowWindow(hWindow, SW_SHOWNORMAL)
  103. UpdateWindow(hWindow)
  104.  
  105. While GetMessage(message, 0, 0, 0) > 0
  106.   TranslateMessage(message)
  107.   DispatchMessage(message)
  108. Wend
  109.  



.

JRS

  • Guest
BASM Forum
« Reply #20 on: November 21, 2014, 08:16:10 PM »
If the BASM project sounds interesting and you would like to participate in the project, I have setup a forum.

BASIC-Compiler.com - BASM Forum

Note: Registration is instant with an e-mail verification.

JRS

  • Guest
BASM
« Reply #21 on: November 23, 2014, 02:02:24 AM »
I just release BASM Version 1.0  Build 1 that was built with MinGW32. Source and examples have been pushed to the Bitbucket repository.


C:\BASM\Bin>BASM

BASM - Version 1.0 Build 1
Usage: BASM <filename> [IncPath] [Pause]
Press any key to continue . . .


Update

For grins I thought I would try to compile BASM as a 64 bit Windows executable. That worked.  8) Next I tried to compile the Spiral example with the BASM64 compiler. That worked. (sorta) It created a 32 bit Windows executable with the 64 bit compiler.

Microsoft's latest Visual Studio 2013 is a 32 bit compiler that can create 32 or 64 bit executables. Does this translate to good news for BASM???


jrs@laptop:~/BASM64$ ls -l
total 4148
-rw------- 1 jrs jrs 4220894 Nov 24 11:45 BASM.exe
-rw------- 1 jrs jrs   22528 Nov 24 11:57 Spiral.exe
jrs@laptop:~/BASM64$ file BASM.exe
BASM.exe: PE32+ executable (console) x86-64, for MS Windows
jrs@laptop:~/BASM64$ file Spiral.exe
Spiral.exe: PE32 executable (GUI) Intel 80386, for MS Windows
jrs@laptop:~/BASM64$

« Last Edit: November 24, 2014, 08:44:45 PM by John »

JRS

  • Guest
Re: Chameleon BASIC
« Reply #22 on: November 24, 2014, 08:40:20 PM »
Brian C. Becker (KoolB Author)



Quote
I am a 5th Profile Pic year PhD student attending the Robotics Institute at Carnegie Mellon University. I work in the Surgical Mechatronics Lab under Cameron Riviere, but have a wide range of interests in medical robotics, computer vision, controls, and face recognition.

JRS

  • Guest
Re: BASM IUP
« Reply #23 on: November 25, 2014, 02:01:57 AM »
Here is a quick Hello World! IUP example in BASM.



Code: Text
  1. ' BASM IUP Hello World
  2.  
  3. $AppType GUI
  4.  
  5. DECLARE FUNCTION IupOpen LIB "iup.dll" ALIAS "IupOpen" (argc AS INTEGER, argv AS INTEGER) AS INTEGER
  6. DECLARE FUNCTION IupDialog LIB "iup.dll" ALIAS "IupDialog" () AS INTEGER
  7. DECLARE FUNCTION IupLabel LIB "iup.dll" ALIAS "IupLabel" (title AS STRING) AS INTEGER
  8. DECLARE FUNCTION IupAppend LIB "iup.dll" ALIAS "IupAppend" (ctl_to AS INTEGER, ctl_from AS INTEGER) AS INTEGER
  9. DECLARE FUNCTION IupShow LIB "iup.dll" ALIAS "IupShow" (ctl AS INTEGER) AS INTEGER
  10. DECLARE FUNCTION IupMainLoop LIB "iup.dll" ALIAS "IupMainLoop" () AS INTEGER
  11. DECLARE FUNCTION IupClose LIB "iup.dll" ALIAS "IupClose" () AS VOID
  12.  
  13. DIM win AS INTEGER
  14. DIM lbl AS INTEGER
  15.  
  16. IupOpen(0,0)
  17. win = IupDialog()
  18. lbl = IupLabel("Hello World!")
  19. IupAppend(win, lbl)
  20. IupShow(win)
  21. IupMainLoop()
  22. IupClose()
  23.  


C:\BASM\Examples\Iup>compile basm_iup.bas

C:\BASM\Examples\Iup>C:\BASM\Bin\BASM.exe "basm_iup.bas" C:\BASM\Inc\

BASM - Version 1.0 Build 1
Currently compiling "basm_iup.bas":
 - Compile time  ->  0.050000 seconds
 - Assemble time ->  0.180000 seconds
 - Linking time  ->  0.130000 seconds
   -------------------------------
 - Total time    ->  0.360000 seconds

C:\BASM\Examples\Iup>dir
 Volume in drive C has no label.
 Volume Serial Number is 1415-F200

 Directory of C:\BASM\Examples\Iup

11/25/2014  01:14 AM    <DIR>          .
11/25/2014  01:14 AM    <DIR>          ..
11/25/2014  01:14 AM            10,655 basm_iup.asm
11/25/2014  01:14 AM               819 basm_iup.bas
11/25/2014  01:14 AM             4,096 basm_iup.exe
11/25/2014  01:14 AM             8,209 basm_iup.obj
11/25/2014  01:14 AM                 2 basm_iup.rc
11/25/2014  01:14 AM                 0 results.txt
               6 File(s)         23,781 bytes
               2 Dir(s)  68,142,211,072 bytes free

C:\BASM\Examples\Iup>basm_iup
« Last Edit: November 25, 2014, 02:14:11 PM by John »

JRS

  • Guest
BASM Linux
« Reply #24 on: November 29, 2014, 01:16:52 AM »
I thought I would share some good news on the BASM front. AIR (Armando) surfaced on the BP.org forum and I invited him to join us on the BASM forum. He said he wasn't interested in another Windows BASIC compiler but did say he was able to get Brian's KoolB to compile on his Mac. (with some work) I asked if he could send me what he had to try on Linux and AIR sent me his reworked 32 bit Linux source to try.

It compile fine on my 64 and 32 bit Ubuntu 14.02.1 versions but I'm still missing the linker and RC support. (guess until I hear from AIR)


jrs@laptop:~/BASM/koolb$ ./kool Example.bas

          Welcome to KoolB 15.01 by Brian C. Becker!

            Your open-source Linux BASIC compiler!

Currently compiling "Example.bas":
 - Compile time  ->  0.004786 seconds

jrs@laptop:~/BASM/koolb$ file kool
kool: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=b9aafa16cd153e6f16eef8cfb8d06e4b24a96694, not stripped
jrs@laptop:~/BASM/koolb$ ls -l kool
-rwxrwxr-x 1 jrs jrs 534895 Nov 28 22:47 kool
jrs@laptop:~/BASM/koolb$

« Last Edit: November 29, 2014, 01:44:21 AM by John »

JRS

  • Guest
Re: BASM Linux
« Reply #25 on: November 29, 2014, 10:22:27 AM »
Got it working.


jrs@VB32:~/BASM/koolb$ cat whome.bas
PRINT "KoolB"


jrs@VB32:~/BASM/koolb$ ./kool whome.bas

          Welcome to KoolB 15.01 by Brian C. Becker!

            Your open-source Linux BASIC compiler!

Currently compiling "whome.bas":
 - Compile time  ->  0.001243 seconds
 - Assemble time ->  0.004015 seconds
 - Linking time  ->  0.001041 seconds
   -------------------------------
 - Total time    ->  0.007451 seconds
jrs@VB32:~/BASM/koolb$ ./whome
KoolB
jrs@VB32:~/BASM/koolb$ ls -l whome*
-rwxrwxr-x 1 jrs jrs 2068 Nov 29 10:01 whome
-rw-rw-r-- 1 jrs jrs 1366 Nov 29 10:01 whome.asm
-rw-rw-r-- 1 jrs jrs   16 Nov 29 00:15 whome.bas
-rw-rw-r-- 1 jrs jrs 1680 Nov 29 10:01 whome.o
-rw-rw-r-- 1 jrs jrs   51 Nov 29 10:01 whome.rc
jrs@VB32:~/BASM/koolb$


Update:

I installed support for 32 runtime & development on my Ubuntu 14.02.1 LTS 64 bit laptop.  BASM (KoolB) now compiles as a 64 bit application and the generated executables (32 bit) run on the 64 bit OS.


jrs@laptop:~/BASM/koolb$ ./kool whome.bas

          Welcome to KoolB 15.01 by Brian C. Becker!

            Your open-source Linux BASIC compiler!

Currently compiling "whome.bas":
 - Compile time  ->  0.000244 seconds
 - Assemble time ->  0.000477 seconds
 - Linking time  ->  0.000148 seconds
   -------------------------------
 - Total time    ->  0.000948 seconds
jrs@laptop:~/BASM/koolb$ ./whome
Koolb
jrs@laptop:~/BASM/koolb$ file kool
kool: ELF 64-bit LSB  executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=fdbd995a552af76ab27bfe391cfe258ebbf60127, not stripped
jrs@laptop:~/BASM/koolb$ file whome
whome: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
jrs@laptop:~/BASM/koolb$ ls -l whome*
-rwxrwxr-x 1 jrs jrs 2068 Nov 29 17:37 whome
-rw-rw-r-- 1 jrs jrs 1366 Nov 29 17:37 whome.asm
-rw-rw-r-- 1 jrs jrs   15 Nov 29 00:05 whome.bas
-rw-rw-r-- 1 jrs jrs 1680 Nov 29 17:37 whome.o
-rw-rw-r-- 1 jrs jrs   51 Nov 29 17:37 whome.rc
jrs@laptop:~/BASM/koolb$

« Last Edit: November 29, 2014, 06:20:04 PM by John »

JRS

  • Guest
Re: BASM Linux - DLL
« Reply #26 on: December 01, 2014, 11:22:52 AM »
Here is an example of creating a DLL (.so shared object) with the BASM-Linux 32 bit compiler and a test program to call it.

test.bas
Code: Text
  1. ' BASM-Linux test.so shared object example
  2.  
  3. $AppType DLL
  4.  
  5. Function Concat(S1 As string, S2 As String) As String
  6.   Result = S1 + S2
  7. End Function
  8.  
  9. Function Sqrt(Number As Double) As Double
  10.   Result = Number ^ (1/2)
  11. End Function
  12.  

TestDLL.bas
Code: Text
  1. ' TestDLL - calling functions in BASM-Linux created share object
  2.  
  3. $AppType Console
  4.  
  5. Declare Function ConCat Lib "./test.so" Alias "_CONCAT" (S1 As String, S2 As String) As String
  6. Declare Function Sqrt Lib "./test.so" Alias "_SQRT" (Number As Double) As Double
  7.  
  8. Print "Testing functions contained in test.so"
  9. Print ""
  10. Print "Concat(123, abc)   =>   "; Concat("123", "abc")
  11. Print "Sqrt(9)            =>   "; Sqrt(9)
  12.  

Output

jrs@VB32:~/BASM/linux/Examples/dll$ BASM test.bas

BASM Linux - Version 1.0 Build 1
Currently compiling "test.bas":
 - Compile time  ->  0.002524 seconds
 - Assemble time ->  0.003758 seconds
 - Linking time  ->  0.001053 seconds
   -------------------------------
 - Total time    ->  0.008471 seconds
jrs@VB32:~/BASM/linux/Examples/dll$ file test.so
test.so: ELF 32-bit LSB  shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
jrs@VB32:~/BASM/linux/Examples/dll$ ls -l test.so
-rwxrwxr-x 1 jrs jrs 3875 Dec  1 10:31 test.so
jrs@VB32:~/BASM/linux/Examples/dll$ BASM TestDLL.bas

BASM Linux - Version 1.0 Build 1
Currently compiling "TestDLL.bas":
 - Compile time  ->  0.005107 seconds
 - Assemble time ->  0.007244 seconds
 - Linking time  ->  0.002439 seconds
   -------------------------------
 - Total time    ->  0.016106 seconds
jrs@VB32:~/BASM/linux/Examples/dll$ ls -l TestDLL
-rwxrwxr-x 1 jrs jrs 3524 Dec  1 10:32 TestDLL
jrs@VB32:~/BASM/linux/Examples/dll$ ./TestDLL
Testing functions contained in test.so

Concat(123, abc)   =>   123abc
Sqrt(9)            =>   3
jrs@VB32:~/BASM/linux/Examples/dll$

JRS

  • Guest
O2 Abductions?
« Reply #27 on: December 02, 2014, 01:01:49 PM »
Did Charles and Mike get abducted by aliens?

Is O2 up in the air?  ::)
« Last Edit: December 02, 2014, 01:48:53 PM by John »

JRS

  • Guest
BASM Windows
« Reply #28 on: December 02, 2014, 09:13:29 PM »
I've run into a problem on the Windows version of BASM when doing a callback to a function. Everything works until you press the button. (exception error) It works fine in the Linux version. We have no ASM level support for the Windows version and could use some help from the O2 team. I'm sure it's something simple.

Your support in helping the BASM project keeping it's Windows momentum going is important for that platform. The Linux side (understandable) has more interest. (AIR, vovchik and others)

Please get the current source from the BASM Bitbucket repository.

Code: Text
  1.  
  2. ' BASM IUP Test Callback
  3.  
  4. $AppType Console
  5.  
  6. DECLARE FUNCTION IupOpen LIB "iup.dll" ALIAS "IupOpen" (argc AS INTEGER, argv AS INTEGER) AS INTEGER
  7. DECLARE FUNCTION IupDialog LIB "iup.dll" ALIAS "IupDialog" () AS INTEGER
  8. DECLARE FUNCTION IupButton LIB "iup.dll" ALIAS "IupButton" (title AS STRING, action AS STRING) AS INTEGER
  9. DECLARE FUNCTION IupAppend LIB "iup.dll" ALIAS "IupAppend" (ctl_to AS INTEGER, ctl_from AS INTEGER) AS INTEGER
  10. DECLARE FUNCTION IupSetCallback LIB "iup.dll" ALIAS "IupSetCallback" (ih AS INTEGER, cbtype AS STRING, FuncAddr AS INTEGER) AS INTEGER
  11. DECLARE FUNCTION IupShow LIB "iup.dll" ALIAS "IupShow" (ctl AS INTEGER) AS INTEGER
  12. DECLARE FUNCTION IupMainLoop LIB "iup.dll" ALIAS "IupMainLoop" () AS INTEGER
  13. DECLARE FUNCTION IupClose LIB "iup.dll" ALIAS "IupClose" () AS VOID
  14.  
  15. $CONST IUP_DEFAULT = -2
  16.  
  17. DIM win AS INTEGER
  18. DIM but AS INTEGER
  19.  
  20. ' FUNCTION ButtonPressed(ih AS INTEGER, button AS INTEGER, pressed AS INTEGER, x AS INTEGER, y AS INTEGER, status AS INTEGER) AS INTEGER
  21. FUNCTION ButtonPressed(ih AS INTEGER) AS INTEGER
  22. PRINT "Button Clicked"
  23. ' PRINT "button = "; button
  24. ' PRINT "pressed = "; pressed
  25. ' PRINT "x = "; x
  26. ' PRINT "y = "; y
  27. ' PRINT "status = ", status
  28. RESULT = IUP_DEFAULT
  29. END FUNCTION
  30.  
  31. IupOpen(0,0)
  32. win = IupDialog()
  33. but = IupButton("Press Me!", "")
  34. ' IupSetCallback(but, "BUTTON_CB", CALLBACK(ButtonPressed))
  35. IupSetCallback(but, "ACTION", CALLBACK(ButtonPressed))
  36. IupAppend(win, but)
  37. IupShow(win)
  38. IupMainLoop()
  39. IupClose()
  40.  

Mike Lobanovsky

  • Guest
Re: Chameleon BASIC
« Reply #29 on: December 03, 2014, 05:21:30 AM »
Hi John,

I'm afraid I'd rather not get involved with BASM at all. I consider this particular implementation of BASIC-to-Asm translator ineffectual. It is based off of double precision FPU storage and calc which leaves it, speed-wise, far behind any other competitive implementation, whether asm, or C, or C++, without any hope for major improvement simply because there's no easy way to optimise it except re-write it completely from scratch. The challenge to do so would be too much for me to get involved in.

Sorry to say that but that's how it is for me personally. Thanks for the invitation though.