Jump to content
IGNORED

Idea: new Mini Memory cartridge


Recommended Posts

Folks who want to learn to program Assembly Language:

 

Is there a need for a new Mini Memory cartridge?

 

I see INTERACTIVITY as the essential thing in a learning tool:

  1. Full-featured source editor and assembler
  2. Quick turnaround between editing to running
  3. Quick recovery from crashes
  4. On-screen help while editing

 

The original Mini Memory required just a console and cassette.  Great!  But 4K of battery-backed RAM added to the cost then. We now have cheap non-volatile memory.  It was frustrating to edit code in the cassette-based Line by Line Assembler (LBLA), but with lots of ROM, this could have a full assembler. 

 

On the technical side, such a cartridge would use the same address space, >6000 for paged ROM, >7000 for paged FRAM. It keeps your source code in one bank and machine code in another.  Non-volatile FRAM. You can operate with just the cartridge, or add 32K RAM and disk.

 

Plus:

  1. Full screen editor, based on TI-Writer. 
  2. Assembler as powerful as the one with E/A cart. 
  3. Machine code displayed as you enter source. 
  4. Non-volatile, paged FRAM to store your source etc.
  5. Fast recovery from lock-up! Cartridge saves its state before you EXECUTE. 

 

Like the Line-by-Line Assembler (LBLA), it would show the machine code as you typed each source line. Unlike LBLA, you would be able to go back, revise your source code, edit labels, and have the machine code update.  (Final address computation done when you are ready.)

 

Other features I imagine in such an interactive assembler:

  • Display instruction help on screen as you edit
  • Utilities (VMBW, DSRLNK) stored in ROM
  • Manage your own utility library, just add your REF.
  • Export to disk of source, object, linked program file. 
  • Automatically link and save program file, like my SuperSave utility did.
  • Software debugger like SBUG, or use single-step hardware if you have it.
  • Library of source code snippets to insert
  • Built-in tutorials
  • Display cycle-counts next to object code (like Classic99)
  •  
  • Crazy moon-shot goal: analyse your source code for well-known mistakes

 

Well, that's enough dreaming. 

 

 

  • Like 10
Link to comment
Share on other sites

This is an outstanding idea! As a personal challenge, I programmed Vortex for the 4K competition directly on real hardware with just the MM and a tape recorder. The LBLA was a pain, and I did not trust the onboard battery so I saved the program to tape after every editing session. Definitely a character building experience.😁

So yeah, if you have the knowledge and chops to design such a cart, please sign me up!

  • Like 2
Link to comment
Share on other sites

Your timing in asking this question is great. If I can make it to the get together in Texas this year, it is something that I was hoping to discuss with someone.

 

I am working on an article for a Z80 computer  about using the dual joystick ports for a couple different interfacing projects. Think of this like an updated/variant version of the "The Computer Controller Cookbook" book from 40 years ago that students could use on different retro computers (in this case, non-Apple or Atari) using BASIC and advance to assembly, if they want. 

 

I was wondering yesterday what the current minimum configuration would be to have a single cartridge solution (without the need for a cassette player) with editor/assembler, interactive console for assembly language and persistent code/RAM disk for a simple TI-99/4a system that could easily be taken to computer shows.  I am so out of the loop as to the modern solutions.

 

Since I am more familiar with Z80 code, I am starting with that processor, but it would be nice to port the code to the TI.

 

  • Like 3
Link to comment
Share on other sites

29 minutes ago, qwertyfan994 said:

Your timing in asking this question is great. If I can make it to the get together in Texas this year, it is something that I was hoping to discuss with someone.

 

I am working on an article for a Z80 computer  about using the dual joystick ports for a couple different interfacing projects. Think of this like an updated/variant version of the "The Computer Controller Cookbook" book from 40 years ago that students could use on different retro computers (in this case, non-Apple or Atari) using BASIC and advance to assembly, if they want. 

 

I was wondering yesterday what the current minimum configuration would be to have a single cartridge solution (without the need for a cassette player) with editor/assembler, interactive console for assembly language and persistent code/RAM disk for a simple TI-99/4a system that could easily be taken to computer shows.  I am so out of the loop as to the modern solutions.

 

Since I am more familiar with Z80 code, I am starting with that processor, but it would be nice to port the code to the TI.

 

Here's a voice recognition project I did a number of years back which uses the TI's joystick port. 

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Most interesting, actually myself I have been planning and started doing something similar for my Stevie tool. Here’s some of the ideas:

 

1. Possibility to have multiple TI-Basic sessions and jump from one session to another and back to the “control” program (editor, …). Working

2. Possibility to “uncrunch” / “crunch” TI Basic source-code to full-screen editor (have it working for the uncrunch)

3. Embed assembly source code in TI Basic source code (worth looking on how that works on the BBC Micro, it’s very impressive) 

4. ISR that runs in parallel with the TI Basic session, shows the session and other “real-time” debug info, Working for session

5. Enhance Basic with some new commands, tailored for development (e.g. better support for HEX values in Basic). Not there.

6. Recovery from lockup. Got that working for the Editor source. So you jump from the editor into basic, quit to title screeen or lock-up. If console is reset

memory is restored when returning to the editor (partly working, memory is saved to SAMS when exiting editor and restored on re-entry)

7. Support for the F18a 30 rows mode. That way you could have rows 25-30 for debug information while running TI-Basic. Would require some severe patching of TI Basic (or use F18a functionality to overlay a layer, not sure)

 

Perhaps not what one is looking for, but actually with the FGROM99 you have already a whole lot of possibilities

 

1. Almost “unlimited” memory albeit in small 4K chunks, can e.g. use that to store VDP memory while jumping from session to session (I am using SAMS for that at the moment, but do not see why it would not work)

2. Possibility to store pre-defined example source code snippets, think like a ROMDISK

 

What is missing on the FGROM99 IMHO is the ability to create new files, a limitation of the internally used petitFAT filesystem 

This could probably be solved by using another ATMEGA (was recently discussed) here in the forum.

 

Do very much like the idea of a new (interactive) assembler on the TI-99/4a itself. If I would have to write something like that I’d probably go for version a version written in C or FORTH.

 

Anwyay, sorry for derailing the thread. Looking forward seeing anything you come up with. I know it will be impressive.

Edited by retroclouds
  • Like 2
Link to comment
Share on other sites

The OG MM cart was the end of the road on my TI development journey back in the day. I did allow me to get a taste of assembly language and basically left me depressed and defeated knowing that I could never create the kinds of games I wanted to with it, and that the full expansion setup was ridiculously out of reach.  

 

For me, you can't beat the productivity of coding on a modern computer using XDT99, creating a ROM cart image, and then simply resetting your TI emulator to load the new image. It's a 3 second turn around from compile to test, and you can use IntelliJ with an ASM plugin to code in.

 

However, it completely sidesteps everything related to an authentic "code on the machine" experience, and I see that some folks desire and appreciate that. So good luck to you! :)

 

  • Like 7
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...