Tursi Posted September 1, 2015 Author Share Posted September 1, 2015 It would be cool if Classic99 allowed you to load an E/A#3 object file (like those produced by WinAsm99) directly from Windows into TI memory without the need to go through E/A and the TI file system. This would also allow you to use the first >700 bytes of lower memory. If you had a shortcut key to load and run the last file again it would speed up the development-assemble-test cycle a lot. I looked at doing an EA#3 loader before, and I just didn't want to do the linking. (I do have a command-line tool that will read an absolute EA#3 file and produce a PROGRAM image though). As far as load and run the last file again, you can sort of do that today in one of two ways - either create a cartridge entry in the INI with the steps you want (remember that a cartridge entry in Classic99 can include keyboard commands), or type the keystrokes you need into notepad and when you need to reload, just copy and paste them (that's what I usually end up doing). This is an example of a cartridge entry that automatically selects Editor/Assembler as the cartridge, then jumps in and EA#5 runs "DSK1.AXELF" - it will automatically do it each time you reset the emulator. [usercart32] Name=E/A Menu Autostart ROM0=O|0000|0002|AxelF Autostart ROM1=K|0000|0000|..25DSK1.AXELF1\n "O" means "other" and selects a cartridge entry from the built-in list. I'm not terribly fond of the fact that it uses indexes, but for now the first value is the group (apps=0, games=1) and the second is the zero-based entry in the list (EA is the third entry). "K" means to put the text into the keyboard paste buffer, and the two numbers are ignored. "\n" is remapped to the enter key. I use dots at the beginning of the string because it's sometimes a bit random whether it takes one or two keypresses to get off the master title page (probably a bug related to starting the paste buffer before the console is booted - it SHOULD take two because the console does a dummy KSCAN, but sometimes it gets through with one).. periods get it off the title page without selecting a cartridge so that the '2' always selects E/A. 1 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted September 2, 2015 Share Posted September 2, 2015 Thanks, I have used the cartridge trick a number of times, but I never get around to set it up until I have run the project in E/A a few hundred times. And it doesn't solve the issue of loading into all lower RAM, so for Jet Set Willy I used my own object loader to generate an E/A#5 file in every test cycle. I realize the linking would be difficult, but for what it's worth I never use REFs or relative origins or even multiple object files, and I always use auto-start. But I do understand if you don't want a loader in Classic99 to have those restrictions. Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 2, 2015 Author Share Posted September 2, 2015 No, I just haven't wanted to write it. I've started a couple of times and decided that I use EA#3 too rarely to care. Why not link outside of the emulator and just load a binary image, then? Attached is a little "obj2bin" converter that will do that for EA#3 images to PROGRAM images as long as they are absolute data and have no external links. Don't know if it's helpful (or if the bin2obj in there even still works )... tiobj2bin.zip Quote Link to comment Share on other sites More sharing options...
Gazoo Posted September 2, 2015 Share Posted September 2, 2015 Thanks, I have used the cartridge trick a number of times, but I never get around to set it up until I have run the project in E/A a few hundred times. And it doesn't solve the issue of loading into all lower RAM, so for Jet Set Willy I used my own object loader to generate an E/A#5 file in every test cycle. I realize the linking would be difficult, but for what it's worth I never use REFs or relative origins or even multiple object files, and I always use auto-start. But I do understand if you don't want a loader in Classic99 to have those restrictions. Why not just use RAG Linker? It only takes a few seconds. I have it as a menu item in Funnelweb, so if I use the Funnelweb Editor and Assembler, I can quickly load RAG Linker for generating the image file. Easy Peasy. Gazoo 3 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted September 10, 2015 Share Posted September 10, 2015 Why not just use RAG Linker? It only takes a few seconds. I have it as a menu item in Funnelweb, so if I use the Funnelweb Editor and Assembler, I can quickly load RAG Linker for generating the image file. Easy Peasy. Gazoo Same environment I use for the TI-specific code. Edit with F'Web's program editor; assemble and link with RAG assembler/linker. The linker will even generate AORG code in places most linkers will not, i.e., 0x4000 DSR space. Rasmus: I believe you are looking for a simple way to link object code generated outside of the TI environment (i.e., assembled with the PC). Have you checked out Fred's L99 Linker? From his website: "The L99 linker for the PC is part of the development environment of the TI994W emulator and can be found in the utility (TI994W/UTL/) directory. " Quote Link to comment Share on other sites More sharing options...
Asmusr Posted September 10, 2015 Share Posted September 10, 2015 Rasmus: I believe you are looking for a simple way to link object code generated outside of the TI environment (i.e., assembled with the PC). Have you checked out Fred's L99 Linker? From his website: "The L99 linker for the PC is part of the development environment of the TI994W emulator and can be found in the utility (TI994W/UTL/) directory. " Thanks, I wrote my own PC side linker a while ago, but my suggestion for Tursi was to include a linker directly in Classic99, which would save a few seconds in the test cycle when you assemble on the PC. I have now built a linker into my own emulator, Js99er.net, so all is well. Quote Link to comment Share on other sites More sharing options...
ralphb Posted September 10, 2015 Share Posted September 10, 2015 Thanks, I wrote my own PC side linker a while ago, but my suggestion for Tursi was to include a linker directly in Classic99, which would save a few seconds in the test cycle when you assemble on the PC. I have now built a linker into my own emulator, Js99er.net, so all is well. Isn't full-blown linking slightly overengineered for 32 K of RAM? Are there cases where a simple COPY wouldn't do? (I could see namespaces being an issue, which is why I added local labels to xas99.) And regarding fast test cycles, I ended up creating my own image format for xas99 that would load automatically with a special cart in emulators (pretty much like XB with a loader, but all generated and setup automatically from the assembler). Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 17, 2015 Author Share Posted September 17, 2015 Version 384 for Mark - Made mouse-click typing work in 80 column mode http://harmlesslion.com/software/classic99 3 Quote Link to comment Share on other sites More sharing options...
Willsy Posted September 17, 2015 Share Posted September 17, 2015 Version 384 for Mark - Made mouse-click typing work in 80 column mode http://harmlesslion.com/software/classic99 You're a gent! Thanks! Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 19, 2015 Author Share Posted September 19, 2015 Version 385 -allowed loading ROMs from the command line (same scheme as "user->open"), pass command line "-rom <filename>" http://harmlesslion.com/software/classic99 6 Quote Link to comment Share on other sites More sharing options...
+Schmitzi Posted September 19, 2015 Share Posted September 19, 2015 RMSAAED Hi, what I really really painfully miss is a / the "Disk Manager 3" in the menu -> Cartridge -> Apps. This is many extra-clicking every day to load it from the user-menue (means coming from another recent folder, navigating to my diskmg3g.bin-file-folder, and "loosing" this recent folder, to have to navigate back there next time) Is it eventually possible to internally swap some files i.e. from the integrated "Demonstration"-Cartridge (that I never use), or "Financial Home Decisions" against the BIN-Files from the DiskManager3 ? schmitzi Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted September 19, 2015 Share Posted September 19, 2015 Hi, what I really really painfully miss is a / the "Disk Manager 3" in the menu -> Cartridge -> Apps. This is many extra-clicking every day to load it from the user-menue (means coming from another recent folder, navigating to my diskmg3g.bin-file-folder, and "loosing" this recent folder, to have to navigate back there next time) Is it eventually possible to internally swap some files i.e. from the integrated "Demonstration"-Cartridge (that I never use), or "Financial Home Decisions" against the BIN-Files from the DiskManager3 ? schmitzi It's easy enough to include it as a user cartridge in the Classic99.ini file. @Tursi’s Classic99 Manual shows you how. It will then appear on the Cartridge-->User menu. ...lee 1 Quote Link to comment Share on other sites More sharing options...
+Schmitzi Posted September 19, 2015 Share Posted September 19, 2015 ah cool, thanks - didn´t know about INI Quote Link to comment Share on other sites More sharing options...
+Schmitzi Posted September 19, 2015 Share Posted September 19, 2015 RMSAAED ....after a bit reading & fiddling around: for the 2 files I have entered name="DiskManager3"ROM0=G|6000|16000|MODS\diskmg3g.BINROM1=X|6000|14000|MODS\diskmg3n.BIN and it seems to work DiskManager3 appears as User-Cart and boots: BUT, is this OK what I´ve intentionally done here ? Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 19, 2015 Author Share Posted September 19, 2015 Yes, that's what its for. But... why are you using a Disk Manager inside of Classic99? What is it doing for you? One of the reasons I aim its focus more towards FIAD files (and TIFILES format at that) is because you have a much more powerful disk manager in Windows Explorer already. Just curious what your use case is. Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 19, 2015 Author Share Posted September 19, 2015 Oh.. except your sizes are incorrect -- way too large. The numbers in the INI lines are in hexadecimal. 16KB is "2000", as for the 14kb one, that's an odd size (and odd looking file...), you'd need to exact correct size rather than the Windows rounding. Or just specify it as 16K too ("2000")... too big is okay, Classic99 will just complain a little when it loads it. (Which is why your huge sizes also work). That said, I don't know what an "n.bin" file is. You are loading it as the second bank of a 16KB XB-style bank switching cartridge, which is probably incorrect (and only has 8k available anyway). If it has worked in the past with User->Open, then that n.bin file probably was never being loaded at all. There's sadly no magic to determining the entries for an INI file, you have to know something about the cart you are loading. I suspect in this case that only the GROM file is being used, though, that's why it's working for you. Extra data won't hurt anything in this case though. Quote Link to comment Share on other sites More sharing options...
+Schmitzi Posted September 19, 2015 Share Posted September 19, 2015 Hi, RMSAAED that N-file, I don´t know. I just deleted it, still OK (But I also now deleted the other, concerning file) Here are my files I am using now, both 14 KB. (the 2nd BIN here with capital letters now comes from an RPK/Mess) I had to enter them both with about "3000" to get them running stable (I´ve tested from 2000 in 100er-steps and gave up at 2600 ) DISK-MGRs-III.zip [userCart0]name="DiskManager3-14K"ROM0=G|6000|3000|MODS\DSKMGR3G.BIN [userCart1]name="DiskManager3-New-RPK-14K"ROM0=G|6000|3000|MODS\phm3230g.BIN Classic99 is really amazing, all seems to work so easy. Maybe I can fiddle around with the INI-files and a Batch I have also read out some of my eproms these days, so maybe I can get them a quick try here Ah, I need the DiskManager because I only work with DSK-Files. No FIAD. thanks a lot Ralf Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 20, 2015 Author Share Posted September 20, 2015 Here are my files I am using now, both 14 KB. (the 2nd BIN here with capital letters now comes from an RPK/Mess) I had to enter them both with about "3000" to get them running stable (I´ve tested from 2000 in 100er-steps and gave up at 2600 ) Ah, I need the DiskManager because I only work with DSK-Files. No FIAD. Well... someday I'll add write support, but I just didn't expect it to be terribly useful without that, and tools like TI99Dir seem to work. Good to know what people are using though. Determining the length is straight forward, just right click the file in Windows and select properties - it will tell you exactly how big the file is. So this file is "14336 bytes" (you want the actual size, not the "size on disk"). Then just convert that size to hexadecimal. You can do that in Windows calculator if you switch it to "Programmer" mode (also in earlier versions of calc): In this case, we see that 14336 is hex 3800 (which, in retrospect, is not actually a strange size for a GROM). So that's the size you need to enter into the INI. 1 Quote Link to comment Share on other sites More sharing options...
Manic1975 Posted October 5, 2015 Share Posted October 5, 2015 Tursi can you put xb2.7 suit in the classic99? There is RXB and REA and it would be nice to have XB2.7 suit. 2 Quote Link to comment Share on other sites More sharing options...
Tursi Posted October 6, 2015 Author Share Posted October 6, 2015 I suppose I can add that now, sure. I'll take a note to add it to the next release. Elsewhere I did note how to add it to Classic99.ini 5 Quote Link to comment Share on other sites More sharing options...
RXB Posted October 6, 2015 Share Posted October 6, 2015 Tony would have liked that I bet. 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted October 6, 2015 Share Posted October 6, 2015 May be a dumb question, but is there a way to disable the 32k memory expansion and run solely on the console RAM? I'm doing some real-iron development right now, and I'd like to transfer and test in Classic99, maybe tweak something if I need to, but want to make absolutely sure I can run on an unexpanded console if I need to tweak anything. I looked in the manual, and I did not see anything under section 7.7 or in the .ini file settings descriptions. Thanks. Quote Link to comment Share on other sites More sharing options...
RXB Posted October 6, 2015 Share Posted October 6, 2015 May be a dumb question, but is there a way to disable the 32k memory expansion and run solely on the console RAM? I'm doing some real-iron development right now, and I'd like to transfer and test in Classic99, maybe tweak something if I need to, but want to make absolutely sure I can run on an unexpanded console if I need to tweak anything. I looked in the manual, and I did not see anything under section 7.7 or in the .ini file settings descriptions. Thanks. You can do a CALL LOAD to zero out the Memory expansion memory. Or just turn it off with a CALL LOAD Quote Link to comment Share on other sites More sharing options...
Opry99er Posted October 6, 2015 Share Posted October 6, 2015 I'll see if I can do that... Need to figure out exacty which location and which value first. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted October 6, 2015 Share Posted October 6, 2015 -31868,0,0 Turns the 32K memory off 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.