Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!husc6!mit-eddie!ll-xn!ames!ucbcad!ucbvax!decvax!tektronix!tekcrl!tekgvs!toma From: toma@tekgvs.TEK.COM (Tom Almy) Newsgroups: comp.lang.forth Subject: multi-user Forth Message-ID: <2496@tekgvs.TEK.COM> Date: Wed, 29-Jul-87 15:13:21 EDT Article-I.D.: tekgvs.2496 Posted: Wed Jul 29 15:13:21 1987 Date-Received: Sat, 1-Aug-87 02:07:47 EDT Reply-To: toma@tekgvs.UUCP (Tom Almy) Distribution: world Organization: Tektronix, Inc., Beaverton, OR. Lines: 44 In the recent deluge of postings, I seem to remember someone asking about multitasking/multiuser Forths. I have modified a copy of the public domain F83 (by Laxen and Perry) for multiuser (it is normally just multitasking). I will supply it (sources included, of course) to anyone who requests it. I did the modifications several years ago on the 8080 version 1.0, so anyone wanting multiuser on the 8086 version will have to examine the sources and make the appropriate modification to the 8086 version. I ran the program with three users on a Lobo MAX-80 (5 Mhz Z-80, 8" DSDD floppies, and 256k ram disk) with excellent performance. The program should work on an IBM PC if UNIDOS is used, with the only necessary mods being serial port access. Important details: The FORTH vocabulary "forks" so that each user additions to FORTH are private to his/her tasks. Other vocabularies existing before switching to multiuser are shared, allowing shared variables between users. Sufficient variables have been converted to user variables so that each user can edit separate screen files, and can have different terminal definitions. The editor has been modified for much more efficient display update (very important when running multiuser or over serial ports). A PolyForth "TYPIST" like task is provided. The typist can be considered as another user task which can receive character input from any user and sends all output to the printer. To use, type a line "TYPIST: ". If the typist is busy, you will be told so, and you can wait or hit a key to abort the (queued) command. When the typist is ready to accept the command, your task resumes. If the typist encounters any error, the error will be reported back to your terminal! A multitasking demo is provided -- Tower of Hanoi using message passing among a dozen tasks rather than recursion. This demo can be executed by all users simultaneously! (A problem: FORGET needs to be modified so as to delete any forgotten tasks, currently it leaves them chained in and the system will soon crash after forgetting). (Totally irrelevent to this discussion) the words INSTANCES_OF and USERS_OF are provided which do entire vocabuary (or all vocabulary) searches for words which either use a given word or are instances of (i.e. CREATE DOES>) a given word. I got the idea for this from the Smalltalk browser. Reply to me if interested. I could try emailing it, or can USmail it if sent a Self Addressed Stamped Mailer and a floppy (IBM PC Format only!!). Tom Almy toma@tekgvs.TEK.COM {most hubs}!tektronix!tekgvs!toma