Hello everybody,
zap reminded me of my promise (thanks, pal!

) and so here it is, the source code for my little, experimental BBS called "ContikiBBS" plus a neat little setup program and a BBS-worthy color scheme.
-->
click link <--
The .tar.gz archive contains all the sources you need. Just unpack them into your contiki-2.x source folder. In the "examples" directory you'll find a new project called "bbs-server". Enter that directory, (on a Unix/Linux system) type "make TARGET=c64" and enjoy. You may also want to start the program directly from the included "ctkbbs.d64" image. There is a program called "bbs-setup" on that disk, use it to set up the correct driver and IP configuration for ctkbbs. You may also initialize the bbs datafiles with this tool.
There is one new command: "/PAGE" which allows the user to enter five lines of text that will be written to the C64s screen. While a user is typing a message, the screen border will change from green to red.
Also, there is now a timer that will log you out after five minutes of inactivity.
For the next two days I'm gonna have my C64 up and running, so you may want to try ctkbbs by typing:
telnet wintermute.homeunix.com 2323in a terminal.
zap wrote:
I only wish i could help in some way.
You can, in fact everybody who is interested in writing code to expand, fix and take this little example to the next stage (a fully working, telnet enabled, single-user BBS for stock C64s with an ethernet adapter) is invited and strongly encouraged to do whatever it is you can do. Here are some ideas / issues I face at the current stage of development:
0.) Development Environment - Um, I *have* to use contiki 2.2.1 or otherwise I get compile errors. Has anyone gotten to compile a more recent version of ContikiOS? Still, as long as my code compiles in your environment, this shouldn't bother me too much at the moment.
EDIT: RESOLVED! cc65-2.13.0 and ContikiOS 2.4 compile very well, no more problems!1.) Files - I use REL files for storing data, with each record being 256 byte long. At the moment this is the maximum number of bytes per record. If anyone has any idea or C (cc65) code that will allow better data handling and larger record sizes, I'd really appreciate it if you could try to put that code into use with ctkbbs.
2.) Login - Yes, it's a single-node or single-user BBS which means that only one person can log in at a time. So why bother with a login procedure? Because a) it's quite nifty to have a user id / name and password to log on and b) it offers at least a tiny little piece of security to the system. If someone thinks this is something he/she can help implement, feel free to do so.
EDIT (April 10th, 2010): RESOLVED (almost)! You can now create simple user accounts and have to use them in a very simple login procedure.
Passwords will not be hidden, so be careful when trying out!3.) Z-Modem file transfer - Would be nice to add that to the program as well. But this is one point I don't have any knowledge about.
3.) Multitherading - we all know that ContikiOS is capable of multiple threads. This could lead to better performance and maybe someone is even wise enough to make ctkbbs multi-user capable. But this is not my main focus at the time. But if you are experienced enough, I'm the last person to keep you from doing so. I just don't have the knowledge and the time to dig deeper into this.
That said, I hope you can forgive me for taking so long to get this thing out to you. Feel free to comment and experiment, have fun!
lodger