El Dorado
Newish
Bumsen Sie, das lutscht.
Posts: 30
|
Post by El Dorado on Dec 5, 2006 16:16:01 GMT -5
Anyone interested in helping me out? I have a laptop running Windows 98 and I have the olde B4GL with support for Windows 98 Executable creation. Unfortunately, I was making a sub-operating system called Basic-OS (Version 5 as of now) and I can't use the CompileFile and Execute commands. Even if it was just Compile and Execute, I could get by, but I need these functions in my Basic4GL program. I'll try to make my own DLL for them, but if anyone comes up with one beforehand, let me know.
|
|
|
Post by davy on Dec 5, 2006 16:41:19 GMT -5
Unfortunately, I'm not sure that's possible with the current interface of the dll system.
|
|
El Dorado
Newish
Bumsen Sie, das lutscht.
Posts: 30
|
Post by El Dorado on Dec 5, 2006 17:02:18 GMT -5
Dang that sucks.
I'll try my best to see if I can make something...
|
|
|
Post by davy on Dec 5, 2006 18:17:17 GMT -5
Dont quote me on that though... There really isn't much documentation on the dll system, so I have no idea. But from what I've seen, you can't access compiler routines in the dll system.
What are you planning to use the commands for?
|
|
El Dorado
Newish
Bumsen Sie, das lutscht.
Posts: 30
|
Post by El Dorado on Dec 6, 2006 16:01:16 GMT -5
Well, the older Basic4GL program doesn't Compile, CompileFile or Execute in Windows 98. I need it to because I am making a sub-Operating system called Basic-OS. It's like DOS but it runs under windows, uses Basic4GL code, has built-in variables for program creation, and it runs ".exc" executables (Programs). It's currently v0.6 (Basic-OS/5) and it has a strange way of working... First, you run the File Operating System (Basic-OS/5 FOS) and then it opens the BIOS.L file to load DIM Libraries (Variables built in to Basic-OS/5 stored in the system\dimlib folder) and then shows a command prompt. I made two different BIOS files, interchangeable with each other. One shows all the DIM Libraries as they are loaded, and another doesn't, and quickly loads Basic-OS/5. After loading up, you can run any program you wish from any sub-folder in the Basic-OS/5 Root Folder. In Basic-OS/5 programs, you CANNOT declare a DIM function. You have to use built-in variables or create your own ".dim" file and place it in the system\dimlib folder. When Basic-OS/5 is restarted, it loads your new DIM Library file. To add a DIM Function for your program to use, add it to your DIM file. Example dim file: 'My DIM file setdiminfo$="My DIM Library" DIM myvariable1, myvariable2, myvariable3 And then it must be placed in the system\dimlib folder. It's pretty awesome how it works. I have a bunch of help files on the system, some programming kit tools for Basic-OS/5 (My favorite one that I made is edpn.exc since it color-codes your programming) and a bunch of other cool things. If I ever get it compiled, I'll put up a download. It's a really cool sub-os. My favorite program of all that I made in it is the Basic-OS/1 Emulator, which emulates old Basic-OS (since the older Basic-OS/1 and Basic-OS/2 used ".bos" programs) and lets you use the old text editor I made, which wasn't included in v0.6 to slim down the code (Currently 9 lines and a comment line). But if I could compile in '98 I would get it sooner. If not, I'm getting a new WinXP laptop in a month, so whatever. But I think it would help a lot to have the Compile, CompileFile and Execute commands in the older Basic4GL programs, since they are compatible with Windows 98. It would expand the user-base more.
|
|
|
Post by Centanoul on Dec 13, 2006 23:31:19 GMT -5
Thats a problem when you are going down tech trees.
I'm not exactly the best at wording this, but I'll try to find the words I feel will best express this.
C++ is a true language, compiled to machinecode. Basic4gl is not compiled to machinecode, it is compiled in its own storage format INTO a program that interprets it. (basically a template program)
So...if you want to use some of Basic4gls functions that it reserves for itself, I see 2 methods to go about this, the first is naturally simpler and takes more knowledge of C++, while the second takes more knowledge of B4GL.
Method 1: Take a look over the sourcefiles for B4GL (they're written in C++, I believe with MSVC++6). There you can create your own commands in with Tom's to be able to virtually compile. (This is basically just writing a file with Tom's header, extension of exe of course. Rather simple to figure out if you know what you are looking for).
If you do manage this, I would request you do not share the specifics on the board, as this could be used to compile .exes for malicious purposes, which is not what you or I would wish.
Method 2: Takes a bit more work but a bit less brilliance.
Write a program that reads .bil files (bil is used as an example, use any extension you want). The purpose is to create your own interpreted language! If the .bil file reads:
Dim a Dim b Dim c,d
Then the program just reads through the file and recognizes commands. If it sees Dim ________ then it executes the Dim command and reads the name in the _________ to see what to name the variable.
Thats the monkey see, monkey do work. You would probably also need to throw in the error handling so you could prevent someone from using:
Dim var1 var1=5,000 Dim var1
etc etc. There may be a few other ways, but those are the 2 ones I can think of. If you have any questions or if I confused anything for you, feel free to ask questions!
~Cent
|
|
El Dorado
Newish
Bumsen Sie, das lutscht.
Posts: 30
|
Post by El Dorado on Dec 19, 2006 15:33:56 GMT -5
I'm just going to fix my WinXP computer... Then I'll start using the compile functions again.
And btw, the second way you described is not at all possible, since you can't do half that stuff in Basic4GL in Windws 98. But, alas...
Thanks for the help.
~El Dorado
|
|