#: 20863 S1/General Interest 25-Mar-95 14:27:54 Sb: MicroWare Happenings? Fm: Guy B Meredith 71371,3462 To: All Is MicroWare taking up contracts with any more companies since the announcement of the baby Bell contract? I heard of a system used to rip Postscript which has a proprietary OS which sounds like a MicroWare product. They won't mention the name of the company doing the OS lest the competition pick up on the idea of the real time non-DOS system. Guy #: 20877 S1/General Interest 29-Mar-95 07:48:43 Sb: #OS/9 for 486... Fm: Simon Gauvin 72074,204 To: Anyone Does anyone know of a version of OS/9 for the PC486 platform or even for the Macintosh? There are 2 Replies. #: 20879 S1/General Interest 29-Mar-95 21:09:07 Sb: #20877-OS/9 for 486... Fm: Paul Hanke 73467,403 To: Simon Gauvin 72074,204 I believe it's called OS9000 (for the PC), a rather professional system available only from Microware. -ph- #: 20881 S1/General Interest 30-Mar-95 21:11:20 Sb: #20877-OS/9 for 486... Fm: David Breeding 72330,2051 To: Simon Gauvin 72074,204 > Does anyone know of a version of OS/9 for the PC486 platform or even for > the Macintosh? Yes, for both. I've heard mixed reports about the PC version. OS9 has been ported to the Mac by at least one company - Gibbs Laboratories, I believe it is. If you're interested, I or someone can look up details for you.. Might be in a FAQ file here, not sure. -- David Breeding -- CompuServe : 72330,2051 Delphi : DBREEDING *** Sent via InfoXpress/OSK - Vr. 1.02 *** #: 20862 S3/Languages 25-Mar-95 12:53:23 Sb: #scanf() question Fm: David Breeding 72330,2051 To: ALL How do you all handle this? scanf( "%d",num); gets( "%s", string); Seems what happens, scanf gets the number, but leaves the carriage return buffered, and on a subsequent gets(), or any other string call.. it retrieves the newline. The only remedy I could come up with is to follow each scanf() with a getchar(). It works, but doesn't seem very elegant. Any "elegant" solutions? -- David Breeding -- CompuServe : 72330,2051 Delphi : DBREEDING *** Sent via InfoXpress/OSK - Vr. 1.02 *** There is 1 Reply. #: 20864 S3/Languages 25-Mar-95 18:57:38 Sb: #20862-#scanf() question Fm: Bob van der Poel 76510,2203 To: David Breeding 72330,2051 (X) I think that for problems like that, and many others, most C programmers do not use scanf(). Instead, it is much easier to use gets() and atoi(), etc. BTW, a very useful function to have is cgets() and cfgets() which converts the trailing CR in an string to a '\0'. Those trailing CRs can be a real bother. There is 1 Reply. #: 20865 S3/Languages 26-Mar-95 02:04:43 Sb: #20864-#scanf() question Fm: David Breeding 72330,2051 To: Bob van der Poel 76510,2203 (X) > I think that for problems like that, and many others, most C programmers > do not use scanf(). Instead, it is much easier to use gets() and atoi(), That's the most logical solution, really, I just thought that perhaps there might be some workaround. Guess I'll do some rethinking on my technique. Is this scanf() thing peculiar to our system or is this a problem for all platforms? Actually, this seems to be a real handicap for that call. > etc. BTW, a very useful function to have is cgets() and cfgets() which > converts the trailing CR in an string to a '\0'. Those trailing CRs can be > a real bother. Yes, I've read your articles on this.. I have intended on starting an auxiliary library for some of these things that have been left out, but just haven't started. Came across another oddity.. I've been working on a program which I first wrote for the CoCo in B-09. I've rewritten it for OSK in "C". I had a database of 315 entries, consisting of a date and, in this case, 6 integer items each. Being the lazy type, I wrote a filter that would open a text (ascii) output file of this data. It would enter a "1" for the menu option to open a file, enter the filename, then read the database, one entry at a time, printf("3\n") for menu option 3 each time and using printf(), enter the data. Of course I'd pipe this into my program. In the program itself, for the file open, it uses fgets() to get the data filename. The individual field entries were input using scanf()-getchar() to get the date and then the same to get each individual entry. This method worked flawlessly on my OSK machine. I thought I'd try to check everything out on the CoCo, but this so far has simply refused to work. Both the program and the filter were compiled from the exact same source, except for some variations in the termcap initialization. The process on the CoCo appears to me to be shooting data to the program and losing some, sending them out into the "bit bucket" or something, as, when it gets back to the menu, it is not getting the "3" option, but sending it to another option, picking up some number entry on down the line. It's gotten me aggravated. The thing _should_ work -- it does in OSK, but doesn't on the CoCo.. I think there's some little thing wrong with it's system (since it works in OSK).. I'd like to know what gives with it.. Wacky buffering on the Coco?? There are 2 Replies. #: 20867 S3/Languages 26-Mar-95 16:01:21 Sb: #20865-scanf() question Fm: David Breeding 72330,2051 To: David Breeding 72330,2051 (X) RE: CoCo can't Pipe! Well, it looks like this thing has gotten me talking to myself . OK.. In review.. what I was doing, I had written a filter to read the ascii output of a program and re-enter it into a new version of the "original" program. The thing worked like a charm but got all confused on the CoCo. Here's part of my original post. > The process on the CoCo appears to me to be shooting data to the program > and losing some, sending them out into the "bit bucket" or something, Apparently I have a bug in my CoCo system.. After working with that for about a day, changing gets()'s to readln()'s and all, thinking it was something in the compiler, I got a "brainstorm". I was using Powerboost on the CoCo. I booted up under 6809 mode and guess what? It worked. Apparently, something's wrong in the PowerBoost system. All of Piper, Pipeman, or Pipe show different Module CRC's, it must be somewhere in the other I/O modules, but there's a problem somewhere. Under Powerboost, when I got it to input a few entries, I got repeats on at least one, the date was wrong on at least 2 more. Another thing, I had it to do ReVOn for the Menu Title. It would do this on the first time the menu appeared, but was in normal colors on all (?) subsequent draws. With 6809 mode, this worked correctly, too. So, I guess I found out at least the proximity of where the problem was, just not exactly.. I'm just glad it wasn't a compiler problem. -- David Breeding -- CompuServe : 72330,2051 Delphi : DBREEDING *** Sent via InfoXpress/OSK - Vr. 1.02 *** #: 20869 S3/Languages 26-Mar-95 22:10:38 Sb: #20865-#scanf() question Fm: Bob van der Poel 76510,2203 To: David Breeding 72330,2051 (X) I must admit that not only do I not advocate using scanf()...I've never used it either. So, I decided to test a bit...interesting. main() { int v1, v2; scanf("%d%d", &v1, &v2); printf("V1=%d V2=%d\n", v1, v2); } With this program I can enter either: 123 456 or 123 456 and get proper results. Matter of fact, I can even put in extra spaces and all is okay. I figured that I would have to include a \n in the control string to such the CR input from the keyboard...but that really doesn't work at all. Hmmm, maybe I know why I don't use this now. There are 2 Replies. #: 20872 S3/Languages 27-Mar-95 20:32:50 Sb: #20869-scanf() question Fm: David Breeding 72330,2051 To: Bob van der Poel 76510,2203 (X) > I must admit that not only do I not advocate using scanf()...I've never > used it either. So, I decided to test a bit...interesting. > scanf("%d%d", &v1, &v2); > printf("V1=%d V2=%d\n", v1, v2); > With this program I can enter either: > 123 456 > or > 123 > 456 I'd never tried that.. didn't figure it would work. > and get proper results. Matter of fact, I can even put in extra spaces and > all is okay. I figured that I would have to include a \n in the control > string to such the CR input from the keyboard...but that really doesn't > work at all. Hmmm, maybe I know why I don't use this now. No, it seems pretty tricky to me. If you include \n in the control string, I think you have to press twice. Where the problem comes in is if you: scanf(something). ... you now have a CR waiting in the buffer for the next C read; If your next scanf is for an integer, all is well, but if you're looking for a string, your will get ("\n") (well, an empty string if you are using scanf.. I've been using fscanf, which does not convert the CR, but you can limit the input.. I've used some programs where you can overrun the string space in the program. I've crashed some programs with an excessively long keyboard input, and I suspect that is what it was. All in all, I think your original advice to just not use it is the best there is. -- David Breeding -- CompuServe : 72330,2051 Delphi : DBREEDING *** Sent via InfoXpress/OSK - Vr. 1.02 *** #: 20875 S3/Languages 28-Mar-95 09:09:05 Sb: #20869-scanf() question Fm: Jost Eberbach 73502,2041 To: Bob van der Poel 76510,2203 (X) Bob, I don't like the scanf() function either, but sometimes it's very useful. When I used it the first time, I confused the meaning of the control string with that in the printf() function. Well, for the scanf() function, the control string only indicates the type of variable your scanning in, not the printable format. You can't use the \n or other control sequences. The big disadvantage of scanf() is, that it returns only when the user hits the ENTER key. You can't scan for single characters. Jost #: 20883 S6/Applications 01-Apr-95 01:51:12 Sb: #Ved is Great! Fm: David Breeding 72330,2051 To: Bob van der Poel 76510,2203 (X) Bob, Got my ved/vprint today. Haven't done much with it yet but from my limited experimenting with it, all I can say is WOW! I thought ved/coco was really great (don't have latest upgrades for it, though), but this appears to be much more potent than it. I'd been told that it was, but just didn't realize by how much (at least compared to the coco version I have). To be truthful, I'd not even used the coco version to its potential, and probably will never utilize all the features of the OSK version, but this thing looks like it's got it all. I'd thought I might want to use umacs for the C sources but from what I saw, I won't need to.. (I'd gotten to liking the tabs umacs supports, but from the docs, looks like I'll have them, too.) Thanks. (To be honest, I had not expected to get it so quickly.. it hasn't been but about a week since I sent in my order.. Really fast service). -- David Breeding -- CompuServe : 72330,2051 Delphi : DBREEDING *** Sent via InfoXpress/OSK - Vr. 1.02 *** There is 1 Reply. #: 20885 S6/Applications 01-Apr-95 21:35:03 Sb: #20883-#Ved is Great! Fm: Bob van der Poel 76510,2203 To: David Breeding 72330,2051 (X) Well, we aim to please . Glad you like all the features, etc. Shout if you need help. There is 1 Reply. #: 20886 S6/Applications 02-Apr-95 17:59:20 Sb: #20885-Ved is Great! Fm: David Breeding 72330,2051 To: Bob van der Poel 76510,2203 (X) > Well, we aim to please . Glad you like all the features, etc. Shout if > you need help. > I never dreamed that it would be this elaborate. I had imagined that I would have trouble implementing my function keys, arrow keys and all, but was rather pleasantly surprised to see that this was already taken into consideration. I've still not gotten very deeply into all the features yet (it _does_ take time). Oh, I'm using ved to type this.. I'm sure it's my imagination, but for some reason, it appears that the cursor flows more smoothly with VED. It seemed the same way on the coco, too. I implemented VED on my offline reader (ATP), too.. It seemed a little odd at first the way it came up after getting used to the way umacs came up. Haven't decided on exactly my key assignments yet.. I set the arrows, end, and obvious ones. I defined a few of the function keys to mimick the setup for umacs, to avoid confusion. I still can't get over how quickly I got it.. I was actually surprised to find it in my mailbox. -- David Breeding -- CompuServe : 72330,2051 Delphi : DBREEDING *** Sent via InfoXpress/OSK - Vr. 1.02 *** #: 20873 S9/Utilities 28-Mar-95 08:21:16 Sb: #20848-#Call Fm: Bill Dickhaus 70325,523 To: Paul Hanke 73467,403 (X) Paul, I haven't used 'call' in a while, but this is what I remember about it. First of all, call is a filter, it requires input, and only writes the results to standard out, it doesn't execute the commands directly. Given the following files in the current working directory: test1.txt test2.txt test3.txt file1.xyz file2 The following example: ls -1 *.txt ! call "echo $" ^ ^ ^ ^ ^ | | | | | | | | | +-- always use quotes | | | +-- pipe output of ls command to input of call filter | | +-- this assumes an ls or shell that understands wildcards | +-- this is whatever option (sometimes -n) that outputs one file name | per line with no other information. +-- Doesn't have to be ls, but has to generate one value/name per line Since call itself doesn't execute the generated commands, this would display (on the screen): echo test1.txt echo test2.txt echo test3.txt To take it one step further: ls -1 *.txt ! call "echo $" ! (-p) ^ ^ | | | +-- ... to a shell (the -p means no prompt) | and the command "shell" is implied +-- pipe the output of the call filter... Since the generated echo commands were piped to a shell (to be executed) this would display (on the screen): test1.txt test2.txt test3.txt Any command that writes to standard output can be used as input to call, as an example: echo 2 ! call "echo test$" ! (-p) Would generate: test2 Hope this helps. -Bill- There is 1 Reply. #: 20876 S9/Utilities 28-Mar-95 21:59:31 Sb: #20873-#Call Fm: Bob van der Poel 76510,2203 To: Bill Dickhaus 70325,523 (X) Don't know why you wouldn't use 'call' much. I use it all the time...for much more complex stuff than your example . For example, I might use it to process a set of files: dir -u ! call "tr [a-z] [A-Z] $ >foo; del $; rename foo $" ! shell -np Quite useful, really. There is 1 Reply. #: 20880 S9/Utilities 29-Mar-95 22:00:01 Sb: #20876-#Call Fm: Paul Hanke 73467,403 To: Bob van der Poel 76510,2203 (X) At this point, your example looks to me more like egyptian hieroglyphics . Well, what I had in mind was to be able to generate the idents of all modules in a directory or in memory, for that matter, to a file to be examined later. I assumed that using would be the best way to do that but wasn't able to duplicate the examples or comprehend the command lines. -ph- There is 1 Reply. #: 20884 S9/Utilities 01-Apr-95 21:34:59 Sb: #20880-#Call Fm: Bob van der Poel 76510,2203 To: Paul Hanke 73467,403 (X) To get Idents of all the modules in a directory you can do two things. One, if you have shell+ with wildcarding enabled just do something like "indent *". Using call you could do this: dir -u ! call ident $ ! shell -np This is for OSK. For OS9 the -np becomes -p and I think the -u is the same for dir (one entry per line), but you better check. There is 1 Reply. #: 20887 S9/Utilities 02-Apr-95 17:59:29 Sb: #20884-Call Fm: David Breeding 72330,2051 To: Bob van der Poel 76510,2203 (X) > To get Idents of all the modules in a directory you can do two things. > One, if you have shell+ with wildcarding enabled just do something like > "indent *". Using call you could do this: > dir -u ! call ident $ ! shell -np > This is for OSK. For OS9 the -np becomes -p and I think the -u is the same > for dir (one entry per line), but you better check. The stock os9 "dir" doesn't support "-u". I wrote a program called "ls" that did this specifically (I think others have done this too. Paul! If you don't have this, give me a shout and I'll email it to you. I never had "call". I copied a command "rep" out of Rainbow, I think, that was handy for this. One thing, and I don't mean it as a put-down for OS9/6809, but the built-in features of OSK are really far ahead of those for OS9. OS9 was patched to where it would do about everything you can do with OSK, but with OSK, often one command will do that of two or so with OS9. One case in point is ident.. As you noted above, you can ident a whole directory with one call, where with OS9, you have to recursively call ident by some means or another. I must admit that I've become quite spoiled. -- David Breeding -- CompuServe : 72330,2051 Delphi : DBREEDING *** Sent via InfoXpress/OSK - Vr. 1.02 *** #: 20888 S9/Utilities 04-Apr-95 18:31:16 Sb: 40track upgrade Fm: Paul Hanke 73467,403 To: anyone How would one upgrade standard single-side drives with FD-501 controller to 40 trk drives? I don't understand the ddd0_40d.dd descriptor - would it be used in single sided drives or should I use only dx_40d.dd descriptors? I assume that they'll work for both single and double sided drives, n'est-ce pas? Does the step rate auto- matically change from 35ms to 6ms with the use of the 40 trk descriptor? And will OS9gen still be able to create a bootable disk; if so, which track will contain the kernel? thx, -ph- #: 20874 S10/OS9/6809 (CoCo) 28-Mar-95 08:21:22 Sb: #20844-#Ugrades Fm: Bill Dickhaus 70325,523 To: Paul Hanke 73467,403 (X) Paul, Its been talked about for years, but as far as I know, nobody has ever put together a comprehensive list of all the patches. I don't think SDisk is available commercially any more, although you might be able to pick it up as part of a system for sale here or on the CoCo forum. -Bill- There is 1 Reply. #: 20878 S10/OS9/6809 (CoCo) 29-Mar-95 21:04:52 Sb: #20874-Ugrades Fm: Paul Hanke 73467,403 To: Bill Dickhaus 70325,523 (X) Well, for example, what system(s) contain(s) SDisk? Haven't been able to locate anything using sdisk as keyword. Without a modification list, per se, it would seem that virtually anyone not using a stock OS/9 disk would have a 'unique' enhanced copy because not everyone would necessarily be making the same changes among those avail- able. I've tried using shellplus2.2a; first time I ever modified shell. But all screens other than the vdg are scrambled up. Problem is, I've added so many changes all at once, to save having to make a new boot disk each time, that I can't pinpoint where the problem arises. yecchh. Any suggestions? -ph- #: 20889 S10/OS9/6809 (CoCo) 04-Apr-95 20:10:11 Sb: SDISK for OS9 Level 1 Fm: Rogelio Perea 72056,1204 To: ALL Recently I bought OS9 Level 1 (....a tried and true classic) and sandwiched in between the Boot and System disks came the original D.P. Johnson's SDISK diskette.... of course, the docs were nowhere to be found. I also got a copy of OS9 Level 1 Version 2, which is the one I want to use in my F Board CoCo 1. Now, the tour de force: The v2.0 system disk has been hacked (softwarely speaking) to boot in a special 51*24 hi-res screen. I need to create a new v2.0 boot using the standard CO32 and associated modules, a task I am currently doing, but in the meantime, I would like to add the SDISK upgrade to be able to use (and boot from) 40 track double sided disks. I have asked elsewhere for general guideance on SDISK/BOOTFIX, to no avail. The questions are: - Can I just replace CCDisk with SDISK in the bootlist? - Are there any command line parameters for options? - Does BOOTFIX need to be performed on *every* SDISKed boot disk? I hope someone can help me with this, also, if I could get D.P. Johnson's address (if still in business/current) I would try to contact the company directly....... help! Rogelio Perea #: 20852 S12/OS9/68000 (OSK) 22-Mar-95 20:09:49 Sb: #20851-OS9 v3.0 ISP Fm: Boisy G. Pitre 74464,3005 To: Pete Lyall 76703,4230 (X) Try: info@microware.com Kim Kempf is no longer with Microware. #: 20854 S12/OS9/68000 (OSK) 23-Mar-95 19:53:00 Sb: #20851-#OS9 v3.0 ISP Fm: Wendell Benedetti 72766,2605 To: Pete Lyall 76703,4230 (X) Pete, If you have NOT looked at OS9 in over a year, WHAT are you looking at? :-) Wendell - I want my SGI. There is 1 Reply. #: 20855 S12/OS9/68000 (OSK) 24-Mar-95 02:52:43 Sb: #20854-OS9 v3.0 ISP Fm: Pete Lyall 76703,4230 To: Wendell Benedetti 72766,2605 (X) Well, it was Unix, but now the flavor of the month is Windows NT... Pete #: 20858 S12/OS9/68000 (OSK) 25-Mar-95 04:19:56 Sb: #20851-#OS9 v3.0 ISP Fm: Niels Peter Bogholm 100566,2262 To: Pete Lyall 76703,4230 (X) HI Pete, Thanks for the addresses, I'll try'em ... I'm just curious, what did you do at your os9-days and why did you drop this wonderful (hmm) OS-world ? As you may have noticed, I'm quite new in this forum and wondering if nobody else are working with network-software on os9 (or are they all satisfied with MW's TCP/IP implementation - I can't believe that .. ) Well, my cc is finished so I'll go back to work.. Niels, Munich There is 1 Reply. #: 20861 S12/OS9/68000 (OSK) 25-Mar-95 05:35:56 Sb: #20858-OS9 v3.0 ISP Fm: Pete Lyall 76703,4230 To: Niels Peter Bogholm 100566,2262 (X) Os9 was fun, but a very small percentage of the world uses it compared to Unix or Windows... I decided I'd like a regular income, so a portable skill set was my objective. MW's TCP/IP implementation left lots to be desired... socket options for one (grrr....). Pete #: 20856 S12/OS9/68000 (OSK) 24-Mar-95 11:30:38 Sb: #20850-#OS9 v3.0 ISP Fm: Jost Eberbach 73502,2041 To: Niels Peter Bogholm 100566,2262 (X) Niels, you can also try HOTLINE@MICROWARE.COM, thats the main email address for their technical support group Jost There is 1 Reply. #: 20859 S12/OS9/68000 (OSK) 25-Mar-95 04:20:03 Sb: #20856-#OS9 v3.0 ISP Fm: Niels Peter Bogholm 100566,2262 To: Jost Eberbach 73502,2041 (X) Hi Jost, thanks for your reply, I'll try that address too. Are you working with os9 (specially networking) and if yes, what experiences have you made with the networking-support for os9 ? Niels. There is 1 Reply. #: 20871 S12/OS9/68000 (OSK) 27-Mar-95 12:45:11 Sb: #20859-OS9 v3.0 ISP Fm: Jost Eberbach 73502,2041 To: Niels Peter Bogholm 100566,2262 (X) Hi Niels, I have very little networking experience with OS-9. All I ever did is setup the ISP, and I used TCP/IP and TELNET to communicate with a WindowsNT server and a Windows workstation running Beame&Whitehead TCP/IP software. All I can say is: it worked! I never tried socket connections etc., so I can't be be of much help with that. I don't think there are gonna be many problems with that though. In general, my opinion about OS-9 is that it has many flaws and weaknesses, but it's still a good bang for the buck when you use Motorola CPUs. For Intel CPUs I would rather use QNX as a lowcost OS. OS9000 is a piece of shit, it doesn't even boot on many PC's. Jost #: 20857 S12/OS9/68000 (OSK) 25-Mar-95 04:19:26 Sb: #OS-9 Networking Fm: Niels Peter Bogholm 100566,2262 To: all, Hi os9-experts, I (would like to) have a master-server who waits for connectionrequests and then after reading some info "gives" the socket-fd to a slave-server which will continue communicating with the client. I can't do dup+close+fork cause the slave-serves have to be started at boot-time, but I certainly can ask some questions: Does anybody know, if there's an "official" way for more processes to share global(!) filedesc (socketdesc) ? It's easy to get process A's global-fd from it's local-fd (using F$FindPD and the pathdesc-structure) but how can process B open a path knowing the global-fd# (well it's possible to open a dummy-path, get procdesc table with F$GrpDBT and change it - but 1) MW says DON'T and 2) if internal structures change this wouldn't work..) Does anybody know, why MW didn't implement a true unix-fork ? From my point of view it would be quite easy (os9 shares code-segment so it just have to create a new processdesc and copy the old processes datasegment..) and it certainly would make it more easy to write portable code. Thanks for any answers, Niels, Munich. There is 1 Reply. #: 20860 S12/OS9/68000 (OSK) 25-Mar-95 05:33:23 Sb: #20857-#OS-9 Networking Fm: Pete Lyall 76703,4230 To: Niels Peter Bogholm 100566,2262 (X) I have done something very similar to this, but a master server listened and then spun off child servers to provide client services. Why must you start everything at boot time? Pete Lyall There is 1 Reply. #: 20866 S12/OS9/68000 (OSK) 26-Mar-95 06:20:34 Sb: #20860-#OS-9 Networking Fm: Niels Peter Bogholm 100566,2262 To: Pete Lyall 76703,4230 (X) Hi Pete, First some backgroundinfo: My "slave-servers" do manage different VME-Boards (vacuumcontrol, highvoltage, comm with external robots,..). The slow communication (unix-clients or other servers) is realized over network and realtime-comm between servers on same host with shm. Many servers have a control-loop they must exec cyclic (checks pressure, voltage,..). My solution uses a seperate "network-IO-process" for every server. This waits for network-actions, does all the communication and then notifies it's server with events and shm (data). This is fine(usable) for now, but may not be useful for later projects. Did your master/slaves share the socket-fd's ? If yes did you use close,dup,fork (well MW fork isn't a fork (unix!) but a much slower fork+exec) or did you find a way to share global fd's ? Do you know if it's possible to let the system signal an event when a connectionrequest(!) arrives (cause then one could use ev_wait instead of accept and this open a hole new world of possibilities..)? Niels. There is 1 Reply. #: 20882 S12/OS9/68000 (OSK) 31-Mar-95 09:34:38 Sb: #20866-OS-9 Networking Fm: Pete Lyall 76703,4230 To: Niels Peter Bogholm 100566,2262 (X) Niels - I used the forked approach... In fact I lifted in nearly verbatim from a SCO unix TCP/IP programming manual (making allowances for OS9's deviation from Unix, of course). Re: events - I have used them in over a year, so I can't remember. Try Kevin Darling - he's still in the thick of that project, I believe. Pete Lyall #: 20868 S12/OS9/68000 (OSK) 26-Mar-95 22:10:31 Sb: New Uploads Fm: Bob van der Poel 76510,2203 To: all I have uploaded two small programs to lib 12 in the last few days. The first is HPSET.LZH. This program lets you set up a HP compatible laser/inkjet printer using a visual onscreen selector. Comes with source. CAL.LZH is a complete calendar printing/display program. Lots of features...inlcuding the ability to print holidays, etc. if you want. This is shareware--I request a $20.00 donation, however $10.00 of that is refundable if you buy a commercial product from me. Sounds like a good deal to me . So, have a look. Comments welcome. Press !>