Jump to content
IGNORED

Michtron v3.0 BBS Software?


DarkLord

Recommended Posts

Some feedback on some of the questions I had prepared for the Zoom call

News section is basically Global messages or Bulletins, I misunderstood the function so that is clear now to me
Mail/Messages section is thus where you can create forum-alike topic discussions , of course I first need to properly set up these Mail areas.

Bikerbob when he was logged with the Guest account send me a mail whilst I was logged on to the console.
To both our suprises I didn't get any indication or prompt except Bikerbob telling me verbally that he send me a new mail.
Then when I actually went into the Mail menu and scanned my mails , there it was.

I found a way to "notify" a logged-on user that he has a new mail.

In the beginning of the Michtron 3.0 MAIN.M that is shipped as the default Main menu there is the following

NewUser:;            /* define a label */
if(menu)            /* is this first time? */
    goto MainMenu;        /* nope so skip to main */
++menu;                /* set flag so we skip this */
diskfree("");            /* show me free space */
howdy();            /* say hello */
list("\\bbs\\msgday.msg");
show_newmail();            /* how many new messages? */
show_newxfer();            /* how many new downloads? */
show_lastcaller();        /* Who was here last */
showdate();            /* todays date is */
who();                /* show who is on line now! */
chat=1;                /* turn on chat */

So when you log on your are notified of how many new messages there are since your last logon.
Thus I've added this procedure-call in the loop that get's executed everytime your return to the main menu or press ? in the main menu.

        }
    else if(k == '?')
        {
/*
User is lost give him/her some help -     UNREG = "winqfcb?"
*/
        print(username$);
        print("\n");
        print("[?] Help\n\n");
        print("[W]elcome message\n");
        print("[I]nformation\n");
/*        print("[N]ews file\n");
        print("[Q]uestionnaire\n"); */
        print("[F]ile transfer\n");
        if(level > 0)
        {
        print("[M]essage base\n");
        print("[S]ig change\n");
        print("hi-low [G]ame\n");
        }
        print("[C]hat with Sysop\n");
        if(level > 0)
        {
        print("[E]dit profile\n");
        print("[L]ast callers\n");
        print("[D]isplay Userlist\n");
        print("W[H]o is online\n");
        print("[O]ptions menu\n");
        print("No[T]ify Other Users\n");        
        print("ch[A]t withOther Users\n");
        }
        if(level >= 2)
        {    
        print("[/] SysOp functions\n");
        }
        print("[B]ye (log off)\n");
        show_newmail();
        }
    }        /* same as goto MainMenu */

So now when you are logged on and somebody sends you a mail , you will notice it in the main menu at the bottom , it's not a siren going off but well it is a notification .
 

Link to comment
Share on other sites

4 minutes ago, Techman said:

Need to provide it input with the < filename

 

With the ascii art, it will still work, it will just put the art in print(...) statements.

I did ,  I used the redirection greater and smaller then signs.

So I think I'm not using the correct shell ?
TOS doesn't have one and EMU-CON didn't seem to work

Link to comment
Share on other sites

8 hours ago, Lastic said:

I did ,  I used the redirection greater and smaller then signs.

So I think I'm not using the correct shell ?
TOS doesn't have one and EMU-CON didn't seem to work

Hmmm. Let me tweak the program to allow ans2mcl in_filename out_fielname

Link to comment
Share on other sites

Today I created my first custom MCL script, it was an idea that was lurking for a while now and with the info from the manual and bit of trial and error it works.
I won't go into details yet as to not give an spoilers to the current testers/sysops who still haven't seen it.

One thing I do miss or maybe it is available and I've overlooked it, is the ability to do a clearscreen.

Link to comment
Share on other sites

Techman,

  

I'm looking at the Michtron BBS PDF manual at page 89 the list(sexp)  list file to user.  Since you are already working on updating I thought I would ask a favor.   A couple of sysops here asked me about adding bit map graphics to my  Instant Graphics and Sound terminal and I have done this although not released yet only a beta to couple of the sysops.  What  I need list(sexp) to do or maybe altogether a new listr(sexp) is to send a file to a user byte for byte no formatting the line lengths to 40 or 80 columns just send the file straight across all 8 bits, 0 thru 255.  Your list(sexp) might already do this but if not a listr(sexp) for list raw should be a simple task.  My terminal program has a new command to upload the bit map all 32000 bytes or a 4000 byte section of it, the command has a small  header telling it what you want to do,  all the BBS has to do is just send the file intact to the end what ever size it is.  The new IGDEV13.PRG will load a DEGAS/ELITE  non compressed low, med, or high image and convert it to a loadable IG format.  Takes about 30 seconds at 19.2k baud for a whole pic about 4 seconds for a 4000 byte section, which is a 25 or 50 pixel high horizontal strip. So far It's working on Kirkman's Synchronet BBS and it'd be great to have it working on Michtron BBS too.

 

Thanks,

Larry the IGS GUY

 

 

Edited by IGS GUY
typo, probably got more! :)
Link to comment
Share on other sites

16 hours ago, Lastic said:

Today I created my first custom MCL script, it was an idea that was lurking for a while now and with the info from the manual and bit of trial and error it works.
I won't go into details yet as to not give an spoilers to the current testers/sysops who still haven't seen it.

One thing I do miss or maybe it is available and I've overlooked it, is the ability to do a clearscreen.

Just "print"  the code for clear screen depending on the emulator  \0x0c should work.

Link to comment
Share on other sites

Hey Tim, James (Bikerbob) we met in the zoom meeting.

 

So this is an image on an atari CRT of the dir of the distro disk of Michton 3.0

 

so we have a MCL.ttp.. which I assume is a CLI for compiling etc..   Any scans of commands etc would be amazing. I would love to look at some of those other builds of boards.

 

 

Also I wanted one setup on my machine, currently located on drive E: .. I wanted to use a dir,  e:/michtron/bbs  but it would seem the program is fixed at using /bbs as the dir. Is that correct?

michtron_disk.jpg

Link to comment
Share on other sites

10 hours ago, IGS GUY said:

Techman,

  

I'm looking at the Michtron BBS PDF manual at page 89 the list(sexp)  list file to user.  Since you are already working on updating I thought I would ask a favor.   A couple of sysops here asked me about adding bit map graphics to my  Instant Graphics and Sound terminal and I have done this although not released yet only a beta to couple of the sysops.  What  I need list(sexp) to do or maybe altogether a new listr(sexp) is to send a file to a user byte for byte no formatting the line lengths to 40 or 80 columns just send the file straight across all 8 bits, 0 thru 255.  Your list(sexp) might already do this but if not a listr(sexp) for list raw should be a simple task.  My terminal program has a new command to upload the bit map all 32000 bytes or a 4000 byte section of it, the command has a small  header telling it what you want to do,  all the BBS has to do is just send the file intact to the end what ever size it is.  The new IGDEV13.PRG will load a DEGAS/ELITE  non compressed low, med, or high image and convert it to a loadable IG format.  Takes about 30 seconds at 19.2k baud for a whole pic about 4 seconds for a 4000 byte section, which is a 25 or 50 pixel high horizontal strip. So far It's working on Kirkman's Synchronet BBS and it'd be great to have it working on Michtron BBS too.

 

Thanks,

Larry the IGS GUY

 

 

 

List(expression) works exactly like that. It dumps the file byte for byte to the user.

  • Thanks 1
Link to comment
Share on other sites

34 minutes ago, Bikerbob said:

Hey Tim, James (Bikerbob) we met in the zoom meeting.

 

So this is an image on an atari CRT of the dir of the distro disk of Michton 3.0

 

so we have a MCL.ttp.. which I assume is a CLI for compiling etc..   Any scans of commands etc would be amazing. I would love to look at some of those other builds of boards.

 

 

Also I wanted one setup on my machine, currently located on drive E: .. I wanted to use a dir,  e:/michtron/bbs  but it would seem the program is fixed at using /bbs as the dir. Is that correct?

michtron_disk.jpg

I don't remember the reasoning (I think it was related to folder limits in early TOS), but the software uses the config drive (set in main.prg and stored in config.bbs) x: BBS for files. And yes, MCL.TTP is the compiler for the MCL files.

Link to comment
Share on other sites

Thanks for all this info Tim.

I will try the clrscr work-around you posted.

I have tried using only the ANTONIO.M prints section and I can confirm that it works, it is showing ANSI when executing a compiled ANTONIO.MCL.
But I will give this new TTP a try also.

Link to comment
Share on other sites

1 hour ago, Bikerbob said:

Hey Tim, James (Bikerbob) we met in the zoom meeting.

 

So this is an image on an atari CRT of the dir of the distro disk of Michton 3.0

 

so we have a MCL.ttp.. which I assume is a CLI for compiling etc..   Any scans of commands etc would be amazing. I would love to look at some of those other builds of boards.

 

 

Also I wanted one setup on my machine, currently located on drive E: .. I wanted to use a dir,  e:/michtron/bbs  but it would seem the program is fixed at using /bbs as the dir. Is that correct?

michtron_disk.jpg

I was able to get a working build from scratch MCL script made now for my BBS.
It's running it (well in 5 minutes since I made again another update to the menu structure) you will see it immediately when you logon :)

I used the PDF manual , the information in the ANTONIO.M ANSI example and Tim's earlier posts to wrap my head around MCL .

https://forums.atariage.com/topic/330822-michtron-v30-bbs-software/page/2/#comment-5338325https://forums.atariage.com/topic/330822-michtron-v30-bbs-software/?do=findComment&comment=5338327

 


https://forums.atariage.com/topic/330822-michtron-v30-bbs-software/?do=findComment&comment=5338327

 

 

Link to comment
Share on other sites

The way I am experimenting currently is as follows.

I create a EXPERIMENTAL.M file .
In my MAIN.M I create a seperate Menu item to will do an execute(EXPERIMENTAL.MCL);
It needs to reside in the BBS subdir for the above to work.

I use MCL.TTP first compile my EXPERIMENTAL.M file , then compile my MAIN.M
Start BBS.TOS and off we go.

Any further changes I want to make to the EXPERIMENTAL.M can be compiled seperately since the compiled MAIN.MCL already contains the execute statement.

Link to comment
Share on other sites

7 minutes ago, Lastic said:

The way I am experimenting currently is as follows.

I create a EXPERIMENTAL.M file .
In my MAIN.M I create a seperate Menu item to will do an execute(EXPERIMENTAL.MCL);
It needs to reside in the BBS subdir for the above to work.

I use MCL.TTP first compile my EXPERIMENTAL.M file , then compile my MAIN.M
Start BBS.TOS and off we go.

Any further changes I want to make to the EXPERIMENTAL.M can be compiled seperately since the compiled MAIN.MCL already contains the execute statement.

 

This is exactly how I used to test and build MCL files.

 

-Tim

 

 

Link to comment
Share on other sites

An update on the new compile:

 

It's all building and linking, without errors, but not yet executable...

 

What appeared to be a valid ASM code was crashing. It turns out that gas does not word align dc.w or dc.l statements, so I need to adjust the code with some .align statements. So getting closer.

 

-tim

  • Like 2
Link to comment
Share on other sites

1 hour ago, Techman said:

Here is an updated ans2mcl.tpp

 

Use it as ans2mcl.ttp infile outfile

 

-Tim

ans2mcl.ttp 163.83 kB · 1 download

First glance, it works now, a 3KB ANSI gets converted to a 9KB M file
The last line does seem to break off but that might be due to the ANSI ?

print("\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00

The final quote "); is missing but OK well I added that manually.
ANS2MCL_TTP.thumb.GIF.13098bc90fb23268fa092e5fd0e47987.GIF
MCL.TTP compiled it succesfully to an 3KB MCL file again.

and it works !!!

Tim, thank you Sir, what a major advancement from the ST Format Michtron 3.0 Demo I was running weeks ago .

TRSI_ANSI_works.thumb.GIF.0bb96f140cf2c3b18004c117225b7a44.GIF
print("\0x0c"); also works as a clearscreen , I added it after the pause() function shown in the above screenshot .

I've added the original ANSI also to this post.

ROY-TRSI.ANS

Edited by Lastic
updating content
  • Like 1
Link to comment
Share on other sites

1 hour ago, Lastic said:

First glance, it works now, a 3KB ANSI gets converted to a 9KB M file
The last line does seem to break off but that might be due to the ANSI ?

print("\0x00\0x00\0x00\0x00\0x00\0x00\0x00\0x00

The final quote "); is missing but OK well I added that manually.
ANS2MCL_TTP.thumb.GIF.13098bc90fb23268fa092e5fd0e47987.GIF
MCL.TTP compiled it succesfully to an 3KB MCL file again.

and it works !!!

Tim, thank you Sir, what a major advancement from the ST Format Michtron 3.0 Demo I was running weeks ago .

TRSI_ANSI_works.thumb.GIF.0bb96f140cf2c3b18004c117225b7a44.GIF
print("\0x0c"); also works as a clearscreen , I added it after the pause() function shown in the above screenshot .

I've added the original ANSI also to this post.

ROY-TRSI.ANS 2.73 kB · 0 downloads

 

 

Oops I forgot to close the file to flush the buffer to the disk.

 

 

ans2mcl.ttp

Link to comment
Share on other sites

18 hours ago, Techman said:

Just "print"  the code for clear screen depending on the emulator  \0x0c should work.

As already stated , this works perfect.
Since I am running the BBS in Medium resolution, I am wondering if VT52 foreground/background colours are possible or plain foreground/background console colors using a print with some escape sequence (0x1b something) ?

I know, it's only 4 colors but I'll take those if I can use them 😁

Link to comment
Share on other sites

A partial answer to my above question regarding the console colors after reading the manual and experimenting.
I was a bit confused because the section on the MAINT.PRG states that Save Colors which saves the current colours to PALETTE.BBS is not used by the BBS.
But a bit futher on page 63 it stated
Saves the custom colours chosen by the user.
This is especially usefull if the BBS program is used in an AUTO folder.

So I thought, hold on, so it actually is used ?
Since I have my machine hooked up to TV output, black text on a white background in the console is a bit blurry.

Opened XCONTROL , Colors, changed color 1 (black) to a more greenish colour, changed color 0 (white) to black, saved it.
Then ran MAINT.PRG , saved the PALETTE.BBS (Save Colors) and restarted BBS.TOS.

And now I have a green foreground on a black background console ;)

Thus only interesting thing would be to change the colours for a caller also (NON-ANSI) , as stated maybe using a print command with escape sequences ?
 

Link to comment
Share on other sites

And last questions for this weekend, and please Tim my apologies if it feels like I'm firing away, do not feel obliged at any moment , there is absolutely no rush here.
I just post them here so I don't forget as I progress with tuning the default Michtron 3.0 BBS and it might be usefull for anybody else who wants to start using it.

Userflags.thumb.GIF.d9a546b09adebf6f6c19c3d2b7c8d9e8.GIF

Page 79-80 SYSTEM Variables
flags contains current users flags that are stored in his record
this may be used as a variable, or as bit flags --see user_flags().
 

Page 96

userflag(expr) function
returns non-zero (true) if userflag expr is turned on


Are these used as a Boolean ?
For example if I would ask the user if he is an ABBUC member and store the result in (user)flag1 , it's a TRUE or FALSE flag that I can check on ?

On page 83 in the manual there is also a mention of
user_var0-user_var6 (integer variables ?) are these maybe usable to store additional information like for example if I want to store the users Country he is dialing from ?

On the ST Format Michtron 3.0 demo , subdirectory VAN_NEST I found the following interesting bits

if(userflag(1) || userflag(2) || userflag(3))
  {
  print("\n",j$);
  print("*********   The red carpets rolls out for a BBS Donator!   ");
  print("*********",k$,"\n");
  }

if(logname("Sysop") || logname("Test User") || (level == 4))
  {
  lastrecord = 0;
  idletime = 3600;
  }
else                  /*  ##########  MESSAGE OF THE DAY  ##########  */
  {
  idletime = 120;

In that same example there is also an interesting LISTING.M to create a BBS listing.
and in PROFILER.M there is mention of selecting your terminal type ASCII or VT52.


I'm going to run this VAN_NEST demo on another Atari ST with another Wimodem this Sunday to see if I might pick up some usefull information from it.

 

Link to comment
Share on other sites

3 hours ago, Lastic said:

As already stated , this works perfect.
Since I am running the BBS in Medium resolution, I am wondering if VT52 foreground/background colours are possible or plain foreground/background console colors using a print with some escape sequence (0x1b something) ?

I know, it's only 4 colors but I'll take those if I can use them 😁

This VAN_NEST demo example is filled with very good hints on the more intricate Michtron 3.0 config

else if(user_var1 == 1)             /*   Atari ST VT52     */
  {
  h$ = "\eb1";                      /*   Color highlight   */
  i$ = "\eb3";                      /*   Color normal      */
  j$ = "\ep";                       /*   Inverse video     */
  k$ = "\eq";                       /*   Normal  video     */
  }

  if(k == '?')
    {
    print("\f\n                      ",h$,"M a i n   M e n u",i$,"\n\n");

So another question solved, these look like the VT52 escape sequences so I should be able to work it out using the TOS.HYP section on VT52.

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