[cc65] loadable module API for AtariBBS

From: Thom Cherryhomes <thom.cherryhomes1gmail.com>
Date: 2014-08-14 04:12:51
Hi.

I'm thinking through a particular problem that I will eventually need to solve.

I want people to have the ability to implement loadable modules for my
BBS engine. They shouldn't need to have to build the code with the
knowledge that particular modules will be used in a specific order.
Maybe this is possible, maybe it isn't...but....

Based on what I see with the overlay and multi demos, you can indeed
specify different code and variable segments be written out into
seperate files and/or memory spaces, a consequence of the flexibility
of the linker...

Could we have a situation where you could spit out executables that
load themselves into a bank of extended memory e.g. on the Atari there
is a 16KB window set aside for bank switching in the most common
extended memory configuration (the second PIA does the requisite bank
switching), and loading an executable would load itself into high
memory, and leave a little chunk of memory just below MEMHI as a sort
of vector table that the main engine and other modules can bolt onto
to call functions?

The idea would be to have a known API that anything could include and
call for functions like:

user_get()
last_menu_selection()

etc...

These would be abstract functions that the different modules (a user
module, a menu module, a display module, a message board module) would
implement, and could be swapped out for other modules, while still
adhering to this basic framework, this would allow for a certain
amount of modularity and flexibility when building a BBS.

In the end, I don't care if it's an executable (it would be nice, as
e.g. a SpartaDOS batch file would load the requisite modules in place,
and start the BBS), or if its some sort of binary blob that gets
loaded into place, I'm just trying to think of a way forward, after I
write all these little functions to be able to have a parser read
through a map of the BBS and load/unload/reload specific modules in
response to things happening...

-Thom
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Thu Aug 14 04:13:15 2014

This archive was generated by hypermail 2.1.8 : 2014-08-14 04:13:17 CEST