This submission contains an RT-11 program for reading ODS-1 (RSX) disks. Contents of files may be copied to an RT-11 file or to the terminal. The program was originally developed under UNIX, and is written in C. It has been ported to RT-11 using the DECUS C compiler. Since it uses `#define' with arguments, it must be passed through the `mp' preprocessor before compilation. Note that if multiple files are to be copied with a single command, you're likely to have the standard DECUS C problems related to RT-11's pre-parsing of a command line if you use the `RUN PROG FOO BAR' method of invoking the program. Using the RUN command without arguments and entering them in response to the C runtime system's `Argv:' prompt will avoid this problem. For details, refer to the DECUS C documentation. GETRSX.COM is a command file which will build GETRSX.SAV. Note that the source file for `getrsx' is named GETRSX.SRC rather than GETRSX.C, since `mp' is used to produce GETRSX.C. The file GETRSX.DOC simply contains the UNIX manual pages for `getrsx', and therefore contains some information that is not relevant to the RT-11 version of the program. The .SAV file was produced by the old version of the compiler. I don't know offhand what sort of hardware configuration (i.e. EIS) it assumes, so there is a chance that this particular .SAV file may not run on low- end (e.g. 11/03, 11/10) systems. The files STRCAT.C and STRCHR.C were necessary since the old version of the DECUS C system didn't include the strcat() and strchr() functions. They allegedly exist in the new version. The other files on this distribution are used to emulate the UNIX `open', `lseek', `read', and `write' system calls, by mapping them into RT-11 programmed requests. At present, these versions of `read' and `lseek' only work in multiples of 512 bytes. These files are part of a larger package which will provide C-callable versions of all (or nearly all) the RT-11 programmed requests, and emulation of those UNIX system calls which seem appropriate to emulate. It's hoped that this package will be ready for submission in its entirety to the Fall 1983 (or maybe Spring 1984) RT-11 SIG tape. In addition to those listed in the BUGS section of the UNIX manual page, the following limitations exist in the RT-11 implementation: (1) There is no attempt to fetch device drivers. Any drivers needed must be LOADed before the program is run. (It may also be necessary for the USR to be nonswapping; I'm not sure. In any case, it can't hurt.) (2) The current version of getchn() uses the .CSTAT programmed request to look for a free I/O channel. Since .CSTAT is only supported under the FB and XM monitors, the program will not run under SJ. It would probably be straightforward to rewrite getchn() [using .SAVESTATUS/.REOPEN, for example] so that it could be used with the SJ monitor. (3) Since argv[0] isn't set to anything meaningful, `lsrsx' can't be used to get a directory listing. Rather, one must use the `-l' option with `getrsx'. For example: .run getrsx Argv: -l dy0:[300,300] The RT-11 version of `getrsx' does not presently sort directory listings, as the UNIX version does. The program has not been extensively tested under RT-11. Please send bug reports, comments, and such to: Mark Bartelt HSC Research Development Corporation 555 University Avenue Toronto, Ontario M5G 1X8 416/597-1500 ext 4588 or 416/598-5982 PS: I just noticed that image-mode transfers don't work correctly. This seems to be due to the fact that the DECUS C system's version of putc() apparently tosses away any null characters that get passed to it, so they never appear in the output file. Perhaps the newer release works properly. If not, there is probably a workaround, but I don't have the time just now to change things. Good luck!