Thanks Charles, I don't know what those things do, but I am sure they will come in handy!
To extend the capabilities of Asmosphere towards high level programming, I will be adding a few more ingredients to the preprocessor. Fortunately they are few in number but will support a wide range of data structures, local, static and host-shared variables. It will also be simpler to bind to DLL functions. These extras will also make OOP practical with assembler.
Here are the essentials:
def type incl define macros data structures including inherited structures (classes)
var declare variables
mem freemem persistant memory.for static objects
library freelibrary for DLLs.
bind for binding DLL functions to symbols.
copy0 copy00 copyn copying variables, string literals etc.
offset indexers ascending desceding building blocks of variables.
sizeof offsetof spanof referencing variable arrays and structures.
This I hope will complete Asmosphere as a programming layer.
Thanks Charles, I don't know what those things do, but I am sure they will come in handy!
Acer Notebook: Win 10 Home 64 Bit, Core i7-4702MQ @ 2.2Ghz, 12 GB RAM, nVidia GTX 760M and Intel HD 4600
Raspberry Pi 3: Raspbian OS use for Home Samba Server and Test HTTP Server
These instructions aim to give you everything you need to built and manage high level data structures but however hard one tries to keep the system simple, it's yet more things to learn.
What we need is a script wizard for Asmosphere. My ideal would be something written in HTML/CHM using Javascript and forms - to generate content for pasting into a program. This could be integrated with the manual.
That is a wild idea for sure, use the manual or help for your creation wizard engine, wow!
Acer Notebook: Win 10 Home 64 Bit, Core i7-4702MQ @ 2.2Ghz, 12 GB RAM, nVidia GTX 760M and Intel HD 4600
Raspberry Pi 3: Raspbian OS use for Home Samba Server and Test HTTP Server
Thanks Charles,
looks very good as always!
Regarding the generator ... very interesting idea. I was thinking of some expression 2 asmoshpere convertor ( with help of tokenizer module maybe ?).
Petr
Learn 3D graphics with ThinBASIC, learn TBGL!
Windows 10 64bit - Intel Core i5-3350P @ 3.1GHz - 16 GB RAM - NVIDIA GeForce GTX 1050 Ti 4GB
Petr, that is a compiler . Definitely heading in the right direction.
sub hello()
.hello
local_space 16
dim a as long
var 4 a
dim s as string * 100
var 4 s
s=mem 100
s="Hello World!"
s="Hello World!"
for a=1 to 10
print s
next
mov a,1
(
cmp a,10
jg exit
proc print s
inc a
repeat
)
end sub
freemem s
free_local_space
ret
Hi Charles,
thanks for the comparsion, very much appreciated.
Cannot wait to version which will allow me to do this tricks!
Petr
Learn 3D graphics with ThinBASIC, learn TBGL!
Windows 10 64bit - Intel Core i5-3350P @ 3.1GHz - 16 GB RAM - NVIDIA GeForce GTX 1050 Ti 4GB
JIT Compiling Basic would not be too difficult with Asmosphere, - Keeping it simple to start with. I would give this priority over CO2, though they would have much in common.
Petr you will need to invent some new Basic instructions to handle SIMD
I am not sure I am good enough to write JIT compiler now,
I am happy when I can sum 2 numbers correctly
But fact is Oxygen & Asmosphere makes lot of things easier, now with your planned addition ... hmm
Petr
Learn 3D graphics with ThinBASIC, learn TBGL!
Windows 10 64bit - Intel Core i5-3350P @ 3.1GHz - 16 GB RAM - NVIDIA GeForce GTX 1050 Ti 4GB
JIT Basic:
Apart from rearranging words, the big extras are: automatic type conversion, operator precedence and a run-time library (borrowed from the module run-time ;D)
How about calling it H2O, (currently in the vapour phase of course).
Bookmarks