From: rasure@borris.eece.unm.edu (John Rasure)
Newsgroups: comp.soft-sys.khoros
Subject: Frequently Asked Questions (FAQ)
Date: 30 Jul 92 19:56:57 GMT



		FREQUENTLY ASKED QUESTIONS ABOUT KHOROS

		( Please Read!  Please Redistribute! )

		  Contents:  Questions 1 - 53

Q1.  What is the Khoros System?

Q2.  How do I obtain the Khoros system?
     What is the most recent version of Khoros?

Q3.  What is a "Patch"? What does "Patch Level" mean?  

Q4.  How can I find out what patch level our Khoros system is at?  

Q5.  How do I get the latest patch to Khoros?

Q6.  Do I want the most recent patch?  What changes have been made 
     in the patches to Khoros?

Q7.  What if I don't have access to the net / don't have the
     ftp program / don't want to bother with ftp / but still want Khoros?

Q8.  I want to get on / off the khoros mailing list,
     I want to get on / off the digestified mailing list.
 
Q9.  Is there a network news group that I can read which talks about Khoros?
     Is there a mail archive of the news group that I can get?

Q10. How do I print the documentation?

Q11. Can I buy the manuals separately?

Q12. I have a question to ask.

Q13. I have a bug to report.

Q14. I have a desired enhancement I would like you to know about.

Q15. Is there a book on Khoros that I can get?

Q16. Does Khoros work with 24-bit displays?  Can I expect any particular
     problems when I run Khoros applications on my 24-bit display?

Q17. What machines does Khoros currently run on? 

Q18. I have machine X running operating system Y (not listed in A17).  
     Has anyone ported Khoros to this architecture?

Q19. Does Khoros work with shared libraries?  Should I expect any
     problems when compiling for shared libraries?

Q20. I want to read the Khoros man pages, but vman doesn't seem to work.
     What's the problem?

Q21. What file formats are supported by Khoros?  If Khoros doesn't support
     my file format, is there any way to get my data into the Khoros system?

Q22. What support is provided for Khoros by the Khoros group at UNM?  
     What if I need additional support?

Q23. What is the Khoros Consortium?  What are the benefits of joining
     the Consortium?  How much does it cost?

Q24. I'm on a SUN architecture, using OpenWindows.  When I display images,
     they come up  with colored speckles in them, or strangely colored in
     some way. This condition rights itself when I move the cursor into 
     the image, but then the colors in my user interface get messed up -
     sometimes I can't see anything but the image.  Is this a bug in Khoros?

Q25. When I display an image that has a large number of colors in it
     the colors will not be displayed correctly unless
     I move my mouse into the image;  then, all my other windows lose
     their colors.  How can I get rid of this "techno-flash" phenomenon?
     NOTE: there is a difference between this problem and the one mentioned
     in Q15.  In Q15, the graphical user interface is lost;  here, the
     graphical user interface is preserved, but colors in other windows
     are lost.

Q26. The Khoros display programs are not working on SGI machines.  The 
     symptom is that when displaying images a title bar will appear, but 
     no window -- just an hole where the image should be.  

Q27. Is there a way to convert VIFF images with 3 color bands (rgb) to
     images with only one band and a colormap?  What about vice versa?

Q28. I have a problem with the annotations capability in editimage (xprism).
     When I move the image (plot), the annotations don't move accordingly.
     It seems that they are tied to the device coordinates of the screen,
     rather than the pixels in the image (world coordinates of the plot)
     as they should be.

Q29. I would like to remove all of Khoros that is not needed to 
     actually run it, in order to free up disk space.   What can
     be removed without compromising the integrity of the runtime 
     operation of Khoros?

Q30. On our SGI (NCD terminal with an SGI server), when the Khoros 
     applications come up, they have extremely large graphical user 
     interfaces.  The user interface is so large, it doesn't even fit 
     on the screen!  What can I do?

Q31. I heard about the audio cantata demo, and would like to hear it.
     How do I go about this?

Q32. I have some GIF images that I would like to use with Khoros.  Is
     there a GIF to VIFF converter?

Q33. I am trying to load 3D data into xprism3 from an ASCII file.
     When I try to plot the data, a pop-up window states that there 
     is 1 row and (total # data points) columns, and asks for the correct
     number of rows. What is going on?

Q34. I have a version of Khoros installed on a DecStation running the 
     dxwm window manager (DecWindows).  I have problems with running
     Khoros programs -- some of the buttons do not work at all, while
     others sometimes lock the program, or otherwise do not act properly.
     What's wrong?

Q35. I am setting up my *.cf configuration file in preparation for compiling
     Khoros.  How do I find out what libraries the linker expects in order to
     link C code against FORTRAN, in order to provide the proper libraries for
     the ForSysLibs option?

Q36. When plotting raw ASCII data specified in XYZ format, does the data 
     have to be rectangular, or can I provide irregular data?  Ie, does each 
     row have to have the same number of elements?  Is there anyway to plot 
     3D data that has a varied number of points per row?

Q37. What does the "*" mean after a pixel value at the bottom of
     the editimage window?

Q38. Now that you have 24-bit image display capabilities, is there a way to
     load a 24-bit image, display it on an 8-bit display (using 3-3-2, or 7
     levels each of rgb), and allow LUT manipulations, histograms, etc, to 
     be done on the original values?  

Q39. I am running animate on a DecStation 5000/200.  Animate is so slow that
     it is unusable.  Occasionally, it even seems to lock up the display.
     What is the problem?

Q40. I would like to do 3D object modelling, with multiple light sources,
     animation, and so on.  Does Khoros do this?

Q41. Is it possible to get only a subset of Khoros?  I realize that
     Khoros has a core of utillity routines that must be obtained, but
     I was hoping that one could pick and choose the routines one wanted
     on an as-needed basis.

Q42. Where did you get the name "Khoros"? Is it an acronym?

Q43. Is there a port of Khoros for a VMS system?

Q44. Can I run Khoros on my PC?

Q45. I have finished writing my new program under Khoros, and now
     I would like to install it into a toolbox, and integrate it 
     into the cantata visual language.  How do I go about doing this?

Q46. I am compiling Khoros with MIT's X11R5.  When linking xvroutines 
     (cantata, editimage, etc), the compiler tells me that 
     _viewportWidgetClass is multiply defined.  What's the problem?

Q47. I am having problems using cantata (or other xvroutine)
     after recently compiling on a SUN with shared libraries.  I get the
     error message:
     Warning: Widget class VendorShell version mismatch (recompilation needed):
       widget 11004 vs. intrinsics 11003.
     Warning: Widget class Form version mismatch (recompilation needed):
       widget 11004 vs. intrinsics 11003.

Q48. Warpimage did not compile after on a SUN4 architecture with static
     libraries;  in fact, it made the cc compiler segmentation fault and
     core dump!  What happened?

Q49. We are trying to run cantata on an NCD Xterminal as the display, 
     and the program fails, exiting with the following error:

     X Error:  BadAlloc
       Request Major code 65 ()
       Request Minor code 0
       ResourceID 0x2400085
       Error Serial #1576
       Current Serial #1582
    Major X error encountered for display ':0'! Unable to recover.

Q50. I can not regenerate the Khoros manual on a Sun Workstation
     because soelim for .so lines in the roff files, limits the
     file length to 64 characters.

Q51. Why do I get unresolved references when I compile Khoros with
     shared libraries on a SUN4.

Q52. I don't want to compile Khoros source, but I want to compile
     my own programs so I need the Libraries. How can I obtain the
     Khoros libraries?

Q53. Can you use C++ with Khoros?  How?

Q54. Is there a tutorial describing how to create and install an xvroutine?


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    Q1. What is the Khoros system?

    A1. Khoros is an integrated software development environment for 
        information processing and visualization, based on X11R4.  Khoros 
        components include a visual programming language, code generators 
        for extending the visual language and adding new application packages 
        to the system, an interactive user interface editor, an interactive 
        image display package, an extensive library of image processing,
        numerical analysis and signal processing routines, and 2D/3D
        plotting packages.

        *  X Windows Applications:
        Animate - Interactive Image Sequence Display Tool
        Cantata - Extensible Visual Programming Language
        Concert - A system for distributed X user interfaces (groupware)
        Editimage - Interactive Image Display & Manipulation Program
        Xprism2 and Xprism3 - Comprehensive 2D and 3D Plotting Packages
        Viewimage - A basic interactive program for surface rendering
        Warpimage - An interactive program for registering and warping images

        *  Data Processing Algorithms:
        Khoros contains over 260 programs, in the following
        categories: arithmetic, classification, color conversion,
        data conversion, file format conversion, feature extraction,
        frequency filtering, matrix algebra (LINPACK and EISPACK),
        spatial filtering, morphology filtering, geometric manipula-
        tion, histogram manipulation, statistics, signal generation,
        linear operations, segmentation, spectral estimation, sub-
        region, and transforms. Khoros supports the following file
        formats: TIFF, pbm, BIG, DEM, DLG, ELAS, FITS, MATLAB, Sun
        raster, TGA, and xbm.

        *  User Interface Tools
        Preview  - Graphical User Interface Display Tool
        Composer - Interactive Graphical User Interface Editor
        Conductor - Code Generation Tool for a Graphical User Interface
        Ghostwriter - Code Generation Tool for a Command Line User Interface
        Source Configuration & Management - Tools to install and maintain a
                                    distributed source tree.

	For complete details, please read the "announce.ftp" and "khoros.ftp"
        documents that are available in the khoros release/ directory.
        These documents can be obtained via anonymous ftp from any official
        Khoros ftp site (see Q2).
        

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q2. How do I obtain the Khoros system?
	What is the most recent version of Khoros?

    A2.              ----  anonymous  ftp ----
	The most recent version of Khoros, Khoros 1.0 Patch 5, can be 
	obtained free of charge via anonymous FTP.
	Our official FTP site from which you can get
	the Khoros system is listed below.   

        USA:  	   	ftp pprg.eece.unm.edu  (129.24.24.10)		
	(University of 	Login:  anonymous  (or ftp)
         New Mexico)	Password: user_name@machine
	       	   	cd /pub/khoros

        In all cases, we recommend that you first obtain the "install.ftp",
        "install.ms", or "install.ps" installation document found in the
        release/ directory, and read it before attempting to obtain the 
        Khoros system.  The Khoros system is large, and fewer mistakes will 
        be made if the proper documentation is read beforehand.

                    ----  USA tape orders ----
	If you are not on the network, or do not want to use ftp for some
	reason, you may order a tape of Khoros and printed manuals for a 
	fee of $250 from:

	The Khoros Group
	Room 110  EECE Dept.
	University of New Mexico, 
	Albuquerque, NM 87131
	email: khoros-request@chama.eece.unm.edu

	Please mail khoros-request@chama.eece.unm.edu to obtain the order
	form that must be filled out to place your order.

                    ----  Europe tape orders ----
	In Europe, you may order a tape from:

	Pascal ADAM
	DTA / LETI / DEIN / SIR
	CEN SACLAY
	91191 Gif / Yvette Cedex FRANCE
	tel: 33 1 69 08 82 91
	fax: 33 1 69 08 83 95
	email: padam@fauvette.saclay.cea.fr

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
   Q3. What is a "Patch"?  What does "Patch Level" mean?  

   A3. Periodically, we release "patches" to the Khoros system.  In general,
       a "patch" to a program means that the author made one or more bug fixes
       to the program.  These bug fixes are then made available to users of the 
       program in the form of context diff files, which are applied to the
       original program with the public domain "patch" program in order to 
       bring it up to date. In general, patches are small, fixing a few 
       reported bugs and nothing more;  they are released frequently following 
       the release of a software package, as the author(s) endeavor to make 
       the original program solid and reliable before moving on work on the 
       next version of the program.

       When used with respect to the Khoros system, however, the term "Patch"
       is used rather loosely.  "Patches" to the Khoros system would more 
       suitably be termed "minor releases".  They are made available to users
       in the form of large tar files, and the use of the "patch" program used
       on context diff files was abandoned after the first try, as it was 
       simply not sufficient to address the number of changes that were 
       included.  Patches to the Khoros system are large, fixing dozens of
       bugs and introducing major enhancements to the Khoros system;  they
       are released infrequently, often with 2-3 months elapsing between
       patches, as the authors attempt to make new capabilities available
       to users.

       In any case, "Patch Level" refers to the number of patches that
       have been applied to the software at a certain site;  for example,
       if three patches have been acquired and applied to the software, that
       software would be said to be "at Patch Level 3".   In addition to
       making patches available to users who already have the Khoros system,
       we also apply the same patches to the Khoros system which is available
       via public ftp.  Thus, if you acquired the Khoros system after Patch 3
       was released, your software would still be said to be "at Patch Level 3",
       regardless of the fact that you had never actually applied any patches.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    Q4. How can I find out what patch level our Khoros system is at?  
       
    A4. If you do not know what patch level your version of Khoros is at,
        look in $KHOROS_HOME/src for a file called "PatchLevel".  The one-line
        contents of this file will tell you what patch level the system is at.
        If the file does not exist, you probably have the original
        Khoros 1.0 with no patches applied,  although some sites may still 
        have the Beta version of Khoros.  The Khoros Manuals will indicate 
        if you still have Khoros Beta.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q5. How do I get the latest patch to Khoros?

    A5. If you are acquiring the Khoros system for the first time, see Q2.
	The distributed version of Khoros on pprg.eece.unm.edu always has
        the most recent patch incorporated.  If you have an existing version
        of Khoros, do an anonymous ftp to pprg.eece.unm.edu  (129.24.24.10);
        the most recent patch is in /pub/khoros/patch/patchN, where patchN
        is the most recent patch.  Follow the instructions in the README found 
	in that directory for installing the patch.  ONLY install patchN onto
        a Khoros system which is currently at Patch Level N-1. If your version
	of Khoros is at Patch Level N-2 or earlier, re-acquire the entire 
	system from scratch as explained in Q2.

	IMPORTANT:  You must ALWAYS have the same release of "system" to go 
	with either a release of "source" or a release of "binaries".  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
        
   Q6.  Do I want the most recent patch?  What changes have been made
        in the patches to Khoros?

   A6.  Of course you will want the most recent patch if you want to stay 
        up to date with what we are doing with the Khoros system.  The changes 
        that have been made in each patch are too extensive to list here;  
        however, a complete list of changes that were made during Patch N can 
        be obtained by ftp'ing to pprg.eece.unm.edu (129.24.24.10), and getting 
	/pub/khoros/patch/patchN/README.

       
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q7.  What if I don't have access to the net / don't have the
	ftp program / don't want to bother with ftp?

   A7.	If you don't want to ftp the system yourself, you may
	get a tape and printed documentation from UNM. It will cost 
        $250 if you are in the United States or Canada, $350 internationally.

	MAIL ORDERS:
	First, get an order form.   You may ftp to of the sites listed 
	above and get the announce.ftp document (which contains the order
	form), or mail khoros-request@chama.eece.unm.edu and request an order
	form.  Fill out the order form and send it to the 
	address listed on it with a check or purchase order for 
	$250 made out the University of New Mexico.
	
        FAX ORDERS:
	You can FAX orders to UNM at 505-277-1439

	CREDIT CARD ORDERS:	
	You can use your credit card to order Khoros, provided that you
	specify all the necessary information (name, credit card number,
	expiration data, daytime phone number) on your order form.
        We do not accept American Express.

	ORDER INFORMATION:
	email khoros-request@chama.eece.unm.edu

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q8. I want to get on / off the khoros mailing list,
	I want to get on / off the digestified mailing list.

    A8. PLEASE don't mail these requests to khoros@chama.eece.unm.edu!
        Over 1000 people who don't care will be getting your request.
        Mail to khoros-request@chama.eece.unm.edu, and we will process
        your request as soon as we can.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q9. Is there a network news group that I can read which talks 
        about Khoros?  Is there a mail archive of the news group
        that I can get?

    A9. Yes.  We have our own news group, comp.soft-sys.khoros.
        Note that all messages to the mailing list are cross-posted to the
        news group and vice versa;  thus, you may want to be on the mailing
        list or read the news group, but it is not necessary to do both.

        We do have a mail archive, but it is unfortunately not updated 
        automatically;  at this time, it is only updated when patches are
        released.  However, on the philosophy that something is better than
        nothing, you can do an anonymous ftp to pprg.eece.unm.edu (129.24.24.10)
	and get the files found in /pub/khoros/mail_archive.

	For researching previously-posted mail to comp.soft-sys.khoros, 
	you can also make use of the WAIS server for Khoros mail, provided
	by Mathew Yeates of the Image Analysis Systems Group, JPL.  
	WAIS - The Wide Area Information Servers system, is a set of products 
	supplied by different vendors to help end-users find and retrieve 
	information over networks.   It can be obtained from think.com.

	The server is running at henry.jpl.nasa.gov on port 1025 and the 
	database name is khorosmail. As an example:

	% waissearch -p 1025 -h henry.jpl.nasa.gov -d khorosmail ansi

	This gives a list of mail containing the keyword "ansi". Next, you may
	choose which mail to read (xwais is a better interface).  
	Please direct any questions about WAIS to alt.wais, not 
	comp.soft-sys.khoros.

	This is a temporary service provided for members of the Khoros 
	community by Mathew Yeates, and may go away at any time, depending
	on any adverse effects that it may have on his machine.  Thanks go
	to Mathew (mathew@elroy.jpl.nasa.gov) for providing this service.
	

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q10. How do I print the documentation?
    Q10. Use the "prnmanual" program.  It is an interactive program
 	 which will take you through a series of prompts in order to
	 print the desired portion of the manual.
	
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q11. Can I buy the manuals separately?
   A11. Yes.  For a cost of $100 / set, you can order printed manuals from
        us here at UNM.  See A7 for details.
    

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q12. I have a question to ask.
 
   A12. If you have a question, mail to our mailing list: 
        khoros@chama.eece.unm.edu.  When mailing questions, please follow 
        the proper mail etiquette by including enough information for us 
        to understand your situation.  Indicate what machine architecture 
        and operating system you are using.  Include complete details so as 
        to exactly describe your problem.  Do not mail long files to the
        mailing list, such as make.World files, or saved cantata workspaces.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q13. I have a bug report.

   A13. If you have a bug report, mail to khoros-bugs@bullwinkle.eece.unm.edu.
        Please use the Bug Report form found in $KHOROS_HOME/repos/BugReport.
	It is very difficult for us to trace bugs when we don't have enough
	background information.  Also, it will help if you first read
	$KHOROS_HOME/repos/BugList, which lists currently known bugs in Khoros.
	We rarely respond to reports mailed to khoros-bugs;  however, we do
	log them in our list of bugs to be dealt with. In the future, we hope 
	to implement an automatic reply so that you know your mail was received.
	Please *DO* send bug reports on any documentation errors you may find,
	no matter how "nit-picky" they may seem!  We don't have a professional
	proof reader, so any reports you make are *truly* appreciated!
        Please *don't* send questions to khoros-bugs -- they probably will not 
	be answered, as this account is for logging of bugs & desired 
	enhancements only.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q14. I have a desired enhancement that I would like you to know about.

   A14. If you would like to request an enhancement to a program,
 	mail to khoros-bugs@bullwinkle.eece.unm.edu.  You don't need to use
	the Bug Report form, but please be clear and give enough information
	so that we will exactly what the enhancement is.  We cannot promise
	that desired enhancements will be implemented. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q15. Is there a book on Khoros that I can get?

   A15. Not at this time, but there is a book scheduled to begin development 
        this year.  The exact contents of the book have not been
        decided on yet, but it will include writings from a number of authors,
        and will address the solution of various scientific problems using
	the Khoros system.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
	 
   Q16. Does Khoros work with 24-bit displays?  Can I expect any particular
        problems when I run Khoros applications on my 24-bit display?

   A16. Yes, Khoros works with 24-bit displays.  As of patch 2, increased
	support was added for 24-bit displays - most xvroutines should display
	graphics and images on 24 bit displays without problem.   One drawback
	of editimage is that the position widget (displayed under the image,
	in [X x Y = Z] format) should display 3 components when used with a 
	24 bit image;  we did not have time to update this as of yet.
	Similarly, the Pixel Print capability should also treat the lookup
	as 3 decomposed RGB values. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
   
   Q17. What machines does Khoros currently run on? 

   A17. Khoros 1.0 compiles on the following machines (MIT X unless 
	otherwise noted):

	ApolloDN10000      OS 10.3, Fortran 10.8, cc 6.8
	CRAY YMP's, XMP's, Cray II's running UNICOS 6.0, and 6.1.
 	DEC   5000/3100    Ultrix 4.2, mips cc 2.0, DEC f77 V3.0-2
	DEC   Vax 3600     Ultrix 4.1, cc1.37.1
	HP    9000/*	   HP-UX 7.05, HP-UX 8.05
	IBM   RS/6000      AIX v3.1
	OMRON Luna88k      Mach 2.5, gcc 1.37, f77 1.8.5
	NeXT  68030,40     MACH 2.0, gcc 1.37, Absoft f77 2.0, Pensoft X
	SGI   All          OS 3.3.2, OS 4.0, X11 1.2, f77 3.3
	SUN   SPARCstations, SUN4   SUN OS 4.1.1, f77 1.4.5
	SUN   SUN3/        SUN OS 4.1.1, f77 1.3.1, gcc 1.39/2.0

	As of Patch 5, increased support was added for:

	Convex C220, running ConvexOS 8.1 with non-ANSI C compiler (scc)
	MacII running A/UX 2.0.1 using gcc-1.39 as C compiler.
	DG Aviion running DG/UX 4.3 (thanks to Bob Clark)
	Intel 386/486 running Interactive Unix  (thanks to Maurizio Davini)
	Luna 88K running Mach 2.0  (thanks to Ping-Kang Hsiung & Hideo Noro)


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q18. I have machine X running operating system Y (not listed in A17).  
	Has anyone ported Khoros to this architecture?

   A18.	Currently, Khoros is being / has been ported by various people 
	in the Khoros user community to a variety of architectures, 
        including the Alliant VFX/2800, Apollo 425T, Convex C220,
        DG Aviion, Fujitsu VP2200/10, IBM RS6000, Integraph
        Interpro, MacII, Sony 3710, and some 386/486 machines. 

	At this time, these platforms are not directly supported by the
	Khoros group.  For more details, you may mail to 
	danielle@bullwinkle.eece.unm.edu; she is compiling a list of Khoros 
	ports, and can give you the information that she has so far.   

	If YOU have done a port of Khoros to machine X running operating 
	system Y, she would very much appreciate a letter from you, 
        specifying: 

	   1) your name and place of employment (phone number optional)
 	   2) your return email address
           3) which version of Khoros you ported,
	   4) which machine /operating system you ported to
	   5) comments you might like to make.  

	If you *do not* want to be contacted by other Khoros users, simply
	say so and your name / email address will not be released.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q19. Does Khoros work with shared libraries?  Should I expect any
	problems when compiling for shared libraries?

   A19. You can compile Khoros with/for shared libraries for the SUN. 
	Mechanisms are in place for compiling shared on other architectures,
	but have not been completed. 
	
	If you are compiling shared, make sure that your machine.cf
	configuration file has the symbol HasSharedLibraries set to YES.

	When compiling shared, if you get a large set of errors from
	the loader listed in your make.World file, as in:

   rm -f vadd
   cc -o vadd vadd.o  -L/home/holst/khoros/lib -L/mnt/elocal/lang/SC1.0
   -O -Bdynamic -lghost  -lvexpr  -lnum_anal  -ldspl  -lformat
   -lgeo_surf  -lvipl  -lvutils  -lvmath  -lvrast  -lvgparm  -lverror
   -ltiff  -lm -ll -ldl   
   ld: Undefined symbol
      _cg_
      _zgedi_
      _zgeco_
      _zgesl_
      _zsvdc_
      _ch_
      _dgesl_
      _dgefa_
      _e_wsfe
      _pow_ii
      _s_wsFe
      _s_stop
   *** Error code 2
   install in ./vipl/arith_binary/vadd done
   make: Warning: Target `install' not remade because of errors

	This is the behavior of the loader in Sun OS 4.1.2. It
	insists on resolving everything in linpack, and since that 
	version of linpack does not appear to be fully consistent 
	(i.e. those routines are reference but not defined), you get 
	these error messages.
	To solve the problem, you may:

	* use the loader of 4.1.1
        * add stub routines to linpack (like extern void zgeco_() {} )

	If you are compiling on a SUN4 under 4.1.1 and have installed
        the loader (ld) program patch, you must also compile statically,
	for the same reasons given above for SUN OS 4.1.2.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q20. I want to read the Khoros man pages, but vman doesn't seem to work.
        What's the problem?

   A20. Be sure that you have run  the "customize" program before attempting 
	to use "vman".  The "customize" program sets paths correctly so 
	that "vman" knows where to go to find man pages.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q21. What file formats are supported by Khoros?  If Khoros doesn't support
        my file format, is there any way to get my data into the Khoros system?

   A21. Khoros supports Sun Raster, Terra-Mar BIG, TGA, DEM, DLG, FITS, PBM,
        and ELAS images;  there are routines to convert each of these file
        formats to the VIFF format used by Khoros.  In addition, there are
        also routines to convert ascii data and raw data to the VIFF format.
        If your file format is not one of these, you can still import the 
        image data to Khoros provided you can display the image.  Once any 
        image is displayed on an X11 screen, the "getimage" program can be
        used to store it as a VIFF image. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q22. What support is provided for Khoros by the Khoros group at UNM?  
        What if I need additional support?

   A22. The best we can do here at UNM is to try to answer your mail to
        khoros@chama.eece.unm.edu, and to post to our new news group,
        comp.soft-sys.khoros -- a big job in itself for our small group.
        We have decided that the best way to provide additional support
        is via the Consortium.  Hopefully, in the future, one or more of
        the Consortium members will take the initiative to provide Khoros
        support.  
         
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

    Q23. What is the Khoros Consortium?  What are the benefits of joining
	 the Consortium?  How much does it cost?

    Q23. The Khoros Consortium will oversee the distribution of the
	 Khoros software and the continued research and development
         of the Khoros project.  There are two levels of membership
	 in the Consortium: a Supporting Member at $50,000/yr, and an
	 Affiliate Member at $5000/yr. Affiliate Members have the right
	 to redistribute the Khoros system and early access to enhancements
         and updates;  Supporting Members have the right of redistribution and
	 early access to updates; they also participate on an advisory group 
	 as well as participate in staff exchange, and training sessions. 
	 For more information about joining the Consortium, send email 
	 to: consort@chama.eece.unm.edu
         
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q24. I'm on a SUN architecture, using OpenWindows 2.0. When I display images,
        they come up  with colored speckles in them, or strangely colored in
	some way. This condition rights itself when I move the cursor into 
	the image, but then the colors in my user interface get messed up -
	sometimes I can't see anything but the image.  Is this a bug in Khoros?

   A24. No, it is a result of us having to work around a bug in the X server 
	which will cause the server to dump when any display routine attempts 
	to create a private colormap.  We managed to work around the bug,
	but at the cost of user interface colors no longer being defined as 
	the original colors.  This implies that with any display routine, your 
	user interface colors will be undefined if the programs cannot use 
	the default colormap;  in this case, your user interface colors may 
	disappear, may be arbitrarily defined, or may have their colors 
	re-defined according to the current colormap.  The best you can do
	is try to limit the colors used in your image, thus leaving more
	color cells "left over" for the user interface to use.
	Note that this bug has been fixed in OpenWindows 3.0.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q25. When I display an image that has a large number of colors in it
	the colors will not be displayed correctly unless
	I move my mouse into the image;  then, all my other windows lose
	their colors.  How can I get rid of this "techno-flash" phenomenon?
	NOTE: there is a difference between this problem and the one mentioned
	in Q15.  In Q15, the graphical user interface is lost;  here, the
	graphical user interface is preserved, but colors in other windows
	are lost.

   A25. The number of colors that may be displayed nicely is X server 
	dependant -- it also depends on the number of colors currently 
	used by other windows on your display.

	For color rgb (3-band) images, use the vgamut program to reduce the 
	number of  colors, using the [-n] option to specify the number of 
	colors you want in the compressed image. 

	For psuedocolor images, you first must use the vmapdata program to 
	convert the image into a temporary 3-band rgb image; use this
	temporary image as input to vgamut, as described above. 

	For grey scale images with no map, you may want to use 
	v1bgamut (one-band gamut) to reduce the number of colors.
	Another method is to use vconvert to convert the image to type 
	BYTE, scale by 0.5, and multiply by 2.0, thus quantizing the grey 
	levels to 7 bits (even values 0-254).

	There are a very large number of ways that images can
	be modified to use a reduced number of pixels;  explanations of
	other methods are omitted here.  To begin with, the user should see
	man pages on vgamut, v1bgamut, vmapdata, vconvert, and vmsquish. 
	
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q26. The Khoros display programs are not working on SGI machines.  The 
        symptom is that when displaying images a title bar will appear, but 
        no window -- just an hole where the image should be.  

   A26. We have found what appears to be a bug with SGI's Xsgi server.  
        The bug is with the shape window extension and seems to only appear 
        on machines that are running either the 3.3.1 or 3.3.2 maintenance 
        update.  It does work however with the original 3.3 distribution.  
        To identify what version of the Xsgi server is installed on your 
        machine, run the following command:

        % /usr/sbin/versions long | grep Xsgi

        If "versions" returns the string below then all should be well:

        f 39751  1569 eoe2.sw.X11             usr/bin/X11/Xsgi

        If "versions" returns either of these two strings then the display 
        routines will not work:

        f 34353  1569 maint1.eoe2_sw.X11      usr/bin/X11/Xsgi
        f 34353  1569 maint2.eoe2_sw.X11      usr/bin/X11/Xsgi

	In the 4.0 version of the operating system, this the bug is fixed.  
	Patch 1 of Khoros fixed the problem by totally disabling the shape 
	option for SGI servers.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q27. Is there a way to convert VIFF images with 3 color bands (rgb) to
	images with only one band and a colormap?  What about vice versa?

   A27. To convert VIFF images with 3 color bands (rgb) to images with only 
	one band and a colormap, use the vgamut program, using the [-n] option 
	to specify the number of colors you want in the compressed image.  
	Many of the Khoros routines will require that you use vgamut on your 
	3-band image before using them.

	To convert a single-band VIFF image with a colormap (a pseudocolor 
	image) to an RGB image, you can use vmapdata to map the image data 
	through the maps, which will result in an RGB image. However, the 
	colors will still be quantified to 256 values as they were in the 
	psuedocolor image (your " VIFF-with-colormap") -- therefore, the 
	resulting will not look the same as the original image did (assuming 
	the "original" image was an RGB image, and that is where the 
	psuedocolor image originated from).  You cannot go back to the full, 
	original RGB information given only a psuedocolor image. After using 
	vmapdata (which creates a single image), if you want 3 separate images, 
	you can then use vbandspt3 to extract the 3 bands from the image and 
	create 3 new images, each containing one of the R, G, and B bands.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q28.  I have a problem with the annotations capability in editimage (xprism).
	 When I move the image (plot), the annotations don't move accordingly.
	 It seems that they are tied to the device coordinates of the screen,
	 rather than the pixels in the image (world coordinates of the plot)
	 as they should be.

   A28.  This is true.  You are noticing a design limitation in the annotations
	 implementation.  Annotations were originally created to work on device
	 coordinates, with future plans to upgrade them to work on the pixels
	 in the image / world coordinates of the plot.  Unfortunately, we still 
	 have not added this capability.   We hope to rectify this for 
	 Khoros 2.0.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q29.  I would like to remove all of Khoros that is not needed to 
         actually run it, in order to free up disk space.   What can
         be removed without compromising the integrity of the runtime 
	 operation of Khoros?

   A29.  The minimum set of directories that you need to run Khoros are:
         	bin     - of course for executables
         	repos   - user interface files
		dotfiles- dotfiles for khoros environment

         You may also want to keep:
        	doc     - on line help
        	man     - man pages used by vman
        	manual  - printed manual

 	 You do not need the following for only a "runable" khoros:
       		src     - needed for compiling
        	lib     - needed for compiling
        	include - needed for compiling
        	data    - examples
        	release - documentation
 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q30. On our SGI (NCD terminal with an SGI server), when the Khoros 
	applications come up, they have extremely large graphical user 
	interfaces.  The user interface is so large, it doesn't even fit 
	on the screen!  What can I do?

   A30. A bug in the SGI 3.3.x X Server prevents default fonts being 
	read from the .Xdefaults file by the xvforms library, causing 
	Khoros applications to come up with unpredictable fonts.   To find 
	out which fonts are available on your display, use:

		% xlsfonts 

	Then, use your favorite font with the [-fn] option that is provided 
 	with all Khoros applications that have a graphical user interface.  
	We recommend the "fixed" font, if it is available.  For example,

		% editimage -fn fixed

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~


   Q31. I heard about the audio cantata demo, and would like to hear it.
        How do I go about this?

   A31. First of all, you have to be on a SparcStation (SUN4), and
        you must have the raw2audio program installed.  raw2audio is a
        program distributed by SUN; it is not part of Khoros.

        Go to /usr/demo/SOUND, and compile the code that is there using
        the Makefile provided.   Note that in this directory is the file
        raw2audio.c -- when you compile this directory, you will get the
        raw2audio* executable.  Then you may use the dsp.Z workspace with
        cantata to hear the demo.

        Note that if /usr/demo/SOUND does not exist on your SUN system, you
        must install it -- it should be available on the SUN OS 4.1.1
        distribution tape.

	The cantata workspace to run the sound demo file is available
        anonymous ftp from pprg.eece.unm.edu (129.24.24.10) in the 
        directory /pub/khoros/misc/workspaces;  it is called dsp.Z.  Be sure you
        have bin set (ftp> bin) before acquiring the compressed workspace.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q32. I have some GIF images that I would like to use with Khoros.  Is
        there a GIF to VIFF converter?

   A32. Currently, we do not have a gif2viff program, although we may put
	one out in the future.   For the time being, you can convert your 
	GIF image to PBM (Portable Bit Map) and then use the
        khoros routine 'pbm2viff' to get it from PBM into VIFF format.
        To convert your GIF image to PBM, the pbmplus package is very useful.
        The pbmplus package is a public domain package that can obtained via
        anonymous ftp on pprg.eece.unm.edu or export.lcs.mit.edu in the file
        'pub/pbmplus.tar.Z'.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q33. I are trying to load 3D data into xprism3 from an ASCII file.
        When I try to plot the data, a pop-up window states that there 
	is 1 row and (total # data points) columns, and asks for the correct
        number of rows. What is going on?

   Q33. When you input data points into xprism3, there is nothing in the data 
	to indicate how many rows and columns are included in the data.

        While row & column information is not needed to do a scatter
        plot, for instance,  it is required in order to draw a mesh plot, a
        surface plot, and others.

	Suppose you have 200 data points.  Xprism3 does not know
        whether you want 1 long row of 200 points, or 2 rows of 100 points
	each, or 5 rows of 40 points, etc:  so, you have to *tell* it what
        you mean.  If you are providing the data file as input from the
        command line, you would specify the number of rows with the [-rows]
        option, as in the following data file containing 5 rows of 38
        points (columns) each:

        % xprism3 -i11 data2.pts -rows11 5

        If you input the data file from the "Input File" pane of the "Plot"
        subform, you will be prompted by a pop-up window noting that the 
 	default is to have 1 row of 200 columns (one long row with 200 points 
        in it).  If you really wanted 5 rows of 40 points (columns) each, you 
 	would correct xprism3 by substituting a 5 for the 1 in the pop-up 
	winddow.  From that point on, the default action would be for xprism3 
	to assume that all subsequent sets of data points all have 5 rows;  
	the number of points in each row (the number of columns) is computed 
	as the total number of points divided by the number of rows specified.  
	If you then enter a set of data points that has, say, 2 rows, you will 
	have to correct xprism3 again by entering "2" in the pop-up window.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q34. I have a version of Khoros installed on a DecStation running the 
        dxwm window manager (DecWindows).  I have problems with running
        Khoros interactive programs such as cantata, xprism2/3, etc -- 
	some of the buttons do not work at all, while others sometimes lock 
	the program, or otherwise do not act properly.  What's wrong?

   A34. Khoros does not behave well at all under dxwm (DecWindows).
	What usually happens is that the application in question needs 
	to pop up a warning message, error message, or other pop-up window;  
	but dxwm does not map the pop-up message for some reason.  
	So the application sits there and waits for you to acknowledge an 
	error message that never came up -- thus giving the impression that 
	nothing is happening.  Since we can't provide you with advice on how 
	to fix the problem, we recommend obtaining a copy of either twm 
	(Tab Window Manager) or mwm (Motif Window Manager) and using that 
	instead of dxwm.  DEC is phasing out dxwm and migrating to mwm.


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

  Q35.  I am setting up my *.cf configuration file in preparation for compiling
        Khoros.  How do I find out what libraries the linker expects in order 
	to link C code against FORTRAN, in order to provide the proper 
	libraries for the ForSysLibs option?

  A35.  You can find out what libraries the linker expects by compiling any
        available Fortran program with the [-v] option, and looking for the 
	libraries specified after a [-l] that are NOT used when compiling 
	C code.  Roque Donizete De Oliveria provides the example below, which 
	he used in getting Khoros to compile under Ultrix 4.2:

        % f77 -v machar.F
        /lib/cpp -DLANGUAGE_FORTRAN -DMIPSEL -Dunix -Dmips -Dhost_mips machar.F > machar.i
        /usr/lib/cmplrs/fort/decfort -o /tmp/forAAAa01710.o machar.i
        /usr/bin/cc -v /tmp/forAAAa01710.o -nocount -lUfor -lfor -lutil -li -lots -lm
        /usr/lib/cmplrs/cc/ld -G 8 -g0 -nocount /usr/lib/cmplrs/cc/crt0.o -count /tmp/forAAAa01710.o -nocount -lUfor -lfor -lutil -li -lots -lm -nocount -lc
        0.2u 1.7s 0:09 21% 84+285k 333+63io 17pf+0w

	In this case, therefore, you would specify in the ultrix.cf file:

	ForSysLibs: -lUfor -lfor -lutil -li -lots 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q36. When plotting raw ASCII data specified in XYZ format, does the data 
        have to be rectangular -- ie, does each row have to have the same 
	number of elements?  Is there anyway to plot 3D data that has a 
	varied number of points per row?

   A36. Currently, xprism3 does allow you to have unevenly spaced 
        points, but the number of points in each row must be the same in order
	to do a mesh, colormesh, surface, horizon, contour 2D or 3D plot.  You
	can do a 3D scatter plot with a varying number of points in each row:
	simply tell xprism3 that you have 1 long row of (total number) points. 
	To get an accurate plot in this situation, however, you are limited
	to scatter plots.
	
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q37. What does the "*" mean after a pixel value at the bottom of
        the editimage window?

   A37. This is an indication of whether the pixel was _actually_ allocated. 
	If a "*" is displayed, this means that the pixel being displayed has 
	really been mapped to its closest available neighbor.  On an 8-plane
	display, an application can only have up to 256 colors; this means that 
	the application and the image must share these colors.  So, if you
	display a byte image with 254 colors, you will only have 2 colors left
        for the user interface colors and special application displays.  For
        editimage, special colors like red, green, blue, white, black, yellow,
        cyan, magenta, and gray are used with the application display
        components such as LUT and PSEUDO.  But, you have only 2 colors left --
	what should be done?   What editimage does to deal with this problem
	is to allocate all the special colors and user interface colors first,
	to ensure that the user interface will not be corrupted; image colors 
	are allocated next.  When the image needs more colors than are 
	available, the xvdisplay library will find the closest available colors 
	from the previously allocated pixels;  thus, a particular pixel being
	displayed on the screen may actually represent 2 or more actual pixel
	values from the image data.  Thus, when you move the mouse around the 
	image, these special pixels have a "*" displayed to indicate this 
	situation where it occurs.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q38. Now that you have 24-bit image display capabilities, is there a way to
        load a 24-bit image, display it on an 8-bit display (using 3-3-2, or 7
        levels each of rgb), and allow LUT manipulations, histograms, etc, to 
	be done on the original values?  

   A38. Allowing such manipulations to be done on the original values of 24-bit 
	images would have many advantages. We would like to do this in the 
        future, as well as allow the manipulation of integer and short images.  
	As time permits, we will be adding these kind of capabilities in the 
	near and long term.  Our goal is to provide a merged display and 
	graphics library that is flexible and is easy for the user to build 
	new applications, and that handles this situation (among others) 
	automatically.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
   Q39. I am running animate on a DecStation 5000/200 PX or PXG.  Animate is 
	so slow that it is unusable.  Occasionally, it even seems to lock up 
	the display.  What is the problem?

   A39. There is only limited pixmap hardware memory available on the PX and
	PXG.  The default action of animate is to use a pixmap Use animate 
        with the [-pixmap false] option.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
   Q40. I would like to do 3D object modelling, with multiple light sources,
	animation, and so on.  Does Khoros do this?

   A40. No, sorry.  At this time, Khoros is geared more towards imaging than
	volume modelling or rendering.  We suggest you try AVS or Explorer for
	this types of work.  Both packages provide excellent object modelling 
	and rendering.  

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
   Q41. Is it possible to get only a subset of Khoros?  I realize that
	Khoros has a core of utillity routines that must be obtained, but
	I was hoping that one could pick and choose the routines one wanted
	on an as-needed basis.

   A41. No, sorry.  At this time, you must get the ENTIRE distribution to 
        begin with.  After you have the system, you may selectively delete
	programs that you are not interested in.  We do recommend that you
	be very careful when deleting libraries, as deleting a library that 
	existing routines link against may be fatal.  Making the distribution
	of Khoros more modular has high priority for Khoros 2.0;  we understand
	that it would be much more convenient to be able to acquire only those
	programs in which one is interested. 

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q42. Where did you get the name "Khoros"? Is it an acronym?

   A42. Khoros is not an acronym; rather, it is the greek word for
        "chorus". A definition of a "chorus" is: a company of
        singers or dancers who sing or dance in concert.
        We chose the name "Khoros" because we felt that it was symbolic
        of our objectives for our software system.  The "singers or dancers"
        are the many programs in the Khoros system;  our objective is to
        provide a group of programs that will, when used in concert,
        provide a harmonious environment for the the user.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q43. Is there a port of Khoros for a VMS system?

   A43. No.  The software depends heavily on system functions that are 
	unique to Unix-based operating systems.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q44. Can I run Khoros on my PC?

   A44. The three major requirements for Khoros are: X11R4, a UNIX-type
        operating system, and lots of space (min. 120-150 Meg).  Only if your 
	PC has these three prerequisites can you consider doing a port of 
        Khoros to your PC.  Successful ports of Khoros have been done for 
        the Mac II and various 386/486 machines that meet these requirements.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~


   Q45. I have finished writing my new program under Khoros, and now
	I would like to install it into a toolbox, and integrate it 
	into the cantata visual language.  How do I go about doing this?

   A45. First of all, you must create and install your toolbox.
	At the end of Chapter 1 ("Writing Programs") of Volume II of
        the Khoros Manuals ("The Khoros Programmer's Manual") is a 
        section on "The Use of Toolboxes"; this is required reading
	for those who wish to learn to use toolboxes. Also, there
	is an application called "kraftsman" that will help you
	create and manage your toolbox. Consult Volume II, Chapter 11
	of the Khoros Manual for more information.
	
	Next, you will want to modify the cantata UIS form in your toolbox 
	to include your new program(s). This also covered in Chapter 1 
	("Writing Programs") of the  Khoros Programmer's Manual, in the
	section entitled, "INTEGRATING THE NEW PROGRAM INTO CANTATA".
	
	Finally, you will want to make use of your new, modified cantata UIS 
	form instead of the original. using:

	% cantata -restore {toolbox name}/repos/cantata/cantata.form

	or by specifying this alternative cantata.form file in your
	.Xdefaults file, as in:

	cantata.Form: {toolbox name}/repos/cantata/cantata.form

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q46. I am compiling Khoros with MIT's X11R5.  When linking xvroutines 
        (cantata, editimage, etc), the compiler tells me that 
        _viewportWidgetClass is multiply defined.  What's the problem?

   A46. This problem is due to the fact that we have our own bugged fixed 
	versions of the Viewport widget.  We were hoping that R5 
	would have these fixes so that we could delete them, but unfortunately 
	this isn't the case.  Kim Tang provides these fixes to get around the
	problem:

      In $KHOROS_HOME/src/xvroutines/cantata/Viewport.c, change line 141 to:
      static WidgetClass viewportWidgetClass = (WidgetClass)&viewportClassRec;

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
 
   Q47. I am having problems using cantata (or other xvroutine)
	after recently compiling on a SUN with shared libraries.  I get the
        error message:
     Warning: Widget class VendorShell version mismatch (recompilation needed):
       widget 11004 vs. intrinsics 11003.
     Warning: Widget class Form version mismatch (recompilation needed):
       widget 11004 vs. intrinsics 11003.

  A47.  Your LD_LIBRARY_PATH environment variable that you use to compile 
        your object files with is different than your run time environment.

        To get a bit of information about what is going on, do:
        % ldd $KHOROS_HOME/bin/{problem program}

	If the path printed for Xaw and Xt is different than what is listed
	when you do:
	% printenv 
	then this is the problem.  To fix it, unset LD_LIBRARY_PATH or set it 
	to the correct path.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q48. Warpimage did not compile after on a SUN4 architecture with static 
	libraries;  in fact, it made the cc compiler segmentation fault and 
	core dump!  What happened?

   A48. The problem is that the Makefile that is created for warpimage has
        a line that is too long for ld to handle.  The solution is to edit
        the Makefile and delete these three lines:

              TIFFLIB = -ltiff
               DSPLLIB = -ldspl
         FILEFORMATLIB = -lformat

	This causes the cc line to be of a reasonable length, and warpimage
	will now compile properly.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

   Q49. We are trying to run cantata on an NCD Xterminal as the display, 
        and the program fails, exiting with the following error:

        X Error:  BadAlloc
          Request Major code 65 ()
          Request Minor code 0
          ResourceID 0x2400085
          Error Serial #1576
          Current Serial #1582
       Major X error encountered for display ':0'! Unable to recover.

   A49. You are probably running out of memory.  One solution is, of course,
        to inquire and install more memory.  However, you are especially likely
        to run out of memory if you have Backing Store and/or Save Unders on.  
        If you look at the system setup you can see how much remaining memory 
        remains before starting cantata or displaying images.  You should be 
        able to set whether you want backing store "on demand", "always", or 
        "off".  You may want to try setting it to "on demand" or "off".

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~

   Q50. I can not regenerate the Khoros manual on a Sun Workstation
        because soelim for .so lines in the roff files, limits the
        file length to 64 characters.

   A50. This is a bug and has been reported to Sun, but not expected
        to be fixed until the release after 4.1.2 (maybe). We are
        distributing a public domain version of the soelim program.
        If you think or know that your OS has this problem, then make
        sure you have the "SoeLim" symbol set to YES in your sun.cf file.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~

   Q51. Why do I get unresolved references when I compile Khoros with
        shared libraries on a SUN4.

   A51. If you are compiling on a SUN4 under 4.1.1 and have installed
        the loader (ld) program patch, or you are compiling on a SUN4 
        under 4.1.2 you must compile Khoros statically. Make sure
        you set HasSharedLibraries to NO in the sun.cf file.
   
        The ld program under 4.1.1 (with the patch) and under 4.1.2
        requires that all references in the libraries be resolved. So,
        this means that every Khoros routine will need to load against
        all the libraries. This is not reasonable for Khoros, and the
        size of the shared executables after loading against all the 
        libraries are not significantly smaller than if they were
        loaded statically.
        
        Also, see Q & A 19.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~
   
   Q52. I don't want to compile Khoros source, but I want to compile
        my own programs so I need the libraries. How can I obtain the
        Khoros libraries?
   
   A52. We distribute libraries for the SUN4, Decmips, and SGI via
        anonymous FTP:  
   
           USA:  	   	ftp pprg.eece.unm.edu  (129.24.24.10)		
	(University of 	Login:  anonymous  (or ftp)
            New Mexico)	Password: user_name@machine
   
        To obtain the libraies, cd to "pub/khoros/bin". You will find
        three sub-directories called libsun4, libdecmips and libsgi.
        In these sub-directories are the compressed tar files containing
        the libraries. Unpack the libraries the same way you would
        unpack the binaries. Consult the Khoros installation guide.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~

   Q53. Can you use C++ with Khoros?  How?

   A53. Klamer Schutte, of the Faculty of Electrical Engineering at the 
	University of Twente, The Netherlands, (klamer@mi.el.utwente.nl, 
	SMTP: klamer@utelmi01.el.utwente.nl) provides the following answer:

	I am doing this now on a regular basis with Sun C++ 2.1. I use composer 
	& ghostwriter to generate a main() with command line handling. The C++ 
	function does the real thing.

	One problem: Sun C++ 2.1 needs a C++ main, not a C main. So I have a

	#define        main    my_main

	as a #define in the ghostwriter-generated C main. 
	Also, I have a simple wrapper
	in C++ for the main function:

	extern "C" my_main(int argc, char *argv[]);

	main(int argc, char *argv[])
	{
            return my_main(argc,argv);
	}

	The library function also needs the extern "C" directive.

	Recently, I tried the same method with g++ 2.{1,2} and 
	it worked similarly.

    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~ ~ ~ ~

    Q54. Is there a tutorial describing how to create and install an xvroutine?

    Q55. Yes, the tutorial was created and provided by Carla Williams
         (carla@chama.eece.unm.edu).  Here is what she has to say:

	"For your edification and entertainment I have created a 'cook-book'
	 style tutorial that will take you through the steps required to
	 create a new vroutine (based on an existing one), test it in cantata,
	 install in a toolbox, and access via the main cantata menu.  
	 It is a supplement to Volume II the Khoros Programmer's Manual.

	 The tutorial is available for ftp in the contrib directory on pprg:
         ftp to  pprg.eece.unm.edu
         cd to  /pub/khoros/contrib

         You will find the two files:

         README.vroutine_tutorial
         vroutine_tutorial

         If you decide to try it out, please give me feed-back (both positive
         and negative!) as I plan to use it as part of a training course on 
         using Khoros.

         Enjoy!

         Carla Williams
         carla@chama.eece.unm.edu