Page 2 of 8 FirstFirst 1234 ... LastLast
Results 11 to 20 of 79

Thread: Further Developments in Asmosphere I.

  1. #11
    Super Moderator Petr Schreiber's Avatar
    Join Date
    Aug 2005
    Location
    Brno - Czech Republic
    Posts
    7,128
    Rep Power
    732

    Re: Further Developments in Asmosphere

    H20 ... currently in vapour phase ;D
    That is brutal sentence ;D

    Sounds good,
    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

  2. #12
    thinBasic MVPs kryton9's Avatar
    Join Date
    Nov 2006
    Location
    Naples, Florida & Duluth, Georgia
    Age
    67
    Posts
    3,869
    Rep Power
    404

    Re: Further Developments in Asmosphere

    h2o in vaporware.... codename: steam
    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

  3. #13

    Re: Further Developments in Asmosphere

    Vaporware can be very useful for planning I want to make sure that Asmosphere is complete as a programing layer, so looking ahead informs current development. It should be fairly easy to mix several languages in the same script - with their various syntax rules and paradigms as long as they can be rendered to machine code ( and always close their brackets! )

    basic (
    ...
    )

    pascal (
    )

    or nested together:

    basic (
    asm (
    o2 (
    )
    )
    )

  4. #14
    thinBasic MVPs kryton9's Avatar
    Join Date
    Nov 2006
    Location
    Naples, Florida & Duluth, Georgia
    Age
    67
    Posts
    3,869
    Rep Power
    404

    Re: Further Developments in Asmosphere

    Totally wild things you put out Charles. Makes my love for computers even grow stronger in knowing that there is still so much I don't know after all these years!
    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

  5. #15

    Re: Further Developments in Asmosphere

    The important thing is to adopt widely used standards wherever possible, so as to avoid total alienation

    Currently asmosphere uses very simple macros without a parameter facility. For the next release, I'm going to extend it by adopting something that DOS batch files use since it is very simple and efficient to use: each parameter is represented by %1 %2 %3 etc.

    To show how this will be implemented in Asmosphere
    this macro returns the address of a single dimensional array element:

    note that the expression v ( 42 ) has 4 elements represented inside the macro as: v %1 ( %2 42 %3 ) %4

    Another thing to note is that the macro definition does not use a prototype, the macro simply 'eats' as many words from the invocation line as it requires.




    array1_ptr v(42)

    def array1_ptr
    (
    mov eax, sizeof %1
    imul eax,eax,%3
    lea edx,%1
    add eax,edx
    )


    supposing v might be something like [ebp-1000] with elements of 8 bytes each;
    then this macro would expand to:

    [b]
    mov eax,8
    imul eax,eax,42
    lea edx, [ebp-1000]
    add eax,edx
    [b]

  6. #16
    thinBasic MVPs kryton9's Avatar
    Join Date
    Nov 2006
    Location
    Naples, Florida & Duluth, Georgia
    Age
    67
    Posts
    3,869
    Rep Power
    404

    Re: Further Developments in Asmosphere

    These macros are cool. Reminds me of all the cool things they are doing with templates in c++, but nothing approaches supporting different languages in the same source. You are really thinking abstractly that is wonderful!
    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

  7. #17

    Re: Further Developments in Asmosphere

    Thanks Kent, I had'nt really thought of it as abstraction, but its true. This exercise helps to identify the fundamental building blocks for programming.


    So far we have:

    language (...) ' embedded language.
    def (...) ' define macros.
    type (...) ' define data structures.
    var (...) ' map variables.
    skip (..) ' ignore block.

    but thinking about a system for generating sound, there is a large amount of initial values and default data to set up. To do this efficiently, we will definitely need a data block to complete the set

    data (..) ' define inline data block

    This could be any form of embedded database but if it is set up as a table with fixed length columns then an array variable of matching Type can be mapped on to it, for simple access.

  8. #18
    thinBasic MVPs kryton9's Avatar
    Join Date
    Nov 2006
    Location
    Naples, Florida & Duluth, Georgia
    Age
    67
    Posts
    3,869
    Rep Power
    404

    Re: Further Developments in Asmosphere

    Looks very good.... was wondering... could you create something as following, where all of these building blocks could be like this:
    language (...) ' embedded language.
    def (...) ' define macros.
    type (...) ' define data structures.
    var (...) ' map variables.
    skip (..) ' ignore block.
    data(..)

    class ()
    ...language()
    ...vars( these could also hold pointers to data((..))
    ...funcs()

    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

  9. #19

    Re: Further Developments in Asmosphere

    Class is equivalent to Type which can include any kind of data elements including function pointers, or pointers to table of function pointers.

    Types can embed previously defined types in themselves or include these types as a basic form of inheritance.

    C++ classes of course have a lot more specialised items in them - much to do with restricting access.


    To go a bit more abstract: def () type() var() are specialised forms of a block (..)

    Unqualified blocks are used to define scope which means that labels, macros, structures as well as variables can be made local - indeed most words and symbols can be temporarily redefined, reverting to the original when the block ends. Local functions can also be defined, being visible only inside the block. ( This could be awesome or awful can't decide which )




  10. #20
    thinBasic MVPs kryton9's Avatar
    Join Date
    Nov 2006
    Location
    Naples, Florida & Duluth, Georgia
    Age
    67
    Posts
    3,869
    Rep Power
    404

    Re: Further Developments in Asmosphere

    Having that ability seems like a big plus to me, but I guess it could also be confusing... but when you think of how much you have to understand what you are doing with this stuff, you should be able to tell the scope of a variable in that point of the code
    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

Page 2 of 8 FirstFirst 1234 ... LastLast

Similar Threads

  1. Further Developments in Asmosphere III
    By Charles Pegge in forum Legacy
    Replies: 30
    Last Post: 22-09-2008, 22:55

Members who have read this thread: 0

There are no members to list at the moment.

Posting Permissions

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