⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 boot.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
#include <sys/param.h>#include <sys/ino.h>#include <sys/inode.h>#include <sys/filsys.h>#include <sys/dir.h>#include <saio.h>char line[100];extern struct devsw devsw[];main(){int i;	segflag = 2;	printf("New Boot, known devices are ");	for (i=0; devsw[i].dv_name; i++) printf("%s ", devsw[i].dv_name);	printf("\n");	do {		printf(": "); gets(line);		i = open(line,0);	} while (i < 0);	copyunix(i);}copyunix(io)register io;{register addr,s;long phys;unsigned	txtsiz,datsiz,bsssiz;int	magic;	lseek(io, (off_t)0, 0);	magic = getw(io);	txtsiz = getw(io);	datsiz = getw(io);	bsssiz = getw(io);	switch (magic) {	case 0411:		setseg(0);		lseek(io, (long)(020+txtsiz), 0);		for(addr=0; addr!=datsiz; addr+=2)  {			mtpi(getw(io),addr);		}		clrseg(addr,bsssiz);		phys = (long)datsiz + (long)bsssiz + 63L;		phys =/ 64;		setseg((int)phys);		lseek(io, 020L, 0);		for(addr=0; addr!=txtsiz; addr+=2) {			mtpi(getw(io),addr);		}		return;	case 0407:		setseg(0);		/*		 * space over the header. We do this instead of seeking		 * because the input might be a tape which doesn't know 		 * how to seek.		 */		getw(io); getw(io); getw(io); getw(io);		phys = txtsiz+datsiz;		for (addr = 0; addr != phys; addr += 2)			mtpi(getw(io),addr);		clrseg(addr, bsssiz);		return;	default:		printf("Can't load %o files\n", magic);		exit(1);	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -