Hello guys !
I'm french so my english is not very good, but I will try to speak correctly.

I am creating a new programming langage for certain Texas Instrument calculators, named the UnderBasic. That's a langage wich permit to use functions and a lot of features. It is next compiled in TI-Basic.
The compilator is finished, and the Basic code is displayed in a seperated area when you type UnderBasic code. But there is one thing missing to my project : an online emulator.

I don't have the necessary knowledges to create my own emulator, so I want to use jsTIfied. Are you agree with this ? It will help me a lot !

The langage is evidently in english and the environment too, and I will redact soon a tutorial to learn UnderBasic. I just want to use this emulator.

If you are agree, please tell me how to use it and if I can do something back.

Thanks by advance !

EDIT : Here is the list of compatible calculators :

- TI-82 Stats.fr
- TI-82+ (=TI-83+)
- TI-83+
- TI-83+.fr (=TI-84+ SE)
- TI-83+ SE
- TI-83 Premium CE
- TI-84+
- TI-84+ SE
- TI-84+ CSE
jsTIfied is free to use for everyone who owns a TI-Calculator. However, you will need to dump a ROM image to use the emulator - TI forced us to create emulators that need the ROM from the user to make sure people buy a real calculator to use it in electronic format too.
The help page from the jsTIfied emulator says:
"Where can I download a ROM image?
Your calculator's software has a unique area called the certificate; it is illegal to share ROMs (otherwise jsTIfied would come with the ROM already installed and save you work!). You must use something like Rom8x to dump the ROM image off of your calculator. Cemetech does not recommend downloading ROM images from the internet, because as previously stated, it is illegal for sites to be distributing ROMs. Although Cemetech does not provide support, members have reported that the WabbitEmu emulator can generate .ROM images from .8xu OSes provided by Texas Instruments. The legality of this approach is contested; please contact the WabbitEmu developers for support and details."

After uploading a ROM image, jsTIfied will act just like if it was your calculator! Smile

Edit: I just was told that the question is about embedding the emulator in a website and not using it here. Sorry for misunderstanding you.
Interesting.
It's not the first time the use case of leveraging the jsTIfied functionality (and thereby widening usage / reducing work duplication / allowing contributions, in the cooperative spirit which has been powering most of our community works for a couple decades) springs somewhere.
However, AFAWCT from previous episodes, jsTIfied is not designed to be used outside of Cemetech, or designed not to be used outside of Cemetech.
Oh ok, I will try to use it and we will see if this works or not !
ClementNerma, the emulator is created entirely by Kerm; I would highly recommend you asking him before doing anything.
OK I will. Thanks !
Lionel Debroux wrote:
Interesting.
It's not the first time the use case of leveraging the jsTIfied functionality (and thereby widening usage / reducing work duplication / allowing contributions, in the cooperative spirit which has been powering most of our community works for a couple decades) springs somewhere.
However, AFAWCT from previous episodes, jsTIfied is not designed to be used outside of Cemetech, or designed not to be used outside of Cemetech.
As you know, jsTIfied was enhanced (at the request of TI-Planet, yourself, critor, and Adriweb), to contain not one, but two different APIs for remotely loading files to the emulator. The two APIs are as follows:


Code:
You use the API by launching jsTIfied with a URL like this:
http://www.cemetech.net/projects/jstified/api_load.php?loadfile=<someURI>

(1) URIs such as 928%252Ftetrica.8xp load the specified file inside an archive in the Cemetech archives. The initial number is a file ID.
(2) URIs that are URLs, like http%3A%2F%2Fticalc.org%
2Farchives%2Fsomescript%3Fid%3Dsomefile%26contents%3Dsomesubfile, are fetched and loaded. These MUST return the following data:
  -- One or more lines, demarcated by \n
  -- The first line must be OK or FAIL. If the first line is FAIL, the second line may contain a plain-text error description (but that's optional).
  -- If the first line is OK, the remaining lines contain the contents of one .8** file on each line. Each of these lines is base64-encoded
Even with this API, the most important issue is the fact that this still requires user-interaction to initially load a ROM, which is not acceptable in all cases. Having an API to load it programmatically would solve lots of things. And AFAIK, that part is absolutely not something that would put Cemetech in jeopardy.

(Moreover, is the "headless" (just the emu) frame page implemented/available )
Adriweb wrote:
Even with this API, the most important issue is the fact that this still requires user-interaction to load the ROM, which is not acceptable in all cases.

(Moreover, is the "headless" (just the emu) frame page implemented/available )
No, Cemetech's tool is still Cemetech's tool (and helpfully brings many users here who subsequently are able to use our human and electronic resources to learn and teach). This API does not in fact require user interaction, since any script or webpage can forward to the URL listed in my previous post (as we argued in that ill-fated email discussion two years ago).
KermMartian wrote:
No, Cemetech's tool is still Cemetech's tool

Open-sourcing (or making actual proper APIs to expose the emu's functions) doesn't mean you will lose ownership. I'm not sure what you're getting at.

KermMartian wrote:
helpfully brings many users here who subsequently are able to use our human and electronic resources to learn and teach

As many people have said already, your/Cemetech's lack of open-sourceness directly contradicts that point, since lots of people would be glad to learn by example from your programs. But you're slamming the door [of knowledge via the source code] at their face instead.
But it's not like I can change your POV on that, many have tried already.
Also let me quote this, from IRC (#ti) recently:
Quote:
[12:08pm] nikky: This community thrives with open-source projects, not closed-source walled gardens.
[12:08pm] nikky: Cemetech is undoubtably the largest walled-garden we've ever encoutered.
[12:08pm] nikky: As much as I personally dislike them, sircmpwn and Kevin_K understand the importance of open source
[12:10pm] nikky: Closed-source sets the ground for abandonment
...
[12:28pm] debrouxl: Closed-source developer-oriented tools aren't something we, as a cooperative community, should encourage.


And while I don't really know the story behind this:
Quote:
[12:14pm] nikky: And let's be real explictly clear here, the "stolen code" incident is where someone KermPhD didn't like may have used some of his code without credit.
[12:15pm] nikky: Hardly a reason to bring down the whole fortress.


KermMartian wrote:
This API does not in fact require user interaction, since any script or webpage can forward to the URL listed in my previous post (as we argued in that ill-fated email discussion two years ago).

Well, that's great, then. But now please do tell us how to, without user-interaction, load jsTIfied with a given ROM to autoload/boot with, and transfer a program after it's all ready. An added bonus would be to launch the said program, since we're aiming for maximum user friendliness.
As long as this is not doable, it certainly doesn't fit the needs of many people (and as you can see, it's really not just me or TI-Planet).
I believe you're shooting yourself in the foot, since you could very well allow this kind of usages while requiring a backlink to Cemetech, for instance.
As Adriweb has just posted, and as you know because we already told you, your API is woefully limited and unsuitable for even basic use cases... I went out of my way not to commit that mistake in my JS TI-68k emulator: for instance, there's a direct JS API for sending keys.
We proposed backlinks on every page of TI-Planet leveraging jsTIfied - but there's no such page because jsTIfied is not usable for our basic use case.
Also, iframes are so 1990s and not the best thing to do to show an open, sharing mindset.

Even though it was a highly infrequent event and that it touched TI-eZ80 files which jsTIfied cannot deal with, let it be noted that you recently reorganized your archives, without keeping backwards compatibility links (counter to W3C guidelines and common sense recommendations), and therefore would have broken usage of your first API, had it been possible for those files.

As I posted on #ti in the same discussion, jsTIfied and the JS TI-68k emulator are both derived from an era where Emscripten was less of a usable option than it became. The correct way to make emulators which also work in browsers is to make portable C/C++ code and retarget it using Emcripten, soon Clang (with a WebAssembly backend). MAME/MESS are doing it the right way, with jsmess - but then their TI-Z80 support is sub-par, despite Jonimus' efforts (and their TI-68k support is worse).
Adriweb, I totally agree with this, and also I want to add having those programs Open Source would allow people to improve them.

But I also want to say that this arguement seems to last for years now and it won't lead to anything - and most importantly it doesn't belong here.
Adriweb wrote:
Well, that's great, then. But now please do tell us how to, without user-interaction, load jsTIfied with a given ROM to autoload/boot with, and transfer a program after it's all ready. An added bonus would be to launch the said program, since we're aiming for maximum user friendliness.
As long as this is not doable, it certainly doesn't fit the needs of many people (and as you can see, it's really not just me or TI-Planet).


You already know why you can't load a ROM via the API, as that would require the other site to host and distribute a ROM which TI is against. You already said yourself that you didn't want to host roms so how would such an API work if it didn't host ROM on one server or another nor distribute TI's Copywrited OS upgrades? As for auto launching the program via the API, I'm sure Kerm would be willing to add that for you, whether it be via a list of key pressses or just providing an app or program name to run.
To Lionel, et al.: jsTIfied is gratis, not libre. Get over it. Competition (friendly, or otherwise) is good for the marketplace of ideas. If you don't like the toolchain Kerm offers, write your own. Shaun, Jonimus, and I are all Cemetech staff, and we still write our own. The stuff I work on is even open source. But there is no sense in which the Cemetech tools are a "walled garden" or promote "vendor lock in": they use the same interchangeable formats as the rest of the community, and data flows both ways out of toolchains (or they wouldn't be very useful, would they?). And just to be super clear: your self-righteous tirades are not welcome on this forum, or in our IRC channel.
While I am pro-open-source and don't necessarily agree with the decision of keeping DCS and jsTIfied closed-source as well as some other decisions or stances from Cemetech staff, I believe that they are within their rights to decide if they want to keep their projects open-source or not, as well as deciding their stances.

If people are not happy with the emulator being closed-source, then they are free to create an open-source alternative. While restarting from scratch is not the desirable solution, sometimes if it becomes clear that both parties are unable to work together, then sometimes we don't have much choice, just like with TIGCC<>GCC4TI, KarmTI<>Firebird Emu, SiCoDe<>Basicoderz, TI-BANK<>TI-Planet and Omnimaga<>CodeWalrus. It can even perhaps generate some competition, resulting into both parties trying to outdo the other (eg jsTIfied adding features that the open-source alternative lacks and vice-versa) or at least bring similar features earlier than originally intended.
I've a problem with the emulator...
How can I load it ??

I've tried with jQuery : $('#emul').load('https://www.cemetech.net/projects/jstified/api_load.php?loadfile=928%252Ftetrica.8xp')

but the chrome's inspector says :

XMLHttpRequest cannot load https://www.cemetech.net/projects/jstified/api_load.php?loadfile=928%252Ftetrica.8xp. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

NOTE : I'm using a local XAMPP

EDIT : I've finally put an iframe directly on my HTML page, and I get 'OK' next a base-64 text. What can I do with this ?
Help please !
Hi Clement: the emulation needs to be the one in the iFrame. It sounds like you're embedding the URI that you want loaded in the iFrame instead. Can you post some of the relevant HTML for us to inspect?
Here is my code (without HTML5 structure) :


Code:

<iframe id="emulator" src="https://www.cemetech.net/projects/jstified/api_load.php?loadfile=928%252Ftetrica.8xp"></iframe>


And the iframe's content is "OK", next a base-64 text. What can I do with this text ? I just want to emulate the program I've specified in the URI and shows the emulator (with its skin) on my web page.
Sorry, those instructions were slightly outdated. For the example of loading Tetric A from the Archives, this should have been the URL: https://www.cemetech.net/projects/jstified/?loadfile=928%2Ftetrica.8xp . Modify the instructions for loading your own base64-encoded program accordingly.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement