General Documentation for MMT Version 1.00 ณ by Carl Allain ฺฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤฤู 1995ฤ02ฤ24 ฺฤฤฤู ฤฤฤฤฤฤฤฤฤฤฤู A SHORT BACKGROUND STORY ABOUT MMT ออออออออออออออออออออออออออออออออออ The first wide-beta version of MMT is about to be completed. The MMT project was done rapidly, as every project I made until now. I had done parts of MMT work in some of my others projects/experiments and one day I decided to put everything together to make a multimedia terminal. At first, MMT was supposed to be a terminal to be called through a DOS shell from a stand alone terminal, only for playing the new doors I would like to create. But things have changed a lot since my friend Richard asked me to extend MMT to a full terminal with which users can call on many BBSes. I added all the basic stuff which made up a terminal, such as a phone book editor, ANSI-capability, automated dialing, etc. I tried to make it nice and avoided all non-essential elements. Since I have no time to implement an internal Zmodem protocol - and to understand it ;-) -, I had to find a cool program which would do part of the work for me. I put Richard on this and he came up with a few public-domain external protocol drivers. Since MMT would support only the Zmodem protocol, I decided to use the Texas ZModem protocol driver from Mike Dumdei. It is clean and the latest version just work fine with MMT. I implemented zmodem auto- download capability and it is just great. MMT is FreeWare. That is, you can use it and distribute it at will, but you cannot modify the original files distributed. I offer no warranty and I am not responsible for whatever may happen to you if you use MMT. Use it for fun, profit, or any other reason, I don't care, as long as you use it and you remember that it was me, Carl Allain who made it. As time passes, there may be enough people running on MMT to push some programmers (including me) to program a door for it. All the MMT mode commands are explained in the SCRIPT.DOC file for those who would like to have a better understanding of MMT. INTRODUCTION TO MMT อออออออออออออออออออ MMT is for MultiMedia Terminal. As its name implies, MMT is a multi- media communication terminal. By multimedia terminal, I mean a terminal including both graphical and sound capabilities. MMT obviously offers MMT script emulation, that is MMT can "understand" some characters combinaisons as MMT commands, instead of raw text. MMT will try to obey to MMT commands it has received, after validating them. For example, suppose MMT is receiving this characters combinaison: "Hello!{J002}Welcome to this BBS." Since all MMT commands begin with a "{" and end with a "}", MMT will identify an MMT command inside this character stream : {J002}. The "{" and the "}" are not part of the MMT command itself, they just serve as command delimiters, so the "real" command for MMT is J002. All MMT commands are identified by a command code, which is simply the first character in all MMT commands. Others characters in an MMT command are parameters that are necessary to perform the intended command. In our particular case, the "J" means "change the current text foreground used for drawing characters" and the "002" is the only parameter necessary for this command, and represents the color index 002 in the current color palette. After this command has been issued, MMT will use color index 2 of the current color palette for drawing characters on the screen. All MMT commands are not as simple as this one, but they are not very complex at all. All MMT commands perform only a simple task. It may be to load a music file into main memory, or to draw a line or a rectangle on the screen. MMT VERSUS THE RIPTERM ออออออออออออออออออออออ MMT is not the first multimedia terminal coming up to the shareware and public-domain world. RIPterm has been there since a couple of years, and people are waiting for a new version of the RIP script, more powerful than ever. Many terminal incorporating music and graphics do exist, but they are not generic terminals, so they have been made for a specific game or BBS door. MMT and RIPterm are both generic terminals, so anyone can use them to call any ANSI-capable bulletin board system as usual. If the BBS they are calling supports the particular script (some kind of language) commands required for MMT or RIPterm, their generic terminal can be ordered to switch to MMT or RIP mode instantly and display graphics. MMT has some extra features over the RIPterm, and vice-versa. I will try to be as objective as possible, not trying to protect my own MMT creation in describing its strengths and weaknesses versus the RIPterm. Both MMT and RIP use fixed length fields in their script commands and they both use base-36 numeric parameters which may be occult for some people. But the goal behind base-36 is to have compact commands so they can be transmitted and processed rapidly. MMT graphic mode is the standard video mode 13 hexadecimal. This video mode has not the best resolution (320 pixels wide by 200 high), but offers a large palette of 256 simultaneous colors, taken from a much larger palette of more than 260,000 possible colors. This can still provide very realistic images and great graphics for the user, with only 64000 pixels per page of video memory. RIPterm, on his side, uses a video mode with more resolution, (640x350), but with only 16 simultaneous colors. Therefore, each page of memory display uses 112000 bytes. The new RIP version to come claims to support display adapters with even more resolution and 256-colors palettes. It may sound good, but to me, it sounds SLOW. Because the RIPterm is already slow, I can imagine how slow would be a RIPterm with 256 KB of memory per video page. What I like of the RIPterm is its 80 characters wide screen. MMT supports only 40 characters per line with a standard 8 pixels wide bit- mapped font. But only MMT can support multicolor fonts, not RIPterm ;-). MMT supports digitalized music and samples which the new RIP version is supposed to support too. But it seems that this new version will never come because it is quite late (many months). MMT may take advantage of this if it can be released officially in a short time. MMT suppose the terminal has all the music and graphic files needed before it is ordered to use them in MMT mode. The RIPterm has the advantage of being able to transfer those files in real time, while the user waits for the transfer to be completed. This may sound good, but it may take some time to transfer high-resolution graphics, even with file compression techniques. After all, all the files needed must be transfered to the terminal system, and MMT requires it to be done before the MMT mode session begins. This is not a big problem, users only have to transfer the files pack once using the MMT default ANSI mode, before playing their favorite game for the first time. MORE ABOUT MMT ออออออออออออออ MMT script version 1.00 will implement about thirty-five MMT commands. Those commands are more than enough to give the MMT programmer/artist good tools to create fun games with nice graphics. MMT is a freeware program, that is il can be used and distributed as is at will by everyone. For file transfers, MMT will be using the public-domain Texas ZMODEM protocol command line transfer program. MMT has two modes of operation : the ANSI mode and the MMT mode. In ANSI mode the MMT terminal is used as an usual ANSI terminal like Telix or QModem, except for the fact that it is not as complete as these programs. One funny thing in ANSI mode is that the user can change instantly the current text font at will (this is a very rare feature I think, because I have never seen another terminal with this fantastic option). This can be used to change the look and feel of any text/ANSI mode game. In MMT mode, that is where all "real" capabilities (music and graphics) of MMT can go wild. The mouse is supported in this mode if a mouse driver has been loaded and this can be used to provide a user-friendly interface for games or BBS menus. MMT graphic files, called images files (.IMG extension) are derived from the Paint Brush .PCX compression sheme. MMT comes with an utility to convert any 320x200x256 .PCX image to a .IMG file, readable directly by MMT. For text drawing, MMT uses a combinaison of specially designed .IMG files to represent all characters used for a particular font and a font table (.FTT) which contains all the coordinates of virtual "squares" containing those characters. MMT supports multiple sound cards (most of the Sound Blaster family and the Gravis Ultrasound) through the use of Music and Sound Engines (.MSE). Music and digitalized samples themselves are stored in the GDM file format. In fact, MMT sound system is based on the BWSB (for Bells, Whistles and Sound Boards) sound system made by Edward Schlunder. The BWSB shareware package is available on some systems and I registered to it in order to use it with MMT. There is a music file converter that can make .GDM files from the more common .MOD or .S3M music files format in the BWSB package. MMT has been compiled to run under DOS. I did not test it under windows or OS/2 since I am a DOS user before and after all. Try it if you want and don't be surprise if MMT don't work perfectly under those operating systems, especially at high speeds while the music is playing. THE MMT TERMINAL ออออออออออออออออ I will suppose you are used to communication terminals. I am not going to explain in detail any important communication concept, but I will try to do a good job in explaining MMT features. First of all, you should take a look at the status bar located at the bottom of your screen when MMT is ready to communicate. The status bar is there to provide you some information about the current status of MMT. The first thing you can see, completely at the left of the status bar, is my name, followed by the version of MMT you are using. Try to always use the latest version of MMT, so old bugs and problems may not be there anymore. After this, MMT shows you which ComPort (1-4) it is using, and the current speed, or baud rate, at which it is functionning. The N81 will always be there, since it is the only line settings available for MTM (these are standard line settings, N=No parity, 8=8 bits per byte, 1=1 stop bit). Continuing to the right, there is some blank space that may be filled during a communication session by those symbols: ECHO : When this symbol is shown on the status bar, it means that MMT will echo all your keystrokes to the screen. Normally, this setting is not active since it is your modem or the remote system that send back your keystrokes to MMT which then displays them. <ู : When this symbol is shown on the status bar, it means that MMT will add a line feed character to any carriage return you receive/type. MMT will never send an added a line feed character to the remote system by itself, even is this setting is active (off by default). This behavior, like the one corresponding to the ECHO symbol, are valid both in ANSI and MMT modes. However, there is no symbol to indicate you their current status during an MMT mode session. <-> : This symbol means than you are currently connected to another computer via a null modem link or a modem. FIFO : This symbol means that MMT has detected and is using the FIFO buffer on the current serial port it is using. FIFO-capability is more important when in MMT mode and is available on the 16550A UART. ANSI : This will always be there while MMT is in ANSI mode. This is just to remind you that MMT supports ANSI graphics and most of the ANSI script. The last and one of the most important thing shown on the status bar is the F1-Help message. You can use the F1 key to show up all the available MMT hot-keys for normal operation. COMMAND LINE OPTIONS When you start MMT from a command line, you can pass it some command line options to change its normal behavior. Here are the available command line options: /NOINTRO : This command line option is used to bypass the graphic presentation executed each time MMT is loaded. /NOALARM : This command line option is used to order MMT not to use any sound when it connects/uploads/downloads to/from a remote system. /NOLOG : By default, MMT put every character it receives in the file MMT.LOG while it is in ANSI mode. If you don't want MMT to do that, simply supply this option on the command line. @FILE : This command is used to order MMT to execute a script file (.MMT) right after the initial graphic presentation. Using this option has no effect if you use the /NOINTRO option. All you have to provide is the name of the script file (without its extension), preceded by a "@". For example, @MYFILE will order MMT to execute the script file MYFILE.MMT. UPLOADING AND DOWNLOADING MMT uses an external protocol driver for its file transfers (except for ASCII uploads). By default, MMT uses and is configured for using TXZM.EXE, that is the Texas ZModem external protocol driver. MMT recognizes the Zmodem download command string it receives and it starts the zmodem download all by itself when the remote system is sending one ore more files using the Zmodem protocol. You can tell MMT to use another external protocol by changing the upload and download command strings during MMT configuration. You MUST enter the complete name (including the extension and path) of the external protocol you want to use. You can pass some parameters to the external protocol driver by adding them after the name of the program itself. MMT will replace the following characters by an internal value: %P -> the communication port base address currently in use (in hex) %I -> the current IRQ used by the UART to communicate (2-7) %C -> the current comport used by MMT to communicate (1-4) %S -> the current locked baud rate (1200/2400/9600/19200/38400) When you upload files to a remote system, right after you have selected all the files to upload via MMT upload system, MMT creates the file MMT.LST which contains the list of all the files you have selected. Use this file as a parameter when you modify the upload command string in the MMT configuration. Normally, you must precede the file with a special character to identify it for the protocol driver and you must in some cases give the complete path to the MMT.LST file. If you use TXZM.EXE and you want to change the directory in which all the files are written when you receive them, change the last parameter in the default zmodem download command string for the directory you want. If you use another external, read its documentation to modify the zmodem transfer command strings for use with it. MODEM STRINGS (INIT, HANGUP, ETC.) Modem strings can include some special characters to tell MMT to do something else than simply send the character to the modem. Tho special characters are supported: ~ (tilde) : This causes MMT to wait for half a second before processing the next character in the modem string. ^ : This causes MMT to send the next character as a control character. The most common control character is ^M for the carriage return character. MMT itself is self-documenting when you use it. Read carefully the messages that are given to you on the last line of the screen. I tried to help you with those messages, so read them to get some help. SPECIAL THANKS ออออออออออออออ I would like to thank Righard Sigouin for the many hours of testing he has accomplished with me for MMT and my others products. Thank you Richard. Richard is the system operator of PowerLine BBS, (514) 723-6848 in Montreal, Canada. He made part of the MMT intro screen and the original music for the intro is from him. THE END อออออออ I think I have said enough to give the reader a basic understanding of the MMT terminal. I will provide a more extensive documentation, designed to give programmers and artists all the technical information and tips needed to use the full power of MMT. This documentation will be available as soon as the first public release of MMT comes out. Thanks for reading this introduction to MMT, and I hope you will use MMT very soon... CARL ALLAIN Author/Programmer of MMT P.S. You can EMail me at PowerLine BBS (514) 723-6848 in Montreal, Canada. Maybe a conference could be made available in some public message network for the MMT terminal, so watch out.