Page 4 of 5 FirstFirst ... 2345 LastLast
Results 31 to 40 of 48

Thread: StandAlone Oxygen

  1. #31
    thinBasic MVPs
    Join Date
    May 2007
    Location
    UK
    Posts
    1,427
    Rep Power
    160

    Re: StandAlone Oxygen

    I confirm the problem, seems to be when spaces are in the path.
    Home Desktop : Windows 7 - Intel Pentium (D) - 3.0 Ghz - 2GB - Geforce 6800GS
    Home Laptop : WinXP Pro SP3 - Intel Centrino Duo - 1.73 Ghz - 2 GB - Intel GMA 950
    Home Laptop : Windows 10 - Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz, 2401 Mhz, 2 Core(s), 4 Logical Processor(s) - 4 GB - Intel HD 4400
    Work Desktop : Windows 10 - Intel I7 - 4 Ghz - 8GB - Quadro Fx 370

  2. #32

    Re: StandAlone Oxygen


    @Frank
    @Mike

    I have reconfigured the compile tools and the IDE to support filepaths with spaces in them. I hope this resolves the problem.

    When you press F7 or ctrl-F7 the program is compiled but does not execute from the IDE. The EXE or DLL is filed in the same folder as the source code.

    If you want programs to execute directly from script (like thinBasic) then all you have to do is associate o2bas files with eo2.exe located in the OxygenBasic folder. eo2 is also used by the IDE to execute programs on F5


    Charles

  3. #33
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,544
    Rep Power
    172
    Hello Charles,

    I wanted to check out your oxygen-basic-asm-package but the download is blocked by browser security settings that are not possible to disable (@ sourceforge)
    On the github page i do not understand how to download a file and which at all. But that is probably caused by the github-page - most projects there are not usable if one does not have some "i don't know-tool" - sometimes its possible to download a zip there which contains hundreds of files where i don't see what to start with.

    Anyway i wanted to know if oxygen has like some IDE that allows to type in the code that it can instantly run / compile and run?
    Can oxygen call thinbasic-builtin-instructions by name or can it make use of $()-interpolation or Evaluate()/Evaluate$() ?
    Or is it possible to embed thinbasic to the stand-alone version of oxygen so it can take care of a projects frame imagine as making use of the many functions that thinbasic provides - perhaps the thinbasic-scripted functions as a file per function stored to a .7z-archive (7z.exe, the commandline version provides all the required procedures) or even as .zip,.rar,... any kind of archive that can be implemented into a compiled executable package?
    Does oxygen provide any GUI-library / win32Api or a graphics window with simple built-in 2d drawing-library that allows just drawing rectangles, lines and fonts to create an independent UI?

    What would be the file to download?

    Is there a full-installation-package or some portable to run as is from unzipped folder? I have so many thinbasic-scripted-procedures but
    somehow with thinbasic seems no more possible to complete a project without to run into some hindrances that keep it from working as expected and there seems not enough time to get it all fixed.
    ...
    Secretly i hope there is a complete makeover in process - maybe thinbasic x64 or 2.0 is on the way? Who knows?

    It's a bad feeling to get nothing to work as planned - even the used tool has the potential to achieve it - but... yes that's sad. Without any success it means to lose the passion finally.

    ..

    Does it require registry-settings or an environment variable or does it need a folder that is like %path% ?
    I think there are missing some Forum-sections as beta-testing and support

  4. #34
    hello ReneMiner
    go to the oxygen basic GitHub https://github.com/Charles-Pegge/OxygenBasic
    click on the most recent OxygenBasic.zip and then on the right, near the top you will see some action icons, click on the down-arrow icon to download
    to use just unzip the archive to your favorite location, there's an IDE included called oxide
    but be aware that Windows Defender may flag some of the components of Oxygen Basic as malware, so you need to take appropriate action

    btw, Charles is active on this Forum https://forum.it-berater.org/index.php
    Last edited by jack; 21-05-2024 at 14:22.

  5. #35
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,544
    Rep Power
    172
    Hello Jack,
    Thanks , i got it.

    Sadly the forum of Josť is not open to new members - guess to the waves of spam-bot-attacks. And Josť told me a year ago or so that he retired and is no more active.

    I will study what possibilities there are.
    Maybe the easier way is to create a library that provides the functions that i would miss without thinbasic but somehow it should be possible as Charles was up to embed thinbasic that way two years ago or so, starting from the pb-sdk, having the similar datatypes available and the knowledge how to embed tb it should work to make use of $("thinbasic-string-interpolation"), Evaluate() and Evaluate$().
    I think there are missing some Forum-sections as beta-testing and support

  6. #36
    Hi ReneMiner,

    You can email Theo Gottwald for membership (requires your real name).

    Ed Davis has produced a demo TinyBasic interpreter which could be adapted to make eval functions:
    OxygenBasic\demos\interpreters.

    All the self-compiling source code for Oxygen, its tools and its demos, is included without copyright restrictions. The catch is you have to be able to understand it

  7. #37
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,544
    Rep Power
    172
    Quote Originally Posted by Charles Pegge View Post
    ...The catch is you have to be able to understand it
    Yes, that is - somehow bit difficult - in oxygenbasic i've found not any asm- keywords nor did i encounter any sample that uses such - only the registers are there and samples that show the binary way making it to byte-sequences.
    So what command-set would i use? Equal MASM, NetAsm, FlatAsm,...?

    Also it's bit complicated when help shows only a bunch of keywords but not really explains what these do, so to get some idea realized it requires to find running samples.

    At first sight there is some confusion, i did not find keywords: opt[ional], not
    But discoverd them existing in a sample.
    RET makes me wonder, once it says to use as counterpart of Gosub, another place i read use with asm as counterpart of jsr - another page says i must use retn for gosub but return from a procedure - does it mean i can use jsr or gosub equally?
    Were it difficult to implement the asm-instruction-set that it exchanges them to bytes before compilation or is there already a tool made by someone to do so?
    I think there are missing some Forum-sections as beta-testing and support

  8. #38
    Generally, I would avoid using Asm, and allow the compiler to do all the low-level coding. 32bit compiling and 64bit compiling can generate very different Asm. However, it is there if you need it, and it is tightly integrated with Basic variables etc.

    Classical gosub is available, but uses the ret instruction instead of return, which is reserved for functions. But more recently, o2 has adopted more formal terms to give subroutines their own block structure: (so you can't fall into a subroutine accidently)

    gosub xx
    ...
    subroutine xx
    print "ok"
    'exit subroutine
    end subroutine

  9. #39
    thinBasic MVPs
    Join Date
    Oct 2012
    Location
    Germany
    Age
    54
    Posts
    1,544
    Rep Power
    172
    i see. Still checking out many things at once.

    So this Subroutine can be inside sub or function and shares the "parenting procedures scope?
    enter with gosub - exit is fine - avoids accidental return.
    What if subroutine inside function ?
    Will Return immediately leave the function then?


    And extern / external - is it same?

    And just one more: i saw in help "Selection" and i imagined it was like thinBasic "SelectExpression" which is a pretty long verb...
    I tried but it does not know "selection" but it were great not to repeat that request from top of select case where it might be some calculated result
    or whatever

    example
    Byte bCharcode
    
    Select [Case] <numexpression> 
        Case <= 0 ' not a valid char 
    
        case 1 to 31 ' not a visible char...
    
        case 42 ' * only in this case i know what exactly matched
    
        case 48 to 57  ' 0 to 9
    
        case 65 to 72  ' A to F , maybe hex
    
        case 73 to 90  ' G to Z
        case else 
         ' in this case always, in the other cases on top i can not detect without to re-evaluate <expression> 
        ' but there should be a possibility to use a pseudo-variable (even a byte-string) that i can use here  
        ' when the group (case) is the correct/expected one to pass the value somewhere for any purpose. 
        ' i thought like  i know what datatype i used up there so it were my fault when i try to assign it to a 
        ' type thats not capable of  storing it but 
              
           bCharCode = SELECTION 
             
    EndSelect
    
    would be nice in this case and in all the others that it does not require to store it in advance since it is not
    sure if it is required because the selected case will show if the value is of use.

    And do you remember syntax as "On x Goto/Gosub ..."?

    Not exactly that but a similar mechanism works for
    choice = Choose/Choose$ (x, <expr1>[,<expr2>[,...] [{else|default} <defaultexpr>])

    when x =1 then expr1 is assigned to choice etc.

    I did not find yet anything about passing a previously unknown count of parameters, otherwise
    Index = IN|IN$(<comparisonvalue>, <optionA>[, <optionB>][,...])
    Index is assigned 1 if optionA matches, 2 for optionB,... and 0 if no option matches the comparisonvalue - no else/default here ...

    IIF/IIF$ - no need to mention... but
    Boolean matching = ALL(<expr>,<expr>[, <expr>]) - true when All expressions evaluate to True,( skips further check if one was false) 
    Boolean matching = SOME(<expr>, <expr>) - true if one of those is true ( will skip further checks then)
    Boolean matching = NONE(<expr>,<expr>)  - true if none is correct, (skip and returns false if one was true)
    
    those are quite useful to nest one in another and avoids many IF since the problem is mostly to leave from the if-block if not matching a dozen conditions.

    Ok, i wil go on snooping around...

    btw. Demos\WinGUI\Autosizing anything in there refuses to work
    I think there are missing some Forum-sections as beta-testing and support

  10. #40
    Subroutines are normally inside functions/procedures, and can see all the local variables and other local symbols. (Subroutines can also be nested)

    extern is not external.

    you can make your own SELECTION as a local variable before starting a select block.

    on x goto ... is not directly supported, but it is easy to create a jump table, and goto any of its values. This could be further extended to create a function call table.

    You can pass unknown counts by using countof:
    int a={1,2,3,4,5}
    print countof() '5

    IIF can be formulated as a macro function:
    macro iif int(a, b, c,d)
    if b
    a=c
    else
    a=d
    endif
    end macro
    ...
    print iif(1>2, 10,20) '20




    Demos\WinGUI\Autosizing should work, at least with the most recent github OxygenBasic

Page 4 of 5 FirstFirst ... 2345 LastLast

Similar Threads

  1. New Site for StandAlone Oxygen
    By Charles Pegge in forum O2h Compiler
    Replies: 6
    Last Post: 05-10-2010, 10:57

Members who have read this thread: 8

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •