On the Windows platform, Reflections for Regis Graphics is the only terminal emulator that supports all of the VMS terminal features. In addition, Reflections includes an amazing scripting language that supports interaction between VMS programs and terminal window behavior. For instance, I can have a VMS program trigger a download of a report to a PC hard drive (without requiring the user to navigate through menus to perform the transfer). Reflections also allows you to restrict the user in many ways, such as preventing them from closing a terminal window without first logging off. Most emulators allow you to close the window without logging off, thereby terminating sessions and halting running programs without properly closing files. The ability to block the window closing is a great way to remind the user to properly logout first. There are several other features in Reflections that support all kinds of customizations. In short, Reflections has been the baseline that I use for comparing all other emulators.
Under Mac OS 9 (and earlier), the only terminal emulator that came close to Reflections is PacerTerm (now owned by Sande Castle Systems). It doesn't match up to all of the customization features of Reflections, but it supports the minimum needs I have for programming on OpenVMS: wide and highwide attributes, 132 column mode, logon scripts, and extended characters sets (including graphics). The terminal window text uses a special Pacer420 font that makes the text look very good. Unfortunately, Sand Castle has no plans to port this to Mac OS X, so it's my goal to investigate what terminal emulators exist for Mac OS X that support VMS. This review takes a look at dataComet-Secure 10.0.2 by Databeast.
The following additional features are supported only in dataComet-Secure:
When setting up dataComet, you need to know what kind of terminal you want to emulate (ANSI, VT100, VT220, IBM 3279, etc.), and the IP or DNS of the computer you want to connect to. That latest VMS terminal type in the menu is VT220 (VT420 would have been preferred). In the Sesstion type box, you select the type of connection (in my case, Telnet). For the Telnet access, I entered my account ID and password used to access my VMS server. For Host menus and functions keys, I selected xterm/VT420f. After clicking on OK, a new window opened up with a session running on my VMS server.
For some reason, however, the username and password I entered was ignored. When the VMS session opened up, I was still prompted to enter my username and password. By default, the font chosen is Monaco, which provided a decent representation of the VMS session. It supported wide and highwide characters, and displayed the extended character set (including graphics) pretty well. The "underline" attribute on a highwide character looked more like a dashed line rather than a connected underline. I found that changing the font size from 9 to 10 fixed the underline, but then the vertical lines in graphics became dashed. I tried various sizes, and only the size of 12 appears to provide the desired graphical representation (i.e., no dashed lines). There was no way difference between normal and bold text under this default configuration. The "Control" menu allows you to adjust many of the emulator attributes, such as font, size, and bold font. By default the Bold Font was set to "normal", which I would have assumed is the bold version of whatever the selected font is (in this case Monaco). However, that wasn't the case. I changed the bold font to Monaco, and then I was able to see the difference between bold and non-bold text.
The other place to alter settings for the emulator is under Preferences. dataComet's preferences is a large window with various "tabs" at the top. It doesn't have the OS X savvy look of Mac tabs; in fact, they looked more like what you would see in a xterm window on VMS or UNIX. The different Preference groups are:
I didn't need to use many of the preference tabs, but the ones that I did use were Global, Session, Views, VT100, and Color. Under global, I set the application to quit when all windows were closed and I turned off the initial splash screen (dataComet's splash is lackluster). Under Session, I set the session window to close automatically when the session ends (aka, after log off).
Under Views, I turned off certain status areas, and turned on others. It's unclear what many of the items on this preference pane actually mean, but you can go back to your session window to view the difference as you click and unclick each option. It would be nice if the preference window itself displayed a "preview" of a session window so that you can see the difference right there. The real problem I had with the views is that even when you turned off various checkboxes under "Status bar at top of window", the area preserved for the items you turn off remain (aka, blank unused areas). I had no interest in any of the items under this section (packets counters, buttons, and session timer), but I had to keep the status bar on because it's the only way to activate the little "M" button in the top left over the session display. This is a pop-up menu for the VT keyboard functions (F1 thru F24). This function keys are commonly used throughout most of my VMS applications, so access to them is necessary to navigate and exit program screens. Under PacerTerm on OS 9, I was able to map the pertinent function keys (F6 thru F20) to the Mac keyboard keys (F1 thru F15). It was not obvious to me how to map all the keys with dataComet, so the only way I could access these keys is by the "M" popup menu. The only way to activate the popup menu is by showing the Status area, and this leaves an useless large blank area over the session display. There are other VMS functions key that I could not figure out how to use (such as "Find", "Select", "Insert" and "Remove"). I figured they were mapped to other keys, but I wasn't sure which ones, nor did I see a way of remapping them to match my VMS/Mac keyboard template (until later - see below).
My goal in this review was to create and save a configuration which most closely matched in appearance and function the configurations I've created under Reflections on a PC and PacerTerm on Mac OS 9. To further reach this goal, I need to make some changed under VT100 and Color. Under VT100, I was able to establish an "Answerback" for my session. Our VMS system utilizes the terminal Answerback value to validate each user access to our system (it also customizes the default printer for the user based upon the Answerback). I didn't need to make any other changes under VT100 settings, but I did notice that "Do blink" and "Do underscore" checkboxes existed here. These apply to text attributes for the session. Bold is the third text attribute, and really should have been grouped with these two, but dataComet supports bold in a separate place. In order to establish your bold attribute, you have to specify a font for "Bold font" under the Control menu. I don't mind that the dataComet program handles them separately internally, but from a user perspective, the GUI should include them in the same place.
Under Color, I created a color scheme that matches the color scheme I normally used, which is a light green background with dark green text. I did not find the Color settings interface to be very intuitive at all. I turned on "Color mapping", and then proceeded to set the text and background color for each and every attribute (e.g., Normal, Reverse, Bold, Bold Reverse, etc.). There were no attributes calling out Underline, nor was it obvious to me how to get those attributes. By trial and error, I discovered that "Show Extended map" allowed me access to the underline attributes, and I proceeded to change the colors on each of those (another 16 color settings, for a total of 32 settings I adjusted). I thought it was a pain to have to change all of those settings individually, but then I clicked on "Host selects colors", and the "Attributes" column changed to "Host Colors". I found that by using this mode, and simply changing the Text and Background colors for "Black" and "White", I was able to create the same color theme but in much fewer steps. As mentioned, this was not at all intuitive (I guess that the other colors are there for IBM 3279 terminals).
One thing I noticed during the process of setting colors is that dataComet does not provide an "undo". Hence, if I wanted to go back to a previous state, I'd have to remember what that state was (and for customized colors, unless you saved the color on the palette, you're pretty much out of luck).
In attempt to further improve the appearance of the session text, I tried using the included dataComet fonts, Comet DEC and Comet DEC Bold. Unfortunately, I found that Monaco looked better than Comet DEC. Instead, I "borrowed" the Pacer420 font from my OS 9 system and used that, and the text was improved.
I was still left with a useless blank space over the session display, and thought it would be a good place to have some soft key buttons. dataComet support provided me information on a hidden feature that provided me this functionality. First I had to turn on the Buttons in the View preferences, and by command-clicking on a button, I was able to redefine the button to a different function (as well as renaming it). You are limited to 11 buttons, the preset number of buttons already defined, and you aren't allowed to delete a button, so you either must redefine each one, or retain some of the default buttons. I quickly redefined all of the buttons to be F10 thru F20, and this greatly improved my use of the emulator. There's enough space in the button area to have two rows of buttons, but dataComet limits you to just 11 buttons.
I finally achieved my goal of having the dataComet window closely resemble my Mac OS 9 PacerTerm session. Oddly, PacerTerm displayed the Pacer420 font better in OS 9 than dataComet did under OS X. On the other hand, dataComet's implementation of the bold attribute is better than PacerTerm's. Where PacerTerm just darkens the color of the font to simulate bold, dataComet actually makes the font bold (darker and thicker).
Originally thinking that there was no keyboard mapping, and looking for a built-in script function, I experimented with the "Macros" menu. I selected "Define Macros", and voila! I discovered the tool to re-map the keyboard keys, including the special keys such as "Find", "Select", etc.. This screen was not terribly intuitive (not to mention it was not obvious that this was where I had to go to find keyboard mappings). It was easy enough to define most of the keys - you first press the key on the keyboard you want to define, then choose the button on the screen (representing the VAX keyboard key) that you want to assign to that key. I was able to map all of the keys except for the F9, F10, and F11 "Expose" keys, and the F14 and F15 "volume" keys. The application lacked a way to override these OS X keys. Also on this screen is a "Show All" button that displays a list of all the keys mappings I created in a separate window. When I closed this window, I was prompted to save. I wasn't sure if this was saving the text of the window, or actually saving the mappings (I determined later that the key macros were saved with the configuration, and that this function was simply saving the text view of the macros). Upon a subsequent Show All followed by a close, it again prompted me to save even though I had already saved and had not made any changes. I found this very confusing. It would have been better to have a "Save" button instead, making it clear exactly what you are saving. There were other things you could do with Macros too, such as recording Macros, but I found it too unfriendly and confusing, and I didn't bother exploring further.
Beyond the emulation
functionality, dataComet also supports File Transfer by way of the Xmodem/Zmodem
protocol, allowing you to transfer files back and forth between your Mac and the
host computer. I tried using the file transfer function, but I couldn't get it to
work. As it turns out, this function requires the proper Zmodem applications running
on the host system in order to make this feature work.
The ability to redefine the "view" buttons was nice, albeit somewhat of a hidden feature. The feature needs to be more easily recognized, and should support the ability to define less or more than 11 buttons. The "M" popup menu for the Fkeys was not very user-friendly, so the ability to define at least 24 buttons would allow skipping the "M" menu altogether.
I also wanted a built-in
scripting language that enabled my VMS programs to communicate with the emulator.
Useful functions would be to allow VMS to change configuration settings as well as
trigger data dumps from VMS to the Mac's hard disk. dataComet does come with built-in
Macro support, but with commands that look like "!Z\25504!D\002!P\020!Z\255
!D\002", it's not something I would consider a useable programming language.
Likewise, dataComet's built-in Macros do not support interfacing between the host
system and the emulator.