• Toad gets FLOAD

    From S Jack@21:1/5 to All on Tue Aug 8 14:51:39 2023
    Built FLOAD for Toad the retro Forth. I didn't
    install it as a block file but left it as a
    sequential file and pasted it into Toad's input.
    So this begs the question, if sequential files
    can just be pasted in then is FLOAD really needed?
    Whatever.
    FLOAD currently just uses one of the block buffers
    for its input and SCAN and SPLIT finds a line and
    puts its address in TIB and calls INTERPRET.
    FLOAD is using what's available without any change
    on their part. After all the file is processed,
    TIB is reset back to S0 and IN is restored to
    what is was so command line picks up where it left
    off.
    --
    me

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dxforth@21:1/5 to S Jack on Thu Aug 10 11:59:37 2023
    On 9/08/2023 7:51 am, S Jack wrote:
    Built FLOAD for Toad the retro Forth. I didn't
    install it as a block file but left it as a
    sequential file and pasted it into Toad's input.
    So this begs the question, if sequential files
    can just be pasted in then is FLOAD really needed?

    Do you want to nest source to several levels?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From S Jack@21:1/5 to dxforth on Thu Aug 10 22:17:59 2023
    On Wednesday, August 9, 2023 at 8:59:40 PM UTC-5, dxforth wrote:
    On 9/08/2023 7:51 am, S Jack wrote:

    Do you want to nest source to several levels?

    No, I don't want to but the question should be do I need
    to? It's somewhat primitive but it's workable. I was and
    still am in the mode of not implementing features until I
    feel the pain. Frog, Toad's predecessor and more advanced
    has yet to implement includes (meaning can have up to some number, eight,
    of nestings). With Frog I got some nesting
    or maybe better to say concurrent loading by using block
    loads along with FLOAD. All sequential files that needed
    to be loaded for a given task were loaded with FLOADs
    in a block file using LOAD. A file being loaded by FLOAD
    could also LOAD codes from block files but of course
    if block file also did a FLOAD it would terminate the
    initial FLOAD (because only one file buffer). But I could
    get around this somewhat with FLOAD restarts. A file
    would start with FLOAD then found it needed another
    sequential file it would execute a marker, load the
    needed file, set the marker and restart the original file.
    Would want to have all the NEEDS and REQUIRES up front.
    In most cases never had more then 3 needed files.
    Granted, it's not as smooth as having includes but it's
    workable.
    Toad by the way now allocates its own buffer so it
    can work along with the block files.
    --
    me

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From none) (albert@21:1/5 to sdwjack69@gmail.com on Fri Aug 11 13:45:17 2023
    In article <19a653ac-e3f6-4336-af1f-b0d2f4fdc8f2n@googlegroups.com>,
    S Jack <sdwjack69@gmail.com> wrote:
    On Wednesday, August 9, 2023 at 8:59:40 PM UTC-5, dxforth wrote:
    On 9/08/2023 7:51 am, S Jack wrote:

    Do you want to nest source to several levels?

    No, I don't want to but the question should be do I need
    to? It's somewhat primitive but it's workable. I was and
    still am in the mode of not implementing features until I
    feel the pain. Frog, Toad's predecessor and more advanced
    has yet to implement includes (meaning can have up to some number, eight,
    of nestings). With Frog I got some nesting
    or maybe better to say concurrent loading by using block
    loads along with FLOAD. All sequential files that needed
    to be loaded for a given task were loaded with FLOADs
    in a block file using LOAD. A file being loaded by FLOAD
    could also LOAD codes from block files but of course
    if block file also did a FLOAD it would terminate the
    initial FLOAD (because only one file buffer). But I could
    get around this somewhat with FLOAD restarts. A file
    would start with FLOAD then found it needed another
    sequential file it would execute a marker, load the
    needed file, set the marker and restart the original file.
    Would want to have all the NEEDS and REQUIRES up front.
    In most cases never had more then 3 needed files.
    Granted, it's not as smooth as having includes but it's
    workable.
    Toad by the way now allocates its own buffer so it
    can work along with the block files.

    ciforth's take on this:

    Blocks are used to have small facilities (3 blocks)
    Block loading can be nested, but the supervisory block is locked.
    This is contrary to the implementation suggested by the standard.
    The complicated BLK/BLOCK/SRC manipulation (ISO94) is circumvented
    without making the programs itself unstandard.

    Files are slurped in normal programs. I have added an INCLUDE-FILE
    that reads files buffered. The block system consists of 1 k buffers
    and they are use for this. The incremental code is minute, assuming
    the code to implement the READ-LINE standard function is present.

    --
    me
    --
    Don't praise the day before the evening. One swallow doesn't make spring.
    You must not say "hey" before you have crossed the bridge. Don't sell the
    hide of the bear until you shot it. Better one bird in the hand than ten in
    the air. First gain is a cat spinning. - the Wise from Antrim -

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From S Jack@21:1/5 to All on Mon Aug 14 16:00:37 2023
    On Friday, August 11, 2023 at 6:45:21 AM UTC-5, none albert wrote:

    "Peering into the Abyss" words which came to mind when I opened the
    man page for GCC. First time I tried to save Toad image it failed.
    Looking into the image found a huge empty gap between the image header
    and the start of code (Yes Albert, had my save searched for the magic
    it would have worked, but then I wouldn't have known of the gap).
    The little bit of GCC parameters looked ok; fixed it when I gave the text section a good ending. I guess GCC lets you know it doesn't like something
    by leaving holes in you image. Think some HTML tools do that.

    Toad is a done deal; has a nice assortment of baseline functions.

    :) toady VERSION "LIB 0 0 (LINE) CR TYPE CR .." "CR BYE"

    Toad-Forth 1.0.B
    XYZZY TOADLIB.SCR TOAD-FORTH LIBRARY
    CURRENT and CONTEXT are FORTH Base: 10 Latest: SYSSAVE
    :)

    It can execute command line arguments, load sequential files,
    evaluate strings, allocate buffers, make system calls, and save
    its image. It an assortment of extensions for unsigned math,
    doubles, stack operators, search and compare, shifts and other
    odds and ends. All extensions are high level words.

    It has USRINIT in COLD to initialize any user code on startup.
    Currently it allocates wanted buffers e.g. string input ring buffer,
    fload buffer etc. The only pre-allocated buffers are the block buffers
    that's part of the Fig model.

    Have ton of code that could be imported but no plan to do much;
    Toad is to serve for base level evaluation.

    Frog was Perseverance, Toad is Artemis, on the drawing board is
    MU-Forth (mutated toad) for the long voyage.
    Where Toad is pure Fig with extensions MU will be an evolved FIG
    to the point of having no Fig appearance and little in Fig
    behavior.

    Toad is so much fun that MU may never get off the paper.
    --
    me

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From S Jack@21:1/5 to S Jack on Fri Aug 18 09:06:38 2023
    On Monday, August 14, 2023 at 6:00:39 PM UTC-5, S Jack wrote:
    Toad gets recognition.
    :) toady

    Toad-Forth 1.0.B
    FLOAD f/recog.f OK
    FLOAD f/sml.f OK
    "rcdg 'CODE APPEND' f/misc.f > /tmp/foo" /O
    OK
    FLOAD /tmp/foo OK
    LATEST ID. APPEND OK
    "rcdg APPEND f/misc.f" /O
    [r] APPEND ( s1 s2 a -- s3 )
    -- Append string s1 to sting s2 placing result at address a.
    -- Return result string s3 (which is address a)
    --.
    OK
    &WORLD& %HELLO % PAD APPEND CR TELL
    HELLO WORLD OK
    BYE :)
    --
    me

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From S Jack@21:1/5 to All on Sat Aug 26 07:04:21 2023
    ( Some Toad UI )

    13 -LIST
    SCR# 13
    0 ( TOADY+ )
    1 FLOAD f/sml.f ( SIMPLE MARKUP LANGUAGE )
    2 FLOAD f/recog.f ( INTERPRET WITH RECOGNIZER )
    3 FLOAD f/mpad.f ( TEXT OUTPUT BUFFER )
    4 FLOAD f/env.f ( ENVIRONMENT )
    5 FLOAD f/misc.f ( ASSORMENT OF EXTENSIONS )
    6 FLOAD f/display.f ( TERMINAL SCREEN DISPLAY )
    7 FLOAD f/rtc.f ( BackForth )
    8 FLOAD f/bdisplay.f ( BACKFORTH DISPLAY )
    9 ;S OK
    "rcdi f/bdisplay.f" CR /O

    [#] bdisplay.f -- Back Display
    [s] Word listing
    [r] const FAUXHDR
    [r] CODE FAUXHDR
    [r] BNAMES ( lfa ->nfa -- )
    [r] CODE BNAMES
    [r] //SEEN ( nfa -- nfa | recoil )
    [r] CODE //SEEN
    [r] NAMEZ ( nfa -- nfa u )
    [r] CODE NAMEZ
    [r] .NAME ( nfa u -- )
    [r] CODE .NAME
    [r] LSW
    [r] CODE LSW
    [r] BVOCNAME ( nfa 1 -- ) ( cfa 2 > cfa -- )
    [r] CODE BVOCNAME
    [r] BVOCWALK ( >nfa 1 -- ) ( >cfa 2 --)
    [r] CODE BVOCWALK
    [r] LSWA
    [r] CODE LSWA
    [#] //
    OK
    "rcdg 'LSW' f/bdisplay.f" CR /O

    [r] LSW
    -- Print names of words in context vocabulary
    [r] CODE LSW
    : LSW CR PWV MAXCOLUMNS @ OUT !
    CONTEXT @ BNAMES //SEEN NAMEZ .NAME ;
    --.
    [r] LSWA
    -- Print names of words in all vocabularies
    [r] CODE LSWA
    : LSWA MAXCOLUMNS @ OUT ! BVOCWALK BVOCNAME BNAMES
    //SEEN NAMEZ .NAME ;
    --.
    OK
    LSW
    CURRENT and CONTEXT are WRK
    LSWA BVOCWALK BVOCNAME LSW .NAME NAMEZ //SEEN BNAMES FAUXHDR OK
    --
    me

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)