I'm currently working on the development of a BASIC language for Amiga OS 4... Highly inspired from both AMOS Pro and DarkBASIC..
Actually the system is only a set of functions that can be used directly in C/C++ but, even in this state, it simplify the development (it act a bit like DarkGDK do on PC computers)
@Snuffy Which Amiga configuration do you have ? Does the program quit correctly when you try to close its window ? I have no compression tool on my Amiga OS 4.0 so I copy files on my PC, uses WinRAR free because I know that AmigaOS4.1 can uncompress rar files ....
I've edited the original message to make appear in italic commands I've created for the future language.
@ Later ...
All we have to decide is what to do with the time that is given to us.
Which Amiga configuration do you have ? Does the program quit correctly when you try to close its window ? I was being sarcastic! Your program was very difficult to see and not a very good example of basic coding. Your showing me C++ object code, where's the BASIC source script? Here is sample of my SDLBasic code of Dots: http://www.flickr.com/photos/11367727@N07 It was coded on Amiga in about 15 minutes. And, it was really fun to do!
I have no compression tool on my Amiga OS 4.0 so I copy files on my PC, uses WinRAR free because I know that AmigaOS4.1 can uncompress rar files .... Basic programs are scripts. You tranport the script not the engine. Oh wait a sec, your building an engine.Oops, sorry. Show me your basic scripts and I'll write them out in SDLBasic for you.
@Snuffy Actually it's only C source code. I create functions that are useable inside C. The objective when all the functions will be available is to make a BASIC language from these functions. In this sample, the commands are these :
DarkENGINE_Start() Initialize the engine (internal function, not available in the future basic language)
SetDisplayMode( 640, 480, 32 ) Open a screen to choosen resolution
DarkENGINE_End() Close the engine, free all used memory, etc ... (internal function, not available in the future basic language)
DBCls( 0 ) Like CLS in all basic language, clear the screen.
DBInk( ForeColor, BackColor ) Change pen and back color
DBRgb( SColor, SColor, SColor ) Return RGB value for Red, Green, Blue components.
DBDot( X, Y ) plot a dot on screen
DBSync() Wait sync and display all changes on screen.
Here are all commands used in this sample that will be used to create the BASIC language.
It's not gentle being sarcastic. I'm only at the beginning of my project ... I though I was enough clear in the explanation of what I'm doing ... I never said that this sample was BASIC LANGUAGE ... I said that I develop commands that will be the main core of my future BASIC LANGUAGE ... is it enough clear for you snuffy ?
All we have to decide is what to do with the time that is given to us.
Works fine here too (A1 XE 1Ghz, 512 MB RAM, Radeon 9250).
Now a question : Along time ago i've made a small program with AMOS Pro which was made for knowing a the day giving any date. But because of the commands it's hard for me to use the source file with, for example, AmiBlitz3. Have you planned to make a converter AMOS Pro => AmiDark Basic ?
@unimon Hi. I do not plan to create an AmosPRO -> AmiDARK BASIC converter but, I will probably do some wrapping functions to makes available AmosPRO commands inside AmiDARK BASIC c so, it will maybe be possible to load .ASCII version of AmosPRO source code and use it with few changes in AmiDARK BASIC
I've made changes into the actual AmiDARK Engine. The Starscroll demo is now smaller :
#include "AmiDARKEngine.c"
void DarkLoop( void ){
int XLoop = 0;
int SColor = 0;
float XSpeed = 0.0;
The engine is now totally invisible in the dev source code. There is only the include file at the top of the project ... it includes and initialize everything.
All we have to decide is what to do with the time that is given to us.
Under normal circumstances you're supposed to have a list of "extern"-ed functions in a header file and then link with the object file rather than "#include"-ing a C source. Figuring out how to do that shouldn't be difficult however.