| In my library, called SPRITE::USER1:[OSMAN.BLISSLIB], is a module that I
believe you could use quite easily. It's called
MAILBOX.OBJ
If you link it with your programs on each terminal, you could easily
establish communication. For instance, when you want to send characters
from one process's terminal to the other, call
SEND_MAIL_WAIT_NO_RSVP (pid, message-len, message-adr)
which sends the specified message (such as a string) to the specified process.
The other end merely executes
READ_MAIL_WAIT (max-length, message-adr, actual-length, pid)
to read messages. The actual-length and pid get filled in when the message
arrives, indicating exactly how long it is and who sent it. If you then
type the received message on the terminal, you've effectively sent a message
from one terminal to another.
If you don't want to sit around waiting for a message, call
SET_MAILBOX_READ_AST (astadr, astprm)
which will cause the routine specified by "astadr" to be called when
a message is available. (The routine may then call READ_MAIL_WAIT_NO_RSVP
to read it.)
Feel free to try all this by copying MAILBOX.OBJ. You'll need
to also link with TERMNL.OBJ and LINKED_BLOCKS.OBJ. If you want the sources,
they're all in BLISSLIB: too.
Good luck! Oh, by they way, if you win with it, let me know. It helps
the ambition :-)
/Eric
|
| Yeah,
I am using mailboxes. There is a basic SERVER process and two PLAYER processes.
The PLAYER processes each have a mailbox to talk to the SERVER and there
is a central MAILBOX that acts as a request queue that all PLAYERS can talk
to. My problem is that the mailbox logicals are being set up at a local
level. If user JOE sets up the game, user SAM's process can't find the
logicals for them. I tried inserting them in the system table, but my
call to $CRELNM came up with a SS$_ACCVIO error and I couldn't figure out
why. The native language is PASCAL. I am a novice when it comes to the
nitty gritty of VAX/VMS so all help would be appreciated. The game is
a two-player EMPIRE.
re: -.1
I'll look into them. thanks
Chad
|
| Although this may not be the best solution to your problem, there
is a way to treat a LAT terminal like a hardwired one before someone
logs in on it.
Try the following:
LAT> SET TERM OTHER
LAT> CONN ZEKE (hit only one return)
On another terminal (or session) find the LT device that just got
created. It status will be different that the ones in use. I think
the status is "available". From that terminal, allocate the device.
Then you can read and write to the device just like it was a spare
hardwired terminal.
KC
|