[comp.unix.microport] Problems with 2.2

hsu@kampi.hut.fi (Heikki Suonsivu) (02/28/89)

This is a obsolete already but trying to reach uport via mail doesn't
seem to be too easy. Are these solved in current versions and is it
worth upgrading (I could use that money elsewhere).

--------------------------------------------------------------------------
--------------------------------------------------------------------------

Soon: Logi 386, cheapo clone with 4 M memory, though I'll
expand it as soon as possible, getting rid of Olivetti.

--------------------------------------------------------------------------

Hardware:
Olivetti M380/C
(the machine looks just like AT&T 386 machines in pictures and I guess
they are same). This is the smalles one of them, 3 half-height disk
slots.

No FPU

Memory:

- Olivetti hides 384K somewhere, it's called 'dedicated' memory in
memory test, probably its 'lazy hardware designer'?

- Either 640 base, 1024 extended,

- or 640 base, 3072 extended,

- or 640 base, 7168 extended (currently).

- Disk drives
  disk 0 Miniscribe 6085, 8 head 1024 cyl.
  disk 1 Seagate 4096, 9 head 1024 cyl.

Keyboard:
PS/2, AT/E etc style, 101 keys (I guess but didn't count :-).

Display:
Olivetti EGA. Source of many problems under msdos also!

- MicroPort 386 unix, 2.2, full, dosmerge beta release 0.2 unlimited.

----------------------------------------------------------------------------

All games which try to detect machine speed work too fast.
Serial communication programs dont work under dosmerge.

No programs with using 320*200 graphics work on olivetti EGA. Display
comes out as C> is big letters (about double size) in the middle of
the screen, and text after that wraps over screen borders and goes
everywhere.  640 * 200 works. Can't play games, help! :-)
--- later: CGA programs work if one uses +aega, but then screen is not
restored to correct mode when changing the window.

----------------------------------------------------------------------------
----------------------------------------------------------------------------

Keyboard hangups don't appear when using non-merge kernel. All three
keyboards I have tried so far have this hangup problem.

----------------------------------------------------------------------------

WD1006 controller doesn't work too well with microport, looks like hd
driver bug, as driver goes in forever-loop when it gets disk error.
Apparently wd1006 returns different error code than wd1003 and driver
goes nuts. Also, installation scripts don't seem to support 1:1
controllers so I had to hack a little bit. Things are ok as far as all
bad blocks are listed, though finding out marginal blocks is not easy
as no message comes outa hd when it hangs.

----------------------------------------------------------------------------

Hard disk performance seems to be very bad.

----------------------------------------------------------------------------
x(buffer)
	char *buffer
{
...
}

When going through x with sdb:

*buffer/s
0x7fffefb8
*buffer/ls
0x7fffefb8
*buffer/as
<some trash characters>

One of those should display characters in buffer?

But if I use address directly, then I get what I want. Why?  I can be
using wrong command but sometimes it works with buffer/s, in same
situation and procedure, during same debug session.

*0x7fffefb8/as
Blaa blaa
*


----------------------------------------------------------------------------

Console(7) manual page asks me to refer to Display(7) but I can't
find that anywhere. I want to know how to reset console, as now I
know no other way than rebooting, which is a bit annoying.

---

Looks like its not resetting scrolling regions?  Almost all vt100
initializations I have seen set 24 line scrolling region even though
it doesn't make much sense. Seems to be berkeley termcap.

----------------------------------------------------------------------------

If opening more than 16 (or whatever is the maximum) stdio files,
fopen return NULL but errno is not set. It should be EMFILE I suppose?
Maybe this has something to do with notice in manuals that one can open
up to 100 files default but stdio is still limited to 20?

----------------------------------------------------------------------------

long uucp transfer via direct line stops randomly. HDB doesnt seem to
pay too much attention to lock files, sometimes it cuts the transfer even
if there is lock file with correct process id in it and correct owner.

----------------------------------------------------------------------------

Installing hard disk which has a bad sector 27 is painfull but I did
it! Installation routines could check if sector is really used and
then complain, sector 27 was unused in my configuration so I ignored
error message and did further steps manually. I hope I didnt make
anything dangerous.

----------------------------------------------------------------------------

Up from here, two hard disks, added Seagate 4096.

----------------------------------------------------------------------------

Com1 assigned as virtual port dont work with any communications
software I have access to. Direct connect works with Opuscomm (If you
know FidoNet you probably know what it is, a serial int 14 handler)
and BinkleyTerm 1.00. Kermit 2.30 comes up but gives divide error when
trying to go into connect state. Seadog mailer exits with message
FREE, of which documentation doesn't tell anything so I don't know
what it means. Binkleyterm 1.50 doesn't work.

----------------------------------------------------------------------------

Ctrl-break doesn't work always too well, programs which correctly stop
under a mess dos, don't stop under dosmerge. Its not break on/off!

----------------------------------------------------------------------------

Microsoft codeview refuses to beleive that dosmerge is ibm-compatible,
starting in sequential text mode, no matter what parameters I give it.

----------------------------------------------------------------------------

Under dosmerge, ctrl key sometimes 'gets stuck', when entering dos
window from some other window. I have noticed this same problem with
fansi-console under a mess dos. Problems goes away via hitting ctrl
key once.  Probably happens with alt and shift also.

----------------------------------------------------------------------------

In this machine, lp1 turned out to be the correct printer, not lp0
like I expected (as it's the first printer?). lp0 and lp2 give
I/O error when accessed. I have only one parallel port. I read explanation
about this in usenet but it would be nice to have it like a mess dos.

----------------------------------------------------------------------------

AD/DA board using DMA (Data Translation DT2801) doesn't work under
dosmerge, when all options are correctly set according to manual.
Could there be some kind of error message when program tries to access
ports/memory which it is not allowed to access, disappering unix
window or hangup doesn't really be helpful when trying to find out
what is configured wrong or did my program have a bug in it.

----------------------------------------------------------------------------

Printing graphics doesn't work when using unix spooler, it seems that
nulls disappear (maybe something else too).  Havent tried printing
directly yet, but I would like to be able to use spooler as graphics
printouts are usually long. Spool files still have the nulls so its
maybe /dev/lp which strips them away.

----------------------------------------------------------------------------

All floating point seems to be 2-3 times slower than same program
running in dosmerge compiled using microsoft c 4.0.
  
----------------------------------------------------------------------------

/bin/sh has a bug causing sh or programs running in it coredump or exit
with some random exit level, or going to infinite loops outputting
random stuff. Problems disappear when using ksh.

----------------------------------------------------------------------------

Dossrv consumes often more cpu than actual dos process if run as
well-behaved process. and output is slow? MSC 4.0 linker seems to make
dossrv really slow.

----------------------------------------------------------------------------

ansi.sys coming with the system blinks the display. When using
fansi-console causes colors to be messed up (not all of them) and text
doesn't come out in 640*200 graphics mode. Fansi version 2.0.

----------------------------------------------------------------------------

When I start a dos in cons3, and then come back to unix via doskey or
alt-fkey, and try to go back to dos window again, I have to go through
other virtual consoles before I get there. Could dos processes
be mapped to function keys (or any keys available?).

----------------------------------------------------------------------------

Running dos programs with +p causes quite a lot of overhead, could it
be possible to take a snapshot of a dos environment with some dos
environ variables set or export unix variables to dos environment,
mostly TMP, TEMP is what I want as I have /tmp as a ramdisk.

----------------------------------------------------------------------------

Dos autoexec.bats have echo on? It would be nicer to have it off default,
maybe I have to try find a patch for command.com. I looked at temp files
in /tmp and there was echo on in those files?

------------------------------------------------------------------------------

ramd module not included, here is hacked up 286 version for 386.
Compilation went from >17 to ~13 minutes. 

Source follows... (removed comments to keep it short)

#include <sys/signal.h>
#include <sys/types.h>
#include <sys/sysmacros.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/buf.h>
#include <sys/iobuf.h>
#include <sys/conf.h>
#include <sys/dir.h>
#include <sys/user.h>
#include <sys/utsname.h>
#include <sys/elog.h>
#include <sys/erec.h>
#include <sys/errno.h>
#include <sys/trap.h>
#include <sys/immu.h>
#include <sys/seg.h>
#include <sys/map.h>

#define DISKSIZE 1024
char ramdisk_buffer[DISKSIZE * 1024]; /* Ramdisk buffer */
long amount;		/* how many bytes we use */

rdopen(dev,flag)
int dev,flag;
{
amount = DISKSIZE * 1024;
}

rdclose(dev)
int dev;
{
}

rdstrategy(bp)
register struct buf *bp;
{
int x;
char *trp; /* Physical address to buffer */

if (bp->b_blkno * 512L + bp->b_bcount > amount) {
   bp->b_flags |= B_ERROR;
   bp->b_error |= ENXIO;
   bp->b_resid = bp->b_bcount;
   iodone(bp);
   return;
}

trp = ramdisk_buffer + bp->b_blkno * 512L;

if (bp->b_flags & B_READ) 
   bcopy(trp,bp->b_un.b_addr,bp->b_bcount); 
else
   bcopy(bp->b_un.b_addr,trp,bp->b_bcount); 

bp->b_resid = 0;
iodone(bp);
return;

}


One meg seems to be adequate for my use.

------------------------------------------------------------------------------

Up from here: Now 8 M of memory.

------------------------------------------------------------------------------

ctrl-alt-del doesn't always kill dos window on the first try, though
it throws me into another window. Happens rarely and probably after
dos program messing up its memory.

------------------------------------------------------------------------------

Dosmerge: When in 640 * 200 graphics mode, screen scrolling doesn't
work correctly, upper half is scrolled but in a funny way, and new lines
always come on bottom line overwriting previous one. This doesn't seem
to happen always. Might have something to do with ansi.sys.

------------------------------------------------------------------------------

In sdb, var$m is a bit slow? Maybe I'm demanding too much? 9 hours to
get to first menu...

------------------------------------------------------------------------------

Corrupted dos programs, and not corrupted but incompatible with
dosmerge can totally kill the machine.  Sometimes dos process just
dies, sometimes the whole computer hangs up.

------------------------------------------------------------------------------

When a dos task is running on the background, directory access, like ls,
always reads something from the disk?

------------------------------------------------------------------------------

Got ptys driver linked in kernel, original sysv pty driver seemed to need too
much fiddling as it uses two drivers so I took unixpc pty driver (port
of original) and compiled it, I just had to add region.h and immu.h to
be included. 

------------------------------------------------------------------------------

Dos tasks seem to eat cpu all the time, even when sitting at dos
prompt?  Ok, this is a bit difficult... (could there be an option,
really compatible or not so compatible but almost ;-). Even some kind
of 'sleep' command for dos could help as booting dos window is slow.

------------------------------------------------------------------------------

ps without any parameters in a shell layer doesn't show anything even
if there is processes going on.

------------------------------------------------------------------------------

-g and -p in compiler cannot be used together. I need to compile
everything again to switch.

------------------------------------------------------------------------------

microsoft masm 3.0 fails to work under dosmerge as well-behaving
program. Running it from make with -b also fails, producing strange
processes on the background. Works in dos window.

------------------------------------------------------------------------------

Tail and sar seem to eat cpu all the time.

------------------------------------------------------------------------------

Following was produced during installation:

Making EGA Image.
fdintr: unexpected irq - state = 0
fdintr: unexpected irq - state = 0
fdintr: unexpected irq - state = 0
fdintr: unexpected irq - state = 0
fdintr: unexpected irq - state = 0
fdintr: unexpected irq - state = 0
fdintr: unexpected irq - state = 0
Making CGA Image.
Making MDA Image.

DOS installation complete

- 04/13/88 uninstalled and reinstalled dosmerge ----------------------------
----------------------------------------------------------------------------

compilation in emacs, bug in /bin/sh:

.h"







#ident"@(#)setjmp.h	1.4"


.h"

... same stuff repeated many times ...


.h"







#ident"@(




typedef int jmp_buf[6];

extern int setjmp();
extern void longjmp();


Fatal error in /lib/cpp
Status 0213
*** Error code -117
`all' not remade because of errors

Compilation finished at Wed Apr 13 08:34:45

and after that:

cd /usr/hsu/o/
make -k all
Checking for libraries needing make!
	cd ../f ; make -q all
sh: 1773 Memory fault - core dumped
*** Error code -117
	cc -g -c sc.c
Fatal error in /lib/cpp
Status 0213
*** Error code -117
`all' not remade because of errors

Compilation finished at Wed Apr 13 08:48:35

------------------------------------------------------------------------------
This appears often when system in loaded.

UID  PID PPID C STIME TTY TIME COMMAND
root 0   0    0 Apr 10     ?   1:02 sched
ps: l_lseek() error on lseek, Invalid argument

Later: Very rare after I got 8 M of memory.

------------------------------------------------------------------------------

I get quite often 'arg list too long' from many programs, nm and cp at
least. Directories I accessed aren't that big, usually something like
two screenfulls of names with ls -Fs. It might be the shell which
gives the message, it reads "sh: /bin/cp: arg list too long" This
appears usually if I use full pathnames like /usr/lib/xobjs/* xx.  I
find this kind of things strange on virtual memory machines with 4
gigabyte address space :-)

------------------------------------------------------------------------------

Timing disk copies etc: cp /usr/local/emacs /dev/null in miniframe 15
seconds and in 386 30 seconds. Disk is really the bottleneck. Both have 28 ms
disk with same capacity, miniframe is 10MHz 68010. Loading both computers
up with compilations makes difference even worse. 

------------------------------------------------------------------------------

'nroff -man < xx.n | more' produces same funny results? Lines are not
correctly aligned, strange blanks in some places, lines suddenly
starting in column 1 instead of correct column. It seems to be a
problem in more.

------------------------------------------------------------------------------

Man command doesn't call any pager, it just prints everything out. There is
a working and free version available though.

------------------------------------------------------------------------------

Printing procedure return values doesn't seem to produce anything but
zero results?

------------------------------------------------------------------------------
------------------------------------------------------------------------------
Following was in the list sent to uport 04/11/88. Didn't receive
any answer.

------------------------------------------------------------------------------

Key labels:

esc function keys           printscr scrolllock pause

     `1234567890-= bs       ins home pgup    numlock + * -
tab  qwertyuiop[] ret       del end  pgdn          7 8 9 +
caps asdfghjkl;'\                                  4 5 6
lsft \zxcvbnm,./ rsft           up                 1 2 3 enter
ctr alt space alt ctr      left down right         0   ,

But this is what I really get from keys:

esc function keys           * nothing nothing
    just like * on num pad -'       

     `1234567890-= bs       ins home pgup    numlock / * [S
tab  qwertyuiop[] ret       del end  pgdn          7 8 9 [T
caps asdfghjkl;'\                                  4 5 6
lsft  zxcvbnm,./ rsft           up                 1 2 3 enter
ctr alt space alt ctr      left down right         0   ,

     `- note \ key here doesn't do anything

                             `- these are reversed  -'
                                initially (num lock)

Default Switch screen key cannot be found anywhere.

------------------------------------------------------------------------------

Compiling emacs 18.52: -O blows things up.

----------------------------------------------------------------------------

Swapping kill computer quite efficiently. One compilation in 1.6M machine
is enough to make it untolerable. And CT miniframe with 2 M runs circles
around 1.6M 386 when 2 compilations run on both. I can even use emacs..

---------------------------------------------------------------------------- 

Dosmerge manual refers to doskey command, and tells me to look at
advanced merge users manual or something like that. The problem is
that no such manual was supplied to me! Advanced part was the only one
missing, other parts seem to be there? Is it an pay-more, no-yet-ready
or did I get monday-morning-package? 

------------------------------------------------------------------------------

Probably adding ^Z in files when converting them to dos format is
usually unnecessary and causes trouble when I have dos files file1 and
file2, both converted from unix using unix2dos, and execute dos command

type file1 >> file2

Dos leaves that bloody ^Z in file2 and result is that file2 still
looks like what it was originally as type and uemacs etc stop reading
to that first ^Z in the middle of the file. Removing ^Z from there is
painful, if one has no utility to do it, as dos hasn't got one (except
debug).

dostounix follows

: use /bin/sh

set -- `getopt hv $*`

if [ $? != 0 ]
then
  exit 2
fi

VERBOSE=false

while getopts hv c
do
  case $c in
  h)	
    echo "Convert files from dos format to unix" >&2
    echo "-h gives this help message," >&2
    echo "-v goes to verbose mode" >&2
    exit 0 ;;
  v)
    VERBOSE=yes ;;
  \?)
    echo "Usage: dostounix [-h] [-v] file[s]" >&2
    exit 2 ;;
  esac
done

shift `expr $OPTIND - 1`

# Process files

if [ $# -eq 0 ] 
then
  if [ $VERBOSE = yes ]
  then
    echo Processing stdin to stdout >&2
  fi
  dos2unix
  exit $?
else
  for i in $* 
  do
    if [ $VERBOSE = yes ]
    then
      echo Processing file $i >&2
    fi

    DIR=`dirname $i`
    TEMPFILE=$DIR/dtou$$$$
    
    dos2unix < $i > $TEMPFILE && {
      ln $TEMPFILE $i
      rm $TEMPFILE
    }
    if [ -f $TEMPFILE ]
    then
      echo Processing file $i failed. >&2
      exit 3
    fi
  done
fi

exit 0

----------------------------------------------------------------------------

Uucp documentation? Manual pages tell me nothing usefull, and there is
no info about uucp files except the comments in the some files themselves,
specially no info about Permissions file format exists. V/AT had better 
documentation (not too complete either) but HDB seems to be quite a bit
different? There should be some help for troubleshooting also.

----------------------------------------------------------------------------

sysadm uucp management gives something like
expr: syntax error
modifyport: test: argument expected

when trying to modify port tty00 to be bidirectional instead of being
outgoing. Seems to be better to do everything manully just like
before, that works.

----------------------------------------------------------------------------

Lint2 complains about too many names defined when linting a C program,
in which 4 libraries are includeded, curses and three my own.  Size of
names table could be dynamic or at least a parameter (or probably it
is but I don't know how to make it bigger, manual says nothing about
this). This is BIG problem for me as I use lint often.  Program isn't
really big (stripped exe is < 400k). Trying to lint
modules without making lint libraries of them doesn't help.

Later: I'm getting anry about this, table size seems to be bad joke
here, as most of my programs fill up lint tables. 

----------------------------------------------------------------------------

terminfo for AT386 doesn't work at all.

----------------------------------------------------------------------------

Runtime system manual says I should have got 'Microport System V Made
Easy' but I didn't get one?

----------------------------------------------------------------------------
----------------------------------------------------------------------------
Hardware: Olivetti M28 Memory:

- 640 base, 2432 extended. 3072 total.

Keyboard:
PS/2, AT/E etc style, 101 keys.

Display:
Olivetti EGA

Roms:
2.12

- Microport V/AT 2.2.2 kernel, full, two user licence. dosmerge 286 beta.

----------------------------------------------------------------------------

- Doesn't boot from floppy (and probably hard disk but couldn't
install) at all! Screen 'jumps' after boot just like 386 version but
after that, nothing happens. Tried on one other clone I had borrowed
and it worked so it can't be bad floppies, but haven't got that
machine any more and would like to get it in the M28? Have you any
hints about it, Olivetti doesn't seem to be interested about it (I'm
not a big customer and they want to sell me xenix because it supports
scandinavian charaters which I don't use :-).

- Had number of double panics with bad serial driver, which apparently
is known problem.

- Some compiler bugs probably already fixed (mentioned in
comp.unix.microport).

----------------------------------------------------------------------------
----------------------------------------------------------------------------
What I would like to get: -

- Manual pages?

- Not your fault but V3 manuals seem to be more paper, less information.
Writing device drivers guide is quite essential and is missing, was included
with V/AT but there seems to be some differences?

- I would like to get updates for dosmerge. My both versions are beta (and
I can see it :-)

- How to get 43-line ega mode working? 

- Number of virtual consoles is low, 4 is too little for me, I like to
run several programs in their own windows, specially because emacs takes
long time to load (even swapping it back is painfully slow).

- X? Where and what price?

- Update (contract?) prices?

-
hsu@fingate.BITNET  ..!mcvax!santra!hsu  Heikki Suonsivu @ 2:504/1 2:504/7
hsu@santra.hut.fi hsu@kampi.hut.fi  Kuutamokatu 5 A 7/02210 Espoo/FINLAND
voice +358-0-171377 fax -628948 v22bis -171558  rfmail, fidonet for unix, free.