+acadiel Posted October 25, 2020 Share Posted October 25, 2020 Great job, Klaus! Did you see my thread on how similar the cartridge pinouts is as well? Only time will tell if TI had a license agreement with Tomy. I don’t know if people like @tanam1972 can try to find Tomy employees from the 1980s in order to ask those questions. 1 Quote Link to comment Share on other sites More sharing options...
kl99 Posted October 28, 2020 Author Share Posted October 28, 2020 discovered the first GPL lines of TI XB in the 32K Rom1 chip. also commited all four Grom Banks of TI XB: https://github.com/kl9900/TMS9900Family/tree/master/Consoles/TI-99/ExtendedBasic/Grom they compile into binary matching Groms 3-6 of TI XB, which is the base for any Tutor adaptions/comparisons. 5 Quote Link to comment Share on other sites More sharing options...
kl99 Posted October 29, 2020 Author Share Posted October 29, 2020 created a tool to remove the added screen bias from the binaries to reveal more ASCII Text. Those texts can be nicely used as ankers for the comparisons and tell me how the memory locations need to be adapted. Awesome that the GPL code is in CPU memory, even if it is within the rom chip I didn't initially expect. Once we have the full picture, we will know if that advantage was optimally used or if it they still only called some complicated function to read a single GPL byte. 3 Quote Link to comment Share on other sites More sharing options...
+acadiel Posted October 29, 2020 Share Posted October 29, 2020 This is so cool. So many what if’s here... what if our GPL for the /4A weren’t in GROM.... 1 Quote Link to comment Share on other sites More sharing options...
kl99 Posted October 30, 2020 Author Share Posted October 30, 2020 was a bit stuck with Gpl disassembling on tutor1.bin finally made TIImageTool disassemble the whole 32K as GPL (not assembly!) and not stop handling the file on every occurence of a FMT command (byte >08). tutor1.dis Now the big step is to find which memory locations of the Rom1 (tutor1.bin) contain GPL code, which contain GPL DATA, which contain Assembly code, which contain Assembly DATA. 2 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted October 30, 2020 Share Posted October 30, 2020 18 hours ago, acadiel said: This is so cool. So many what if’s here... what if our GPL for the /4A weren’t in GROM.... Maybe it would not have been created. Quote Link to comment Share on other sites More sharing options...
kl99 Posted November 9, 2020 Author Share Posted November 9, 2020 Some updates happened... On 23th october I created a 90 minute video, which was streamed last saturday by the Chicago TIUG: Since the recording happened, the process continued and was covered here. All the source code files have been published on github. The ROM1 chip (>0000 to >7FFF, 32KByte) contains both GPL and Assembler code. It is therefore setting some extra challenges identifying what is - Tms9900 Assembler instructions - DATA referred by Tms9900 Assembler instructions - GPL instructions - DATA referred by GPL instructions. I identified only some GPL parts so far, having the fully adapted "BASIC KEYWORD TABLE" inside the ALCS GPL source code, the Tomy has that from >6A1A to >6BB2. I created a list how many times each type of GPL instruction occurs in a potential GPL Disassembly of ROM1 and how many times that same type of GPL instruction is occuring in the XB Grom files, but this didn't help too much in finding similar sequences of instructions. Then i explored the debugging features of MAME when running Tomy Tutor, i thought it would help knowing which different values the Tms9900 PC (Program Counter) has during the start of the machine and when using the system/basic. The PC is the CPU register that refers the address of the currently executed machine instruction. All those addresses the PC gets during runtime are for sure Assembly instructions, and are verified to not be GPL, and they are further verified to not be DATA but actual instructions. And they further verify that an instruction starts at this address; not a byte earlier or later but exactly at this byte, a big help in disassembling, when some instructions are one byte, some are two bytes and some are three bytes. This is how you do that: You start mame with the "-debug" option, and then in the debug window you enter trace mode by "trace tomytrace.log" to get a text file with a line for the address of each executed instruction. Then I played around in the emulator to use most of the system. The huge text file then got processed to have each address only once and sorted. Now we have a nice list of 1705 CPU addresses which are verified addresses of assembler instructions in ROM1. As a bonus we have 97 additional CPU addresses which are verified assembler instructions in the unexplored beginning and end of ROM2. These are not just assumptions by a disassembler, these are verified to be assembler instructions because the PC (Program Counter) had their address in its register. This will allow: - searching those sequences of assembler instructions in TI system source code. - not loosing time to try to identify GPL instructions within those ROM1 addresses. Then i starting creating source code files from this text file to generate the binary content for ROM1. I have finished all from >2A4C and higher. Still need to do >0020 to >263A. I did not add any disassembled instructions between the addresses the PC really was executing, even though if there is only a few bytes in between there is a high change we are talking about assembly code as well, but the point was to use only verified instructions. The process can be improved by playing around in the emulator and trying all features of the system to reach most of the used assembly instructions. Here is the visual comparison of ROM1 from >2880 forward. Even though I have identified some GPL parts in ROM1, this binary is the pure output of the tms9900 assembler. >2880 to >2CFF >2D00 to >317F >3180 to >35FF >5100 to >557F >5580 to >59FF >5A00 to >5E7F >5E80 to >62FF >6300 to >677F >6780 to >6BFF >7080 to >74FF 1 Quote Link to comment Share on other sites More sharing options...
+acadiel Posted November 9, 2020 Share Posted November 9, 2020 Excellent work! Let me know when you get the Japanese BIOS and Japanese BASIC that I sent you. Would be interesting to see if any similarities exist. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.