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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? play.c

?? 有助于了解操作系統(tǒng)如何啟動之過程
?? C
字號:
/* play.c - command to play a tune  *//* *  GRUB  --  GRand Unified Bootloader *  Copyright (C) 2005,2007  Free Software Foundation, Inc. * *  GRUB is free software: you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation, either version 3 of the License, or *  (at your option) any later version. * *  GRUB is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with GRUB.  If not, see <http://www.gnu.org/licenses/>. *//* Lots of this file is borrowed from GNU/Hurd generic-speaker driver.  */#include <grub/normal.h>#include <grub/dl.h>#include <grub/arg.h>#include <grub/file.h>#include <grub/disk.h>#include <grub/term.h>#include <grub/misc.h>#include <grub/machine/time.h>#include <grub/cpu/io.h>#define BASE_TEMPO 120/* The speaker port.  */#define SPEAKER			0x61/* If 0, follow state of SPEAKER_DATA bit, otherwise enable output   from timer 2.  */#define SPEAKER_TMR2		0x01/* If SPEAKER_TMR2 is not set, this provides direct input into the   speaker.  Otherwise, this enables or disables the output from the   timer.  */#define SPEAKER_DATA		0x02/* The PIT channel value ports.  You can write to and read from them.   Do not mess with timer 0 or 1.  */#define PIT_COUNTER_0		0x40#define PIT_COUNTER_1		0x41#define PIT_COUNTER_2		0x42/* The frequency of the PIT clock.  */#define PIT_FREQUENCY		0x1234dd/* The PIT control port.  You can only write to it.  Do not mess with   timer 0 or 1.  */#define PIT_CTRL		0x43#define PIT_CTRL_SELECT_MASK	0xc0#define PIT_CTRL_SELECT_0	0x00#define PIT_CTRL_SELECT_1	0x40#define PIT_CTRL_SELECT_2	0x80/* Read and load control.  */#define PIT_CTRL_READLOAD_MASK	0x30#define PIT_CTRL_COUNTER_LATCH	0x00	/* Hold timer value until read.  */#define PIT_CTRL_READLOAD_LSB	0x10	/* Read/load the LSB.  */#define PIT_CTRL_READLOAD_MSB	0x20	/* Read/load the MSB.  */#define PIT_CTRL_READLOAD_WORD	0x30	/* Read/load the LSB then the MSB.  *//* Mode control.  */#define PIT_CTRL_MODE_MASK	0x0e/* Interrupt on terminal count.  Setting the mode sets output to low.   When counter is set and terminated, output is set to high.  */#define PIT_CTRL_INTR_ON_TERM	0x00/* Programmable one-shot.  When loading counter, output is set to   high.  When counter terminated, output is set to low.  Can be   triggered again from that point on by setting the gate pin to   high.  */#define PIT_CTRL_PROGR_ONE_SHOT	0x02/* Rate generator.  Output is low for one period of the counter, and   high for the other.  */#define PIT_CTRL_RATE_GEN	0x04/* Square wave generator.  Output is low for one half of the period,   and high for the other half.  */#define PIT_CTRL_SQUAREWAVE_GEN	0x06/* Software triggered strobe.  Setting the mode sets output to high.   When counter is set and terminated, output is set to low.  */#define PIT_CTRL_SOFTSTROBE	0x08/* Hardware triggered strobe.  Like software triggered strobe, but   only starts the counter when the gate pin is set to high.  */#define PIT_CTRL_HARDSTROBE	0x0a/* Count mode.  */#define PIT_CTRL_COUNT_MASK	0x01#define PIT_CTRL_COUNT_BINARY	0x00	/* 16-bit binary counter.  */#define PIT_CTRL_COUNT_BCD	0x01	/* 4-decade BCD counter.  */#define T_REST			((short) 0)#define T_FINE			((short) -1)struct note{  short pitch;  short duration;};static voidbeep_off (void){  unsigned char status;  status = grub_inb (SPEAKER);  grub_outb (status & ~(SPEAKER_TMR2 | SPEAKER_DATA), SPEAKER);}static voidbeep_on (short pitch){  unsigned char status;  unsigned int counter;  if (pitch < 20)    pitch = 20;  else if (pitch > 20000)    pitch = 20000;  counter = PIT_FREQUENCY / pitch;  /* Program timer 2.  */  grub_outb (PIT_CTRL_SELECT_2 | PIT_CTRL_READLOAD_WORD	| PIT_CTRL_SQUAREWAVE_GEN | PIT_CTRL_COUNT_BINARY, PIT_CTRL);  grub_outb (counter & 0xff, PIT_COUNTER_2);		/* LSB */  grub_outb ((counter >> 8) & 0xff, PIT_COUNTER_2);	/* MSB */  /* Start speaker.  */  status = grub_inb (SPEAKER);  grub_outb (status | SPEAKER_TMR2 | SPEAKER_DATA, SPEAKER);}static grub_err_tgrub_cmd_play (struct grub_arg_list *state __attribute__ ((unused)),	       int argc, char **args){  grub_file_t file;  struct note buf;  int tempo;  unsigned int to;  if (argc != 1)    return grub_error (GRUB_ERR_BAD_ARGUMENT, "file name required");  file = grub_file_open (args[0]);  if (! file)    return grub_error (GRUB_ERR_FILE_NOT_FOUND, "file not found");  if (grub_file_read (file, (void *) &tempo, sizeof(tempo)) != sizeof(tempo))    {      grub_file_close (file);      return grub_error (GRUB_ERR_FILE_READ_ERROR,                         "file doesn't even contains a full tempo record");    }  grub_dprintf ("play","tempo = %d\n", tempo);  while (grub_file_read (file, (void *) &buf,                         sizeof (struct note)) == sizeof (struct note)         && buf.pitch != T_FINE && grub_checkkey () < 0)    {            grub_dprintf ("play", "pitch = %d, duration = %d\n", buf.pitch,                    buf.duration);      switch (buf.pitch)        {          case T_REST:            beep_off ();            break;          default:            beep_on (buf.pitch);            break;        }      to = grub_get_rtc () + BASE_TEMPO * buf.duration / tempo;      while (((unsigned int) grub_get_rtc () <= to) && (grub_checkkey () < 0))        ;    }  beep_off ();  grub_file_close (file);  while (grub_checkkey () > 0)    grub_getkey ();  return 0;}GRUB_MOD_INIT(play){  (void)mod;			/* To stop warning. */  grub_register_command ("play", grub_cmd_play, GRUB_COMMAND_FLAG_BOTH,			 "play FILE", "Play a tune", 0);}GRUB_MOD_FINI(play){  grub_unregister_command ("play");}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合五月| 91看片淫黄大片一级在线观看| 国产精品久久久久四虎| 9191国产精品| 欧美日韩成人综合天天影院| 91麻豆视频网站| 成人黄色免费短视频| 国产一区二区三区久久久 | 26uuu另类欧美| 日韩亚洲欧美成人一区| 91麻豆精品久久久久蜜臀| 欧美色国产精品| 欧美日韩一区二区三区不卡| 欧美私人免费视频| 欧美性受xxxx黑人xyx| 欧美在线高清视频| 欧美网站一区二区| 制服丝袜亚洲播放| 精品免费视频.| 国产欧美中文在线| 一色桃子久久精品亚洲| 亚洲靠逼com| 午夜欧美视频在线观看| 美女脱光内衣内裤视频久久影院| 精品在线一区二区三区| 成人午夜av电影| 日本道在线观看一区二区| 欧美视频精品在线| 欧美刺激午夜性久久久久久久| 精品国产乱码久久久久久牛牛| 久久久www免费人成精品| 国产精品国产三级国产普通话三级 | 成人国产精品免费观看视频| 99综合电影在线视频| 色婷婷久久一区二区三区麻豆| 欧美色国产精品| 337p粉嫩大胆色噜噜噜噜亚洲 | 亚洲欧美自拍偷拍色图| 樱花影视一区二区| 裸体歌舞表演一区二区| 成人性生交大片免费看中文| 在线精品视频小说1| 欧美成人福利视频| 日韩美女视频一区二区| 秋霞av亚洲一区二区三| 成人精品在线视频观看| 精品视频1区2区3区| 久久综合九色综合欧美就去吻| 亚洲色图另类专区| 久久精品国内一区二区三区| 91视频免费播放| 日韩一区二区中文字幕| 日韩理论片网站| 精品一区二区久久| 在线免费观看日韩欧美| 久久精品一区蜜桃臀影院| 亚洲国产视频网站| 成人一级视频在线观看| 日韩美女天天操| 亚洲精品网站在线观看| 国产毛片一区二区| 在线播放国产精品二区一二区四区| 久久精品人人做| 免费成人av在线| 欧美午夜不卡视频| 日韩一区欧美小说| 国产成人综合在线观看| 欧美一区二区在线不卡| 亚洲欧美福利一区二区| 国产盗摄一区二区三区| 日韩一二三区视频| 亚洲图片欧美一区| 欧洲一区二区三区免费视频| 中文字幕av一区二区三区高| 精品一二三四区| 日韩一区二区三区av| 亚洲午夜久久久久久久久久久| 99久久久精品| 最新久久zyz资源站| 国产传媒一区在线| 久久久亚洲精品一区二区三区| 天堂蜜桃91精品| 欧美人牲a欧美精品| 亚洲黄色小视频| 欧洲av在线精品| 亚洲综合色噜噜狠狠| 色菇凉天天综合网| 亚洲一区二区三区四区五区中文 | 欧美日韩精品三区| 亚洲一区在线看| 欧美专区日韩专区| 亚洲第一福利视频在线| 欧美无砖专区一中文字| 亚洲成人免费影院| 在线成人午夜影院| 日韩va亚洲va欧美va久久| 69久久夜色精品国产69蝌蚪网| 亚洲成av人片一区二区梦乃| 欧美日韩一区在线| 日韩精品每日更新| 精品欧美黑人一区二区三区| 精品一区免费av| 国产网红主播福利一区二区| 丁香一区二区三区| 亚洲精品欧美二区三区中文字幕| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲一区二区三区爽爽爽爽爽 | 成人免费高清在线| 国产精品高潮呻吟| 色婷婷久久久久swag精品| 亚洲www啪成人一区二区麻豆| 欧美一级夜夜爽| 国产成人av影院| 一区二区三区四区激情| 91麻豆精品国产91久久久更新时间 | 欧美亚洲日本国产| 天天综合网天天综合色| 精品国产青草久久久久福利| 成人国产亚洲欧美成人综合网| 亚洲日本青草视频在线怡红院 | 午夜久久久久久久久久一区二区| 91精品国产综合久久久蜜臀粉嫩| 久久99深爱久久99精品| 亚洲国产高清不卡| 欧美日韩一级二级| 久久99精品久久久久久国产越南 | 午夜国产精品一区| 精品国偷自产国产一区| 成人黄色小视频| 青青草一区二区三区| 国产精品丝袜在线| 欧美精品日韩一本| www.欧美色图| 久久电影网电视剧免费观看| 亚洲黄色免费网站| 国产日韩欧美a| 在线播放中文一区| 91浏览器打开| 国产一区福利在线| 日韩av网站免费在线| 国产精品久久久久精k8| 日韩一级完整毛片| 欧美综合亚洲图片综合区| 国产成人99久久亚洲综合精品| 日韩中文字幕不卡| 亚洲综合色噜噜狠狠| 国产精品福利一区二区| 91精品国产欧美一区二区成人| 91视频91自| 国产91综合一区在线观看| 青青草97国产精品免费观看 | 精品亚洲国内自在自线福利| 亚洲一区二区三区精品在线| 国产精品美女一区二区在线观看| 日韩精品一区二区三区中文不卡 | 国产精品无码永久免费888| 欧美一区二区精美| 欧美日韩国产电影| 在线视频观看一区| 91小视频在线免费看| 成人精品国产福利| 懂色av中文一区二区三区| 精品中文av资源站在线观看| 日韩精品一区第一页| 亚洲综合偷拍欧美一区色| 亚洲四区在线观看| 国产精品久久久久9999吃药| 欧美激情中文字幕| 欧美国产日韩一二三区| 国产日韩成人精品| 国产日韩精品一区| 欧美激情综合网| 国产精品麻豆视频| 成人欧美一区二区三区小说 | 欧美成人艳星乳罩| 精品久久久影院| 久久亚洲春色中文字幕久久久| 日韩免费性生活视频播放| 欧美一级二级三级蜜桃| 精品久久久久一区二区国产| 欧美成人福利视频| 久久综合九色综合97婷婷| 久久蜜桃一区二区| 国产精品私人自拍| 亚洲黄色片在线观看| 亚洲电影你懂得| 美女任你摸久久| 国产麻豆精品在线观看| 国产风韵犹存在线视精品| 成人av在线播放网站| 欧洲一区二区三区免费视频| 欧美午夜电影一区| 日韩三级伦理片妻子的秘密按摩| 精品久久一二三区| 国产精品免费看片| 亚洲二区在线视频| 久久国产婷婷国产香蕉| 成人av电影在线观看| 欧美日韩国产不卡| 精品国产髙清在线看国产毛片|