Jump to content
IGNORED

Michtron v3.0 BBS Software?


DarkLord

Recommended Posts

Hmm..  My issue was that the result code for a connection came in too fast for Michtron to recognize it... so it would "answer" and then just hang there... so if you typed 13 (or whatever the code was for the baud rate) it worked fine.

 

Otherwise, it would sit there and wait for the result code that would never come (because the modem had already sent it)

 

 

Link to comment
Share on other sites

17 hours ago, Tillek said:

Hmm..  My issue was that the result code for a connection came in too fast for Michtron to recognize it... so it would "answer" and then just hang there... so if you typed 13 (or whatever the code was for the baud rate) it worked fine.

 

Otherwise, it would sit there and wait for the result code that would never come (because the modem had already sent it)

 

 

OK, now the MichTron 3.0 I have the setup or maint program allows you to set modems up.. 9600 baud being the fastest.  I set it to 9600 and set the wimodem232 to 9600 - so there was not negotiating..   When I call in.. I get a quick string of characters about 20 or so.. then a CR and HIT RETURN. 

 

James

Link to comment
Share on other sites

On 1/5/2023 at 10:02 PM, Bikerbob said:

Hmmm, mine seems to work with the Wimodem232 really well. I had it up and running this afternoon, was online with my laptop and logged in on the consol at the same time. 

 

Ill be honest I did not know you had it setup as a demo until I saw it in the SFHQ listing.. and by then you took it down.

 

James

If you don't mind me asking how is using Wimodem232 on an ST?

I've got a couple netusbee's and the telnet clients are pretty cr@p for BBS'ing so would like to get back to uniterm and connect 95 that i used to use to connect to the BBS's again.

Any other uses for Wimodem232 apart from terminal BBS ?

 

thanks

 

Link to comment
Share on other sites

1 minute ago, JamesWD said:

If you don't mind me asking how is using Wimodem232 on an ST?

I've got a couple netusbee's and the telnet clients are pretty cr@p for BBS'ing so would like to get back to uniterm and connect 95 that i used to use to connect to the BBS's again.

Any other uses for Wimodem232 apart from terminal BBS ?

 

thanks

 

Serial communications through the internet, which at this point is basically doing BBSing.. But thats not a bad thing. $60 for the device, OR you can build your own using a ESP32 or ESP8266 and a serial adapter to whatever machine you have. Zimodem is the firmware, you can google it.   IT works well. I have both Wimodem232 (which is a ESP32 based device) and I have a number (4) ESP8266 Luan development boards, that you can make your own wifi modem with.

 

James

Link to comment
Share on other sites

The WiModem232 is a wonderful device!

 

Dead easy to setup and use, even has a built in "phonebook" for

your most commonly used sites.

 

Support by Jim Drew is nothing short of phenomenal. I've asked

for changes and have had him quite literally do it in a day or less.

 

If you're going to be doing telnet and the BBS scene, it's the top

of the line choice, IMHO.

 

Link to comment
Share on other sites

18 minutes ago, JamesWD said:

If you don't mind me asking how is using Wimodem232 on an ST?

I've got a couple netusbee's and the telnet clients are pretty cr@p for BBS'ing so would like to get back to uniterm and connect 95 that i used to use to connect to the BBS's again.

Any other uses for Wimodem232 apart from terminal BBS ?

 

thanks

 

Modem to modem gaming should work with it too.

  • Like 1
Link to comment
Share on other sites

  • 9 months later...
19 hours ago, Techman said:

Interesting thread. I am the author of Michtron BBS

 

-tim

Welcome to the party Tim!

 

Standby to be mobbed by requests for the source code and the specs to the multi com-port device. :)

 

Link to comment
Share on other sites

I am surprised at the interest, and that folks are still running the software. The MCL was a language and byte code runtime that was developed with C and YACC, the multitasking was inspired by Andrew Tanenbaum’s book on operating system design. I was talking to some friends the other night and they pointed me to this thread.

 

-tim

Edited by Techman
Formating
Link to comment
Share on other sites

2 hours ago, Techman said:

I am surprised at the interest, and that folks are still running the software. The MCL was a language and byte code runtime that was developed with C and YACC, the multitasking was inspired by Andrew Tanenbaum’s book on operating system design. I was talking to some friends the other night and they pointed me to this thread.

 

-tim

Well, we're really glad to  have you.  I was running a demo of Michtron 3 for a bit (well, the full version, just the "out of the box" setup).  But I took that machine down for VCF Midwest last month and haven't put it back on the BBS table yet. :)

 

In the meantime, if you want to check out any other BBS's, we have a list at http://www.sfhqbbs.org/ataribbslist.php   SyncTerm on the PC is a great option (even handles ATASCII if you need an 8-bit fix).  https://sourceforge.net/projects/syncterm/

 

Link to comment
Share on other sites

NICE!!!! Great to meet you TIM.. I was one of the people along with Andrew (Tillek) that were running Mich 3.0 for a while..  Where I was stumped was the MCL and I think if I remember the conversation Tillek is the only one around with a complete manual and he did not want to destroy the binding to take it apart and scan it.

 

I think it would be a TONN of fun to do stuff with it, using the MCL.  I was able to get it to work with the 232 modem no problem and also the ms100 and 1100. Anything you still have lying around would be awsome. I think several of us tried to find you over the years, combing through old contacts and emails, facebook.. etc.. 

 

James (Bikerbob)

Link to comment
Share on other sites

 I am in the process of moving, however, I am 100% sure I saw a DC-port extender; I will have to dig into a few boxes to find it. I don't believe I tossed it (I hope not). I recall it was simple, just some UARTs and a memory mapper. I looked at the assembly driver, and I still remember 68000 assembler. I still have a Mega ST but I haven't turned it on in years. Not sure how the code could even be built. 

 

I just looked on my NAS, and there is a backup of the source; it was primarily written in C (with assembler helpers) and complied on at least three platforms (Atari, Dos, OS/2).

 

The Makefile for the atari is below, Does anyone remember what assembler mac was? Probably at this point would need to be moved to linux/osx cross compiler.

 

This source is build 2505

 

cat MAKEFILE 
.c.o:
	cc -c $*.c

.s.o:
	mac -fmu $*.s

COBJS	= arc.o ascii.o binary.o crt.o edit.o init.o last.o login.o \
mail.o main.o modem.o ost.o printf.o runtime.o sealink.o \
startup.o strings.o sysop.o user.o util.o xfer.o xmo.o \

AOBJS = mstart.o crtlow.o doslow.o clkdrv.o ttydrv.o

bbs.tos: $(AOBJS) $(COBJS)
	ld -o bbs.tos -s $(AOBJS) $(COBJS) \mc\lib\libc.a

$(COBJS):	structs.h globals.h

 

 

  • Like 1
Link to comment
Share on other sites

I probably have a copy of the MCL manual that could be scanned in. As I recall, it was a separate book in the box.

 

MCL was a cross between basic (variables and string functions) and c (control and expressions) intended to allow sysops to create their own experience and menu system, leveraging the primitives that the BBS provided.

 

An abbreviated BNF of the language follows (expr = numbers, sexp = strings)

list:	/* empty */
		|	list stmt
		|	list error ';'
		;
	
prlist:	expr
		|	sexp
		|	prlist ',' expr
		|	prlist ',' sexp
		;
stmtlist:	/* empty */
		|	stmtlist stmt
		;

stmt:		';'
		|	asgn ';'
		| LABEL ':' ';'
		| EXECUTE '(' sexp ')' ';'
		| GOTO LABEL ';'
		| GOSUB LABEL ';'
		| BREAK ';'
		| CONTINUE ';'
		| RETURN ';'
		| STRCAT '(' SVAR ',' sexp ')' ';'
		| UCASE '(' SVAR ')' ';'
		| LCASE '(' SVAR ')' ';'
		| LEFT '(' SVAR ',' sexp ',' expr ')' ';'
		| RIGHT '(' SVAR ',' sexp ',' expr ')' ';'
		| STR '(' SVAR ',' expr ')' ';'
		| CHR '(' SVAR ',' expr ')' ';'
		| PROCALL '(' ')' ';'
		| PROCALLN '(' expr ')' ';'
		| PROCALLS '(' sexp ')' ';'
		| PROCALLX '(' sexp ',' sexp ')' ';'
		| PRINT '(' prlist ')' ';'
		| for '(' exprc ';' expro ';' exprc ')'
		|	repeat stmt UNTIL cond ';'
		|	'{' stmtlist '}'
				{
				$$ = $2;
				}

		|	STRCMP '(' sexp ',' sexp ')'
		|	ATOI	'(' sexp ')'
		|	ASC	'(' sexp ')'
		|	LEN	'(' sexp ')'
		|	READ '(' SVAR ')'
		| 	GETTOK '(' SVAR ')'
		| 	PUTTOK '(' expr ',' expr ',' sexp ')'
		| 	INPUT '(' sexp ',' SVAR ',' expr ')'
		|	FUNCALL '(' ')'
		|	FUNCALLN  '(' expr ')'
		|	FUNCALLR  '(' expr ',' expr ')'
		|	FUNCALLS  '(' sexp ')'
		|	FUNCALLX  '(' sexp ',' sexp ')'
		;
		
asgn:			numbervar '=' expr
		|	SVAR '=' sexp
		|	SSYSVAR '=' sexp
		|	numbervar assn_op expr
		|	numbervar INC (++var)
		|	INC numbervar (var++)
		|	numbervar DEC
		|	DEC numbervar
		;


cond:		'(' expr ')'		;

repeat:		REPEAT ;

while:		WHILE	;

if:		IF		{$$ = progp;}			;

for:		FOR		{++LoopLevel;$$ = progp;}	;

numbervar:	NSYSVAR
		| NVAR
		;

assn_op:	  ADDEQ	
		| SUBEQ
		| MULEQ
		| DIVEQ
		| MODEQ
		| SHREQ
		| SHLEQ
		| ANDEQ
		| XOREQ
		| OREQ
		;

expro:		/* empty */	{$$ = progp;}
		| expr		{$$ = $1;}
		;

sexp:		SVAR
		| SCONST
		| SSYSVAR
		| SLITERAL	/* literal pool */
		;

exprc:		/* empty */
		| expr
		;

expr:		asgn
		| NUM
		| numbervar
		| NCONST
		| '(' expr ')'
		| STRCMP '(' sexp ',' sexp ')'
		| ATOI	'(' sexp ')'
		| ASC	'(' sexp ')'
		| LEN	'(' sexp ')'
		| READ '(' SVAR ')'
		| GETTOK '(' SVAR ')'
		| PUTTOK '(' expr ',' expr ',' sexp ')'
		| INPUT '(' sexp ',' SVAR ',' expr ')'
		| FUNCALL '(' ')'
		| FUNCALLN  '(' expr ')'
		| FUNCALLR '(' expr ',' expr ')'
		| FUNCALLS '(' sexp ')'
		| FUNCALLX '(' sexp ',' sexp ')'
		| expr '|' expr
		| expr '^' expr
		| expr '&' expr
		| expr SHR expr
		| expr SHL expr
		| expr '+' expr
		| expr '-' expr
		| expr '*' expr
		| expr '/' expr
		| expr '%' expr
		| '-' expr %prec UNARYMINUS
		| expr GT  expr
		| expr GE  expr
		| expr LT  expr
		| expr LE  expr
		| expr EQ  expr
		| expr NE  expr
		| expr AND expr
		| expr OR  expr
		| NOT expr
		| '~' expr
		| sexp GT  sexp
		| sexp GE  sexp
		| sexp LT  sexp
		| sexp LE  sexp
		| sexp EQ  sexp
		| sexp NE  sexp
		;

 

  • Like 1
Link to comment
Share on other sites

SYSTEM Variables

 

TOKEN sysvars[] =
{
/* 00 */	"address$",			SCONST,
/* 01 */	"baudrate",			NCONST,
/* 02 */	"chat",				NSYSVAR,
/* 03 */	"city$",				SCONST,
/* 04 */	"clock",				NSYSVAR,
/* 05 */	"currentsig",		NCONST,
/* 06 */	"debug",				NSYSVAR,
/* 07 */	"defaultsig",		NSYSVAR,
/* 08 */	"downloadclock",	NSYSVAR,
/* 09 */	"downloads",		NSYSVAR,
/* 10 */	"flags",				NSYSVAR,
/* 11 */	"idletime",			NSYSVAR,
/* 12 */	"lastday",			NSYSVAR,
/* 13 */	"lastdownload",	NSYSVAR,
/* 14 */	"lastmsg",			NSYSVAR,
/* 15 */	"lastrecord",		NSYSVAR,
/* 16 */	"lasttime",			NSYSVAR,
/* 17 */	"level",				NSYSVAR,
/* 18 */	"menu",				NSYSVAR,
/* 19 */	"modem",				NCONST,
/* 20 */	"numcalls",			NSYSVAR,
/* 21 */	"password$",		SCONST,
/* 22 */	"phone$",			SCONST,
/* 23 */	"remtime",			NSYSVAR,
/* 24 */	"sigaccess",		NSYSVAR,
/* 25 */	"state$",			SCONST,
/* 26 */	"timeday",			NSYSVAR,
/* 27 */	"title$",			SSYSVAR,
/* 28 */	"uploadclock",		NSYSVAR,
/* 29 */	"uploads",			NSYSVAR,
/* 30 */	"username$",		SCONST,
/* 31 */	"zipcode$",			SCONST,
/* 32 */	"user_var0",		NSYSVAR,
/* 33 */	"user_var1",		NSYSVAR,
/* 34 */	"user_var2",		NSYSVAR,
/* 35 */	"user_var3",		NSYSVAR,
/* 36 */	"user_var4",		NSYSVAR,
/* 37 */	"user_var5",		NSYSVAR,
/* 38 */	"user_var6",		NSYSVAR,
/* 39 */	"xfer_inhibit",	NSYSVAR,
/* 40 */	"account_number",	NSYSVAR,		/* canada version only! */
/* 41 */	"date_register",	NSYSVAR,		/*   "       "     "    */
};

 

Primitives:

TOKEN funcs[] =
{
/* 00 */	{	"alert",				PROCALL		},
/* 01 */	{	"baud",				FUNCALL		},
/* 02 */	{	"beep",				PROCALL		},
/* 03 */	{	"catalog",			PROCALLS		},
/* 04 */	{	"chatloop",			PROCALL		},
/* 05 */	{	"chatreq",			PROCALL		},
/* 06 */	{	"decimal",			FUNCALLS		},
/* 07 */	{	"diskfree",			FUNCALLS		},
/* 08 */	{	"display_users",	PROCALL		},
/* 09 */	{	"download",			FUNCALLS		},
/* 10 */	{	"flush",				PROCALL		},
/* 11 */	{	"force_read",		FUNCALLN		},
/* 12 */	{	"hangup",			PROCALL		},
/* 13 */	{	"hello",				PROCALL		},
/* 14 */	{	"howdy",				PROCALL		},
/* 15 */	{	"indivdownload",	PROCALL		},
/* 16 */	{	"indivmail",		PROCALL		},
/* 17 */	{	"inkey",				FUNCALL		},
/* 18 */	{	"inter_chat",		PROCALL		},
/* 19 */	{	"key_match",		FUNCALLS		},
/* 20 */	{	"lastcallers",		PROCALL		},
/* 21 */	{	"leavemail",		PROCALL		},
/* 22 */	{	"list",				FUNCALLS		},
/* 23 */	{	"listdownload",	PROCALL		},
/* 24 */	{	"log",				PROCALLS		},
/* 25 */	{	"logfile",			PROCALLX		},
/* 26 */	{	"logname",			FUNCALLS		},
/* 27 */	{	"logoff",			PROCALL		},
/* 28 */	{	"mailchart",		PROCALL		},
/* 29 */	{	"newmail",			PROCALL		},
/* 30 */ {	"notify",			PROCALL		},
/* 31 */	{	"pause",				FUNCALLS		},
/* 32 */	{	"profile",			PROCALL		},
/* 33 */	{	"prompt",			FUNCALLX		},
/* 34 */	{	"random",			FUNCALLN		},
/* 35 */	{	"range_time",		FUNCALLS		},
/* 36 */	{	"readmail",			PROCALL		},
/* 37 */	{	"reset_userflag",	FUNCALLN		},
/* 38 */	{	"reset_usersig",	FUNCALLN		},
/* 39 */	{	"same_day",			FUNCALL		},
/* 40 */	{	"scanmail",			PROCALL		},
/* 41 */	{	"set_time",			FUNCALLN		},
/* 42 */	{	"set_userflag",	FUNCALLN		},
/* 43 */	{	"set_usersig",		FUNCALLN		},
/* 44 */	{	"show_lastcaller",PROCALL		},
/* 45 */	{	"show_newmail",	PROCALL		},
/* 46 */	{	"show_newxfer",	PROCALL		},
/* 47 */	{	"showdate",			PROCALL		},
/* 48 */	{	"showsigs",			PROCALL		},
/* 49 */	{	"sigchange",		PROCALL		},
/* 50 */	{	"sysopshell",		PROCALLS		},
/* 51 */	{	"title",				PROCALLS		},
/* 52 */	{	"tolower",			FUNCALLN		},
/* 53 */	{	"toupper",			FUNCALLN		},
/* 54 */	{	"upload",			FUNCALLS		},
/* 55 */	{	"uploadmenu",		PROCALL		},
/* 56 */	{	"user_date",		FUNCALLS		},
/* 57 */	{	"user_level",		FUNCALL		},
/* 58 */	{	"userflag",			FUNCALLN		},
/* 59 */	{	"usersig",			FUNCALLN		},
/* 60 */	{	"who",				PROCALL		},
/* 61 */	{	"open",				PROCALLS		},
/* 62 */	{	"exist",				FUNCALLS		},
/* 63 */ {	"delete",			FUNCALLS		},
/* 64 */ {	"current_date",	FUNCALL		},
/* 65 */ {	"number_days",		FUNCALLR		},
/* 66 */	{	"is_user",			FUNCALLS		},
};

 

  • Like 1
Link to comment
Share on other sites

2 minutes ago, Techman said:

I probably have a copy of the MCL manual that could be scanned in. As I recall, it was a separate book in the box.

 

Well, in mine (which was a brand new, still shrinkwrapped) there was just one manual (for the BBS and the MCL) but not sure how else it was distributed.  Since mine was in perfect condition, I wasn't willing to cut the soft cover binding.  I had been looking for a good hand scanner, but eventually it just ended up on the back burner.  I'm searching through Amazon/eBay now.  At worst, I could probably take pictures and see if that OCR's well.

 

 

  • Like 1
Link to comment
Share on other sites

This is all very exciting. 

 

Tim, there was a magazine distribution of MichBSS 3 - that came with a couple of examples of MCL adapted boards.. but there was not provided anyway to compile them into the board, and no mcl editor?? is there a gui that allowed you to edit the MCL, or did you use a text editor etc.. 

 

James

Link to comment
Share on other sites

13 hours ago, Techman said:

The Makefile for the atari is below, Does anyone remember what assembler mac was? Probably at this point would need to be moved to linux/osx cross compiler.

That would be Atari's MADMAC. It is available on the official Atari SDK, but some people (myself included) have maintained, extended and rebranded it for some years now: http://rmac.is-slick.com

Edited by ggn
Link to comment
Share on other sites

8 hours ago, Bikerbob said:

This is all very exciting. 

 

Tim, there was a magazine distribution of MichBSS 3 - that came with a couple of examples of MCL adapted boards.. but there was not provided anyway to compile them into the board, and no mcl editor?? is there a gui that allowed you to edit the MCL, or did you use a text editor etc.. 

 

James

 

You edited them with your favorite text editor and then ran them through the MCL compiler that came with the BBS, which created a *.MCL file that was the byte code the BBS ran.

 

7 hours ago, ggn said:

That would be Atari's MADMAC. It is available on the official Atari SDK, but some people (myself included) have maintained, extended and rebranded it for some years now: http://rmac.is-slick.com

 

I remember now; I think I also used the Atari SDK C compiler back in the day. I'll check out link above.

Link to comment
Share on other sites

15 hours ago, Techman said:

 

You edited them with your favorite text editor and then ran them through the MCL compiler that came with the BBS, which created a *.MCL file that was the byte code the BBS ran.

 

I would have to look again (things are packed up right now) but Pretty sure either the magazine distribution came with them as MCL files, OR it did not come with the compiler (I think the latter) But since I did not understand MCL or have a manual for MCL the only thing I was trying to do was run the variants - which I was never able to do.. maybe there were instructions that were in say an article in the magazine that I never saw. 

 

James

Link to comment
Share on other sites

10 minutes ago, Bikerbob said:

 

I would have to look again (things are packed up right now) but Pretty sure either the magazine distribution came with them as MCL files, OR it did not come with the compiler (I think the latter) But since I did not understand MCL or have a manual for MCL the only thing I was trying to do was run the variants - which I was never able to do.. maybe there were instructions that were in say an article in the magazine that I never saw. 

 

James

I thought that DarkLord and I compared the disk you had with the one I had.

 

But as long as Techman has no objections I can dig that out and post it. (The original disk I have).  I think it's still packed up with the VCF Midwest stuff. :(

 

I also got some stuff from Amazon that I hope will let me get the manual scanned too (since we're now moving all things Michtron to the front burner).

 

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