ceratophyllum Posted March 18, 2011 Share Posted March 18, 2011 I noticed that a file called mm_lbla.obj is included in the DSK1 directory of the latest Classic99. How do you load it? I am still using (1 TO LOAD AND RUN) CART_RAM/O from Stuart Connor's site to load the line-by-line assembler. Is there some menu I missed? Quote Link to comment Share on other sites More sharing options...
matthew180 Posted March 18, 2011 Share Posted March 18, 2011 I've never used the MiniMem, so I can't help specifically with your question. However, why no just use the E/A? If you are going to seriously get in to assembly, trying to work with the MiniMem is going to drive you insane. Quote Link to comment Share on other sites More sharing options...
ceratophyllum Posted March 18, 2011 Author Share Posted March 18, 2011 Classic99 looks wonderful! I even jump through hoops (Wine windows emulator) to run it on my macbook pro. I won't buy windows because I find it obnoxious that I can't (re)install stuff I bought as many times as I want on my own computers. I feel like MS assumes that we're all going to start 3rd world software piracy rings if they don't assume we're guilty and punish us in advance. There is some rumor that apple is headed the same way, well... I'll be back to full time linux then. But I prefer to immerse myself in retro TI stuff from before creep lawyers ruined computers. So here goes: I've never used the MiniMem, so I can't help specifically with your question. Well, my question was not very clearly written. Let me clarify some. Minimem can't load the line-by-line assembler from disk; easybug only lets you load/save to CS1. So cart_ram/o was created so you can load the line-by-line assembler(file MM_LBLA on dsk) into Minimem's 4KB RAM. LBLA works in classic99, but loading it into Minimem is a little confusing: I load (Minimem opt. 1) CART_RAM/O and using it to put MM_LBLA into the cart. Then I choose 4 in CART_RAM (same as QUIT, I think). classic99's TI reboots and I can choose Mini Memory and then RUN. I type NEW when prompted for a program name and LBLA starts. However, when I'm done typing a program and I reset Classic99 to get into EasyBug, LBLA and my program are gone. (Is this the same thing as FCTN = ?) Classic99's use of F-keys causes problems for me because stupid Snow Leopard maps nifty (but frivolous) GUI functions to every damn one of them. Does Classic99 save minimem's 4KB RAM in a file someplace? Do I delete this file if I choose reset from the File menu? Can I remap the classic99 keys? (I like to use Alt as FCTN. Feels more 99ish.) However, why no just use the E/A? If you are going to seriously get in to assembly, trying to work with the MiniMem is going to drive you insane. I have been using Minimem on MESS and on a real TI with nanoPEB & a minimem cart. (I pulled out the dead watch battery, drilled a hole, connected wires, and glued a AA battery holder onto the top of the Minimem cart.) Now I'm trying out some really simple examples from M.S. Morley's book on assembly. Stuff like move bytes from address XXXX to YYYY and add two (16-bit) numbers. Right now, just saying *R0+ makes my head spin. I mean, I always have to concentrate in assembly about whether we're talking about data at addresses, addresses that point to data, or data that point addresses! Doh! The examples in most books on E/A are so big. I'm not there yet. But I'm getting there. For example, I almost understand this. I think. 7D00 M1 DATA >2E56 put 2E in address 7D00 and 56 in address 7D01 and label 7D00 to 1 as M1 7D02 M2 BSS 2 set aside 7D02 and 7D03 as the destination for the 2 bytes and label it M2 7D04 LWPI >70B8 why put the workspace here as opposed to someplace else? 7D08 MOV @M1, @M2 move 2E to 7D02 and 56 to 7D03 7D0E B *R11 magically return to debugger prompt 7D10 END What exactly is the difference between * and @? I'm reading the MOV line as "move data at address labeled M1 to address labeled M2." and the B*R11 line as " "Stick the data in register 11 in the program counter." Seems like both @ and * could both be read as "thing in___." I like how easybug lets me step through a program (and its output) and see exactly what happened at address XXXX. It's neat on the real TI or in MESS to have everything just as I left it in Minimem's RAM, no saving or loading from media. It's just sort of cool. Sorry to ramble on and on. Trying to get it all in one post before I go AFK because TI99 hobbies are detracting from my exercise program. 1 Quote Link to comment Share on other sites More sharing options...
lucien2 Posted March 18, 2011 Share Posted March 18, 2011 What exactly is the difference between * and @? I'm reading the MOV line as "move data at address labeled M1 to address labeled M2." and the B*R11 line as " "Stick the data in register 11 in the program counter." Seems like both @ and * could both be read as "thing in___." You're right, there are both "Thing in __". @ is for labels or equates, and * is for registers. Labels or equates are constants that your program can't change. Quote Link to comment Share on other sites More sharing options...
Tursi Posted March 20, 2011 Share Posted March 20, 2011 (edited) Loading the MiniMemory files is documented in the manual that ships with Classic99. From the last page in the manual, in the 'Files Included on DSK1 with Classic99' section: MM_LBLA.OBJ – Line-by-Line Assembler for Mini-Memory. Select cartridge Mini-Memory. Select ‘3’ for Mini Memory, then ‘1’ to Load and Run. Type “DSK1.MM_LBLA.OBJ”. After it returns, press Enter for the Program Name prompt. Type ‘NEW’ for a new program or ‘OLD’ for an old one. Type a space, then ‘END’ to quit. Refer to the Line-by-Line Assembler manual from TI for more details. Note this file is distributes as Windows Text, your disk configuration must support reading Windows Text as DF. MM_LINES.OBJ – Lines bitmap graphic example for Mini-Memory. Select cartridge Mini-Memory. Select ‘3’ for Mini Memory, then ‘1’ to Load and Run. Type “DSK1.MM_LINES.OBJ”. After it returns, press Enter for the Program Name prompt. Type ‘LINES’ to start it. Note this file is distributes as Windows Text, your disk configuration must support reading Windows Text as DF. I took both programs and converted them into object files that can be loaded by Mini-Memory, to remove the need for custom loaders or CS1 support. Classic99 does not save the 4k RAM, it has no concept of non-volatile memory at this time. There's probably no good workaround at the moment. I'll consider it for the future but MiniMem is only really useful as an educational tool on the emulator. (But, education is important...) (I like to use Alt as FCTN. Feels more 99ish.) Alt /is/ FCTN on a PC keyboard... what does OSX map it to? However, when I'm done typing a program and I reset Classic99 to get into EasyBug, LBLA and my program are gone. (Is this the same thing as FCTN = ?) No, it's not!! FCTN-= is read by the console interrupt routine, and causes a software jump back to the boot vector, rebooting the console. File->Reset resets the emulator, which clears all internal states, erases all memory, and reloads all ROMs from disk. Use FCTN-= if you want to preserve memory contents. Classic99's use of F-keys causes problems for me because stupid Snow Leopard maps nifty (but frivolous) GUI functions to every damn one of them. Ah... it's less convenient, but you can use the menu options instead of function keys. Maybe that's a good cause for me to put the GUI buttons back... I like how easybug lets me step through a program (and its output) and see exactly what happened at address XXXX. It's neat on the real TI or in MESS to have everything just as I left it in Minimem's RAM, no saving or loading from media. It's just sort of cool. I use it on the real TI myself quite a bit, but in Classic99 you will get more results using the debugger -- I suggest you read the debugger section in the manual. You can watch the memory changing as your program runs, and step each assembly instruction one at time, watching everything that changes. Edited March 20, 2011 by Tursi Quote Link to comment Share on other sites More sharing options...
ceratophyllum Posted March 20, 2011 Author Share Posted March 20, 2011 Not sure what's up with the ALT key... Nothing happens when I try to use ALT+number or TI arrows (ESDX). This is probably not worth your time and is probably mac/WINE crap: I mean I'm running Classic99 in the latest, flakiest bleeding-edge WINE, the last version of which wouldn't even compile. There are some minor WINE issues, but Classic99 runs well taking less than %30 of one core. This isn't much more than MESS uses natively! The command key (actually the windows key on my external keyboard) is FCTN. I usually use a USB keyboard and ext. screen due to any laptop's tendency to cause one to hunch and slouch. Anyhow, that's good enough for me. Thanks for the info...I will take a look at the debugger. And for the great emulator. Time to learn about TI assembly instead of boring old MESS config file editing! Quote Link to comment Share on other sites More sharing options...
Tursi Posted March 21, 2011 Share Posted March 21, 2011 Interesting, huh. You are not the only one trying to run Classic99 on Wine, apparently on some systems it's still a real performance hog there. Although I can't invest the time to specifically support Wine yet, at least if I know the kind of problems people are having, I can look at those systems when I update them. Classic99 has a long way to go before it's a nice clean program that people can reasonably take a stab at porting, sadly, but cleaning up the source tree is also on the tasklist. 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.