1. WelcomeOur main focus is providing PL/I compilers and supporting PL/I programming environments. The environments include:
As part of this support function we procure and deploy systems for our customers and will assist in filling associated staffing requirements. PL/I is a powerful high-level programming language that is a superior alternative to using Fortran for Scientific applications, Cobol for Commercial applications and C or Bliss for Systems programming. Enjoy using the King of Programming Languages and don't worry about buffer overrun exploits. Why should you use PL/I? Find out! How does PL/I compare to C? From this site you may download both documentation and kits for the PL/I compiler for OpenVMS for both Alpha and VAX. As well as PL/I Run-Time Library kits for OpenVMS VAX, Alpha and I64. Also, you may download the kits for the PL/I compiler for Tru64.
2. What's New?To receive announcements of new PL/I products and significant updates, then subscribe to the PL/I Announcement Mailing List here .To keep abreast of all announcements and website updates, then subscribe to the Kednos RSS feed 2.1 Announcements
2.3 Power has been restored...
After being off the virtual map for a few days, thanks to some storm damage, Kednos is back and a few things have happened to the Kednos website. First there is a new blog by Tim Sneddon, aptly titled Tim's Blog. The first of many topics, This is the program that doesn't end... has just been posted. Look out for plenty more interesting topics covering a whole range of computer related subjects. Secondly, The Halls Of ZK finally has a new home. The new source code and executables for OpenVMS VAX, Alpha and I64 can be downloaded from here. Lastly, there have been the usual spelling corrections, updates to links, etc. that you would normally expect. 2.4 A New RSS Feed, Open Source and more...
The pages for MMK and MX have been moved into the new Open Source section. Although this is only just being set up, these products are being migrated to a Mercurial repository to further community envolvement. A new section called Code Management has also been setup. This page contains details of code management systems available to OpenVMS developers. Some new links have also been added to the Resources page. There has also been a number of changes to the Hobbyist pages also. The license registartion process has been brought into line with the current website design, as well as a host of new information specifically for hobbyists. The previous RSS feed has since been replace by the new RSS functionality offered as part of Mark Daniel's VWcms website management software. Lastly, the MMK page has been enhanced to include GNU make binaries for OpenVMS VAX, Alpha and I64 under the section Other Make Utilities. 2.5 NetRexx, SIG Tapes and a Few Extra Changes...
A new Articles section has been set up under Documentation. This is now the home for all articles submitted to the OpenVMS Technical Journal (and possibly others). There are also some new additions to the Project Euler page. There is now a new page for documenting Rexx activity on OpenVMS. The NetRexx interpreter/compiler from IBM has been ported to OpenVMS and is available here. Lastly, the VMS SIG and L&T tape archives now have a new home at the DECUSLibrary.COMpendium. To make new submissions for the next release, please visit the new SIG Tapes page under the Resources section. 2.6 PL/I Support for Eclipse IDE
The Editors sections has been updated to included the newly released Eclipse IDE support for PL/I. Thanks go to William Fenalson for this. 2.7 Project Euler
There have been a few changes to the website. There is a new section detailing PL/I based solutions to the mathematical problems found at Project Euler. The Documentation page has been reworked to be a bit neater and more helpful. 2.8 WSIT and J2VMS: A Comparative Analysis
The next issue of the OpenVMS Technical Journal is just around the corner. Tim Sneddon has written an article comparing HP's Web Services Toolkit and Kednos' Java-to-VMS Toolkit. An advanced copy of this article is available here. 2.9 Robot Find Kitten For PL/I
Some more small changes. The Contact page has been updated (even includes a Google map too). The Resources page now includes details of some PL/I and OpenVMS support forums as well as a Games setion for those looking to waste some time. The Sales & Support page has also been expanded. 2.10 OpenVMS Technical Journal Article
The latest issue of the OpenVMS Technical Journal, V12, has been published by HP. It contains an article by Tim Sneddon called Calling OpenVMS native routines from Java. It covers the Phone Book example of using the language integration tools to call native routines from Java. Also, the RSS topics now have real titles rather than the date they were posted. 2.11 Java Integration Toolkit Release
Kednos is proud to announce the release of the Integration toolkit. Currently focusing on Java, this toolkit provides a collection of tools for making it easier to interface Java and native OpenVMS routines and data structures. The official release announcement is available here. Kits, documentation, etc. can be found over at the Integration page. If you are an MMK user you may also note that the MMK page does not seem to be complete. This is because it was published prematurely. A new kit will be available very soon. Watch this space for further information. 2.12 Translated Support for Alpha PL/I Images
The production release of the Native IPF PL/I Run-Time Library for Translated Images has been announced. This announcement can be read here. Follow this link to go download kits and view the release notes. In other PL/I related news, Ebhard Sturm has just had his book "The New PL/I" (ISBN: 978-3-8348-072607) published in English. For further information, visit his publisher's website here. He is also the author of an article that compares C and PL/I, a link to which can be found on the Welcome page. 2.13 New tools, an RSS feed and much more...
Much has changed on the Kednos website since the last update. The largest change is the new Integration section which covers utilities and libraries for making integration between different languages easier. Most of these tools are also useful to non-PL/I developers as well. The current set of tools are specifically directed at Java integration. However, other tools are expected to be included in the future. Next are updates to the Resources section. Under this section there is now an Editors page that provides links to PL/I friendly editors and development environments. There is now a growing Benchmarks page also. This has a collection of publicly available benchmarks that have been re-coded in PL/I. There is a small collection of results which, hopefully with customer participation, will grow also. Lastly, there is also the MMK website. Like MX, Kednos has picked up the MMK utility and given it a new home here. For those seeking to keep up to date with what happens at Kednos there is now an RSS feed that will be kept in line with the What's New? page. It can be subscribed to above. There is also a new PL/I Announcement Mailing List to keep PL/I customers posted on PL/I-specific updates. It can also be subscribed to above. 2.14 A New Home for MX and MMK
The company MadGoat Software has come to an end and Matt Madison (the owner) has released the Mail Exchange (MX) product as open source. Kednos has set up a new home for MX (and soon MMK, the MadGoat Make utility) here. The MX mailing list has also been revived (including archives). Details on joining can be found at the new MX page. 2.15 Another Correction to PLI$STARLET.TLB
It has been brought to our attention that the definition of the TPU$INITIALIZE routine is incorrect. An updated copy of the definition can be found here. Once you have downloaded the file, the text library PLI$STARLET.TLB can be updated using a command similar to the following: $ LIBRARY/REPLACE SYS$LIBRARY:PLI$STARLET.TLB ddcu:[...]TPU$INITIALIZE.PLI Please note that this change will not effect existing code. This fix will be included in the next compiler release for both VAX and Alpha. 2.16 Field Test Release of Translated Support
Kednos has made a field test release of it's PL/I Run-Time Library to support executing translated OpenVMS Alpha PL/I images on OpenVMS I64. Click here to see the announcement. Click here to read the release notes and download a kit. 2.17 Correction to PLI$STARLET.TLB
Unfortunately when creating the current compiler kit the starlet library ended up with a faulty version of PLI_FILE_DISPLAY.PLI. You may obtain a correct copy at ftp://ftp.kednos.com/pub/axp/updates/pli_file_display.pli, and you should replace the one you have in your current pli$starlet.tlb with this one if you are having problems using DISPLAY. The next release of the compiler will remedy this problem 2.18 New Website for Kednos
Kednos has a new site. Bear with us while we iron out any wrinkles 2.19 No Itanium GEM for Kednos
PL/I on Itanium. OpenVMS Engineering has decided for unintelligible reasons to not provide Kednos with an update GEM compiler backend which supports Itanium. The one we currently use supports only Alpha. But there is hope. If you compile and link on Alpha you may use the AEST tool to create an Itanium executable. We provide the shared PL/I runtime library native on Itanium. We realize that this is a bit cumbersome, but, it gets you there. Complain to Mark Hurd. 2.20 New PL/I Kit for OpenVMS Alpha
A new kit is available which resolves a number of outstanding issues for the Alpha compiler. Please refer to the release notes for more information. 2.21 Tim's Blog
2.21.1 This is the program that doesn't end...Does anyone remember that song, The Song That Never Ends? I remember it from the end credits of Lamb Chop's Play Along when I was a kid. That was the first thing I thought of when I heard of a quine. Although, a quine is a whole lot easier to tolerate! Of course, once I heard about these programs I started looking round for quines in my favourite languages. Of course there are plenty written in C. However, I was only able to come up with this one for PL/I. Unfortunately, according to the comments it will only compile using the OS PL/I V2.3.0 compiler with certain options set. Whatever the requirements, it wouldn't compile on OpenVMS. It also, erroneously, claims to be the smallest possible PL/I quine. So, in the spirit of innovation (at least that's what I'm going to call it), here is my contribution.
It will compile straight out of the box using the Kednos PL/I compiler on VAX and Alpha. It may compile using other PL/I compilers. The BYTE built-in function is an extension to the ANSI General Purpose Subset (ANSI X3.74-1987 (R1998)) so it may not work everywhere. Although the documentation for the IBM compilers indicates they support it. The following is an expanded version to make it easier to understand what is going on. I should point out that this next sample is not a quine, it's just easier to read than the muddle of characters above.
It works by storing most of the program as an initial value to the character string s. The only thing missing from this initial value is s itself and its surrounding quotes, which are inserted during execution with the concatenated input to PUT LIST. Ahh, don't ya just love a good ol' fashioned waste of time? Further ReadingFor more mind-numbing quine madness have a look at these pages.
2.21.2 The VMS/L&T SIG Collection needs YOU!I have announced (even tweeted) a call for submissions for the next VMS/L&T SIG Collection. That's right. It's a collection now, not a tape. The last release was all the way back in Spring (for those in the Northern Hemisphere) 2007. A lot has happened since then. The collection has a new maintainer (me) and the historical archives have moved to the new DECUSLIBrary.COMpendium. The current plan is to have all submissions in by January 1st, 2010 with the "VMS/L&T SIG Collection 2009 H2" distribution ready for shipping by February 1st, 2010. I do intend to have the collections released half-yearly. Hopefully this release will make up for all those that have been missed. If you are interested in contributing, please head on over to the SIG Collection page and make a submission. You don't even have to be the author. If you see something useful drop me a line and I'll chase up the author and handle the packaging requirements. If you don't have any software to give and you still want to contribute, then maybe consider becoming a distribution point. The physical media is distributed by tree. So, the maintainer sends out a bunch of masters which are then copied and distributed to local (or at least semi-local) recipients. Although, in this day and age of broadband internet I imagine there won't be too many people looking for physical media. To give you an idea of what to expect in the 2009 H2 release, the following packages have already been fetched for inclusion.
Please post more suggestions, whether it be below or at the SIG Collection page. 2.21.3 Jabbing the JIB...Recently there was a post to comp.os.vms, JIB Jab. It asked of a way, from DCL, to determine the name of a process' job logical name table. I posted (and submitted to dcl.openvms.org) the following procedure as a solution:
The procedure accepts the process id to look up in P1. If no process id is specified then, like all process related queries, it default to the current process. This procedure works because a process' job logical name table is constructed from the string 'LNM$JOB_' and the 32-bit hexadecimal representation of the Job Information Block (JIB) address. The JIB of a process is accessible via the ANALYZE/SYSTEM utility and its SHOW PROCESS command. The output from SHOW PROCESS looks something like the following snippet:
By searching for the string 'JIB' the address is extracted and the job logical name table is determined. The following test demonstrates the procedure works correctly.
2.21.4 DOS file attributes on OpenVMSA few years ago, four according to the source, I was asked if it was possible to set the DOS file attributes on an OpenVMS file that existed on an Advanced Server (aka Pathworks) share. I wasn't sure, but it took only a minute or so to check it out. Sure enough, from Windows Explorer it was easy enough done. A right-click and a couple left-clicks later and it was confirmed. Then came the real reason for the question, "Can we do it from VMS?" The story goes that, apparently a manufacturer required that a previous employer's software output data files to a Windows share. The manufacturer in question then used their own special tool to open the files and process the data. However, in order to be compliant with their requirements we needed to set the readonly attribute on the data files. Given the possibilities of ACLs and everything else available to Windows users it seemed crazy, but that wasn't the point. So, to solve this problem I came up with an OpenVMS version of the ATTRIB utility. I started with looking at the output from a DIRECTORY/FULL of the file I had tested with and came up with something like the following output:
As you can see, the 'Client attributes' field lists the DOS file attributes. So I started looking at the source listings for the DIRECTORY command. In particular the source module [DIR]DISPLAY.B32 and the routines DIR$GET_CLIENT_ATTRIB and DIR$SHOW_CLIENT_ATTRIB. Together, these routines have knowledge of the Pathworks ACE that holds the DOS file attributes as they are responsible for the output of the field 'Client attributes' in the listing above. Unfortunately I could not locate a routine to write these attributes and nothing public that could read them. So I searched through the source listings and eventually came up with the SDL module [F11X]PWACLDEF.SDL. This had more than enough information for me to work with. So, coupled with this module and the listings for DIRECTORY I wrote an OpenVMS ATTRIB utility. The complete source code and executable for all architectures are here. Advanced Server stores the attributes as one of many Pathworks ACEs. These are suppressed (as shown above) in later version of the directory command, but a dump of the data can still be retrieved using either the SHOW ACL (obsolete) or SHOW SECURITY commands, like so:
The type of %X80 (128) is equal to PWRK$C_PATHWORKS_ACE indicating the ACE is a for Pathworks. The first word of the fourth longword (%X00000007) in the data contains the bitmask indicating which DOS attributes are active. ATTRIB acts almost exactly like the DOS/Windows equivalent. It even supports the undocumented ',' operator. The HELP reported by the /? qualifier is shown below.
However, I don't imagine that there will be too much use for this utility these days. The Advanced Server product has been placed into maintenance mode and will not be ported to the Integrity platform. Unfortunately the licensing arrangement between Microsoft, HP and AT&T fell apart and so the next step in keeping up with the ever evolving WIndows network on OpenVMS is the HP Common Internet File System (CIFS) product. It is an officially supported port of the open source Samba software. SoftwareThe ATTRIB utility and complete (BLISS) source code can be downloaded below:
Fell free to use it to your heart's content. Maybe even post something below and let me know how you got on. 2.21.5 Serving Mercurial repositories from OpenVMSI have just completed configuring the Mercurial repositories that hold the open source software served by Kednos. It is now possible to use the hg client to fetch and build MMK (The Halls Of ZK and MX will follow very soon) from http://hg.kednos.com. The following demonstrates a successful clone of the MMK repository. $ So, how did I get this all set up? Well that is the topic of this post. I have spent a bit of time tinkering around, reading the Mercurial documentation as well as some snippets of configuration files here and there. The first part was installing Mercurial. Mercurial has been ported by Jean-François Piéronne as part of his efforts in porting Python to OpenVMS. The Mercurial distribution is included on the Python logical disk and is not available as a PCSI (or other) kit. I chose to move the Mercurial distribution to our own physical disks and used the following commands to do so:
As I said, this step is not necessary and entirely up to the user, I just like it this way. I then tweaked my login procedure to include the following commands to ensure I always have the relevant foreign symbols configured:
Once Mercurial had been installed and was running correctly, I began work on setting up the webpage that can be seen at http://hg.kednos.com. To serve the Mercurial repository we use (as we do for all our web facing needs) WASD. After some searching round on the 'net I found a couple snippets of WASD configuration file here and here. So, using these as a base I began to fiddle around with our setup. Firstly, I needed somewhere to store the CGI procedure that handles all incoming connections as well as the repositories. I created the logical MERCURIAL_HOME. Although it seems to be the norm to use the abbreviation "hg" I found that to be troublesome in our setup as we also use Hunter Goatley's HGFTP for all our FTP needs. So, I created a directory and copied/created the relevant files and created the first repository like so:
I ended up tweaking our version of hgcgiplus.com as we have a number of different version of OpenVMS running in our cluster. As a result of that we have three different PYRTE images. So, after a number of seemingly random HTTP 502 errors and some tinkering with WASD's WATCH facility I finally recalled what had been done for MoinMoin ( we used it before VWcms) and added in the pre-amble that picks up the correct image. So, with all the files in the right place and a fresh repository waiting to be filled I began configuring WASD. First up was the configuration of the service. I added the following two lines to HTTPD$SERVICE.
That was no trouble, so now it's time to add the mapping rules to HTTPD$MAP, like so.
This is a little more involved. The first couple lines ensure that all the static data references, like images and CSS for the template, are available. The next is a special rule added for the purpose of showing the Mercurial FastCGI procedure for this post. The next two lines ensures that the HTTP error message help pages all work correctly. Lastly, the line that allows everything to run. The final rule ensures that everything not matched by the preceding pass rules is treated as a query string to be processed by Mercurial. All path names are translated to the POSIX/UNIX format. According to the WASD PyRTE documentation the final line causes a 4x improvement in speed. The final step in the configuration is to set up the MERCURIAL user that the hgcgiplus.com script executes under. I simply copied the HTTP$NOBODY user that is created as part of the WASD installation. I used the following commands:
With the MERCURIAL user created the protections can be set on the hgcgiplus.com procedure, like so:
Now that everything is configured I told WASD to re-read its configuration and show me what I had created.
Voila! Now we have a working Mercurial repository. For the moment it is pull only. All modifications to the repository are handled locally. In the not to distant future I intend to get the push functionality up and running. When I do so, I'll post about that and how to configure the security necessary when providing the push facility. Now, wouldn't it be wonderful if it had been that easy? Of course this is the shortened version with everything in the correct order and neatly written out. I spent a while playing around trying to get things working changing configurations, putting them back again and so on. Hopefully everything above will save somone the hassle of figuring it out for themselves also. Did I miss anything? Post a comment below and let me know. 2.21.6 TECO has now entered the realm of the internetSo it's Friday and I feel like doing something a little fun although not really that useful. Yesterday I made a crack about getting TECO running in a Common Gateway Interface environment. Well, that's exactly what I decided to do. What follows is a set of basic instructions for getting your favourite editor/language up and running as a CGI handler on OpenVMS using the WASD web server. First things first. The HTTPD$CONFIG file needs a tweak to add support for the TECO interpreter. The snippet below shows how to tell WASD what to do when it encounters a file ending in .TEC.
It is sufficient to simply use the command Seems easy, eh? Well, there are just a couple things that need to be mentioned. To fetch the CGI variables it is necessary to use the SYM built-in function. For example, to fetch the REQUEST_METHOD you would use:
This will leave the value of the REQUEST_METHOD in the file buffer register *. For POST requests it is necessary to retrieve the POST data from the HTTP$INPUT stream. This can be opened and read just like a regular file using ER and the various Yank commands. The last thing to remember is that TECO CGI procedures, just like regular MUNG'd procedures, have some simple requirements. The procedure must close the indirect input (like so, So far there are no plans for a TECORTE to support persistent scripting, but who knows...? :-) LinksThe following links may prove useful to anyone interested in writing some CGI TECO.
2.21.7 Improvements in VWcmsThis blog, and in fact the entire Kednos website, is maintained using the web content management system, VWcms (pronounced vee-dub). VWcms is a software packaged developed and maintained by Mark Daniel, the author of the WASD web server software. The software is of an excellent standard and Mark's support has always been great. Recently I was putting together an upcoming blog entry that makes rather extensive use of the After some fiddling around I discovered that the value for the CGI variable TEST would default to an empty string. So, even when the variable was not present in the URL it would always appear as if it had, just without a value. I corrected this and it is now possible to test for the presence of a CGI variable as decribed by the documentation. While fiddling around in this code I decided that it might be a good idea to add support for some other operators to the "cgi=" parameter. In the official release it is only possible to specify "=" which actually performs a substring match rather than a test for equality. For example, the following piece of code will match when INDEX is both "1" and "11".
I have altered this behaviour for my patch. Although I have not noticed any erratic results there may be something lurking in the depths and your mileage may vary. However, it is now possible to compare the CGI variable value with a static string using the following operators:
*All comparisons are case insensitive. Lastly, on Mark's suggestion I also applied a call to PatchI have constructed a patch based on the V0.94 release of VWcms.
This patch was created using the DCL command
2.21.8 A BLISS-ful family treeA while back there were some posts on comp.os.vms regarding the history of Digital Equipment Corporation like, "Dave Cutler, Prism, DEC, Microsoft, etc." This particular post covered most of the DEC userland mythology. As usual though it is more than a little Lite on the facts. Thankfully, this post has nothing to do with PRISM, Dave Cutler or all the other conspiracy theories. My gripe was with some comments regarding the history of BLISS. Those of you that know me will probably know that I have a sad, warped affection for the BLISS language. So, after responding to that particular post I decided to knock up a family tree/timeline of BLISS. It is much the same design as the UNIX family tree that can be found in "The Design and Implementation of the 4.4BSD Operating System". The timeline does not show product version releases, just when the first version of that particular compiler became available. To find out what each variant did, what it targeted and where it ran, hover over the name with the mouse cursor.
ReferencesThis article has been composed of information gathered from the BLISS source code library history and the articles listed below.
AcknowlegementsThe BLISS family tree has been developed with the help of the following websites and utilities:
2.21.9 Images from launch of Soyuz TMA-17
Yesterday, at 21:52 UTC I had the pleasure of watch the Soyuz TMA-17 spacecraft lauch from Baikonour Cosmodrome in Kazakhstan. This is the first time I have watched a Soyuz launch. It is also the second time I have watched a space craft launch via the streaming video feed offered by NASA TV. To cap it all off, later that night my eldest son and I watched the International Space Station fly by. To make the night complete we also caught sight of a shooting star. It was quite an exciting day for me, as far as space travel goes. While watching the launch I made a few screen grabs with my SnagIt "camera". They may not be the best quality (there are loads of high-resolution pictures around the 'net), but they are the only ones I could take (given my Olympus just doesn't have that kind of range). Lastly, I spent some time looking around for Soyuz TMA-17 flight path information as I was hoping to see it also. I eventually came across a Java applet at the Russian Mission Control Centre that gave tracking information here. After some playing around I discovered that it could display other things too, so I setup my own tracking page that enables these here. LinksThe following are a collection of links related to the Soyuz TMA-17 mission.
AcknowlegementsI would like to thank NASA and the Russian Federal Space Agency for their live coverage via NASA TV. Space enthusiasts are scattered all over the world and while all the noise is usually made in Florida or Baikonour, NASA TV ensures that the rest of the world can hear and see it when it happens. 2.21.10 Running Java Software on OpenVMSThings have been pretty quiet on my blog for the last few months. Of course, this doesn't mean things have been quiet with me. On the contrary, the blog has been neglected because I have been quite busy. So, here is the first of many posts covering the things that have kept me away. I don't know how many people reading this have ported Java applications to OpenVMS. However, if you haven't, it's generally a lot easier than you might think. Over time I have built up a bit of a "method" for getting Java software up and running quickly on OpenVMS. My biggest quibble with Java applications is that they often need many of the JAVA$* or DECC$* logicals to be configured. This often disrupts my environment, which I don't like. The only "POSIX-like" option I have configured in my login is When porting any software the first thing I do is check out what has been done for other platforms. Normally if the package is available on both Windows and a UNIX derivative there is enough of a cross-section to see what sort of things might need changing. Most Java packages are shipped with both a shell script and a batch procedure for running the software. Initially I tried using a DCL procedure to do the same thing. It seemed like the logical step to take. Unfortunately this didn't work out. While I don't specifically have a problem with DCL itself, it does have one rather large short-coming when attempting to write a procedure to start a Java application. The arguments, I use the
The example above is the method I used for some time to get Java software started on OpenVMS. This method has two drawbacks. The first is that it requires the executing process to have its
An advantage of using the
It is important to remember that the above symbol works because of Extended DCL which is available on OpenVMS Alpha V7.3-2 and higher and all versions of OpenVMS I64. Prior to this DCL had the command line limit of 256 characters which would not allow this use of the PIPE command to work. Thankfully it is not really an issue as most Java software requires a recent version of OpenVMS and there is no Java for OpenVMS VAX. There are also no issues passing command line arguments as they tack right on to the end of the foreign command. Do also remember not to enclose the PIPE arguments in parentheses as any extra arguments will not be passed to the Java VM. The parentheses in a Something else you might notice in the example is the definition of JAVA$FILENAME_CONTROLS. I don't like many of the JAVA$* logicals, but this must be my least favourite. From what I can tell, this logical hails from a time when Java under OpenVMS ran on ODS-2 disks and UNX-style file names often needed a bit of extra munging. Fortunately, those days are over. I find it best to set this logical to 0 and use the DECC$* logicals to define how file names are handled. Otherwise a lot of unexpected transformations can occur to the file name before it is actually used. Maven on OpenVMSAt this time I am still working on the port. It is coming along exceptionally well. The following are a some of the more important tasks that have been acheived:
There is still much to be done, but a release of a largely working build system is imminent. To keep up to date with progress you can follow this blog (as you may already do) by signing up to the [RSS feed] as well as follow @tesneddon on Twitter for shorter, more frequent updates. 2.21.28 Iridium Flares...
...only once a day...
To subscribe to this service, complete your details in the form below. A confirmation email will be sent to the specified email address. Upon confirmation your details will be added to the subscription list and you will receive updates on the Iridium flares occurring in your area. 3. DocumentationThis page is the starting point for accessing documentation for all Kednos software products (including open source products). If for some reason you are unable to view/download any or all of the Kednos product documentation we can provide physical media kits with all necessary documentation upon request. All manuals are produced using either DECdocument from Touch Technologies, Inc. or Javadoc from Sun. Kednos PL/I for OpenVMSThe following documentation is related to all versions of Kednos PL/I for OpenVMS on all supported architectures.
Documentation for HP OpenVMS is available in HTML and PDF format from HP here. All documentation for all OpenVMS products (including Integration products) can be downloaded below as a single saveset.as a single savset. It is possible that the BACKUP savset file attributes may be scrambled. To correct this download the DCL procedure, RESET_BACKUP_SAVSET_ATTRIBUTES.COM and execute it, passing the saveset name as the first parameter. Kednos PL/I for Tru64 UNIXThe following documentation is related to all versions of Kednos PL/I for Tru64 UNIX (formerly Digital UNIX and OSF/1). Documentation for HP Tru64 UNIX is available in HTML and PDF format from HP here. Integration ProductsThe documentation for all integration products can be found on their respective pages. The links below will take you to the documentation for the relevant product. Open SourceThe documentation for all open source software can also be found on their respective pages. The links below will take you to the relevant page. 3.1 Articles
4. IntegrationOverviewThe following sections provide a range of tools and libraries for integrating PL/I on OpenVMS with other native languages. Although all native languages on OpenVMS adhere to the common calling standard, there are some situations where building up the necessary modules and include files can be a large and drawn out task. The tools offered here attempt to ease this difficulty. The following tools and libraries are currently available:
Use the menu on the left hand side to navigate to the language integration you are interested in. In many situations the tools presented here are as useful to other languages as they are PL/I. For example, the J2VMS Java->OpenVMS interface can be used to call routines and manipulate data structures from any language. ExamplesThe following is a growing collection of complete working examples that attempt to properly demonstrate the use of these integration tools.
4.1 SDLOverviewStructure Definition Language (or SDL) is a language for defining data structures, constants, external symbols and entry points. The SDL compiler is a tool for taking those definitions and generating language specific include files. The SDLEXT product offers a collection of backends that generate output for the following languages:
Future releases of SDLEXT will also include generators for other languages and utilities. Currently Perl and record definitions for the DIX utility are planned. SoftwareSDLEXT ships in a combined PCSI kit. This means that the single kit contains software that will install on OpenVMS VAX, Alpha and I64. The SDL compiler kit is available on the OpenVMS Freeware distribution. It is also available online here. The last release (EV1-65) of ALPHA_SDL can also be downloaded (including source) from here. If for some reason you are unable to download the SDLEXT software and/or the SDL compiler supplied by HP we can provide physical media kits with all necessary software upon request. DocumentationThe following documentation covers the SDLEXT software product: All manuals are produced using DECdocument from Touch Technologies, Inc. Documentation for the SDL compiler and language can be viewed in either HTML, PS or PDF formats. The original VAX SDL RUNOFF manual can be viewed here. Licensing & SupportSDLEXT is a comercial product available from Kednos Enterprises. License PAKs and formal support agreements are available and can be discussed further by contacting sales@kednos.com. Evaluation licenses are available on request by contacting sales@kednos.com. 4.2 JavaOverviewJ2VMS is a generic calling interface for accessing native code on OpenVMS. By using a collection of classes that mimic the argument passing mechanisms of compiled languages and a helper class that is reminiscent of LIB$CALLG it is possible to call any routine found in a shareable run-time library. Also included is the ability to manipulate OpenVMS data structures using a method similar to that offered in the BLISS programming language. Originally conceived and written by Jim Brankin, J2VMS disappeared into obscurity for some time. Kednos has since resurrected this software package and begun active development of the interface. Below is documentation and software for the latest release. Articles relating to J2VMS have been published in the OpenVMS Technical Journal. Calling OpenVMS Native Routines From Java was published in V12. WSIT and J2VMS: A Comparative Analysis is an unpublished article that attempts to compare the merits of HP's Web Services Integration Toolkit and Kednos' Java-to-VMS Toolkit.. SoftwareThe following J2VMS software product kits are available for download:
The last release from www.j2vms.co.uk (now defunct), Version 1.2 is available from here. Java for OpenVMS Alpha and I64 can be downloaded from HP at their website here. If for some reason you are unable to download the J2VMS software and/or the Java software supplied by HP we can provide physical media kits with all necessary software upon request. DocumentationThe following documentation covers the J2VMS product: All manuals are produced using DECdocument from Touch Technologies, Inc. and Javadoc from Sun. For all Java on OpenVMS Alpha and I64 related documentation please visit the following HP websites:
For documentation related to the Java language and API then please consult the Sun website. Licensing & SupportJ2VMS is a comercial product available from Kednos Enterprises. License PAKs and formal support agreements are available and can be discussed further by contacting sales@kednos.com. Evaluation licenses are available on request by contacting sales@kednos.com. For all Java related support queries please consult the Java for OpenVMS Alpha and I64 software support pages. ExamplesThe following are a collection of examples demonstrating the J2VMS interface. Some have corresponding native language examples that can be used to compare the two environments. All Java examples are included in the software product kit.
4.3 XMLOverviewThe XML Support Run-Time Library (also referred to as XMLRTL) is a shareable image providing an OpenVMS calling standard friendly interface to some commonly used XML APIs. Most XML APIs are intended to be used from a C or scripting language environment only. This can make it difficult for languages that do not support C-specific features to call these APIs directly. It is often necessary for developers to implement a layer (usually written in C) between the API and the intended environment. With XMLRTL there is no necessity for this, sometimes, awkward layer. XMLRTL functions can be easily called from any native OpenVMS language. The following XML standards and recommendations are supported by XMLRTL:
XMLRTL is supported on OpenVMS VAX, Alpha and I64. It ships with include files for PL/I, BASIC, Pascal, Fortran, BLISS and C. Intermediate SDL definitions are also provided for any languages not covered. The XMLRTL library has been built on the eXpat XML parser. Due to this the original eXpat interface is also available as a portable interface intended for use when porting eXpat dependent applications or writing software in C that is expected to be portable to another plaftorm using eXpat. The HTTP connectivity is provided by the cURL library. SoftwareXMLRTL ships in a combined PCSI kit. This means that the single kit contains software that will install on OpenVMS VAX, Alpha and I64. If for some reason you are unable to download the XMLRTL software we can provide physical media kits with all necessary software upon request. DocumentationThe following documentation covers the XMLRTL software product: All manuals are produced using DECdocument from Touch Technologies, Inc. Licensing & SupportXMLRTL is a comercial product available from Kednos Enterprises. License PAKs and formal support agreements are available and can be discussed further by contacting sales@kednos.com. An evaluation license, valid till 01-Oct-2009, can be downloaded from here. ExamplesThe following are a collection of examples demonstrating the different XML APIs. All examples are available in the software product kit.
5. Sales & SupportSalesCommerical licenses for PL/I compilers and Run-TIme Libraries, as well as the language integration tools can be obtained by contacting Kednos sales at sales@kednos.com. Some of our commercial licenses require a hardware identifier (the MAC address of an attached NIC). To aide customers in gathering this information we have two utilities available for download below:
If you are a non-commerical, OpenVMS hobbyist user then the Hobbyist License Program is for you. Grab your DECUS (or Encompass, etc.) membership number and go register. For those hobbyist Tru64 UNIX users, this program appears to have been cancelled. However, if you are interested in a hobbyist license, then please contact us. There are no license requirements for the open source software packages, like MMK and MX. SupportKednos offers support contracts for all available commerical products, as well as support for PL/I programming environments and production systems. Please contact support@kednos.com for further information. Formal support contracts for all open source products are also available and can be discussed further by contacting support@kednos.com. For free support of these products, please join the appropriate mailing list and post your query there. Lastly, if email doesn't work for you, then feel free to contact Kednos via any of the methods shown on the Contact page. 6. HobbyistOverviewKednos is a proud supporter of the OpenVMS Hobbyist Program. This program came about as result of the efforts of OpenVMS Hobbyist #1, Pat Jankowiak, the late John Wisniewski and David Cathey from Montagar. Since then a number of vendors have offered their software products to hobbyists and non-commercial users for a great fee, NOTHING! Kednos is happy to offer their PL/I compilers for OpenVMS VAX and Alpha under this same licensing arrangement. To begin you need to qualify for a regular old OpenVMS hobbyist license. If you do, then you can apply for a Kednos hobbyist license here. The remainder of this page consists of information and pointers to resources useful to OpenVMS hobbyists. If you believe there is an error or ommition, then please contact us at hobbyist@kednos.com. Public AccessIf you don't have an Alpha or VAX system with which to install the hobbyist PL/I compiler on, there are a number of public access systems available (for non-commercial use) that do have the Kednos PL/I compiler installed. The following is a list of such systems currently available.
If you know of a system not listed here, please contact us at hobbyist@kednos.com with some details. Emulated/Simulated SystemsIf you would rather have your own personal system, yet still don't have the necessary hardware then maybe you sohuld consider and emulated system. There are a number of VAX and Alpha emulators available for free use, although some only non-commerically. The following list covers all emulators know to Kednos at this time. If you know of an emulator not listed here, then please contact us with the details at hobbyist@kednos.com.
LinksThe following is a collection of links to other supporters of the OpenVMS Hobbyist programme. Further this great community programme and grab some more hobbyist software for you system, today!
7. KitsAll software product kits for OpenVMS are compressed with Zip from Info-ZIP with the qualifier /VMS (-"V") to preserve OpenVMS file attributes. All software product kits for Tru64 UNIX. are packaged with tar and gzip. To download a kit, right-click on the link and select 'Save Link As...' (or your browser's equivalent). If your situation is such that you require physical media kits, then please contact Kednos via email on sales@kednos.com or one of the other methods listed here. For documentation relating to all PL/I products, procede to the Documentation page. Documentation for all Integration products can be found at their respective pages.
ECCN Number EAR99 so no Export Control License is required. 8. ExamplesThere are a number of PL/I Programming Examples for the OpenVMS environment which have been culled from this site. These examples of PL/I code in the OpenVMS environment, range from simple applications to systems programming and has a search engine to assist you in locating specific examples. Suppose, for example, that you are looking for coding examples calling SYS$QIOW. Enter, PLI-EXAMPLE + SYS$QIOW into the search engine. Both PL1 and PLI are used in this data base. Click on these links and enter specific items into the search engine to further refine the search. 10. ResourcesThis section presents a number of resources useful to PL/I and OpenVMS users alike. Please report any broken links or suggestions to webmaster@kednos.com. PL/I SoftwareThe following are a collection of links to various websites offering utilities and libraries written in PL/I:
Mailing Lists & NewsgroupsThere exists on the internet a few forums for OpenVMS and PL/I. The following list covers some of the more popular and better known.
GamesOpenVMS isn't typically known for being a premier gaming platform, at least not these days. The following are a collection of of links (some local) to various games that have been ported to OpenVMS.
10.1 Project EulerProject Euler is a website started by Colin Hughes as a result of a sub-section he previously maintained on mathschallenge.net. It provides a growing collection of mathematical/computing problems for project members to solve. Membership is not exclusive and can be gained by simply filling out the registration form and submitting it. The following solutions, contributed by Tim Sneddon, are all written in PL/I. Although they were developed on OpenVMS they should compile with little or no change using other PL/I compilers. Look within the source module for build instructions (for OpenVMS at least). Problems
LinksThe following are a collection of links related to some of the solved problems above.
10.2 EditorsThe following are a collection of editors and development environments known to have support for PL/I. In some instances this may be just as simple as syntax highlighting, others offer PL/I integration into a larger development environment.
10.3 Code ManagementThe following are a collection of utilities for manageing source code on OpenVMS. Some are open source, some are proprietry and in some cases they offer only client functionality. Concurrent Version SystemOtherwise known as CVS, this is a distributed version control system that grew out of RCS on UNIX-like systems. Unfortuantely there has never been a port of the server-side functionality of CVS to OpenVMS. Client support has been available for sometime and older releases can be found on the Freeware V3 and V4 CDs. Another Java-based CVS implementation is available, called jCVS. Although there has been mention of work into supporting OpenVMS there does not appear to be anything more than this post to the jCVS forum. Jouk Jansen has ported the latest unstable release, 1.12.13 to OpenVMS. It is available from his website here. Code Management SystemOtherwise known as CMS, this is a non-distributed code management system developed and maintained at HP as part of the DECset collection of tools. It runs on OpenVMS VAX, Alpha and I64.There are a number of supporting tools that add some level of a distributed nature to the system. For Windows environments there is the DECset CMS and MMS clients. Although details of these utilities seem to be missing from the HP website they are available and allow integration of CMS into the Visual Studio suite of tools. For OpenVMS Alpha and I64 environments there is the Distributed Netbeans IDE. Although this runs on Windows, the source code itself is located elsewhere on an OpenVMS system. It is also worth mentioning the VDE software. This is the code management system used to maintain OpenVMS. It is available on the Freeware V4 and V7 distributions for those interested. It does require a number of extra products, including CMS and Oracle Rdb. MercurialMercurial is often referred to by its command name, hg. Mercurial is another distributed code management system, this time written in Python (there is no support for Python on OpenVMS VAX). It does have support for client and server functionality on OpenVMS and can be used with both WASD and HP's port of Apache, Secure Web Server. The OpenVMS port of Python, Mercurial and a host of other Python software has been performed by Jean-François Piéronne and is available from his website, here. There is also a forum for discussing Python and MySQL here. Tim Sneddon is currently in the process of adding OpenVMS support to the Python subprocess module to enable the SSH client functionality available on other platforms. SubversionSubversion, also known as SVN, is yet another distributed code management system. It was started as a project to replace CVS, providing many new features and fixing long standing bugs. Since its creation it has grown and has replaced CVS in many areas. Support for OpenVMS Alpha and I64 is provided through the Java client implementation, SVNkit. It can be downloaded here. There was also mention of the release of version 1.1.1 at OpenVMS.org. 10.4 BenchmarksThe following are a collection of benchmarks that have been gathered from around the internet and translated into PL/I.
*These results were obtained by translating an Alpha version of the benchmark using an experimental release of the OpenVMS Migration Software for Alpha to IPF Systems (OMSAI) binary translator from HP. Run-time support was provided by the Kednos Native IPF PL/I Run-Time Library for Translated Images. 10.5 RexxOverviewRexx is a programming language developed at IBM by Mike Cowlishaw in 1979. It is largely based on PL/I. Cowlishaw's original intention was to develop a language similar to PL/I, but easier for beginners and non-programmers to grasp. Since its creation Rexx has been extended and implemented on many platforms in different ways. This page is a repository for all OpenVMS related Rexx activity. NetRexxNetRexx is IBM's Java based version of Rexx. It is entirely written in Java and consists of a compiler and run-time. Rexx code is compiled to Java which is then compiled to Java byte-code. Although not officially supported by IBM, it is possible to run NetRexx under OpenVMS.
After downloading and unpacking the IBM binary kit you should be left with a [.NetRexx...] directory tree. Download the OpenVMS NetRexx setup procedures and unpack the, in the [.NetRexx] directory. In this kit are two procedures. The first is NETREXX_STARTUP.COM, to be included in the system startup procedure. It defines the system-wide product logicals. The second is NETREXX_LOGIN.COM, to be included in the user's login procedure. It sets up the nrc and netrexxc compiler commands. When adding NETREXX_LOGIN.COM to the user's login procedure it is important to run the Java setup procedure first. An excert from a typical login procedure might look like this:
NetRexx is a Java application so it responds to all the Java and DECC$* feature logicals. At a minimum the following should be configured:
To run a compiled program, simply use the Java VM, making sure to include the NetRexx run-time in the classpath. The following example demonstrates compiling and running a NetRexx program.
It is also possible to run the program in the NetRexx Interpreter, with a couple extra options:
LinksThe following are a collection of links to other Rexx resources around the internet.
10.6 SIG CollectionOverviewWelcome to the new home of the VMS/Language & Tools SIG software collection. For the last 30 years the SIG tapes have been providing OpenVMS (once VMS and VAX/VMS) customers with a myriad of useful tools and handy utilities. Until recently the keeper, compiler and distributor of these tapes was Glenn Everhart. This torch has since been passed to Tim Sneddon who has now taking over Glenn's role. This page is now 'the place' for all things related to the VMS SIG tapes. If you have any comments, queries or suggestions then please contact Tim Sneddon. CALL FOR SUBMISSIONS! The VMS/Language & Tools SIG software collection is accepting submissions for the next distribution. If you have any software you would like to submit, or maybe you've just seen something worth while. Please follow the instructions below and contact the maintainer. Submissions will be accepted until January 1st 2010. Get in quick and be sure that your software makes it in. ArchiveAll previous releases of the SIG tapes are available from the DECUSLIBrary.COMpendium here: This archive includes software from other SIGs software collections including RSX and PDP-11. For those unable to download the software, or wish to receive annual updates via physical media, then please see the section below. DistributionTraditionally the VMS SIG tapes have, as the name suggests, been distributed by tape. These days the preffered physical media is CD or DVD (depending on the quantity of software) or FTP. For those wanting a copy of the physical media, or who are interested in joining the distribution tree then please contact Tim Sneddon and register your interest. Otherwise all current and previous releases of the SIG tapes can be downloaded from the archive link above. ContributeTo make contributions to the VMS/L&T SIG Collection, please use this form. Before communicating your intent to contribute to the maintainer, please consider packaging your software in accordance with the following suggestions. These suggestions are not to be considered as requirements for the acceptance of software. They are intended to help make the structure of the submissions somewhat more consistent.
11. Open SourceOverviewKednos has a strong commitment to furthering and supporting OpenVMS open source software. The pages in this section cover open source projects that Kednos has been involved. In some cases this may mean hosting the development effort (e.g., MX), simply providing built software or as contributors to an externally hosted development effort. If you have an open source package that you would like Kednos to host, please contact us at opensource@kednos.com and register your interest. Be sure to include your details, a description of your software and its license requirements. ProjectsThe following projects are currently available at Kednos:.
Downloading Source CodeSource code for all projects is available via the Mercurial repositories found at hg.kednos.com. For package specific instructions on how to fetch and use the code see the specific webpage. However, for general use, the following will usually suffice:
All projects also offer snaphot downloads. These can be retrieved from the main reporsitory directory, here. 11.1 Cluck
SoftwareBinary packages are available for OpenVMS Alpha and I64. As yet there is no support for OpenVMS VAX. This is largely to do with the use of libxml2, which is not supported on VAX. If interest develops a solution to this problem may be found.
Documentation...pointer to help file... SourceCluck is open source and as such provides complete source code. All source code is stored using the source code management system, Mercurial. The only thing that does not come with the source code is the header api_keys.h. This header contains the consumer keys, secrets and API keys for interfacing with the various Twitter-related services. These need to be supplied by the developer. ...source uses a logical, also includes a template file... To retrieve the source code, use the following Mercurial command:
Cluck also relies on some third-party libraries. These are:
The source kits for these libraries can be downloaded from their respective sites using the links above. However, to make life a little easier, kits containing prebuilt binary versions of these libraries are available below.
SupportCluck is an open source product released "as is" under this license and as such does not come with any form of support. However, complete paid support contracts are available from Kednos, upon request. Please contact sales@kednos.com for further details. Unpaid, as-is support is available from Cluck-List@kednos.com. 11.2 MXOverviewMessage Exchange (MX) is a mail delivery system for OpenVMS originally developed by MadGoat Software. The company MadGoat Software has ceased to exist as of December 2006. In April 2008 the software was gathered up and released under a BSD-style license as MX V6.0 by Matt Madison (former owner of MadGoat Software). Since then Kednos has decided to take up hosting the software (although there are several other sites that have also picked up the source kit) and setup a support community, starting with the resurrection of MX-List. The FutureAt present MX V6.0 does not support VAX, X.25 or UUCP. There are plans to restore the VAX portions of the kit in the very near future. It may be possible to add support for X.25 and UUCP if there is interest. DocumentationThe following documentation covers the latest version of MX.
All manuals are produced using DECdocument from Touch Technologies, Inc. SoftwareThe following MX kits are available for download:
The following utilities are also freeware packages released by MadGoat Software. MMK and NETLIB are required to build MX from source. SupportCurrently general support is in the form of the newly restarted MX-List mailing list. To subscribe to this mailing list simply send email to MX-List-request@kednos.com containing the the single command 'SUBSCRIBE'. The archives for this mailing list and it's previous incarnations at MadGoat Software (and places before) are available below. Formal support contracts can be negotiated on request, please contact sales@kednos.com for further details. LinksThe following are links to other MX related sites.
11.3 MMKOverviewMMK is a make utility in the same vein as MMS (Module Management System) and GNU make. It combines features and compatability from both to provide a feature rich software build utility for OpenVMS. MMK was originally maintained by Matt Madison of MadGoat Software. However, MadGoat Software has come to an end and so Kednos have setup a new home for support and distribution of MMK. DocumentationThe following documentation covers the latest version of MMK. SoftwareThe latest version of MMK can be downloaded from here:
The following are the last official releases of MMK from MadGoat Software:
Source CodeThe MMK source code can be obtained by either downloading a kit, or cloning the Mercurial repository. For VAX users it is necessary to download a source kit as there is no Python (and therefore no Mercurial) on OpenVMS VAX. Use the following command to retrieve the MMK source code repository:
To build the source code, it is necessary to have a working C compiler (all official binary kits are build using HP C) and SDL. After obtaining your source kit MMK can be built using DCL:
or using MMK:
If you are using ALPHA_SDL or VAX SDL it is necessary, when building with MMK, to tell the build procedure where to find the SDL environment setup procedure. This is done, like so:
For any bug reports, improvements, etc. see the support information below. Please submit any patches using the SupportOfficial support contracts can be arranged with Kednos. If you are interested then please send mail to sales@kednos.com. For all other forms of support there is the MMK-List mailing list. To join, send mail containing the word SUBSCRIBE to MMK-List-request@kednos.com. Other Make UtilitiesThe following are links to other make/build utilities for OpenVMS:
11.5 The Halls Of ZKOverviewTired of the same old pirates, thieves, Cyclops, wizards, dragons, horsemen, chiefs, spiders, weasel-like aliens and dungeon masters? Tired of traveling in spaceships, magic boats, magic barrels, spinning rooms and time machines? Tired of telling the robot where to go? Tired of paying $$$$ for personal computer games you can't even relate to? Have we got an escape for you?! Announcing 'The Halls Of ZK', the original interactive fiction game written exclusively for OpenVMS! The Halls Of ZK is a sophisticated adventure game which takes place at Digital's Spitbrook software engineering facility. Meet famous Spitbrook personalities! Incredible treasures and mind-boggling encounters await you. Exercise your computer-related skills to solve the myriad of obstacles that lead to the acquisition of the ultimate treasure! The Halls of ZK was written by William Lees and Edmund Sullivan sometime in August 1985. Since that time a VAX binary and a VEST'd Alpha binary (with some source) has been floating around the 'net at various websites. Recently the full source code, including the source for the Interactive Fiction Compiler (IFC) was located by John Reagan. The code generator for IFC was re-written to output MACRO-32 source modules by Tim Sneddon and as such there are now native versions for all OpenVMS supported architectures available. The FutureA lot has changed since this game was written. HP has completely moved out of the Spitbrook facility. Intel, Oracle and others have taken up residence as parts of Digital were sold off to unsuspecting buyers. Even the barcode changed. Is there anyone out there interested in collaborating on a revision of The Halls Of ZK, maybe something titled, 'The Halls Of ZK: Return to Spitbrook'? If you are, then please join the ZK mailing list (details below) and express your interest. DocumentationFor those users out there who have more important things to do than work out just how to get out of the maze, or start the VAX then the walkthrough might be the things for you.
The Halls Of ZK is listed at the following interactive fiction databases: SoftwareThe latest version of The Halls Of ZK can be downloaded below. It is a VMSINSTAL kit that has been broken up into architecture specific parts. Download those portions that are relevant to you. It is possible that the BACKUP savset file attributes may be scrambled. To correct this download this DCL procedure, RESET_BACKUP_SAVSET_ATTRIBUTES.COM and execute it, passing the saveset name as the first parameter.
If for some reason you are unable to install ZK system wide, then download the saveset for your specific system and install it locally, like so:
The following is the complete source kit for X1.0-823 as a zipped BACKUP saveset:
Source Code...something in here about fetching code, instructions, etc... SupportThe Halls Of ZK does not come with any warranty and is provided entirely "as is". There is also no formal support available. If you have questions, queries or something doesn't work for you then please join The Halls Of ZK Mailing List and post your query there. To subscribe to this mailing list simply send email to ZK-List-request@kednos.com containing the the single command 'SUBSCRIBE'. 11.5.1 WalkthoughThe following in an HTML-ization of the WIZARDRY.TXT file found in the original ZK distribution. It covers how to work your way through the game and how to collect your points. Any corrections should be reported to tsneddon@kednos.com.
12. ContactKednos Enterprises can be contacted via the following methods:
13. Site MapSitemap of www.kednos.com
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||