Jump to content
IGNORED

FastBasic 4.5 testing release


dmsc

Recommended Posts

3 minutes ago, Philsan said:

Wouldn't be better to map fire to CTRL and cursor movement to LEFT ALT + arrows (like state-of-the art emulator Altirra)?

Moreover, notebooks don't have numpad.

Its a little bit tricky to do in MAME, what I can I do is map the arrows to *,-,=,+ and move the cursor with CTRL+Arrows, but on Mac CTRL+Arrows change the current desktop. (All can be easier if atari800 emulator have an JavaScript/WebAssembly target using emscripten).

 

https://github.com/eahumada/mame/blob/master/src/mame/drivers/atari400.cpp

 

Also, I exploring to continue working with jsA8E, but also need some work in the future.

 

https://eahumada.github.io/AtariOnline/fastbasic.html?disk_filename=fastbasic.atr

 

I wonder: On the FB IDE, how is possible to exit from the Save file prompt when press CTRL+Q if one not wish to save the sources? I get stuck in that point when I use the IDE in the emulator, as the "virtual" disk is write protected.

 

Link to comment
Share on other sites

  • 1 year later...

This is kind of a bump of an earlier inquiry I made at least a year ago, but probably on a different FASTbasic post (couldn't find it).

 

Anyway I have been having fun with my 4-in-1 language selection on a customized 1200XL using the function keys F1-F4, and currently have these assignments...

 

F1: Basic RevC

F2: Altirra Basic

F3: Assembler/Editor

F4: SpeedScript

 

I think it would be even more useful to substitute FASTbasic (Integer Version) for the Basic RevC, but I only see a XEX possibility presently using the MAKE command. Is an 8K binary version also a possibility?

 

This idea would also work in one of the 4 language slots of a U1MB, so it would see much wider use than my example application.

 

Thanks :)

 

  • Like 1
Link to comment
Share on other sites

Hi!

On 5/12/2022 at 7:34 PM, mytek said:

This is kind of a bump of an earlier inquiry I made at least a year ago, but probably on a different FASTbasic post (couldn't find it).

 

I think it would be even more useful to substitute FASTbasic (Integer Version) for the Basic RevC, but I only see a XEX possibility presently using the MAKE command. Is an 8K binary version also a possibility?

 

It is possible, but you would lose the possibility of compiling programs from the IDE. This is because the compiler copies the runtime to the compiled binary to build the complete executable. If the runtime was located in the cart memory, it would be at a different address than needed.

 

A solution would be to copy the runtime from the cartridge to low memory at start, but then the interpreter would have less memory available than the binary loaded version (because the cartridge would always use 8k of memory).

 

I think that the best option would be to copy the full IDE from cart to RAM and then disable the cartridge - then it would behave like a fast-loaded version, this would be possible if you assume a BASIC ROM compatible cart controlled by PORTB bit 1.

 

A third idea: a version that has the runtime in RAM and the compiler and editor in the ROM - but that when running a program disables the cartridge first. This would make more RAM available for the program being run, but would need some adjustments to the code. I will see if I can come up with a version that does this.

 

On 5/12/2022 at 7:34 PM, mytek said:

This idea would also work in one of the 4 language slots of a U1MB, so it would see much wider use than my example application.

Are those also enabled/disabled using PORTB?

 

Have Fun!

Link to comment
Share on other sites

3 hours ago, dmsc said:

I think that the best option would be to copy the full IDE from cart to RAM and then disable the cartridge - then it would behave like a fast-loaded version, this would be possible if you assume a BASIC ROM compatible cart controlled by PORTB bit 1.

Yes that's how my 4-in-1 Language EPROM presently works. It's composed of four 8K banks that are selected individually via the upper two address bits, with whichever bank is active being controlled as if it were built-in Basic on an XL/XE system.

 

4 hours ago, dmsc said:

Are those also enabled/disabled using PORTB?

Good question, maybe @flashjazzcat can answer that.

 

4 hours ago, dmsc said:

A third idea: a version that has the runtime in RAM and the compiler and editor in the ROM - but that when running a program disables the cartridge first. This would make more RAM available for the program being run, but would need some adjustments to the code. I will see if I can come up with a version that does this.

Thanks for looking into this. i think it could be real cool ?

 

Link to comment
Share on other sites

Hi!

On 5/15/2022 at 2:16 AM, mytek said:

Thanks for looking into this. i think it could be real cool ?

 

 

Here there are two test versions:

fb-beta46-basicrom.bin : A compressed image of the full floating-point interpreter, stored in a ROM image that should replace the BASIC ROM in an XL computer. It decompresses to $2000, disables the BASIC ROM and starts.

fbi-beta46-cart.bin : A cartridge image if the integer interpreter. The runtime (interpreter) is compressed and copied from ROM to RAM at start, but the compiler and editor is ROM. This means that less memory is available for the user, but it is a standard cartridge and compatible with all Atari computers.

 

The first version was easier to do, because the binary is not changed a lot, only the editor is changed to start with the already loaded help text.

 

The second version was more difficult, as I have to compress the interpreter because the cartridge does not have enough space for the code to copy from ROM to RAM and the help file. I used a slightly modified ZX0 compressor to make the decompressor code smaller - slow but only 130 bytes, and the ROM has only one byte to spare!

 

Also, the compiler used self-modifying-code, I had to modify it to make it ROM-able - chasing all the bugs produced by the changes.

 

I think that the results works well enough, but IMHO more testing is probably needed.

 

Have Fun!

 

  • Like 4
  • Thanks 2
Link to comment
Share on other sites

@dmsc When we had corresponded previously, I recall saying it would be neat if you had a tool like basicparser/tbxlparser that would abbreviate and obfuscate and make optimized FastBasic listings (mostly for the tenline basic compo). Did you say you had, or had in development, such a tool? I find it a real timesaver in my TBXL development routine, and it's the missing link for me to switch to FB.

  • Like 1
Link to comment
Share on other sites

On 5/18/2022 at 10:03 PM, dmsc said:

Here there are two test versions:

fb-beta46-basicrom.bin : A compressed image of the full floating-point interpreter, stored in a ROM image that should replace the BASIC ROM in an XL computer. It decompresses to $2000, disables the BASIC ROM and starts.

fbi-beta46-cart.bin : A cartridge image if the integer interpreter. The runtime (interpreter) is compressed and copied from ROM to RAM at start, but the compiler and editor is ROM. This means that less memory is available for the user, but it is a standard cartridge and compatible with all Atari computers.

Thank you very much for doing this :)

 

For 576NUC+ users I have made a new ROM called the Programmer-Pack which incorporates the FastBasic beta46 binary. I'll be uploading it in the 576NUC+ thread.

 

 

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...