retrohackers.com
http://retrohackers.com/

Generic Plug-in system for RR ROM
http://retrohackers.com/viewtopic.php?f=8&t=136
Page 1 of 1

Author:  RaveGuru [ Sat Jul 01, 2006 4:40 pm ]
Post subject:  Generic Plug-in system for RR ROM

Now, something that would be extremely cool, would be to develop a universal standard for adding tools (or plug-ins if you like) to a ROM. It shouldn't be hard. All that's required is basically to make a linked list in ROM that holds the Tool/Plug-in labels and their addresses in ROM, and then accessing the list through command input or some kind of Menu/key combination. The plug-ins should of course need to preserve a sane system state and return cleanly. There's probably a lot to learn from how MMC64 plug-ins operate already? TFR would probably make a good base-ROM as it currently just uses 32k out of 64k, so plenty of space left. What do you guys think?

Author:  tnt/beyond force [ Sat Jul 01, 2006 4:52 pm ]
Post subject:  Re: Generic Plug-in system for RR ROM

RaveGuru wrote:
There's probably a lot to learn from how MMC64 plug-ins operate already?

Yes, there is: provide routines to do basic tasks! Only thing MMC64 BIOS provides to plugin is basic info about FAT16 geometry and start cluster of selected file. That's just enough to load the file into memory, nothing else. And you need to do that with your own code, there is no such thing as ReadSector() callable from outside of BIOS.

Author:  hannenz [ Sat Jul 01, 2006 6:12 pm ]
Post subject: 

@rave guru: yes that sounds very good. i'd be very intersted in this. do you have some concrete ideas in mind, yet?!

Author:  RaveGuru [ Sun Jul 02, 2006 5:59 pm ]
Post subject: 

@tnt: Good point. Only problem is to determine what basic functions would be needed, as RR ROM tools could be used for anything. I'm thinking of a system that allows for "plugging in" both programs and system-extensions.

The plug-in system would typically be a command line tool to be run on Windows or Unix that patches a "base-line" ROM to aquire a Kernel hook on start-up for listening to key-strokes for instance (i.e a "wedge"). The patcher creates a list in ROM of the selected plug-ins/programs and their addresses. This list will be parsed and used by the wedge.

A plug-in could be either a program or a system-extension. A system-extension is a package of subroutines (BIOS/whatever) so there must be a way to determine this. A program that requires a specific system-extension should be able to call a ROM function to verify if that plug-in is "installed" and has the right version, as well as getting the address of the plug-in in ROM. If the plug-in is a program, then just copy and execute it.

This combines the functionality of a "program flasher" as well as easily providing new system functions.

A future example of usage could be for instance a MMC64 user patching his RR-ROM to contain a MMC64-BIOS extension and since the user is a musician he has also put a few of his favorite music editors as ROM plug-ins.

Another user don't have a MMC64 but a RR-Net so apart from adding GuruTerm to his ROM, he's also included the fresh new GuruNet(tm) network stack plug-in to be used by the new IRC client he's coding on. :D

Well.. the idea is simple but allows for 100% modularity (?) and is fairly simple to implement I believe. What do you think?

Author:  tnt/beyond force [ Sun Jul 02, 2006 6:39 pm ]
Post subject: 

There should also be a way to allocate RR RAM so different extensions don't trash the state of each other. Loadable programs aren't problem, but if there are things like Netdrive and MMC64 kernal patch at the same time then things start to get interesting.

Author:  groepaz [ Mon Jul 03, 2006 1:22 am ]
Post subject: 

technically the ar "extensions" _are_ plugins :=P

Author:  RaveGuru [ Mon Jul 10, 2006 1:58 pm ]
Post subject: 

@tnt: yeah! simple RR-RAM malloc() and free() equivalents will be absolutely necessary. I believe the Doc wrote one for the HTTPLoad already. Maybe it could be adopted to save some sweat.

@groepaz: i've actually never checked them out. Do they load from disk to AR RAM and how are they invoked?

Author:  groepaz [ Mon Jul 10, 2006 4:17 pm ]
Post subject: 

yes, they are loaded into ar-ram from the tools menu and then stay resident. one of the lesser used ar features :)

Author:  RaveGuru [ Tue Jul 11, 2006 12:35 am ]
Post subject: 

I always wondered what AR-RAM was good for. Now i know :)

Maybe it's time then, to avenge the poor AR design pioneers who had big futuristic ideas in a technically under developed, narrow minded world. It may still, some twenty years later, be too early for the world to realize, to understand, to revere and obey, to kneel to..... to surrender in awe..... BEHOLD! The True Power.... of.... Cartridge RAM!!!!!!

(Insert trembling low budget horror-movie sound here)

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/