Discussion:
MIM (free RSX system)
(too old to reply)
Johnny Billquist
2009-01-26 22:06:01 UTC
Permalink
I don't know if people here knows about MIM, so I thought I'd make a
small presentation.

MIM is an emulated PDP-11/74 (yes, that's right. It's an SMP system).
MIM is actually a PC running e11. License kindly donated by John Wilson
of DBIT.
MIM is actually a stopgap solution to our current problem of not being
able to run MAGICA all the time, which we used to until a few years ago.
MAGICA is a real PDP-11/70 with lots of fun stuff attached. But such a
machine uses lots of electricity, and also needs cooling. At the moment
we have an electricity budget that don't allow us to run MAGICA as much,
and also the cooling system is pretty broken.

However, MIM got all the data copied from MAGICA (including accounts)
and runs the same software. So it's an RSX-11M-PLUS V4.6 system with all
kind of fun stuff installed. Lots of compilers, tools, games, utilities
and miscellaneous software. Look around. Play. Have fun. But don't try
to break things, and don't try to steal things. I have tried to make the
system a bit more secure than default, but there are probably things
that people can manage to pull off that they shouldn't. And yes, I also
happen to know a bunch of ways to crash an RSX system with a user
program. You seldom manage by accident, but malicious users and all
that... :-)

Anyway, MIM have a guest account. Just login with GUEST/GUEST and have a
nice time. This is a resource that is available because I think it's a
good thing, and I hope people will appreciate it for what it is.

If you spot software in MIM that you are interested in, or have
questions on, feel free to ask me about it. I try to make all software
that I have there available, if I think it is legal, but I know there is
a lot of the more odd stuff that I haven't had time to put up. But I'm
always willing to fix that, if someone asks.

Also, if you are looking for software, let me know. I might have it
somewhere, even if it isn't installed. Maybe I can help you, if I just
know about it.

And to make a few other things clear. Yes, MIM have DECnet. It's
connected to a hobby DECnet network which spans a large part of the
world (even if there aren't that many nodes), called HECnet. MIM also
have an experimental TCP/IP implementation. It's a hobby project of
mine, which isn't complete yet. I won't be giving out copies of it at
this date, but might do something with it once it's more complete (right
now I'm still rewriting the TCP part, but ARP, IP, ICMP and UDP works
fine, along with some daemons).
There are no manuals written, so if you want to write software that uses
UDP, you'll need to ask me about the API. :-)

My most recent interest have been command line editors. Expect a
separate announcement on this within a few days. But in short, MIM have
the usual command line editors available - MCE, CLE and so on. But I've
been working on something completely different, and much better lately.
A command line editor as an ACD. People might not know what this is, but
RSX allows you to hook into the terminal driver and extend it with your
own features. This is then active all the time. I've done a command line
editor that uses this, and which works all the time. Both from the CLI,
and when you are running programs. It have both line editing, command
history, and can search the history as well.
Currently I have two flavours. One with emacs-like commands, and one
with EDT-like commands. The line editor can also do filename expansion
on CLI command lines.
In order to enable this on MIM, you just type
ACD LINK TI: TO ACD$EMACS
or
ACD LINK TI: TO ACD$EDT

and off you go. Sorry, but no real documentation exists right now, so
you'll have to guess your way around this.

Oh, and I mentioned that MIM is an 11/74. However, most of the time I'm
only running with one CPU online, since there is a bug somewhere in E11,
which can cause CPUs to get lost occasionally, when running SMP (best
uptime with more than one CPU so far is something like four weeks).

As a short tip on things to do, I'd recommend DUNGEON for that good old
feeling. Or ZEMU, if you want to run "modern" INFOCOM games (try ZEM /LI
to find out which games exist).

Well, that's it about MIM for now.

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Johnny Billquist
2009-01-26 22:10:57 UTC
Permalink
Post by Johnny Billquist
I don't know if people here knows about MIM, so I thought I'd make a
small presentation.
MIM is an emulated PDP-11/74 (yes, that's right. It's an SMP system).
MIM is actually a PC running e11. License kindly donated by John Wilson
of DBIT.
MIM is actually a stopgap solution to our current problem of not being
able to run MAGICA all the time, which we used to until a few years ago.
MAGICA is a real PDP-11/70 with lots of fun stuff attached. But such a
machine uses lots of electricity, and also needs cooling. At the moment
we have an electricity budget that don't allow us to run MAGICA as much,
and also the cooling system is pretty broken.
However, MIM got all the data copied from MAGICA (including accounts)
and runs the same software. So it's an RSX-11M-PLUS V4.6 system with all
kind of fun stuff installed. Lots of compilers, tools, games, utilities
and miscellaneous software. Look around. Play. Have fun. But don't try
to break things, and don't try to steal things. I have tried to make the
system a bit more secure than default, but there are probably things
that people can manage to pull off that they shouldn't. And yes, I also
happen to know a bunch of ways to crash an RSX system with a user
program. You seldom manage by accident, but malicious users and all
that... :-)
Anyway, MIM have a guest account. Just login with GUEST/GUEST and have a
nice time. This is a resource that is available because I think it's a
good thing, and I hope people will appreciate it for what it is.
If you spot software in MIM that you are interested in, or have
questions on, feel free to ask me about it. I try to make all software
that I have there available, if I think it is legal, but I know there is
a lot of the more odd stuff that I haven't had time to put up. But I'm
always willing to fix that, if someone asks.
Also, if you are looking for software, let me know. I might have it
somewhere, even if it isn't installed. Maybe I can help you, if I just
know about it.
And to make a few other things clear. Yes, MIM have DECnet. It's
connected to a hobby DECnet network which spans a large part of the
world (even if there aren't that many nodes), called HECnet. MIM also
have an experimental TCP/IP implementation. It's a hobby project of
mine, which isn't complete yet. I won't be giving out copies of it at
this date, but might do something with it once it's more complete (right
now I'm still rewriting the TCP part, but ARP, IP, ICMP and UDP works
fine, along with some daemons).
There are no manuals written, so if you want to write software that uses
UDP, you'll need to ask me about the API. :-)
My most recent interest have been command line editors. Expect a
separate announcement on this within a few days. But in short, MIM have
the usual command line editors available - MCE, CLE and so on. But I've
been working on something completely different, and much better lately.
A command line editor as an ACD. People might not know what this is, but
RSX allows you to hook into the terminal driver and extend it with your
own features. This is then active all the time. I've done a command line
editor that uses this, and which works all the time. Both from the CLI,
and when you are running programs. It have both line editing, command
history, and can search the history as well.
Currently I have two flavours. One with emacs-like commands, and one
with EDT-like commands. The line editor can also do filename expansion
on CLI command lines.
In order to enable this on MIM, you just type
ACD LINK TI: TO ACD$EMACS
or
ACD LINK TI: TO ACD$EDT
and off you go. Sorry, but no real documentation exists right now, so
you'll have to guess your way around this.
Oh, and I mentioned that MIM is an 11/74. However, most of the time I'm
only running with one CPU online, since there is a bug somewhere in E11,
which can cause CPUs to get lost occasionally, when running SMP (best
uptime with more than one CPU so far is something like four weeks).
As a short tip on things to do, I'd recommend DUNGEON for that good old
feeling. Or ZEMU, if you want to run "modern" INFOCOM games (try ZEM /LI
to find out which games exist).
Well, that's it about MIM for now.
Doh! Stupid me...
You can reach MIM either through HECnet, or by telnet://mim.update.uu.se/

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
gregg dot drwho8 atsign gmail dot com
2009-02-10 23:54:16 UTC
Permalink
Post by Johnny Billquist
Post by Johnny Billquist
I don't know if people here knows about MIM, so I thought I'd make a
small presentation.
MIM is an emulated PDP-11/74 (yes, that's right. It's an SMP system).
MIM is actually a PC running e11. License kindly donated by John Wilson
of DBIT.
MIM is actually a stopgap solution to our current problem of not being
able to run MAGICA all the time, which we used to until a few years ago.
MAGICA is a real PDP-11/70 with lots of fun stuff attached. But such a
machine uses lots of electricity, and also needs cooling. At the moment
we have an electricity budget that don't allow us to run MAGICA as much,
and also the cooling system is pretty broken.
However, MIM got all the data copied from MAGICA (including accounts)
and runs the same software. So it's an RSX-11M-PLUS V4.6 system with all
kind of fun stuff installed. Lots of compilers, tools, games, utilities
and miscellaneous software. Look around. Play. Have fun. But don't try
to break things, and don't try to steal things. I have tried to make the
system a bit more secure than default, but there are probably things
that people can manage to pull off that they shouldn't. And yes, I also
happen to know a bunch of ways to crash an RSX system with a user
program. You seldom manage by accident, but malicious users and all
that... :-)
Anyway, MIM have a guest account. Just login with GUEST/GUEST and have a
nice time. This is a resource that is available because I think it's a
good thing, and I hope people will appreciate it for what it is.
If you spot software in MIM that you are interested in, or have
questions on, feel free to ask me about it. I try to make all software
that I have there available, if I think it is legal, but I know there is
a lot of the more odd stuff that I haven't had time to put up. But I'm
always willing to fix that, if someone asks.
Also, if you are looking for software, let me know. I might have it
somewhere, even if it isn't installed. Maybe I can help you, if I just
know about it.
And to make a few other things clear. Yes, MIM have DECnet. It's
connected to a hobby DECnet network which spans a large part of the
world (even if there aren't that many nodes), called HECnet. MIM also
have an experimental TCP/IP implementation. It's a hobby project of
mine, which isn't complete yet. I won't be giving out copies of it at
this date, but might do something with it once it's more complete (right
now I'm still rewriting the TCP part, but ARP, IP, ICMP and UDP works
fine, along with some daemons).
There are no manuals written, so if you want to write software that uses
UDP, you'll need to ask me about the API. :-)
My most recent interest have been command line editors. Expect a
separate announcement on this within a few days. But in short, MIM have
the usual command line editors available - MCE, CLE and so on. But I've
been working on something completely different, and much better lately.
A command line editor as an ACD. People might not know what this is, but
RSX allows you to hook into the terminal driver and extend it with your
own features. This is then active all the time. I've done a command line
editor that uses this, and which works all the time. Both from the CLI,
and when you are running programs. It have both line editing, command
history, and can search the history as well.
Currently I have two flavours. One with emacs-like commands, and one
with EDT-like commands. The line editor can also do filename expansion
on CLI command lines.
In order to enable this on MIM, you just type
ACD LINK TI: TO ACD$EMACS
or
ACD LINK TI: TO ACD$EDT
and off you go. Sorry, but no real documentation exists right now, so
you'll have to guess your way around this.
Oh, and I mentioned that MIM is an 11/74. However, most of the time I'm
only running with one CPU online, since there is a bug somewhere in E11,
which can cause CPUs to get lost occasionally, when running SMP (best
uptime with more than one CPU so far is something like four weeks).
As a short tip on things to do, I'd recommend DUNGEON for that good old
feeling. Or ZEMU, if you want to run "modern" INFOCOM games (try ZEM /LI
to find out which games exist).
Well, that's it about MIM for now.
Doh! Stupid me...
You can reach MIM either through HECnet, or by telnet://mim.update.uu.se/
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
pdp is alive! || tryin' to stay hip" - B. Idol
Hello!
I am impressed Johnny. Except for one thing, how do you go about
properly logging out the guest user? It does ask for a name, and I'm
giving it the name(!) of my favorite time traveler.

Oh and is this release of RSX-11M-PLUS V4.6 available for local use?
(That's the strange question.)
---
Gregg gregg dot drwho8 atsign gmail dot com
Johnny Billquist
2009-02-11 00:40:32 UTC
Permalink
Post by gregg dot drwho8 atsign gmail dot com
Post by Johnny Billquist
Post by Johnny Billquist
I don't know if people here knows about MIM, so I thought I'd make a
small presentation.
MIM is an emulated PDP-11/74 (yes, that's right. It's an SMP system).
MIM is actually a PC running e11. License kindly donated by John Wilson
of DBIT.
MIM is actually a stopgap solution to our current problem of not being
able to run MAGICA all the time, which we used to until a few years ago.
MAGICA is a real PDP-11/70 with lots of fun stuff attached. But such a
machine uses lots of electricity, and also needs cooling. At the moment
we have an electricity budget that don't allow us to run MAGICA as much,
and also the cooling system is pretty broken.
However, MIM got all the data copied from MAGICA (including accounts)
and runs the same software. So it's an RSX-11M-PLUS V4.6 system with all
kind of fun stuff installed. Lots of compilers, tools, games, utilities
and miscellaneous software. Look around. Play. Have fun. But don't try
to break things, and don't try to steal things. I have tried to make the
system a bit more secure than default, but there are probably things
that people can manage to pull off that they shouldn't. And yes, I also
happen to know a bunch of ways to crash an RSX system with a user
program. You seldom manage by accident, but malicious users and all
that... :-)
Anyway, MIM have a guest account. Just login with GUEST/GUEST and have a
nice time. This is a resource that is available because I think it's a
good thing, and I hope people will appreciate it for what it is.
If you spot software in MIM that you are interested in, or have
questions on, feel free to ask me about it. I try to make all software
that I have there available, if I think it is legal, but I know there is
a lot of the more odd stuff that I haven't had time to put up. But I'm
always willing to fix that, if someone asks.
Also, if you are looking for software, let me know. I might have it
somewhere, even if it isn't installed. Maybe I can help you, if I just
know about it.
And to make a few other things clear. Yes, MIM have DECnet. It's
connected to a hobby DECnet network which spans a large part of the
world (even if there aren't that many nodes), called HECnet. MIM also
have an experimental TCP/IP implementation. It's a hobby project of
mine, which isn't complete yet. I won't be giving out copies of it at
this date, but might do something with it once it's more complete (right
now I'm still rewriting the TCP part, but ARP, IP, ICMP and UDP works
fine, along with some daemons).
There are no manuals written, so if you want to write software that uses
UDP, you'll need to ask me about the API. :-)
My most recent interest have been command line editors. Expect a
separate announcement on this within a few days. But in short, MIM have
the usual command line editors available - MCE, CLE and so on. But I've
been working on something completely different, and much better lately.
A command line editor as an ACD. People might not know what this is, but
RSX allows you to hook into the terminal driver and extend it with your
own features. This is then active all the time. I've done a command line
editor that uses this, and which works all the time. Both from the CLI,
and when you are running programs. It have both line editing, command
history, and can search the history as well.
Currently I have two flavours. One with emacs-like commands, and one
with EDT-like commands. The line editor can also do filename expansion
on CLI command lines.
In order to enable this on MIM, you just type
ACD LINK TI: TO ACD$EMACS
or
ACD LINK TI: TO ACD$EDT
and off you go. Sorry, but no real documentation exists right now, so
you'll have to guess your way around this.
Oh, and I mentioned that MIM is an 11/74. However, most of the time I'm
only running with one CPU online, since there is a bug somewhere in E11,
which can cause CPUs to get lost occasionally, when running SMP (best
uptime with more than one CPU so far is something like four weeks).
As a short tip on things to do, I'd recommend DUNGEON for that good old
feeling. Or ZEMU, if you want to run "modern" INFOCOM games (try ZEM /LI
to find out which games exist).
Well, that's it about MIM for now.
Doh! Stupid me...
You can reach MIM either through HECnet, or by telnet://mim.update.uu.se/
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
pdp is alive! || tryin' to stay hip" - B. Idol
Hello!
I am impressed Johnny. Except for one thing, how do you go about
properly logging out the guest user? It does ask for a name, and I'm
giving it the name(!) of my favorite time traveler.
Logging out? Easy - LOGOUT

Try HELP perhaps? Or "MORE FAQ"
Post by gregg dot drwho8 atsign gmail dot com
Oh and is this release of RSX-11M-PLUS V4.6 available for local use?
(That's the strange question.)
Exactly what was the question again?

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
jyb
2009-02-11 10:35:36 UTC
Permalink
Post by Johnny Billquist
Anyway, MIM have a guest account. Just login with GUEST/GUEST
and have a nice time. This is a resource that is available because I
think it's a good thing, and I hope people will appreciate it for what it is.
Wow! What an impressive config.

I could not run CLE:

$ cle
INS -- File not found
$ run DU0:[TOOLSYSTM]CLE
INS -- Can't install privileged task from non-privileged terminal

But MCE runs fine.
Post by Johnny Billquist
Well, that's it about MIM for now.
May i share a modest one?
<telnet://ns.pescadoo.net:1160>

guest/guest

This is simh running 11M+.

Usually, it runs 4.1 BL46 + DECNET, networked to a real PDP.

However, since my 4.1 has no DZ sysgened, i can't make it available
through telnet. Actually, it runs an old 11M+ 2.1 BL15, which happens
to have a DZ but no DECNET.
Post by Johnny Billquist
My most recent interest have been command line editors.
I'm working to a Files-11 to Unix filesystem integration, using either a
telnet/serial line DCL front-end, either reading disk images (writing
may come later, if i succeed to update correctly INDEXF.SYS and
BITMAP.SYS).

A Files-11 volume (or a set of Files-11 volumes mounted on
a machine) can be mounted on a desktop computer using FUSE.

Preliminary tests have shown that mounting a filesystem of a running
simulator via DCL is a slow but viable solution.

Mounting a read-only disk image is quite easy, but is a different
project since i use C to map the ODA control blocks to structs,
and Perl to process DCL output.

I hope to have more to share in some time.
--
j.y.bernier
Johnny Billquist
2009-02-11 11:29:57 UTC
Permalink
Post by jyb
Post by Johnny Billquist
Anyway, MIM have a guest account. Just login with GUEST/GUEST
and have a nice time. This is a resource that is available because I
think it's a good thing, and I hope people will appreciate it for what it is.
Wow! What an impressive config.
I hope it can amuse and/or help some people in some way. :-)
Post by jyb
$ cle
INS -- File not found
$ run DU0:[TOOLSYSTM]CLE
INS -- Can't install privileged task from non-privileged terminal
But MCE runs fine.
Yes. I haven't installed CLE. Any particular reason you'd prefer CLE to MCE?

Besides, I don't know if you've seen, but I also have an ACD nowadays to
do line editing. That one is much better (on my opinion) to eather CLE
or MCE. First of all, it takes much less resources, since it's not a
task that you have active. Second, it also have filename completion.
Third, it works both on the command line, and in programs. Fourth, it's
faster. And fifth, it also handles prompt redisplaying when broadcasts
and other output comes in the middle of input.
Post by jyb
Post by Johnny Billquist
Well, that's it about MIM for now.
May i share a modest one?
<telnet://ns.pescadoo.net:1160>
guest/guest
This is simh running 11M+.
Fun! More people just as crazy as me! :-)
Post by jyb
Usually, it runs 4.1 BL46 + DECNET, networked to a real PDP.
Maybe you should get on to HECnet?
MIM is networked to a whole much of systems, including some real PDP-10,
PDP-11, VAXen and Alphas. There is even some PCs and other hardware
there. (I have a PRO-380 online sometimes.)
Post by jyb
However, since my 4.1 has no DZ sysgened, i can't make it available
through telnet. Actually, it runs an old 11M+ 2.1 BL15, which happens
to have a DZ but no DECNET.
You need to run a SYSGEN then.
Post by jyb
Post by Johnny Billquist
My most recent interest have been command line editors.
I'm working to a Files-11 to Unix filesystem integration, using either a
telnet/serial line DCL front-end, either reading disk images (writing
may come later, if i succeed to update correctly INDEXF.SYS and
BITMAP.SYS).
A Files-11 volume (or a set of Files-11 volumes mounted on
a machine) can be mounted on a desktop computer using FUSE.
Preliminary tests have shown that mounting a filesystem of a running
simulator via DCL is a slow but viable solution.
I can imagine that it's slow, yes. Serial port and all...
Post by jyb
Mounting a read-only disk image is quite easy, but is a different
project since i use C to map the ODA control blocks to structs,
and Perl to process DCL output.
Wow. You really are doing some serious mucking around. But I'm not sure
why you'd want to go directly on the raw disk. Why don't you mount it
locally, and then access the files using F11ACP? That way both reading
and writing will be handled by F11ACP on the low level, and you can
focus on the communications and translations part.

I've been thinking about implementing NFS for RSX a few times, but one
of the biggest hurdles are the meta-information RSX keeps for files,
which there is not equivalent of in Unix or NFS. RSX have 32 bytes of
information that is outside the file itself, but which is accessible,
and where FCS and RMS store extra information about a file. Also, the
normal file format of a text file (which is the most common type of
files, after all) is very different in RSX compared to Unix. RSX have a
length field followed by the data for each line, while Unix have the
data, terminated by a LF.
There is no easy way to translate between these two. And also, the
length field is not normally something you see when in RSX. Instead you
get the record, and then you have implicit CR+LF at the end, but that
depends on the record attributes.

Suffices to say that NFS is not something I'm looking at actively right
now. :-)
Post by jyb
I hope to have more to share in some time.
Please do.

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
jyb
2009-02-11 13:48:55 UTC
Permalink
Post by Johnny Billquist
Yes. I haven't installed CLE. Any particular reason you'd prefer CLE to MCE?
None. MCE is fine.
Post by Johnny Billquist
Besides, I don't know if you've seen, but I also have an ACD nowadays to
do line editing.
I just did a quick trip to MIM but i'll take a deeper look into that.
Post by Johnny Billquist
Maybe you should get on to HECnet?
Undoubtly, this would be fun.

I don't think it will be possible because...
Post by Johnny Billquist
Post by jyb
However, since my 4.1 has no DZ sysgened, i can't make it available
through telnet. Actually, it runs an old 11M+ 2.1 BL15, which happens
to have a DZ but no DECNET.
You need to run a SYSGEN then.
YES. And the sad news is that I lost my 4.1 kit. You know, all this is
software rescued from 15-years old tapes and disks. Some tapes are
unreadable, drives do errors, and one disk crashed (as you may see
on the project's web page).

The fun thing if that the crashed disk still works after removing the
damaged head. Of course, I had to format it and loose all content.

I managed to save a bootable 4.1 and a bootable/sysgenable 2.1 but
without DECNET. I'm pretty sure that copying the DECNET components
from 4.1 to 2.1 will fail.

I can boot 4.1 w/t DECNET but, in this case, i loose telnet access
(except by console but that's not enough during development).

So playing with DECNET means stop playing with my software.

No fun, admit it :)
Post by Johnny Billquist
But I'm not sure why you'd want to go directly on the raw disk.
Why don't you mount it locally, and then access the files using F11ACP?
Do you mean there exists a F11ACP for Unix?

My goal is to handle PDP files *out* of RSX, for example editing a .MAC
with my favorite textedit on my desktop. Or browsing thousands files of
history with the ease of a GUI.
Post by Johnny Billquist
I've been thinking about implementing NFS for RSX a few times, but one
of the biggest hurdles are the meta-information RSX keeps for files,
Not so.
Post by Johnny Billquist
RSX have 32 bytes of information that is outside the file itself, but which
is accessible, and where FCS and RMS store extra information about a file.
Everything about a file is contained in the one-block file header in
INDEXF.SYS. As INDEXF.SYS is 'lower' than F11ACP, you access
it by LBN using the offset in the HOME BLOCK.

This is well described in AA-M176A-TC_ioOper_Nov81.pdf (bitsavers)
but I prefer use "Files-11 On Disk Structure Specification" featured in
the Multi-Tasker <http://www2.pescadoo.net/pdp/files-11-struct.html>

F11.H, by Bob Denny (Decus) has all the C structures needed.
Post by Johnny Billquist
Also, the normal file format of a text file (which is the most common type
of files, after all) is very different in RSX compared to Unix. RSX have a
length field followed by the data for each line, while Unix have the data,
terminated by a LF. There is no easy way to translate between these two.
Sorry ?

read length,read as much bytes, repeat until eol.
Post by Johnny Billquist
And also, the length field is not normally something you see when in RSX.
Instead you get the record, and then you have implicit CR+LF at the end,
but that depends on the record attributes.
Yes, yes, yes. It all depends on F.RTYP and F.RATT.
RSX is an OS with access methods inside.
Unix is an OS sans :)
--
j.y.bernier
Johnny Billquist
2009-02-11 14:49:11 UTC
Permalink
Post by jyb
Post by Johnny Billquist
Yes. I haven't installed CLE. Any particular reason you'd prefer CLE to MCE?
None. MCE is fine.
Ok. I looked at them in the past, and it looked mostly like MCE was
based on CLE, but extended. So I consider MCE as a superset of CLE. But
if there is some good reason to have both around I can do that. :-)
Post by jyb
Post by Johnny Billquist
Besides, I don't know if you've seen, but I also have an ACD nowadays to
do line editing.
I just did a quick trip to MIM but i'll take a deeper look into that.
I think it's way superior. :-)
Post by jyb
Post by Johnny Billquist
Maybe you should get on to HECnet?
Undoubtly, this would be fun.
I don't think it will be possible because...
Ah... Yes, that was a problem. :-(
Post by jyb
Post by Johnny Billquist
But I'm not sure why you'd want to go directly on the raw disk.
Why don't you mount it locally, and then access the files using F11ACP?
Do you mean there exists a F11ACP for Unix?
No. I might have misunderstood what you are doing.
Post by jyb
My goal is to handle PDP files *out* of RSX, for example editing a .MAC
with my favorite textedit on my desktop. Or browsing thousands files of
history with the ease of a GUI.
Yes. And if I understood it right, you were accessing the disk via a
serial port into the PDP-11 from your Unix system. And then having some
kind of software or whatever inside the RSX system serve the bits out to
the Unix system. If so, then why present the raw disk? Why not instead
mount the disk inside RSX, and give the files out using the normal file
system calls from RSX?

However, if what you are doing is having direct access to the disk from
the Unix system, then I misunderstood you.
Post by jyb
Post by Johnny Billquist
I've been thinking about implementing NFS for RSX a few times, but one
of the biggest hurdles are the meta-information RSX keeps for files,
Not so.
Believe me, it is. And you will become aware of it in time. :-)
Post by jyb
Post by Johnny Billquist
RSX have 32 bytes of information that is outside the file itself, but which
is accessible, and where FCS and RMS store extra information about a file.
Everything about a file is contained in the one-block file header in
INDEXF.SYS. As INDEXF.SYS is 'lower' than F11ACP, you access
it by LBN using the offset in the HOME BLOCK.
This is well described in AA-M176A-TC_ioOper_Nov81.pdf (bitsavers)
but I prefer use "Files-11 On Disk Structure Specification" featured in
the Multi-Tasker <http://www2.pescadoo.net/pdp/files-11-struct.html>
F11.H, by Bob Denny (Decus) has all the C structures needed.
Yes. But that is not the problem.
With NFS, you do not access the raw devices. NFS presents a file
structured interface. You open/close files. Read, write, check
attributes and so on. However, the 32 bytes of meta-data that F11 keeps
for each file have no corresponding concept in NFS (or Unix).
So, if I were to implement an NFS client on RSX, I could open a file on
a Unix system as if it were a file in RSX. However, I would have to fake
a 32 byte structure for RSX, so that FCS and RMS would be happy. They
expect to be able to read such information out from the file using a
call. And that information should reflect on the file format. But I
can't just fake it and say it's a "normal" RSX text file, since then FCS
(and RMS) will expect the file to contain record length, followed by
data. A Unix text file don't look like that. So then I would have to
convert every disk block of the file from the Unix style to RSX style as
well, which would make the block grow to more than a block. Bigger
problems follows.
I could fake it and say it's a STREAM CR style file. That would actually
be compatible with how Unix handles it. The problem with this is that
this format is supported by almost no programs, in addition to being a
format that only RMS understands. FCS just barfs on it.

If I were to go the other way, exporting a file system from RSX to Unix,
I would have to present a file without giving out those bits, but I
would have them locally. And I would have to set them by guess, since
that same file could also be opened locally, and would hopefully present
the same data as was presented on the remote Unix system. But I don't
really know if the file should be handled as text or as binary data, and
with what record size?

So it's just not really easy to do. Knowing the underlying data
structures are not enough. You'll face the same problems once you get a
bit further. When you create a file from your Unix system, how will you
create it in FILES11? Will you assume that it's always text files? Will
you try to guess? The actual format and content, both of the file and
the meta data will differ significantly depending on what you decide.
In Unix, the concept of a file is just a stream of bytes, so there are
no way of telling how the file should be treated. Binary or text. The
system calls don't tell. The user program knows, but it's a knowledge
that is kept inside the user program. So if you use any random program
under Unix to access files in RSX, you need to both make format
conversions back and forth, and also you'll have to guess what to do
when you create a file from the Unix side.
Unless, of course, you don't care about ever accessing the file from the
RSX side. :-)
Post by jyb
Post by Johnny Billquist
Also, the normal file format of a text file (which is the most common type
of files, after all) is very different in RSX compared to Unix. RSX have a
length field followed by the data for each line, while Unix have the data,
terminated by a LF. There is no easy way to translate between these two.
Sorry ?
read length,read as much bytes, repeat until eol.
Yes. But a Unix system will write data, LF, data, LF, and have a
different concept of what EOF is.
But assuming that the file isn't text, then the LF isn't really marking
an EOL at all, and should not be translated as such.
In addition to this, the file in RSX might, or might not have implicit
CR+LF at the end of records. Depending on this, your reading in Unix
should give different output. To make things worse, this also means that
files with the same content will not be of the same size on RSX and
Unix. Not even between different RSX files, depending on record attributes.
A line in Unix consisting of text followed by an LF can be as much as
two bytes more in RSX. You strip the LF away, and then you pad the line
to an even number of bytes. Then you add another two bytes for the
record length. If you don't have implicit CR+LF, you also need to add
those at the end of a line, which could mean four more bytes than in Unix.
This will also totally mess up any fseek/ftell calls in Unix.
Post by jyb
Post by Johnny Billquist
And also, the length field is not normally something you see when in RSX.
Instead you get the record, and then you have implicit CR+LF at the end,
but that depends on the record attributes.
Yes, yes, yes. It all depends on F.RTYP and F.RATT.
RSX is an OS with access methods inside.
Unix is an OS sans :)
Correct. And that makes it very problematic when you want this kind of
interoperability between them.

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Lawrence D'Oliveiro
2009-02-23 01:49:25 UTC
Permalink
Post by Johnny Billquist
Also, the normal file format of a text file (which is the most common type
of files, after all) is very different in RSX compared to Unix. RSX have a
length field followed by the data for each line, while Unix have the
data, terminated by a LF.
You've talking variable-length records. VMS had the same sort of thing, but
they also added "stream"-format files, of which there were at least two
varieties (STREAM_CR and STREAM_LF), and possibly also a CR-LF variety as
well.

Did RSX not have this added to it?
Johnny Billquist
2009-02-23 08:57:13 UTC
Permalink
Post by Lawrence D'Oliveiro
Post by Johnny Billquist
Also, the normal file format of a text file (which is the most common type
of files, after all) is very different in RSX compared to Unix. RSX have a
length field followed by the data for each line, while Unix have the
data, terminated by a LF.
You've talking variable-length records. VMS had the same sort of thing, but
they also added "stream"-format files, of which there were at least two
varieties (STREAM_CR and STREAM_LF), and possibly also a CR-LF variety as
well.
Did RSX not have this added to it?
It do, sortof. The "problem" with RSX is that you have both FCS and RMS,
which performs the same kind of services. However, FCS is smaller,
faster and simpler. And they both support a subset of filetypes in a
compatible way.
Basically all tools and utilities in RSX is using FCS. And FCS don't
support the STREAM filetype. RMS do.
If I remember right, it's basically a STREAM type where either CR, LF or
CR+LF terminates each record.

Apart from that, it's not just that VMS have the same sort of thing. RSX
and VMS is *extremely* compatible here, to the extent that you can grab
a keyed index file from one system and access it on the other.

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Lawrence D'Oliveiro
2009-02-24 01:27:16 UTC
Permalink
Post by Johnny Billquist
Basically all tools and utilities in RSX is using FCS. And FCS don't
support the STREAM filetype. RMS do.
Figures. All about fitting in a 64kiB address space, isn't it? How big is
FCS vs RMS?
Johnny Billquist
2009-02-24 11:13:16 UTC
Permalink
Post by Lawrence D'Oliveiro
Post by Johnny Billquist
Basically all tools and utilities in RSX is using FCS. And FCS don't
support the STREAM filetype. RMS do.
Figures. All about fitting in a 64kiB address space, isn't it? How big is
FCS vs RMS?
64 K definitely have relevance.

RMS can be included in stages, depending on what features you actually
need. And it can be overlaid.
A minimal size RMS is about 6.5 Kbyte, but that's with limited
functionality.
You can get a full functionality in about 10 Kbyte. But that is pretty
overlaid.
FCS on the other hand is more like maybe 4 Kbyte.

But with all that said, if you are running M+ of a fairly modern sort,
on nice hardware, both FCS and RMS can be linked in as supervisor
libraries, meaning that they don't take any address space at all, except
for buffers.
However, the APIs are totally different, so you can't really decide at
link time what to use. And for 11M systems, you can even generate a
system without even installing RMS. So basically no cusps use RMS.

RMS is nice, though.

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Johnny Billquist
2009-02-24 12:38:31 UTC
Permalink
Post by Johnny Billquist
Post by Lawrence D'Oliveiro
Post by Johnny Billquist
Basically all tools and utilities in RSX is using FCS. And FCS don't
support the STREAM filetype. RMS do.
Figures. All about fitting in a 64kiB address space, isn't it? How big
is FCS vs RMS?
64 K definitely have relevance.
RMS can be included in stages, depending on what features you actually
need. And it can be overlaid.
A minimal size RMS is about 6.5 Kbyte, but that's with limited
functionality.
You can get a full functionality in about 10 Kbyte. But that is pretty
overlaid.
FCS on the other hand is more like maybe 4 Kbyte.
But with all that said, if you are running M+ of a fairly modern sort,
on nice hardware, both FCS and RMS can be linked in as supervisor
libraries, meaning that they don't take any address space at all, except
for buffers.
However, the APIs are totally different, so you can't really decide at
link time what to use.
Reading this now, I realize that this was ambigous. The API for FCS and
RMS don't change if you use a supervisor mode library, and so you can
decide at link time what version of the library you want.

However, FCS and RMS have different APIs, so you can switch between them
without a major rewrite of your program.

There. Now I hope this is clear as mud. :-)

Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Lee K. Gleason
2009-02-24 04:22:53 UTC
Permalink
"Johnny Billquist" <***@softjar.se> wrote in message > Apart from that, it's
not just that VMS have the same sort of thing. RSX
Post by Johnny Billquist
and VMS is *extremely* compatible here, to the extent that you can grab
a keyed index file from one system and access it on the other.
Didn't RMS indexed files on VMS later versions evolve into formats that
weren't usable on RSX? I dimly recall the prologue level of indexed files
going up to version 3, and I think RSX indexed files were only prologue
version 1.
--
Lee K. Gleason N5ZMR
Control-G Consultants
***@comcast.net
Johnny Billquist
2009-02-24 12:25:01 UTC
Permalink
Post by Johnny Billquist
not just that VMS have the same sort of thing. RSX
Post by Johnny Billquist
and VMS is *extremely* compatible here, to the extent that you can grab
a keyed index file from one system and access it on the other.
Didn't RMS indexed files on VMS later versions evolve into formats that
weren't usable on RSX? I dimly recall the prologue level of indexed files
going up to version 3, and I think RSX indexed files were only prologue
version 1.
Yeah, VMS have prologue version 3, which isn't supported by RSX. RSX do
have prologue version 2, though.

.dsp [rconq]conquEST.dAT/full

DU:[RCONQ]CONQUEST.DAT;1 RMS Prologue Version=2
Size: 20./20. Created: 17-MAY-2008 02:45
Owner: [007,014] Revised: 22-FEB-2009 11:48 (1254)
File ID: (26450,121,0) Expires: <none_specified>
File protection: System:RWE, Owner:RWE, Group:RWE, World:RWE
File organization: Indexed, using 1 key(s) with 1 area(s)
File attributes: Allocation=20, Extend=0, Bucket size=4
Record format: Fixed length 60 byte records
Record attributes: None


Area number 0:
Bucket size=4
Allocation remaining=8, Extend=0

Primary key:
Name=UIC, Minimum record length=2
Key information:
Type=Binary, Length=2, No duplicates, No changes
Position(s) and size(s):
Segment=0, position=0, length=2
Area information:
Index: Area number=0
Lowest level area=0
Bucket size=4, Fill factor=2048
Data: Area number=0
Bucket size=4, Fill factor=2048
Allocation information:
Root virtual block number=5, Root level=1
First data bucket virtual block number=9
.set /host
Host=MIM RSX-11M-PLUS V4.6 BL87mP


Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: ***@softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol
Loading...