• Please review our updated Terms and Rules here

My latest Xenix build

My MFM drive suddenly works now, got to love old hardware. Swapped it to another slot again and now it works.

I'm installing Zenix 86 as I type this.
 
Just installed the V30 and 8087. The bits are just flying though the Deskpro's copper and silicon veins.

If you need any help with the dev sys installation, let me know. I hope the install went without too many hassles.
 
Just installed the V30 and 8087. The bits are just flying though the Deskpro's copper and silicon veins.

If you need any help with the dev sys installation, let me know. I hope the install went without too many hassles.

The install failed .......

After the partitions are created and the system says something about creating filesystem, it then displays "no room on 2/4" three times.

Then it displays : " divvy: mount on /mnt failed: Structure needs cleaning
Cannot set up new /dev directory on new device"
I tried the default with the partitioner and played around with the size of the root swap and recover partitions and with the " overwrite" option with no luck.

Default config.
IMG_1129.jpg
Errors out
IMG_1130.jpg
 
Last edited:
I think I kind of ran into this problem after a few failed installations attempts. Try re-writing the N1 and N2 floppy images from the source image and start again. It looks like you are installing on the 20 Mb MFM drive, correct? Did you do the full track scan?

Dave...
 
I am running the 20 mb drive, did a full scan....took a while tho lol. I'll try rewriting the disks and then try that.
 
I am running the 20 mb drive, did a full scan....took a while tho lol. I'll try rewriting the disks and then try that.

I hope that works. My install failed on my original hard drive, and I think it left the floppy uncleanly unmounted so it failed the next install attempt. Good luck...
 
Broke out the new and never used 360k floppy's and making some new discs to try another Xenix 86 install attempt.

EDIT: Well its looking better since it did not error out making the file system like EVERY other time. LOL

EDIT 2 : It booted off the hard drive now, i'm continuing the install.

EDIT 3: Still installing, so far so good.


It WORKS !!
IMG_1131.jpg


The first thing I did was make a MSDOS 6.22 360k boot disk with just fdisk and format so I could wipe out the previous hosed Xenix install then create a msdos partition so I could start fresh then made some Xenix install disk with new 360k floppy's.

And that did the trick.
 
Last edited:
I was able to copy all the developer system floppy images to the deskpro and cat them to create the D1.rar , D2.rar ect. I unrared all four and when I run the scripts in the /tmp directory it asks for the serial number then activation key then it errors out.

Error: "./tmp/xds.ser: cannot create"

I am not out of room as I have about 20000 blocks free.

So i'm stuck.

I copied everything in the /tmp directory to a /bu folder to save everything before I did a shutdown.
 
I was able to copy all the developer system floppy images to the deskpro and cat them to create the D1.rar , D2.rar ect. I unrared all four and when I run the scripts in the /tmp directory it asks for the serial number then activation key then it errors out.

Error: "./tmp/xds.ser: cannot create"

I am not out of room as I have about 20000 blocks free.

So i'm stuck.

I copied everything in the /tmp directory to a /bu folder to save everything before I did a shutdown.

First, make sure all the files are in their place. Check for a populated /usr/include and things like /bin/cc. If that all looks good, move the files you saved back into /tmp. If memory serves (and it rarely does anymore), run the scripts from root, i.e."cd /; /tmp/script1". There may be some script dependencies on the current directory being at the top. I used the serial # and activation code from the _Readme.txt file. Hope that works,

Dave...
 
THANKS!! that did the trick.

Next is to configure the higher res mode and faster cpu speed, kind of tired setting the turbo speed as it boots up.

Oh by the way I have only a few months of HTML programming experience about 15 years ago, I'm more of a hardware guy and user and about the last time I really messed with Xenix was in the mid 90's on a 286.
 
Then, I wanted to fix some of the issues I had with the DeskPro hardware. First, the turbo mode on my machine switches off during boot, so I have to remeber to set it with the keyboard sequence at the 'boot:' prompt. If I forget, I have to reboot. Second, the Xenix console driver sets the CGA mode using default values, turning off the hires MDA style characters the Compaq VDU is capable of. So I needed to write a program to set the turbo mode and put the VDU in hires character mode. To do so requires I/O instructions. Normally Xenix running in a protected mode environment won't allow this, but the 8086 doesn't have a protected mode, so we can use in/out instructions in our code.

With the 286 development system I installed, the Microsoft C compiler works fine on the 8086. However, the Microsoft assembler, masm, must have 286 instructions as it returns "Syntax Error" on every line. I just couldn't get it to work. The C compiler has no intrinsic inp/outp routines like the later DOS versions do, so I needed to get an assembly file that implements the inp/outp routines assembled and linked with the C code. To get around this, I compiled a dummy C file that had empty inp/outp routines, but had it output the assembly listing. I copied this assembly file to a DOS floppy, edited it for functionality and assembled it with the DOS version of MASM 5.1. The /Mu flag is needed to retain the case of the public routines. Copying the resultant object back to Xenix, it linked in just fine with the C compiler. The C code to set the DeskPro I/O ports:
Code:
#include <stdio.h>

int inportb();

char *mode[2] = {"Off", "On"};
unsigned char vreg[] = {0x61 ,0x50, 0x52, 0x0F, 0x19, 0x06, 0x19, 0x19, 0x02, 0x0D, 0x0B, 0x0C};
int main(argc, argv)
int argc;
char **argv;
{
	int r;

	/*
	 * Set DeskPro Turbo mode.
	 */
	outportb(0xCF, 1);
	printf("Turbo mode = %s\n", mode[inportb(0x62) & 1]);
	/*
	 * Set DeskPro Hi-Res character set.
	 */
	for (r = 9; r < 12; r++) {
	outportb(0x3D4, r); outportb(0x3D5, vreg[r]);
	}
	return 0;
}

Compile with 'cc deskpro.c portio.o'. You can download portio.o here: http://schmenk.is-a-geek.com/tarfiles/portio.o.

I don't expect too many people to embark on a similar odyssey. But, at least it's possible.

Dave...



Tried this and it errors out with "fatal error 13: cannot open 'deskpro.c'"


Oh and I just started to read "sco_xenix_sysv286_programmers_guide.pdf " its for version 2.2 dated 1987.
 
Last edited:
Tried this and it errors out with "fatal error 13: cannot open 'deskpro.c'"


Oh and I just started to read "sco_xenix_sysv286_programmers_guide.pdf " its for version 2.2 dated 1987.

You will have to either type in the code above into vi or cut-and-paste, then sneaker-net it to the Xenix machine. Either way, save the source to the file name "deskpro.c". For the portio.o file, you can either download the object file and sneaker-net it, or type in the assemble source from a few pages back and assemble it with "asx portio.s". Once you have those two things, you can build the executable with "cc deskpro.c portio.o -o deskpro". That will build the binary file called "deskpro". I put mine in /usr/bin and call it during the initialization sequence in the /etc/rc script like so:

Code:
# Set DeskPro specific features.
/usr/bin/deskpro

If you can find a copy of the original K&R C book, that will help out as well. tenox sure has a nice collection of manuals to peruse. I put them on the iPad sitting next to my Deskpro.

Dave...
 
Last edited:
Thanks to resman It works!!

IMG_1143.jpg

I HATE vi
I ended up copying the /etc/rc file to a floppy then copying it to my win 98 diskmaking pc then copied the rc file over to a debian pc via my lan and then editing it with Leafpad. Oh did I mention that I HATE vi?

I forgot how much I hate that program....

Before I edited the rc file I executed the "deskpro" binary and it worked great so I edited the rc file to let it start up on boot.
 
Thanks to resman It works!!

View attachment 26951
Oh did I mention that I HATE vi?

I forgot how much I hate that program....
Any Xenix/Unix hack is doing themselves a disservice if the don't learn vi and ed. I haven't used it on a daily basis for years yet I still remember it. All you need are a few basic move/edit commands for vi and you're golden.

w - move forward a word
b - move backward a word
l - move forward a character
h - move backward a character
j - move down a line
k - move up a line
i - insert at cursor
ESC to end insert
x - delete character
dZ (where Z is one of the movement characters above) deletes the way you tell it to. (e.g. dw will delete a word).

Knowing those few commands you could have logged in from putty/telnet, opened a file with vi, started insert mode, copied from windows, paste and the entire file would be there.
 
It's true that knowing vi can save a great deal of hassle. The really good news is that it is an option for Xenix. Many of the contemporary unices and clones for the XT didn't have vi (or any of the BSD goodness). We should thank someone at Microsoft for supporting the XT in 1986 and keeping a majority of the tools as 8086 code (except for whoever compiled MASM with 286 instructions). It feels surprisingly modern considering it's 30 years old.

With that said, here is the "showpbm" (Show Portable BitMap) project so you can amaze your friends with the graphics prowess of your DeskPro. I've bundled it as a tar file you can download: http://schmenk.is-a-geek.com/tarfiles/pbm.tar

Un-tar on your Xenix machine, cd into pbm and run as: "./showpbm deskpro.pbm" for the selfie. Or use the portable.pbm image for the other Compaq picture. Note, this version of showpbm resets the video mode for the DeskPro's VDU with hires characters. It will freak out a normal CGA board. I've included the source for anyone wanting to build their own. Exit showpbm by pressing the 'RETURN' key.

If you want to compile your own version of showpbm, build the binary with: "cc -M0e -O showpbm.c lores.c portio.o -o showpbm". Now, the unique and powerful feature of Xenix is the ability to build DOS programs, too. For a DOS version of showpbm, you would enter: "cc -dos -Me0 -O showpbm.c lores.c port.o -o showpbm.exe". Pretty cool, huh? A little known fact: many Microsoft DOS programs were built under Xenix. Indeed, the Xenix developers hated that DOS used "\" as a path separator and "/" as a switch prefix so they added a config.sys option to make it look like Xenix with the "SWITCHAR=-" setting. I think this disappeared after version 3 of DOS. I remember using this back in the mid '80's on my XT clone because I was using the Dual VAX 11/780 running BSD for class assignments at Purdue. No need to complicate things between systems.

Dave...
 
Last edited:
I could not save my edited rc file. After hitting the escape key it would go back to insert mode after hitting only one key. Very frustrating at midnight and I have to be up at 5:00 am LOL.
 
Any Xenix/Unix hack is doing themselves a disservice if the don't learn vi and ed. I haven't used it on a daily basis for years yet I still remember it. All you need are a few basic move/edit commands for vi and you're golden.

w - move forward a word
b - move backward a word
l - move forward a character
h - move backward a character
j - move down a line
k - move up a line
i - insert at cursor
ESC to end insert
x - delete character
dZ (where Z is one of the movement characters above) deletes the way you tell it to. (e.g. dw will delete a word).

Knowing those few commands you could have logged in from putty/telnet, opened a file with vi, started insert mode, copied from windows, paste and the entire file would be there.

I would have LOVED to networked it my deskpro but no network is configured nor is uucp and floppys work well enough for now. My eyes were straining on that low resolution and that was a top priority.
 
It's true that knowing vi can save a great deal of hassle. The really good news is that it is an option for Xenix. Many of the contemporary unices and clones for the XT didn't have vi (or any of the BSD goodness). We should thank someone at Microsoft for supporting the XT in 1986 and keeping a majority of the tools as 8086 code (except for whoever compiled MASM with 286 instructions). It feels surprisingly modern considering it's 30 years old..
It's probably just the one cli *nix looks like any other :) Not at all dissimilar to any Dos variant prompts looking like another.

Didn't old SCO do all the hard work anyway?

It's more a dig at linux but this link does contain some interesting tidbits all the same;

http://www.softpanorama.org/People/...rosoft_shortlived_love_affair_with_unix.shtml
 
Last edited:
Back
Top