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

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

?? kernel.c

?? 一個極小型的操作系統
?? 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一区二区三区免费野_久草精品视频
国产精品水嫩水嫩| 国产精品一线二线三线| 91精品国产免费| 国产一区二区三区香蕉| 亚洲欧美精品午睡沙发| 日韩视频一区二区三区在线播放| 麻豆精品视频在线观看视频| 国产精品超碰97尤物18| 7878成人国产在线观看| jvid福利写真一区二区三区| 亚州成人在线电影| 中文字幕成人在线观看| 精品日韩成人av| 777欧美精品| 日本丰满少妇一区二区三区| 国产91综合一区在线观看| 久久国产剧场电影| 午夜天堂影视香蕉久久| 最新国产精品久久精品| 国产欧美一区二区精品忘忧草 | 亚洲欧洲制服丝袜| 国产精品电影院| 精品88久久久久88久久久| 欧美日韩高清影院| 制服丝袜在线91| 日韩一级二级三级精品视频| 欧美日韩一区二区在线视频| 色婷婷香蕉在线一区二区| 91成人国产精品| 欧美日韩三级一区二区| 欧美精品久久99久久在免费线 | 欧美一区二区三区免费大片| 欧美中文字幕一区二区三区亚洲| 一本大道久久精品懂色aⅴ| 91在线精品秘密一区二区| 99久久久国产精品免费蜜臀| 色中色一区二区| 日韩一区二区免费电影| 久久久久久久久久久99999| 国产亚洲综合在线| 一区二区中文视频| 日本不卡的三区四区五区| 国产成人丝袜美腿| 欧美日韩国产首页| 欧美激情中文字幕| 亚洲成人一区在线| 成人高清伦理免费影院在线观看| 欧美久久婷婷综合色| 国产精品三级在线观看| 免费日韩伦理电影| 94-欧美-setu| 精品国产亚洲一区二区三区在线观看| 欧美韩国日本一区| 久久精品国产秦先生| 欧美日本不卡视频| 一区二区三区精品| av动漫一区二区| 国产欧美视频一区二区三区| 开心九九激情九九欧美日韩精美视频电影| 久久先锋影音av| 激情丁香综合五月| 欧美一级高清片| 日韩1区2区日韩1区2区| 欧美日韩国产高清一区二区三区| 国产欧美中文在线| 国产传媒日韩欧美成人| 精品理论电影在线| 国产一区二区不卡在线| 欧美一区二区三区在线观看| 亚洲成av人综合在线观看| 在线免费观看日本欧美| 亚洲网友自拍偷拍| 欧美一级片免费看| 国产精品一区二区男女羞羞无遮挡| 欧美不卡在线视频| 99久久精品免费精品国产| 91免费看`日韩一区二区| 亚洲国产视频一区| 97se亚洲国产综合自在线观| 亚洲成人资源在线| 一区二区三区在线视频观看| 久久久久久免费| 精品粉嫩超白一线天av| 337p亚洲精品色噜噜| 九九在线精品视频| 中文字幕高清不卡| 欧洲色大大久久| 国产一区二区三区免费观看| 国产亚洲人成网站| 欧美午夜精品理论片a级按摩| 亚洲成人午夜影院| 久久精品网站免费观看| 色综合色综合色综合色综合色综合| 亚洲a一区二区| 国产精品你懂的在线欣赏| 欧美亚洲国产怡红院影院| 麻豆中文一区二区| 夜夜夜精品看看| 国产视频一区二区三区在线观看| 国产成a人亚洲精品| 亚洲大片一区二区三区| 欧美国产激情一区二区三区蜜月| 欧美亚一区二区| 91在线精品秘密一区二区| 国产米奇在线777精品观看| 麻豆成人av在线| 国产一区二区三区在线看麻豆| 美女网站视频久久| 国产精品99久久久久久有的能看| 老汉av免费一区二区三区| 亚洲综合精品久久| 亚洲第一在线综合网站| 日本三级亚洲精品| 国产精品自拍网站| 国产九色精品成人porny| 国产精品一区二区在线看| 国产综合色在线视频区| proumb性欧美在线观看| 欧美日韩视频在线一区二区| 亚洲精品在线免费观看视频| 中文字幕成人在线观看| 亚洲国产cao| 精品一区二区精品| 青青草精品视频| 91尤物视频在线观看| 91精品国产综合久久久蜜臀粉嫩| 久久欧美中文字幕| 午夜国产不卡在线观看视频| 成人黄色在线网站| 久久综合久色欧美综合狠狠| 免费成人在线观看| 日韩欧美中文字幕公布| 欧美一区二区三区四区视频| 91在线小视频| 99久久精品情趣| 亚洲男人的天堂在线观看| 91日韩在线专区| 欧美日韩精品一区二区三区四区| 色94色欧美sute亚洲13| 加勒比av一区二区| 精品一区二区久久久| 91精彩视频在线观看| 国产精品久久久久9999吃药| 成人国产一区二区三区精品| 日本一区二区三区久久久久久久久不 | 香蕉成人啪国产精品视频综合网| 欧美视频中文一区二区三区在线观看| 亚洲视频1区2区| 欧美肥妇毛茸茸| 国产成人丝袜美腿| 成人毛片视频在线观看| 国产激情一区二区三区| 不卡区在线中文字幕| 欧美丝袜第三区| 国产日韩欧美a| 蜜臀a∨国产成人精品| 在线观看www91| 日本高清不卡aⅴ免费网站| 精品精品国产高清a毛片牛牛| 久久久久久久久久久久电影| 中文字幕一区二区三区在线播放 | 色噜噜狠狠成人中文综合| 欧美激情在线看| 高清av一区二区| 中文字幕永久在线不卡| 国产v综合v亚洲欧| 91精品欧美综合在线观看最新| 久久精品亚洲麻豆av一区二区| 亚洲综合色噜噜狠狠| 91网站视频在线观看| 欧美日产在线观看| 国产精品免费久久久久| 亚洲第一电影网| 欧美日韩一区二区三区不卡| 一色屋精品亚洲香蕉网站| 国产欧美一区二区三区在线看蜜臀 | 国产亚洲婷婷免费| 欧美精品三级在线观看| 91片黄在线观看| 国产高清精品网站| 成人av综合一区| 丁香六月综合激情| thepron国产精品| 国产91精品一区二区麻豆网站 | 色综合久久综合网欧美综合网| 国产宾馆实践打屁股91| 粉嫩一区二区三区性色av| 国产欧美一区二区三区鸳鸯浴| 色综合久久中文字幕| 另类成人小视频在线| 一区二区三区日本| 国产精品第13页| 久久在线免费观看| 欧美一级片免费看| 精品久久久网站| 久久精品视频一区| 99久久亚洲一区二区三区青草| 国产精品美女久久久久久久久| 国产精品一区二区在线播放| 一级女性全黄久久生活片免费|