Lastic Posted March 5 Share Posted March 5 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 . Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 5 Share Posted March 5 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 Quote Link to comment Share on other sites More sharing options...
Techman Posted March 6 Share Posted March 6 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 Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 7 Share Posted March 7 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. Quote Link to comment Share on other sites More sharing options...
IGS GUY Posted March 8 Share Posted March 8 (edited) 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 March 8 by IGS GUY typo, probably got more! :) Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 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. Quote Link to comment Share on other sites More sharing options...
Bikerbob Posted March 8 Share Posted March 8 11 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. Woah??? what manual in PDF?? Michtron 3.0???? James Quote Link to comment Share on other sites More sharing options...
Bikerbob Posted March 8 Share Posted March 8 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? Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 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. 1 Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 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? 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. Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 46 minutes ago, Bikerbob said: Woah??? what manual in PDF?? Michtron 3.0???? James https://forums.atariage.com/topic/330822-michtron-v30-bbs-software/?do=findComment&comment=5422705 Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 (edited) Here is an updated ans2mcl.tpp Use it as ans2mcl.ttp infile outfile -Tim ans2mcl.ttp Edited March 8 by Techman Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 8 Share Posted March 8 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. Quote Link to comment Share on other sites More sharing options...
Bikerbob Posted March 8 Share Posted March 8 37 minutes ago, Techman said: https://forums.atariage.com/topic/330822-michtron-v30-bbs-software/?do=findComment&comment=5422705 Thanks Tim, things are moving fast and furious here..I missed a whole page of posts!!! Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 8 Share Posted March 8 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? 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 Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 8 Share Posted March 8 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. Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 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 Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 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 2 Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 8 Share Posted March 8 (edited) 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. 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 . 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 March 8 by Lastic updating content 1 Quote Link to comment Share on other sites More sharing options...
Techman Posted March 8 Share Posted March 8 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. 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 . 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 Quote Link to comment Share on other sites More sharing options...
Bikerbob Posted March 9 Share Posted March 9 Tim, now that you have a sealed box open.. can we get a copy of the original disk from the box uploaded? James Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 9 Share Posted March 9 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 😁 Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 9 Share Posted March 9 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 ? Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 9 Share Posted March 9 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. 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. Quote Link to comment Share on other sites More sharing options...
Lastic Posted March 9 Share Posted March 9 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.