sergev / bkunix

Unix V6 operating system for Soviet personal computer BK-0010/0011M
GNU General Public License v2.0
76 stars 22 forks source link

Install Help #1

Open pdr0663 opened 4 years ago

pdr0663 commented 4 years ago

Firstly, thank you so much for sharing this.

I have a PDP-11/03, and I want to get your OS up and running on it. One question, the INSTALL instructions are clear enough. But what system should this be run on? I tried my Linux system and make failed... Should it be run on another PDP-11 system? I can install on a simulated (SimH) system if necessary...

Paul

pdr0663 commented 4 years ago

If on SIMH, how would I get the files onto a disk image? (Prefer RL02)

Paul

pdr0663 commented 4 years ago

Sorry, unintentionally closed...

sergev commented 4 years ago

Hi Paul, The bkunix binaries can be built on any Linux machine. I use Ubuntu 20.04, for example. I'm not sure you can run bkunix on SIMH though. You need one of BK emulators: https://en.wikipedia.org/wiki/Electronika_BK -Serge

pdr0663 commented 4 years ago

Serge,

In the README for this archive, you said you'd uploaded the source before modifying it for the BK machine. I'd assumed then that this source is for the LSI-11 and not for the BK. If not, then do you have source for your modified LSX, to run on the LSI-11?

Paul

pdr0663 commented 4 years ago

I tried to compile the source tools on a Raspbian machine but gcc complained about the -m32 command line option being unknown.

Paul

pdr0663 commented 4 years ago

Is -m32 essential, or is it a convenience to imporve performance on you host development machine? If it's not required, I'll delete the option from the makefiles, and try again.

Paul

sergev commented 4 years ago

On Raspbian 32-bit machine the -m32 option is not needed. I'm not sure about 64-bit machine. It's not about performance. Cross-compiler does not work properly on 64-bit architecture for some reason. Something is wrong with field alignment in unions.

To get clean LSX source, just check out the very first commit 49ce64e174663ec660aa3e4551af52fb02506d5e. But these sources are not complete. It would be easier to modify the boot.S code and replace two drivers in src/sys/dev with proper versions for LSI-11.

--Serge

pdr0663 commented 4 years ago

Serge,

I removed -m32 from the make files, and the compiler was happy to proceed. I edit the "while" statement on one source line (it wanted {} for an empty statement). After that, I get a very large number of errors. Seems like an include file or some implicit library is missing. See the (partial) make output below...

pi@raspberrypi3-dev:~/bkunix-master/cross-devel $ make -B for i in cc pcc c2 ccom cpp as ld; do make DESTDIR=/usr/local -C $i; done make[1]: Entering directory '/home/pi/bkunix-master/cross-devel/cc' gcc -Werror -O -Wall -DDESTDIR=\"/usr/local\" -c -o pcc.o pcc.c gcc -Werror -o pdp11-pcc pcc.o gcc -Werror -O -Wall -DDESTDIR=\"/usr/local\" -c -o cc.o cc.c gcc -Werror -o pdp11-cc cc.o make[1]: Leaving directory '/home/pi/bkunix-master/cross-devel/cc' make[1]: Entering directory '/home/pi/bkunix-master/cross-devel/pcc' rm -f pcclocal.h cat pcc.h localdefs.h | egrep '^#[ ](define[ ][ ]PCC(F|T|TM|OM)?|ifdef|ifndef|endif)' | sed -e 's/PCC[A-Z]*//' > pcclocal.h rm -f pcctokens cat pcc.h localdefs.h | egrep '^#[ ]define[ ][ ]PCC' | sed -e 's/^#[ ]define[ ][ ]PCC/%term /' > pcctokens cat pcctokens ../mip/cgram.y > gram.in byacc gram.in byacc: 7 shift/reduce conflicts. mv y.tab.c cgram.c gcc -c -O -g -I. -I../mip -DONEPASS -DFIXSTRUCT="outstruct" -DFLEXNAMES cgram.c gram.in: In function ‘bdty’: gram.in:932:3: warning: implicit declaration of function ‘cerror’ [-Wimplicit-function-declaration] cerror("bad bdty" ); ^~ gram.in: At top level: gram.in:938:1: warning: return type defaults to ‘int’ [-Wimplicit-int] dstash( n ) OFFSZ n;{ / put n into the dimension table / ^~ gram.in:945:1: warning: return type defaults to ‘int’ [-Wimplicit-int] savebc() { ^~ gram.in:956:1: warning: return type defaults to ‘int’ [-Wimplicit-int] resetbc(mask) int mask; { ^~~ gram.in:965:1: warning: return type defaults to ‘int’ [-Wimplicit-int] addcase(p) NODE p; { / add case to switch */ ^~~ gram.in: In function ‘addcase’: gram.in:969:3: warning: implicit declaration of function ‘uerror’ [-Wimplicit-function-declaration] uerror("non-constant case expression"); ^~

pdr0663 commented 4 years ago

It would be easier to modify the boot.S code and replace two drivers in src/sys/dev with proper versions for LSI-11.

Great that sounds like the way to go. I'll need to get the compilation going properly first ;)

Paul

pdr0663 commented 4 years ago

Sergev, I've seen one BK0010 machine on eBay. It includes the computer and a power supply. There are plenty more on Avito.

What additional hardware is needed to implement LSX on this machine? Some kind of disk drive obviously... Is there an emulated drive?

Paul Riley

ATroubleshooter commented 3 years ago

Sergev, I've seen one BK0010 machine on eBay. It includes the computer and a power supply. There are plenty more on Avito.

What additional hardware is needed to implement LSX on this machine? Some kind of disk drive obviously... Is there an emulated drive?

Paul Riley

With SMK-512 expansion board you'll be ok :)

scale_2400

https://zen.yandex.ru/media/id/5ff5d16d775e3c312f57b377/kontroller-diskovoda-i-ide-vinchestera-smk512-dlia-bk-001001-ili-kto-takoi-mudovskoi-60484c1d04378d7ce519c860

ATroubleshooter commented 3 years ago

It's СМК-512 in russian, if you're going to look for it on avito or whatever.