亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? kernel.c

?? 一個迷你操作系統gazos的源碼
?? C
字號:
/*GazOS Operating SystemCopyright (C) 1999  Gareth Owen <gaz@athene.co.uk>This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.*/#include "string.h"#include "gazfs.h"#include "fdc.h"#include "video.h"#include "gdt.h"#include "idt.h"#include "io.h"#include "8259.h"#include "keyboard.h"#include "delay.h"#include "pit.h"#include "math.h"#include "mem.h"#define uchar  unsigned char		/* Defentitions to make life	*/#define uint   unsigned int		/* Easy for us:  uchar, uint	*/#define ulong  unsigned long int	/* and ulong			*/#define iuchar inline unsigned char	/* Inline functions		*/#define ivoid  inline voiduchar KERNEL_STACK[8192];		/* The stack to use: 8k stack	*/unsigned int cpuspeed=0;		/* CPU Speed in Megahertz */unsigned long memtotal = 0;		/* Memory Total in bytes */void _start(void);			/* The entry point		*/void main();				/* The main kernel program 	*/void _exit(void);			/* What to do when finished	*/void ulong_strcnv(uchar *str, ulong i); /* Convert a dword to a string  */extern void pit_ISR(void);extern unsigned long uptime_count;desc_table(GDT, 3){	{dummy:0},	stnd_desc(0, 0xFFFFF, (D_CODE + D_READ + D_BIG + D_BIG_LIM)),	stnd_desc(0, 0xFFFFF, (D_DATA + D_WRITE + D_BIG + D_BIG_LIM)),};struct{	unsigned short limit __attribute__ ((packed));	union DT_entry *idt __attribute__ ((packed));} loadgdt = { (3 * sizeof(union DT_entry) - 1), GDT };void _start(void)			/* The kernel entry point	*/{   asm ("pushl $2; popf");		/* Zero the flags		*/	 asm volatile                /* Load the GDT and the kernel stack     */	 (                           /* We assume the loader has cleared ints */      		"lgdtl (loadgdt)     \n" /* Load our own GDT                      */	        "movw $0x10,%%ax     \n" /* Init data registers with flat_data    */      		"movw %%ax,%%ds      \n"      		"movw %%ax,%%es      \n"      		"movw %%ax,%%fs      \n"      		"movw %%ax,%%gs      \n"      		"movw %%ax,%%ss      \n" /* ... and the stack, too                */      		"movl $0xFFFF,%%esp       \n" /* Set the SP to the end of the stack    */      		"ljmp $0x08,$next    \n" /* Flush prefetch queue and skip MBHeadr */		"nop\n"		"nop\n"	        "next:               \n" /* Continue here                         */      		:      		: "r" (GDT), "p" (KERNEL_STACK+4096)      		: "%eax"   	);   main();				/* Call main()			*/   _exit();				/* Finish off			*/}/* Now we get the main kernel program 					*/void main(){	unsigned char tempstring[255];	unsigned long delaycount=0, loop=0, result, catcount = 0;	unsigned char buf[8192];	kprint("\n\nGazOS Version 1.0 Loading......\n");	kprint("Initializing the 8259 PIC...\n");	Init8259();	kprint("Loading IDT...\n");	InitIDT();        /* We want to calibrate the delay loop while all interrupts are */        /* masked, and before the scheduler is loaded.                  */	kprint("Calibrating delay loop... [");        delaycount = calibrateDelayLoop();        printlong(delaycount);        kprint("]\n");	cpuspeed = floor(delaycount/500);	count_memory();	kprint("Initializing Keyboard...\n");	InitKeyboard();	init_pit(18.2, 0);	// Every 54.945ms (18.2 times per second)	set_vector(pit_ISR, M_VEC, (D_INT + D_PRESENT + D_DPL3));	enable_irq(0);	init_floppy();	gazfs_init();	kprint("CPU = ");	printlong(cpuspeed);	kprint("Mhz  -  Mem.Total = ");	printlong(mem_end/1024);	kprint("K  -  Total Pages = ");	printlong(mem_end/4096);	kprint("\n");	while(1)	{		kprint("\nGazOS] /: ");		gets(tempstring);		kprint("\n");				if(!kstrcmp(tempstring, "ls")) displayrootdir();		if(tempstring[0] == 'c' && tempstring[1] == 'a' &&		   tempstring[2] == 't')		{		   	result = getdata(tempstring+4, 0, (unsigned long)(-1), buf);		   	if(result > 0)		   	{		   		catcount = 0;				for(loop=0; loop<result; loop++)				{					tempstring[0] = buf[loop];					tempstring[1] = 0;					kprint(tempstring);					if(tempstring[0] == 10) catcount++;					if(catcount >= 23)					{						kprint("Press any key...");						getch();						kprint("\n");						catcount = 0;					}				}		   	}		   	else		   		kprint("File not found or error\n");		}	}}void _exit(void)			/* Exit point of the kernel	*/{   while(inportb(0x64) & 0x02);		/* Reboot the computer		*/   outportb(0x64, 0xfe);   asm("cli;hlt");			/* Should it not work we halt 	*/					/* the computer now so the we	*/					/* do no harm			*/}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区在线播放| 日韩欧美国产三级电影视频| 欧美一激情一区二区三区| 中文字幕中文乱码欧美一区二区| 午夜亚洲国产au精品一区二区| 成人性生交大片免费看视频在线 | 一区二区三区四区不卡在线| 久久99国产精品久久99果冻传媒| 在线欧美日韩精品| 中文字幕一区二区三| 激情五月播播久久久精品| 7799精品视频| 亚洲狠狠丁香婷婷综合久久久| 丁香天五香天堂综合| 欧美刺激脚交jootjob| 亚洲午夜久久久久久久久电影院| 成人精品亚洲人成在线| 久久久青草青青国产亚洲免观| 午夜a成v人精品| 在线观看网站黄不卡| 亚洲青青青在线视频| 成人网男人的天堂| 日本一区二区视频在线| 国产麻豆成人精品| 国产亚洲综合av| 国产成人福利片| 日本一区二区三区久久久久久久久不 | 日韩精品综合一本久道在线视频| 亚洲电影第三页| 欧美浪妇xxxx高跟鞋交| 亚洲电影第三页| 欧美电影在线免费观看| 免费精品视频最新在线| 日韩精品一区国产麻豆| 久久国内精品自在自线400部| 日韩欧美一区二区不卡| 蜜桃av一区二区三区电影| 精品噜噜噜噜久久久久久久久试看| 蜜桃视频免费观看一区| 久久久一区二区三区捆绑**| 国产伦精一区二区三区| 国产精品萝li| 欧美综合色免费| 视频一区视频二区中文字幕| 日韩欧美色综合| 国产一区二区三区国产| 中文字幕亚洲精品在线观看| 一本大道久久a久久综合| 亚洲一区在线观看免费| 欧美日韩高清一区二区三区| 精品一区二区在线观看| 亚洲一区二区三区四区在线| 国产一区二区美女诱惑| 国产精品毛片高清在线完整版 | 国产精品国产三级国产三级人妇| 99视频一区二区三区| 亚洲国产精品天堂| 日韩欧美一卡二卡| 成人高清免费在线播放| 香蕉影视欧美成人| 久久久国产精品麻豆| 欧洲精品一区二区| 久久99精品国产.久久久久 | 欧美aⅴ一区二区三区视频| 精品国产网站在线观看| 91在线小视频| 免费在线观看精品| 最新高清无码专区| 日韩精品资源二区在线| 色老综合老女人久久久| 国产在线精品免费av| 一区二区三区精密机械公司| 久久一留热品黄| 欧美三级视频在线观看| 成人小视频免费观看| 日本不卡123| 一区二区三区四区视频精品免费| 日韩免费在线观看| 欧美揉bbbbb揉bbbbb| 成人精品国产一区二区4080| 青娱乐精品视频| 亚洲一二三区在线观看| 国产精品午夜春色av| 精品嫩草影院久久| 欧美精品乱人伦久久久久久| 成人18视频在线播放| 黄色小说综合网站| 日韩电影免费在线| 夜夜嗨av一区二区三区| 中文字幕av一区二区三区免费看| 日韩丝袜情趣美女图片| 在线视频综合导航| 91丨porny丨户外露出| 国产一本一道久久香蕉| 日本欧美一区二区三区乱码| 亚洲成年人网站在线观看| 中文字幕一区日韩精品欧美| 国产亚洲精品超碰| 久久一夜天堂av一区二区三区| 91精品国产全国免费观看| 在线亚洲精品福利网址导航| 91欧美激情一区二区三区成人| 粉嫩13p一区二区三区| 国产一区视频导航| 国产精品综合av一区二区国产馆| 日本中文在线一区| 青青草97国产精品免费观看| 亚洲.国产.中文慕字在线| 亚洲综合视频网| 亚洲国产精品天堂| 三级欧美韩日大片在线看| 亚洲成人av福利| 日本不卡高清视频| 久久草av在线| 国产精品一二二区| 北条麻妃一区二区三区| 成人性生交大片免费| 91一区二区三区在线观看| 99re视频这里只有精品| 99国产欧美久久久精品| 欧美曰成人黄网| 欧美日韩亚洲另类| 日韩欧美精品在线视频| 久久综合久久综合九色| 欧美激情艳妇裸体舞| 亚洲少妇中出一区| 亚洲一线二线三线视频| 日韩国产高清在线| 精品一区二区三区免费视频| 国产精品一区专区| 99久精品国产| 欧美日韩三级一区二区| 精品久久久久久最新网址| 国产欧美一区在线| 一区二区视频在线看| 日产国产欧美视频一区精品| 久99久精品视频免费观看| 成人免费视频视频在线观看免费| 91精品91久久久中77777| 欧美一区二区三区在线观看 | 日韩欧美激情在线| 久久久蜜桃精品| 悠悠色在线精品| 麻豆91小视频| 99久久久无码国产精品| 欧美日韩一卡二卡三卡| 久久久www成人免费毛片麻豆| 中文字幕亚洲视频| 美女国产一区二区三区| 99久久99久久综合| 91精品国产一区二区三区| 亚洲国产高清aⅴ视频| 亚洲国产婷婷综合在线精品| 激情图片小说一区| 欧美天堂一区二区三区| 日本一区二区三区久久久久久久久不| 亚洲在线视频一区| 国产成+人+日韩+欧美+亚洲| 欧美日韩一区二区三区在线看| 久久麻豆一区二区| 视频一区欧美日韩| 91麻豆.com| 2021中文字幕一区亚洲| 无码av中文一区二区三区桃花岛| 粉嫩嫩av羞羞动漫久久久| 日韩欧美国产一区二区在线播放| 综合久久久久综合| 国产激情一区二区三区桃花岛亚洲 | 欧美一区二区观看视频| 亚洲色图视频免费播放| 国产成人免费av在线| 日韩一二在线观看| 午夜视频久久久久久| 91美女蜜桃在线| 欧美激情中文不卡| 精品亚洲国产成人av制服丝袜 | 亚洲一区二区三区四区在线| 国产99久久久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 欧美一区二区日韩一区二区| 一区二区激情小说| 91蜜桃在线观看| 中文字幕欧美日本乱码一线二线| 麻豆免费看一区二区三区| 欧美日韩激情在线| 亚洲成人精品在线观看| 91麻豆国产福利在线观看| 国产精品久久久久四虎| 国产成人午夜精品影院观看视频| 精品国产免费一区二区三区香蕉| 性做久久久久久久免费看| 欧美系列日韩一区| 亚洲国产精品欧美一二99| 在线视频一区二区三| 夜夜精品视频一区二区| 欧美日韩亚洲综合一区二区三区| 亚洲一区二区三区中文字幕在线| 色av一区二区| 亚洲国产sm捆绑调教视频| 欧美日韩亚洲另类|