Jump to content
IGNORED

Introducing Structured Extended BASIC and TiCodEd


SteveB

Recommended Posts

Beside the problem that external changes to the image file are not visible inside the MAME emulation, the disk image file in MAME is written on exit (when dirty), so everything that you changed externally during runtime will be lost.

Link to comment
Share on other sites

13 hours ago, SteveB said:

I had some time in a hotel room and was quite bored ...  so installed MINT Linux, Lazarus and compiled TiCodEd 2.2.2 for Linux x64. As the Mac is already unixish there was little to change to get it running. Since using TiCodEd for Windows together with Classic99 works great under Linux WINE including the key-emulation integration (windows native functions), the native port may not be as usefull, as I am not aware of any emulator on Linux having a FIAD disk emulation. MAME does not refresh the disk once loaded, so using the post-processing command to add the created file(s) to a disk image, i.e. using @ralphb 's xdm99 will still require to restart MAME. I haven't checked TI99sim. 

 

Please let me know how it works on other recent distributions. I only testet Elementary OS 6.0 (Odin) so far. If you actually use it, I may compile at least major releases for Linux. For now, this is just a published experiment born on an idle summer night in Düsseldorf.

 

TICodEd V222 Linux-X64.zip 3.58 MB · 2 downloads

Dumb question: how do you get the executable to run under Linux? I have Linux Mint and double clicking on it requires some application association to run. It also does not run from the shell using sudo ./TICodEd. I normally run the Windows version under Wine.

Link to comment
Share on other sites

  • 1 month later...

With @pixelpedant 's successful release of "Hell's Halls" I wondered whether it would be possible to develop this game in TiCodEd. It wouldn't.

 

In general, all valid (Extended) BASIC programs are also valid "Structured Extended Basic" programs, as all added features are optional, you may use TiCodEd just as an editor with XB Syntax Highlighting and an integration to Classic99 via keyboard-emulation.

 

Two things didn't work:

  1. CALL FILES(1) / NEW frees up memory. TiCodEd just switches to IV254 format when the VRAM memory is full.
  2. An undiscovered bug mishandled trailing Comma in DATA Statements, used by "Hell's Halls".

The release 2.3 fixes both issues. You may now select the memory base for CALL FILES 1, 2, 3 or even 0, which won't work on the real hardware. It is now possible to use the source code of Hell's Halls in TiCodEd and save it in a FIAD file (via "build"), which will be byte-identical to paste the source to Classic99 and save it to FIAD, but faster. 

 

Release 2.3 is now available for Windows (64 and 32 bit) and Linux X64 at https://lizardware.de/

 

Enjoy.
 

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

21 hours ago, SteveB said:

With @pixelpedant 's successful release of "Hell's Halls" I wondered whether it would be possible to develop this game in TiCodEd. It wouldn't.

 

In general, all valid (Extended) BASIC programs are also valid "Structured Extended Basic" programs, as all added features are optional, you may use TiCodEd just as an editor with XB Syntax Highlighting and an integration to Classic99 via keyboard-emulation.

 

Two things didn't work:

  1. CALL FILES(1) / NEW frees up memory. TiCodEd just switches to IV254 format when the VRAM memory is full.
  2. An undiscovered bug mishandled trailing Comma in DATA Statements, used by "Hell's Halls".

The release 2.3 fixes both issues. You may now select the memory base for CALL FILES 1, 2, 3 or even 0, which won't work on the real hardware. It is now possible to use the source code of Hell's Halls in TiCodEd and save it in a FIAD file (via "build"), which will be byte-identical to paste the source to Classic99 and save it to FIAD, but faster. 

 

Release 2.3 is now available for Windows (64 and 32 bit) and Linux X64 at https://lizardware.de/

 

Enjoy.
 

Hi SteveB,

 

New TiCodEd user here.  Was wondering if there might be any interest in binaries for the Raspberry Pi / ARM (since you already have ones for Linux/x86)?  Is that something you can provide?  

I'm happy to manually compile if that's possible.

 

Thanks for a great tool!

 

Link to comment
Share on other sites

My aged Pi 3B is somewhere stowed, I don't have a Pi at hand. I used the Lazarus environment on the Pi and you should be able to compile the included source on the Pi without changes, once you got Lazarus set up. 

 

I am not sure if there is a broader interest in a Raspberry Pi version of TiCodEd. What is your usage? Combined with Retro-Pi and MAME?

 

If you run in any issue when compiling let me know here or in a direct message.

Link to comment
Share on other sites

  • 2 months later...

@Vorticon brought up the topic of "Prescan", which I had neglegted so far with the focus on compiling BASIC. TiCodEd can now create a comma-separated list of all used variables for prescan optimization. I also enhanced the character definition page with flip, rotate and invert, after I had to do this manually with a player-graphic and didn't enjoy it much. 

 

What's new in Version 2.4?

  • Util Menu: Hex2BIN$ is a dialog to extract HEX data from a text, i.e. a listing scan
  • Var page: PreScan List of variables
  • Char page: Flip, rotate and invert added
  • Bugfix: BIN$ had issues with >22 "Quote" character

Release 2.4 is available for Windows (64 and 32 bit) and Linux at https://lizardware.de/

 

Enjoy.

  • Like 8
  • Thanks 1
Link to comment
Share on other sites

  • 3 weeks later...
On 8/24/2022 at 2:46 PM, SteveB said:

I just added a Mac OSX X64 package of version 2.3 to https://lizardware.de/.

 

Let me know if you use TiCodEd on Mac OS. 

Hello, I'm new here and use Macs exclusively (yes, one of them) :).  I was thrilled to see your Mac download, unfortunately, I can't seem to get it working. On M1 (Apple Silicon) Macbook Air. When when I try to launch the TiCodEd application I get a dialog that says "You can’t open the application “TICodEd” because this application is not supported on this Mac.".  Unfortunately, no additional information is provided as to "why".

 

Is this a 64-bit application? Any suggestions?

 

btw. I'm completely mind-blown by the amazing work you (and others in the community) have done here. If only coding on EB had been this powerful back in the day.  :)

 

 

Link to comment
Share on other sites

2 hours ago, SteveB said:

Is there a legacy-layer to be installed/activated for x64 software on a M1 Mac?

There is a sw layer to allow 64-bit intel mac programs to run on the M1 (Rosetta), but the mac will *only* use 64-bit sw, that's why I was asking if the TiCodEd for mac was perhaps 32-bit? This is doubtful since all modern macs, intel or Apple Silicon, are 64-bit exclusively and have been for years now.

 

I'd be interested in getting this to work as a native Mac App if feasible. At this point I was able to get TiCodEd running on my mac using "PlayOnMac" which is an app that wraps the WINE library for using Windows apps and games on linux (or mac). However, the Classic99 emulator does not run using WINE, so I have mame ti99_4a configured as a native mac app.

 

What's a typical / efficient development cycle look like when using TiCodEd and Classic99, or alternatively Mame?  How are people getting their code onto the emulator for each code/test/code cycle?  Excuse my "newbieness", but I'm also not too experienced with the various TI disk formats, etc. All I ever had was the cassette player back in the day. 

 

Edited by retrodroid
Link to comment
Share on other sites

I just got the confirmation that even the older version which ran fine on a M1 does not work anymore on an updated M1 Mac. We will check if Lazarus has already updates for this.

 

There are Linux users who run TiCodEd and Classic99 on WINE. I am surprised that this does not work on the Mac. Classic99 has the big advantage of the File-in-a-Directory (FIAD) disks, where you can update files while the emulator is running. With the keyboard-emulation of TCodEd you may automate your build to load and run your program on the XB prompt in Classic99. Keyboard emulation is only available in Windows and MAME for example loads a disk-image on startup and gets no outside updates.

 

I have Classic99 and TiCodEd running side-by-side when developing XB programs. I start XB (Original, RXB or G.E.M. XB 2.9) in Classic99 and leave it at the prompt. I usually switch Classic99 to CPU Overdrive as it closely resembles the speed of a compiled program. When I wrote some Structured Extended Basic code I want to test I simply press Ctrl-B for starting the build-process. TiCodEd switches to the Log-Screen and shows whether there were errors/warnings or everything was okay. I press the "run" button at the lower center of the screen and the Classic99 window gets activated and receives a "RUN DSKx.MyProg" input and starts the program. I could also hit "Compile" and the compiler would start up to the point the manual assembly with ASM994a.EXE is required and proceed from there manually. Both can be automated after a successful built  in the Project page by setting a checkmark. After testing I end the program to be back on the XB prompt, starting all over again.

 

When there is a BASIC error message with a line number I check the XB page to get the context and then fix it on the SXB page. 

 

A complete run-through with examples up to a (virtual) cartridge is given in the TiCodEd Beginners Manual , where you can also read that I started quite similar BITD, with just a console, Extended BASIC, Speech Synth, Joysticks and a tape recorder ... and I wanted to finish the games I started almost 40 years ago.

 

Steve

 

Link to comment
Share on other sites

13 hours ago, retrodroid said:

What's a typical / efficient development cycle look like when using TiCodEd and Classic99, or alternatively Mame?  How are people getting their code onto the emulator for each code/test/code cycle? Excuse my "newbieness", but I'm also not too experienced with the various TI disk formats, etc. All I ever had was the cassette player back in the day.

MAME is not well suited to be integrated in a development cycle with external programs. The reason is that most media (floppy, hard disk) cannot be changed during runtime by external programs. To make things easier, I wrote TIImageTool that allows you to copy the external files on the image; then you would fire up the emulation with that modified image.

 

There is another new way, though, with the integration of the TIPI emulation which actually allows you to modify files during runtime, because the files remain under control of the TIPI.

  • Like 1
Link to comment
Share on other sites

Thanks for the responses.  The TiCodEd and Classic99 combo does sound pretty great.  

 

If I can get TiCodEd running natively on my mac I can likely live with the mame limitations given the niceties of living on my native platform.

 

Otherwise, I could use TiCodeEd via WINE but integration outside of its windows drive with a native emulator might be a challenge, not sure.

 

Also, Classic 99 under WINE on my M1 will launch, I'll even hear the initial "beep" sound, but screen is black and after that there is some noise coming via the audio channel.  Since it's running x86 code the mac would need to cross-compile it to arm, perhaps that step makes it incompatible with WINE.

 

I'll take a look at TIImage Tool and TIPI as well, not familiar with either.

 

Link to comment
Share on other sites

TIImageTool is particular useful when you work with disk images (*.dsk, *.hfe). Classic99 relies mainly on real file access, so you won't get much assistance from TIImageTool in that respect.

 

FWIW, MAME runs natively in Windows, Linux, and macOS, no WINE needed.

  • Like 1
Link to comment
Share on other sites

A short update on the Mac port: It seems that with the latest MacOS release the x64 binary wont work anymore on the modern M1 processor. Lazarus offers two targets on MacOS/Darwin: x64 and aarch64. I don't own a Mac, but I will try to get this working for both architectures. Then we will have five platforms: Win32, Win64, Linux, Mac Intel and Mac ARM... more than active users?  🤔

 

 

  • Like 2
Link to comment
Share on other sites

4 hours ago, retrodroid said:

Otherwise, I could use TiCodeEd via WINE but integration outside of its windows drive with a native emulator might be a challenge, not sure.

If Classic99 runs somehow in WINE you need to have both programs running in the same Windows session, i.e. by starting a file-manager and then use this program to launch both Classic99 and TiCodEd.

 

You may also consider running the BOCHS emulator with a full Windows installation or perhaps even ReactOS may work. 

Link to comment
Share on other sites

23 hours ago, SteveB said:

If Classic99 runs somehow in WINE you need to have both programs running in the same Windows session, i.e. by starting a file-manager and then use this program to launch both Classic99 and TiCodEd.

 

You may also consider running the BOCHS emulator with a full Windows installation or perhaps even ReactOS may work. 

Okay, more research and testing indicates that nobody has gotten classic99 running on WINE with an M1 mac. It works for some folks on the intel macs, but I guess adding the requirement for the Rosetta intel->arm cross-compilation throws a wrench into the works.

 

I looked into both BOCHS and ReactOS, but ReactOS doesn't support M1 and no evidence that anyone has tried to get BOCHS to work on it. Seems likely that the underlaying arm architecture would throw a wrench into those works as well. But thanks for the suggestions.

 

I do have mame installed and configured, so the best I can hope for is probably/hopefully getting the TiCodEd working on my m1 mac natively, then using native mame to test on.  

On 11/15/2022 at 9:12 AM, mizapf said:

TIImageTool is particular useful when you work with disk images (*.dsk, *.hfe). Classic99 relies mainly on real file access, so you won't get much assistance from TIImageTool in that respect.

 

FWIW, MAME runs natively in Windows, Linux, and macOS, no WINE needed.

 

I read up TIImageTool = quite the comprehensive utility!

 

Not clear how/if I can leverage it to let me copy an updated EB file onto an existing disk image (already mounted in mame) so I can have automated deployment of new builds to the disk image for testing? I saw the CommandLine options but nothing there seemed like it would fit the bill.

 

Link to comment
Share on other sites

1 hour ago, retrodroid said:

Not clear how/if I can leverage it to let me copy an updated EB file onto an existing disk image (already mounted in mame) so I can have automated deployment of new builds to the disk image for testing? I saw the CommandLine options but nothing there seemed like it would fit the bill.

That's what I said. During runtime you cannot change the image, more exactly, the emulation will not notice that you changed the image. The reason is that MAME reads the disk image when mounting and converts it internally to a low-level magnetic flux sequence. The flux sequence is converted back to the image format when you leave the emulation. That also means that the image file is not updated until the emulation is closed. This is also true for the hard disk images which are processed in a similar way.

 

In this situation, if you don't want to shut down the emulation, your only chance is to unmount the disk image in the OSD menu. This has the same effect. Then you can change the image and remount it.

 

An exception is TIPI. Here, the TIPI has the files on its own file system, and it exchanges the files with MAME during the file operations. So the files will also be updated on the TIPI on write operations in the emulation.

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...