--- param.h.orig 2021-01-24 11:38:14.061518336 +0100 +++ param.h 2021-01-24 13:40:43.670465262 +0100 @@ -7,7 +7,7 @@ #define NFILE 50 /* number of in core file structures */ #define NMOUNT 5 /* number of mountable file systems */ #define NEXEC 3 /* number of simultaneous exec's */ -#define MAXMEM (64*32) /* max core per process - first # is Kw */ +#define MAXMEM (32*32) /* max core per process - first # is Kw */ #define SSIZE 20 /* initial stack size (*64 bytes) */ #define SINCR 20 /* increment of stack (*64 bytes) */ #define NOFILE 15 /* max open files per process */ --- ken/main.c.orig 2021-01-24 11:38:46.900940245 +0100 +++ ken/main.c 2021-01-24 11:38:46.899919290 +0100 @@ -62,7 +62,7 @@ */ updlock = 0; - printf("unix v6 11/%d\n",cputype); + printf("\nunix v6 11/%d\n",cputype); UISA->r[7] = ka6[1]; /* io segment */ UISD->r[7] = 077406; @@ -72,7 +72,7 @@ UISA->r[0] = *ka6 + USIZE; UISD->r[0] = 077406; for(; fuibyte(0) >= 0; UISA->r[0]++) { - if(UISA->r[0] == 07600) + if(UISA->r[0] == 0177600) break; clearseg(UISA->r[0]); if(testmem(UISA->r[0])) @@ -90,9 +90,9 @@ break; } } - printf("mem = %l KW", m*5/160); + printf("mem = %l KW", m/32); maxmem = min(maxmem, MAXMEM); - printf(" max = %l\n", (maxmem-USIZE)*5/160); + printf(" max = %l\n", (maxmem-USIZE)/32); mfree(swapmap, nswap, swplo); startclk(); --- ken/prf.c.orig 2021-01-24 11:38:46.903983320 +0100 +++ ken/prf.c 2021-01-24 11:38:46.902939361 +0100 @@ -110,11 +110,8 @@ s = p->xsr; p->xsr = 0; p->xbr = rc; - if(rc == '\n') { + if(rc == '\n') putchar('\r'); - putchar(0177); - putchar(0177); - } putchar(0); p->xsr = s; } @@ -150,10 +147,21 @@ for (i=0; p = devnames[i]; ++i) if (i == dev.d_major) break; - if (p == 0) - printf("%s on dev %l/%l\n", str, dev.d_major, dev.d_minor); - else - printf("%s on /dev/%s%l\n", str, p, dev.d_minor); + printf("%s on ", str); + if (p == 0) { + printf("dev %l/%l\n", dev.d_major, dev.d_minor); + } else { + printf("/dev/%s", p); + if ((p[0] == 'r' && p[1] == 'a' && p[2] == 0) || + (p[0] == 'r' && p[1] == 'r' && p[2] == 'a' && p[3] == 0)) { + printf("%l", dev.d_minor >> 3); + putchar('a' + (dev.d_minor & 7)); + } else { + printf("%l", dev.d_minor); + } + } + putchar('\n'); + putchar('\r'); } /* --- conf/l.s.orig 2021-01-24 11:38:38.015264960 +0100 +++ conf/l.s 2021-01-24 11:38:38.014261581 +0100 @@ -49,6 +49,11 @@ xyou; br5 / xy plotter (120) .endif +.if ra +. = 154^. + raint; br5 +.endif + .if rl . = 160^. rlint; br5 @@ -305,3 +310,8 @@ adin: jsr r0,call; _adrint aderr: jsr r0,call; _aderr .endif + +.if ra +.globl _raintr +raint: jsr r0,call; _raintr +.endif --- conf/f23.s.orig 2021-01-24 11:38:38.013256413 +0100 +++ conf/f23.s 2021-01-24 11:38:38.012198760 +0100 @@ -849,6 +849,7 @@ / get a sp and start segmentation mov $_u+[usize*64.],sp + mov $EN22BIT,SSR3 / allow > 256KB inc SSR0 / clear bss @@ -936,6 +937,8 @@ PS = 177776 SSR0 = 177572 SSR2 = 177576 +SSR3 = 172516 +EN22BIT = 20 KISA0 = 172340 KISA6 = 172354 KISD0 = 172300 @@ -944,7 +947,7 @@ UISA1 = 177642 UISD0 = 177600 UISD1 = 177602 -IO = 7600 +IO = 177600 .data .globl _ka6, _cputype