Jump to content
IGNORED

How to load Mini Memory in latest classic99?


ceratophyllum

Recommended Posts

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.

  • Like 1
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 by Tursi
Link to comment
Share on other sites

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!

Link to comment
Share on other sites

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. :)

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...