Jump to content
Tmp2k

X16 Web IDE Project

Recommended Posts

I've really not been paying attention, I completely missed r37, and the evolution of this website/forum, but I'll try and be a bit more useful going forwards 😄 

I've added r38 to https://x16.tmp2k.com 

What's a web IDE?
I started this project last year when I discovered WASM (thanks to sebastianvog). Most of the original GUI was pushed back into the main X16 Emulator repo but I carried on at a tangent with some of my own ideas.

https://github.com/Tmp2k/x16wide is a simple Web IDE that allows you to develop BASIC programs from any device with internet access and run them on a web-based emulator. You can also share them with a single click (no signup needed). I've also added a virtual PETSCII keyboard.  By pressing alt, you can see the PETSCII chars on screen and you can either type, or click the keys ...and that's about as far as I got.

I want to add an assembler/compiler to allow people to create PRGs in assembly/c/etc. or even just the ability to load PRGs externally, or from the X16 repo/app-store when that comes along. I have a plan on how to acheve this.

The project is open source and I'd welcome any help, there's a road-map on the github page.

Here's an example of a BASIC program using PETSCII ->  x16.io/petscii
 

  • Like 4

Share this post


Link to post
Share on other sites

I did, that's why it seems so similar, I wrote the GUI for it.  But an IDE is a differnt thing altogether. The IDE is a much more complicated setup, it uses frameworks, build tools, node packages, a database etc etc.  It wouldn't make sense to include all this in the main Commader X16 repo, it's a project in itself. 

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

What I have started working on is to have an additional web-assembly library target in the main emulator project. it will produce the webassembly binaries and a core js interface for low-level interactions with the emulator. it won't generate any html/css files. It's meant to be consumed by more complex projects as @Tmp2k is mentioning. The core library would stay vanilla-js with no framework dependencies other than the emscripten compiler. As a proof of concept I am building an Angular web app  which uses the library.  Not sure when this is landing, but hopefully soonish. 

Having said that, i think there are still many features that can and hopefully will be added to the core web emulator, and that should/will be part the main x16emulator repo. or possibly there could be another project under the umbrella of the main x16 repo for a full featured web emulator. I think having it there would probably mean more contributors than forking off. But of course anyone can do how they please through the power of open source 🙂

Cheers, looking forward seeing x16wide evolve....

Edited by SebastianVoges
cause i can

Share this post


Link to post
Share on other sites

I like the idea of the JS interface. I've been playing around with the code Emscripten generates but it seems very unwieldy. 

The main thing I was trying to do was launch/destroy specific WASM binarys on the fly using a simple method with a few params. This would allow you to choose what version of the emulator/rom to run. Meaning that code shared with version X would continue to run when later versions are released. Obviously this would also extend to starting/stopping/inputting data etc

Then if you could load different binaries, you could also load an assembler, have that output a file, use the Emscripten API to transfer that to local storage, then load the emulator with the file etc. 

I found it very difficult to have more than one WASM binary on page, even if only one is running at a time, although it was quite a while ago now I can't remember what the issue was. 

The JS interface you're working on, is the latest version just on the main repo or have you forked your own copy? I'd be happy to help, or if you've already got it up and running/documented I could incorporate it in to the IDE and use it in anger to see how it works out. 

 

 

Share this post


Link to post
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.

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.


×
×
  • Create New...

Important Information

Please review our Terms of Use