Jump to content

kl99

Members
  • Content Count

    1,055
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by kl99

  1. Merry christmas to everybody!
  2. enjoyable podcast. it got me through my workday.
  3. I am trying to increase my knowledge on the internal TI System since 1 year now, where Gpl is a big part of it. The Web99 project is the result of that. Just recently I was able to decode GROM cartridges which contain a TI Basic Program back to their original Basic Listing. Now I am working on a converter for the other direction. Transform your Ti Basic/XB Program to run from Grom which is of course best usable with the Ubergrom cart. So far I managed to convert PRK to contain below program instead of its original one. 100 PRINT "HELLO WORLD" 110 END It works and finishes with a Text * DONE *, but you don't get back to the prompt yet. Because >8389 is set to >FF instead of >00. If you change that at the right moment in Classic99, you get to the prompt. So still some things need to be figured out. The intro Screen from PRK also shows before the TI Basic program is loaded. The intro is coded in Gpl and only after the Gpl BEXEC command is called. I totally agree that there is the need for some guides. However you can cut the tasks into two big pieces - Guides helping you how to generate the Grom binaries - Guides helping you how to burn all types of Grom binaries onto an Ubergrom Cart
  4. Very nice mantadoc. Congrats. Bill Gaskill has a whole chapter in his Cartridge Collector's Guide on that device. Can you start a dedicated thread for us to participate once you have it? In total there have been 22 different dsdd disks with cartridge software for this device. We should try to get all of them to you. And I would love to support the format of these grom/rom images in Web99 as export option, so you can even run Rasmus Cartridges from them . I think I found the loader that can be seen on the auction (green display) on a few disk images of mine. More in the dedicated thread.
  5. the GROM simulator did go for 458 USD. who won it? anyone from here?
  6. Also nice for these cartridges, if you change CPU Ram >8389 from "FF" to "00" and hit an error, the running program will break and gets you to Basic. CPU Ram >8389 is the GROM/VDP Flag and gives the interpreter the info where the Basic program is running from. It is treated by the Error Handler as well, therefore the program breaks when not being in GROM mode, which you fake by changing the Memory value directly. I couldn't do any meaning ful afterwards but maybe others know some use for it. Example: 1. start PRK in Classic99 (select 2 from Master Selection Screen) 2. on first input screen (Date questions) change the memory value with Classic99 Debugger "C8389=00" 3. now enter "13" for month and hit enter The cartridge program will break with * Incorrect Statement in 44544 and you are in Basic now and can toy around. Summary of topic so far: So besides being able to analyze/visualize the Basic Source Code can we actually create a GROM cartridge running our own TI Basic Program? Since it can use Subprograms that are defined in its GROM, it could be tried to be integrated in a XB GROM cartridge. If you start the cartridge, it autostarts some XB program stored in GROM. WIth the Ubergroms we are able to actually build a custom XB cartridge. Challenge to everybody: Create a "Hello World" TI Basic program in GROM format
  7. Well, in a standard TI Basic Program ( I consider these special as they are stored in GROM) the Line Number Table is sorted. What can be unsorted in a standard TI Basic Program is the actual Data for the statements pointed from that Line Number Table. If you screw around with the Line Number Table in VDP (make them a lower number than the line before) it leads to certains lines not being shown for LIST but still executed when RUN. We all saw such programs. From the TI-99/4 Home Computer Basic Interpreter Design Specification, Personal Computer Divison, December 7 1979, Revision 1: I wonder how the interpreter then finds the next line to execute, if the Line Number Table is not sorted like in the specs. Anyway. Here are the decoded Basic Files, as Web99 is not ready to be released.... Two of 9 are incomplete because the line number tables contains at least one line number twice, and Web99 doesn't handle it for GROM based Basic files yet. Have fun! ACTVACTG.BAS CLASDATG_Incomplete.BAS CRSMANG.BAS PAYASSTG.BAS PHM3012.BAS PHM3013.BAS PHM3014.BAS SALPLANG_Incomplete.BAS SCHMAILG.BAS
  8. I was able to find the location of the Line Number Table Pointers, it should be possible to convert your own Basic Program into a GROM cartridge. Since Web99 can now decode the Basic Source Code from Binaries automatically, I was able to see the Basic Source Code for the following Cartridges Modules: ACTVACTG CLASDATG CRSMANG PAYASSTG PHM3012G PHM3013G PHM3014G SALPLANG SCHMAILG Maybe there are even more. I had to add the .bin files (unzip the rpk for that) via TI99DIR into a Disk Image to add it into the Web99 Index. Therefore I didn't add all of them. There doesn't seem to apply the rule as with standard Basic Programs that the Line Number Table has to be sorted in memory. Here a detailed description of what is contained in the PRK Binary. PHM3013G.BIN >0000 - >000F Grom Header >0010 - >0012 ??? >60 >00 >1E (seems to be the same for all Cartridges based on Basic) >0013 - >0014 Pointer to End of Basic Line Number Table: >C03C [subtract another >6000 for the 3 console Groms] >0015 - >0016 Pointer to Start of Basic Line Number Table: >D24B [subtract another >6000 for the 3 console Groms] >0017 - >0019 ??? >05 >60 >32 >001A - >002F Program Header >0030 - >0141 PRK Program Start >0142 - >014F no data 0x00 >0150 - >01AF List of Subprogram Link Headers >01B0 - >17FF ??? >1650 Bytes >0219 SUB (char)5 >10DA SUB (char)9 >10ED SUB L >10F3 SUB S >1105 SUB (char)12 >1181 SUB (char)8 >1243 SUB (char)10 >127B SUB (char)11 >14B4 SUB P >14C2 SUB D >1560 SUB (char)4 >1800 - >1FFF no data (each GROM only has 6K) >2000 - >37EF Basic Program Statements, referenced from Line Number Table >37F0 - >37FF no data 0x00 >3800 - >3FFF no data (each GROM only has 6K) >4000 - >57ED Basic Program Statements, referenced from Line Number Table >57EE - >57FF no data 0x00 >5800 - >5FFF no data (each GROM only has 6K) >6000 - >603B ??? >3C Bytes >603C - >724B Basic Line Number Table (4 Bytes per entry) >724C - >724F no data 0x00 >7250 - >77F9 ??? >5AA Bytes >7250 SUB A >74F9 SUB H >76B7 SUB G >775E SUB (char)6 >7794 SUB (char)7 >77FA - >77FF no data 0x00 >7800 - >7FFF no data (each GROM only has 6K) EOF
  9. I did a research in the Cyc. The Subprograms with a special char in the PRK/Statistics module were discovered by Jan Alexandersson from Sweden. He did also decode the TI Basic Source code manually for them, at least parts of them. Didn't check in detail yet. Will link some disks where his name popped up and it was related to PRK/Statistics. Credits belong to him. I am linking what I found in my Disk Collection: PRK-STA.zip
  10. from phm3013g.bin here are the pointers for all the basic subprograms defined. I guess they point to the GROM space since there is no ROM memory for that module. But I couldn't verify that. 0x0150 >74C2 SUB D [stands for DISPLAY] 0x0156 >D250 SUB A [stands for ACCEPT] 0x015C >74B4 SUB P [stands for PREP] 0x0162 >70ED SUB L [stands for LOAD] 0x0168 >70F3 SUB S [stands for SAVE] 0x016E >D4F9 SUB H [stands for HEADER] 0x0174 >D6B7 SUB G [stands for GETPUT] 0x017A >7560 SUB (char)4 0x0180 >6219 SUB (char)5 0x0186 >D75E SUB (char)6 0x018C >D794 SUB (char)7 0x0192 >7181 SUB (char)8 0x0198 >70DA SUB (char)9 0x019E >7243 SUB (char)10 0x01A4 >727B SUB (char)11 0x01AA >7105 SUB (char)12
  11. See attached an basic listing without errors. I verified the length of each line now to match the beginning of the next line. So there are no unused bytes, incidcating an errorfree decoding of all the Lines: 0x2000 - 0x37ff, 0x4000 - 0x57ff, 0x6000 - 0x604f. The program is too long to run from TI Basic. You receive MEMORY FULL. prk.bas
  12. anyone knows of other command modules that have been done with Basic?
  13. PRK consists of 4 grom chips, each 6K or >17FF Bytes. Therefore the Pc99 dump files don't contain any garbage. The phm3013g.bin is 32K large (4 times 8K), therefore it contains garbage 4 times, from >1800 to >1FFF, from >3800 to >3FFF, from >5800 to >5FFF and from >7800 to >7FFF.
  14. are we allowed to hide embedded assembler code in the memory? muhahahaha!
  15. would be interesting to get the Basic Program running from TI Basic with the PRK plugged in. So far no luck, it's a bit difficult because of those special chars, that's why I can't use Paste in Classic99. xdt99 also fails to create a binary out of the source again.
  16. The line number table end address is: 24644 or >6044 The line number table start address is: 29256 or >7248 (last byte from last entry is >724B) The range of memory addresses that are pointed from the line number table goes from 8192 or >2000 to 24632 or >6038 (length of 3 bytes) Also interesting and I only saw that in tweaked Basic Programs (Barry Boone loader etc) that certain line number point to the same memory address: 3220 10646 FOR ]=J TO [ 3290 10646 FOR ]=J TO [ 4450 10646 FOR ]=J TO [ 5350 10646 FOR ]=J TO [
  17. Hi! I managed to decode Personal Record Keeping to its original Basic Source Code Program. It was done using Web99. I cheated a little to find the startaddress and the endaddress of the LineTable and the startaddress and endaddress of the Basic Program Lines but it's impressive that the binary can be actually decoded. Also the line length doesn't seem to be there at the beginning of each line when compared to a standard binary for a basic program. But i simply read each line til the next 0x00. Once I get Web99 to find the 4 addresses by itsself, the tool will be able to show you the Basic Code of all Command Modules that have been programmed in Basic Language. I worked with the phm3013g.bin file (unzip the .rpk or use the attached file) where I discovered some "HCHAR" in its hexcode with the right tokens infront and afterwards, so I thought, hey this has to be decodable in some way to Basic. After accomplishing it I figured I made it more complicated then necessary since I worked with a GROM dump that had random data in the last 2K of each 8K GROM. Further the 8K blocks on the phm3013g.bin file have a different sort order than the PC99 dumps. I should have started with the PC99 files from the start, as they give you a much cleaner picture. phm3013.grm = phm3013g.bin 0x6000 - 0x77ff = LineNumber Table phm30131.grm= phm3013g.bin 0x4000 - 0x57ff = BASIC Program Lines phm30132.grm= phm3013g.bin 0x2000 - 0x37ff = BASIC Program Lines phm30133.grm= phm3013g.bin 0x0000 - 0x17ff = some other data, probaby the GPL subprograms that RPK provides to TI Basic. It could be that it's incomplete or I got something wrong. Also interesting is the use of special chars for some variables or even Subprogram Names. I had to manually replace a "LineBreak" character as Subprogram name to fix the formatting of the Source Code. Maybe the preferred to have single line characters for variables/subprograms and to save memory and they run out of standard chars. Each TI Basic program files defines the beginning of the Line Number Table in Bytes 2/3 of its binary. The End of the Table in Bytes 4/5. Both Addresses actually point you to a VDP memory. Since we are running the program from cartridge ROM, not VDP, these pointers must be different here. I still need to find those two pointers in such a Grom dump. Any help would be appreciated. In the end I would love to be able to visualize any Basic Source Code, a cartridge contains, and even decode the GPL to GPL Source. Would love to tweak around with Car Wars for example. phm3013g.bin personal_record_keeping_pc99dump.zip personalrecordkeeping-decoded2basic.txt
  18. Claudio (not me), a famous computer collector in Austria, visited one of our monthly TI meetings with this very same console. It was US only, and he didn't have the Power Adapter nor a Display for it. As I only come with the VGA monitor for my F18a TI-99, we had no chance to start/test the console. I was curious to read out the ROM/GROMs. If I remember right, the mod was not too big. the GROM port connector each console has was a Y-splitter, one keeps going to the cartridge port, the other backwards which is why the cut in the case was done. We disassembled the console and took some pictures of the console, even funny ones where we act silly by trying to connect the navarone expander at the back. I should have the photos somewhere. He doesn't have the GROM simulator for it. He has a CDC console too, which I took pictures off.
  19. Very nice input. I thought about using the tokenized format to calculate the Hash as well, but different to the binary have the lines sorted first. There are some programs having multiple lines with the same number and/or multiple lines with 0. But I think I handle all cases of that already. Well it might take some iterations for finding the best algo/method but the final goal is to really identify all duplicates. Still have to check where the embedded assembler is stored in PROGRAM files, and how to best store that next to the Basic to be able to generate the final PROGRAM again when exporting it to the TI-99 or Emulators. Is any tool currently visualizing the embedded assembler in any sort?
  20. I am searching the Hex-Bus RS232 device. Anyone willing to sell his to me? We can also trade TI stuff. I need it to get the soon to arrive TI-99/8 interacting with Web99.
  21. Quick Reminder on Users of F18A, new cartridge boards and Navarone Expander. The Navarone Expander is not compatible with the new cartridge boards and can cause damage to the port. Maybe the green screen is happening here as symptom.
  22. You can try to aim for an old Video/Audio Home Cinema Ampifier from the pre-hdmi generation. It's very convenient to connect multiple inputs to one output (=TV or beamer) and choose the channel via remote. http://www.avsforum.com/photopost/data/2179030/c/cc/cc8a5029_Denon_AVR-5803_back_large1.jpeg
  23. Hi ti99sim! Yes i checked that utility out, however I wasn't able to compile as suggested on your website. I didn't find the sln file as recommened for Visual Studio. I took the old precompiled 0.0.9 version for Windows and saw some statements different than real output. Later I compared the source code of your tool and figured that you changed a lot in the list utility itsself and posting the results of the old version would be irrelevant. Didn't have time to contact you about my troubles compiling the latest version of ti99sim. Glad you are here!
  24. Welcome back! I also returned to the TI-99 world in 2009 with buying the real iron. Emulators are not the same I love the sound when you type on the keyboard, I love the silver aluminium. Our family with me being a kid also had the TI for a long time, and with others moving on the collection grew and grew. Compared to nowadays computer this one still has a soul. Or like Mark Wills said, it's something special like your first girlfriend. If my laptop would get broken, I would simply get the data over to another one, probably faster and more powerful model, but if my TI has a problem, I will try everything to fix it. If your girlfriend gets sick, you wouldn't replace her with another girlfriend, which is more attractive and still healthy. So somehow this computer has a special meaning to us, which is not true for laptops or any PC I got since. Hard to explain but might be one the reasons for people to return. The 99/4A console has composite out as well, so you can skip the tv-modulator. The picture will be far better with composite. With getting a nanoPEB you will have a very complete setup to load and run any software, it includes 3 virtual disk drives, 32k ram and a rs232 serial port (important for Web99 ) http://webpages.charter.net/nanopeb/ There are plenty of cartridge projects going on, the new boards allow us to make multicartridges, the most extreme being the "2048K Games 1" that let you select between 127 former released (and unreleased) cartridge games all on the same module. If you get a real PEB, the hobby will get even nicer Klaus
  25. Leszek from Vienna did a TI logo as well on the NanoPeb/Cf7+ cases.
×
×
  • Create New...