So, this is third version of Spice3f5 for RedHat Linux 2.6. I took re-ported version of spice3f5 and made changes to fix some bugs. If someone want to help, please send me "newer" versions wtih more bugs fixed. I hope that those who wnat to have good spice under Linux (no more Win95) will find this port useful and maybe help each other to improve it. There was a lot of bugs in previus versions, generally in command parsiong routines. I copy all original files to *.orig and marked all my changes with /* MW. ... */ I changed cp/bquote.c and cp/var2.c to handle some special situations and commands like $foo, `foo`. Also problems with 'gets()' (in sconvert and inp.c) function are fixed. I chnaget it to fgets(buf, BSIZE_SP, stdin) for safe use. Globing ('[]{}?*') didn't work at all. Now it is removed (form cp/glob.c). We don't need this features in spice. Initial command parsing (cp_lexer() from cp/lexical.c) strip all commas from strings. This was in conflict with aritchetic expressions. com_let() in fte/postcoms.c caused core dump in some situations - fixed. Editor problems. Com_edit() in fte/inp.c failed occasionally, when it tryies to fclose() fp second time. Now inp_spsource() always closes fp, and other calling functions do not. It seems to work right now. vec_get() (fte/vectors.c) has some problems with devices parameters and memory leaks. I hope that my changes fixed it at all. I have to add INPinsertNofree() in inp/inpsymt.c. This is special case for routines from fte/spiceif.c and fte/outitf.c - It does not do free() for any pointers that it gets. This may cause small memory leaks, but I don't know how to make it better. com_alter_common() (fte/device.c) caused segmentation faults ocassionally, due to double free the same pointers. It works right now. cp_lexer() corretly gets ^V, ^D, and ESC. I have to #include ioctl.h file in cp/lexical.c and cp/complete.c There were problem with com_iplot() if it was called when X11 does not run. I have to add additonal check to gr_pmsg() (from fte/graph.c) and now it works fine. Trace failed to display comlex data due to segmentation fault. Someone wants to plot realdata even if given vector was complex. I changed gr_iplot() (in fte/graf.c) and now it is fine. There are some changes in os_linux.h and os_unix.h, but they are not mandatory, I think. Also I have to add PI, and some other const. declarations in spice.h They were needed somewhere. (why someone didn't used M_PI and so on instead ?) In file fte/x11.c, was a prloblem with background color for plot windows. I changed init_colors() and now we can use color0 variable. Spice3f5 has a few memory leaks. I suppose that some vectors and maybe other things are simple 'lost' somewhere. If you (just like me) trying to make this program better, take care about this also. Generally I didn't do much with graphisc interface, because it seems to work quite good. Only problem is core dump, when cliking mouse on help screen. Manuals are sometimes in error. Vector creation by [ el. el. ...] is not supported I think. For indexing we must use [low , hi]. For setting 'list' variables - ( el. el. ... ). Indexing also doesn't work with let xx[...] = yy. Someone should change these f... manuals. And now for those who think about makeing this program better. There is a big problem with memory, when you run a few simulations. Destroy commad does not free much memory, and after some time you can see that spice uses 3MB, when you just clean all vectros. Also I don't know how to unload a circuit - spice hold all sourced files in the "deck" list and there is no way to free it from command line (or maybe I didn't find any). Unfortunatelly I am sure that these are not all off the problems with this program, but now I can use it quite effectively. If anyone will know anything about bugs-free, good, commannd driven simulator for Linux __PLEASE__ let me know. For easer use I made special debug file (conf/debug). I used it for makeing "debug" version of spice with efence library and -g option. Executable files from this are located in spice3f5/objdbg/bin, when you do 'util/build linux debug'. I am an electronic designer, so I really need a good working simulator... Original readme file is given below. Michael Widlok (widlok@uci.agh.edu.pl) Uniersity of Mining and Metallurgy Krakow, Poland. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is my (re-)port of Spice3f4 to Linux version 2 (I am not the same person who ported it before). It also wraps in the latest official pre-3f5 patches from Berkeley I could find (found in sp3f4.patch.tar.Z). Support for the MFB interface using the Linux termcap library and some various Linux features have been ported. This was not done for the hell of it, but it seemed that something broke due to some Linux/system/library changes, so I decided to try porting it from scratch. In fact, if you don't have any problems with the previous port, your probably fine then. However, if you do have problems (e.g. exiting Spice leaves you in uppercase mode), or want MFB for some reason, then try this. It seems to work here. Basically, I started out with sp3f4.kit.tar.Z. Then, I applied the most recent patches contained in sp3f4.patch.tar.Z and wrote new Linux build files: "linux" and "os_linux.h" (some minor mods to the source were also necessary, protected with linux conditionals). Since the previous spice3f4.tar.gz port file was generally available, there was no point in duplicating source, so I just diffed from the spice3f4.tar.gz tree to freshly ported tree and edited or removed a few of the diffs. A few of the changes made in spice3f4.tar.gz have been reverted to the distribution defaults, but one notable change is that performing the install step will install the necessary files into /usr/local/spice. You'll need to add /usr/local/spice/bin to your shell path. See the file conf/linux to change the installation location (this location gets hard-coded in the spice binaries). This is a patched file of the original readme.Linux from spice3f4.tar.gz, and the previous contents by Jeff@EE.Ryerson.Ca is given below. Just follow the below instructions, so you should be able to safely do: ./util/build linux ./util/build linux install You should then find the spice binaries and library files in e.g. /usr/local/spice. Example files and the man pages are not installed, so you might want to copy them by hand. Andrew Veliath (veliaa@rpi.edu) January 25, 1997 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is my port of Spice3f4 to Linux. It required a few more changes than the porting document indicated would be necessary, mostly to do with supported/unsupported functions in Linux libc & libm. I've tried to make these changes in as as portable a way as possible, so it should build cleanly on other Unicies, however I've removed the MS-DOS support so the tarred and gziped source fits on one disk. To build spice3, first have a look in the file readme, but you should be able to just do... ./util/build linux ./util/build install linux Note that there is a modifyer "gcc" you can try if you have trouble, but it claims to work around some obscure bug in gcc that I'm positive got fixed eons ago. To use it anyway, do ./util/build linux gcc. I found this source through archie, (look for spice3f3.tar.Z, and then patched it to 3f4 with patches from ic.berkeley.edu), I assume that the ftp site I got it from has read thier license from Berkeley, which if it's the same as the 3e2 license states that the holder can distribute copies free of charge provided it does not fall into hands unfriendly to the U.S. So... I guess if that's you, please destroy all copies of this you might have! Jeff@EE.Ryerson.Ca