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

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

?? kdmeng.c

?? 小型游戲引擎
?? C
?? 第 1 頁 / 共 3 頁
字號:
// "Build Engine & Tools" Copyright (c) 1993-1997 Ken Silverman// Ken Silverman's official web site: "http://www.advsys.net/ken"// See the included license file "BUILDLIC.TXT" for license info.// This file has been modified from Ken Silverman's original release#include <malloc.h>#include <stdlib.h>#include <string.h>#include <stdio.h>#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include "platform.h"#include "pragmas.h"#include "cache1d.h"#if (!defined PLATFORM_DOS)#error This should only be compiled for the DOS/386 target.#endif#define NUMCHANNELS 16#define MAXWAVES 256#define MAXTRACKS 256#define MAXNOTES 8192#define MAXEFFECTS 16	//Actual sound parameters after initsb was calledlong samplerate, numspeakers, bytespersample, intspersec, kdmqual;	//KWV wave variableslong numwaves;char instname[MAXWAVES][16];long wavleng[MAXWAVES];long repstart[MAXWAVES], repleng[MAXWAVES];long finetune[MAXWAVES];	//Other useful wave variableslong totsndbytes, totsndmem, wavoffs[MAXWAVES];	//Effects arraylong eff[MAXEFFECTS][256];	//KDM song variables:long kdmversionum, numnotes, numtracks;char trinst[MAXTRACKS], trquant[MAXTRACKS];char trvol1[MAXTRACKS], trvol2[MAXTRACKS];long nttime[MAXNOTES];char nttrack[MAXNOTES], ntfreq[MAXNOTES];char ntvol1[MAXNOTES], ntvol2[MAXNOTES];char ntfrqeff[MAXNOTES], ntvoleff[MAXNOTES], ntpaneff[MAXNOTES];	//Other useful song variables:long timecount, notecnt, musicstatus, musicrepeat;long kdmasm1, kdmasm2, kdmasm3, kdmasm4;static char digistat = 0, musistat = 0;char *snd = NULL, kwvname[20] = {""};#define MAXBYTESPERTIC 1024+128static long stemp[MAXBYTESPERTIC];	//Sound reading informationlong splc[NUMCHANNELS], sinc[NUMCHANNELS], soff[NUMCHANNELS];long svol1[NUMCHANNELS], svol2[NUMCHANNELS];long volookup[NUMCHANNELS<<9];long swavenum[NUMCHANNELS];long frqeff[NUMCHANNELS], frqoff[NUMCHANNELS];long voleff[NUMCHANNELS], voloff[NUMCHANNELS];long paneff[NUMCHANNELS], panoff[NUMCHANNELS];static long globposx, globposy, globxvect, globyvect;static long xplc[NUMCHANNELS], yplc[NUMCHANNELS], vol[NUMCHANNELS];static long vdist[NUMCHANNELS], sincoffs[NUMCHANNELS];static char chanstat[NUMCHANNELS];long frqtable[256];static long mixerval = 0;static long kdminprep = 0, kdmintinprep = 0;static long dmacheckport, dmachecksiz;void (__interrupt __far *oldsbhandler)();void __interrupt __far sbhandler(void);long samplediv, oldtimerfreq, chainbackcnt, chainbackstart;char *pcsndptr, pcsndlookup[256], bufferside;long samplecount, pcsndbufsiz, pcrealmodeint;static short kdmvect = 0x8;static unsigned short kdmpsel, kdmrseg, kdmroff;static unsigned long kdmpoff;void (__interrupt __far *oldpctimerhandler)();#define KDMCODEBYTES 256static char pcrealbuffer[KDMCODEBYTES] =        //See pckdm.asm{	0x50,0x53,0x51,0x52,0x32,0xC0,0xE6,0x42,0xB0,0x20,	0xE6,0x20,0x5A,0x59,0x5B,0x58,0xCF,};	//Sound interrupt informationlong sbport = 0x220, sbirq = 0x7, sbdma8 = 0x1, sbdma16 = 0x1;char dmapagenum[8] = {0x87,0x83,0x81,0x82,0x8f,0x8b,0x89,0x8a};long sbdma, sbver;unsigned short sndselector;volatile long sndoffs, sndoffsplc, sndoffsxor, sndplc, sndend;static long bytespertic, sndbufsiz;char qualookup[512*16];long ramplookup[64];unsigned short sndseg = 0;#ifdef PLATFORM_DOSextern long monolocomb(long,long,long,long,long,long);#pragma aux monolocomb parm [eax][ebx][ecx][edx][esi][edi];extern long monohicomb(long,long,long,long,long,long);#pragma aux monohicomb parm [eax][ebx][ecx][edx][esi][edi];extern long stereolocomb(long,long,long,long,long,long);#pragma aux stereolocomb parm [eax][ebx][ecx][edx][esi][edi];extern long stereohicomb(long,long,long,long,long,long);#pragma aux stereohicomb parm [eax][ebx][ecx][edx][esi][edi];extern long setuppctimerhandler(long,long,long,long,long,long);#pragma aux setuppctimerhandler parm [eax][ebx][ecx][edx][esi][edi];extern void interrupt pctimerhandler();extern long pcbound2char(long,long,long);#pragma aux pcbound2char parm [ecx][esi][edi];extern long bound2char(long,long,long);#pragma aux bound2char parm [ecx][esi][edi];extern long bound2short(long,long,long);#pragma aux bound2short parm [ecx][esi][edi];static long oneshr10 = 0x3a800000, oneshl14 = 0x46800000;void fsin(long *i1);#pragma aux fsin =\	"fldpi",\	"fimul dword ptr [eax]",\	"fmul dword ptr [oneshr10]",\	"fsin",\	"fmul dword ptr [oneshl14]",\	"fistp dword ptr [eax]",\	parm [eax]\unsigned short convallocate(long i1);#pragma aux convallocate =\	"mov ax, 0x100",\	"int 0x31",\	"jnc nocarry",\	"mov ax, 0",\	"nocarry: mov sndselector, dx",\	parm [bx]\	modify [eax edx]\void convdeallocate(long i1);#pragma aux convdeallocate =\	"mov ax, 0x101",\	"mov dx, sndselector",\	"int 0x31",\	parm [dx]\	modify [eax edx]\long resetsb(void);#pragma aux resetsb =\	"mov edx, sbport",\	"add edx, 0x6",\	"mov al, 1",\	"out dx, al",\	"xor al, al",\	"delayreset: dec al",\	"jnz delayreset",\	"out dx, al",\	"mov ecx, 65536",\	"empty: mov edx, sbport",\	"add edx, 0xe",\	"in al, dx",\	"test al, al",\	"jns nextattempt",\	"sub dl, 4",\	"in al, dx",\	"cmp al, 0aah",\	"je resetok",\	"dec ecx",\	"nextattempt: jnz empty",\	"mov eax, -1",\	"jmp resetend",\	"resetok: xor eax, eax",\	"resetend:",\	modify [ebx ecx edx]\long sbin(void);#pragma aux sbin =\	"xor eax, eax",\	"mov dx, word ptr sbport[0]",\	"add dl, 0xe",\	"busy: in al, dx",\	"or al, al",\	"jns busy",\	"sub dl, 4",\	"in al, dx",\	modify [edx]\void sbout(long i1);#pragma aux sbout =\	"mov dx, word ptr sbport[0]",\	"add dl, 0xc",\	"mov ah, al",\	"busy: in al, dx",\	"or al, al",\	"js busy",\	"mov al, ah",\	"out dx, al",\	parm [eax]\	modify [edx]\long sbmixin(long);#pragma aux sbmixin =\	"mov dx, word ptr sbport[0]",\	"add dl, 0x4",\	"out dx, al",\	"inc dx",\	"xor eax, eax",\	"in al, dx",\	parm [eax]\	modify [edx]\void sbmixout(long i1, long i2);#pragma aux sbmixout =\	"mov dx, word ptr sbport[0]",\	"add dl, 0x4",\	"out dx, al",\	"inc dx",\	"mov al, bl",\	"out dx, al",\	parm [eax][ebx]\	modify [edx]\void findpas(void);#pragma aux findpas =\	"mov eax, 0x0000bc00",\	"mov ebx, 0x00003f3f",\	"int 0x2f",\	"xor bx, cx",\	"xor bx, dx",\	"cmp bx, 0x4d56",\	"stc",\	"jne nopasfound",\	"mov eax, 0x0000bc04",\	"int 0x2f",\	"mov edx, 0x0000ffff",\	"and ebx, edx",\	"and ecx, edx",\	"mov sbdma, ebx",\	"mov sbirq, ecx",\	"clc",\	"nopasfound:",\	"sbb eax, eax",\	modify [eax ebx ecx edx]\void calcvolookupmono(long i1, long i2, long i3);#pragma aux calcvolookupmono =\	"mov ecx, 64",\	"lea edx, [eax+ebx]",\	"add ebx, ebx",\	"begit: mov dword ptr [edi], eax",\	"mov dword ptr [edi+4], edx",\	"add eax, ebx",\	"add edx, ebx",\	"mov dword ptr [edi+8], eax",\	"mov dword ptr [edi+12], edx",\	"add eax, ebx",\	"add edx, ebx",\	"add edi, 16",\	"dec ecx",\	"jnz begit",\	parm [edi][eax][ebx]\	modify [ecx edx]\void calcvolookupstereo(long i1, long i2, long i3, long i4, long i5);#pragma aux calcvolookupstereo =\	"mov esi, 128",\	"begit: mov dword ptr [edi], eax",\	"mov dword ptr [edi+4], ecx",\	"add eax, ebx",\	"add ecx, edx",\	"mov dword ptr [edi+8], eax",\	"mov dword ptr [edi+12], ecx",\	"add eax, ebx",\	"add ecx, edx",\	"add edi, 16",\	"dec esi",\	"jnz begit",\	parm [edi][eax][ebx][ecx][edx]\	modify [esi]\long gettimerval(void);#pragma aux gettimerval =\	"xor eax, eax",\	"xor ebx, ebx",\	"mov ecx, 65536",\	"xor edx, edx",\	"loopit: mov al, 0x4",\	"out 0x43, al",\	"in al, 0x40",\	"mov dl, al",\	"in al, 0x40",\	"mov dh, al",\	"cmp ebx, edx",\	"dec ecx",\	"ja loopit",\	"jz endit",\	"mov ebx, edx",\	"jmp loopit",\	"endit: mov eax, ebx",\	modify [eax ebx ecx edx]\#pragma aux klabs =\	"test eax, eax",\	"jns skipnegate",\	"neg eax",\	"skipnegate:",\	parm [eax]\#pragma aux mulscale16 =\	"imul ebx",\	"shrd eax, edx, 16",\	parm nomemory [eax][ebx]\	modify exact [eax edx]\#pragma aux mulscale24 =\	"imul ebx",\	"shrd eax, edx, 24",\	parm nomemory [eax][ebx]\	modify exact [eax edx]\#pragma aux mulscale30 =\	"imul ebx",\	"shrd eax, edx, 30",\	parm nomemory [eax][ebx]\	modify exact [eax edx]\#pragma aux dmulscale28 =\	"imul edx",\	"mov ebx, eax",\	"mov eax, esi",\	"mov esi, edx",\	"imul edi",\	"add eax, ebx",\	"adc edx, esi",\	"shrd eax, edx, 28",\	parm nomemory [eax][edx][esi][edi]\	modify exact [eax ebx edx esi]\#pragma aux clearbuf =\	"snot: mov dword ptr [edi], eax",\	"add edi, 4",\	"loop snot",\	parm [edi][ecx][eax]\#pragma aux copybuf =\	"snot: mov eax, dword ptr [esi]",\	"mov dword ptr [edi], eax",\	"add esi, 4",\	"add edi, 4",\	"loop snot",\	parm [esi][edi][ecx]\	modify [eax]\#pragma aux koutp =\	"out dx, al",\	parm [edx][eax]\#pragma aux koutpw =\	"out dx, ax",\	parm [edx][eax]\#pragma aux kinp =\	"xor eax, eax",\	"in al, dx",\	parm [edx]\#pragma aux msqrtasm =\	"mov eax, 0x40000000",\	"mov ebx, 0x20000000",\	"begit: cmp ecx, eax",\	"jl skip",\	"sub ecx, eax",\	"lea eax, [eax+ebx*4]",\	"skip: sub eax, ebx",\	"shr eax, 1",\	"shr ebx, 2",\	"jnz begit",\	"cmp ecx, eax",\	"sbb eax, -1",\	"shr eax, 1",\	parm nomemory [ecx]\	modify exact [eax ebx ecx]#endif	void initsb(char dadigistat, char damusistat, long dasamplerate, char danumspeakers, char dabytespersample, char daintspersec, char daquality){// DDOI - this should probably be stubbed in sdl_driver.c	#ifdef PLATFORM_DOS		long i, j, k;	digistat = dadigistat;	musistat = damusistat;	if ((digistat == 0) && (musistat != 1))		return;	samplerate = dasamplerate;	if (samplerate < 6000) samplerate = 6000;	if (samplerate > 48000) samplerate = 48000;	numspeakers = danumspeakers;	if (numspeakers < 1) numspeakers = 1;	if (numspeakers > 2) numspeakers = 2;	bytespersample = dabytespersample;	if (bytespersample < 1) bytespersample = 1;	if (bytespersample > 2) bytespersample = 2;	intspersec = daintspersec;	if (intspersec < 1) intspersec = 1;	if (intspersec > 120) intspersec = 120;	kdmqual = daquality;	if (kdmqual < 0) kdmqual = 0;	if (kdmqual > 1) kdmqual = 1;	switch(digistat)	{		case 1:			getsbset();			if (resetsb() != 0) { digistat = musistat = 0; break; }			sbout(0xe1);			sbver = (sbin()<<8);			sbver += sbin();			if (sbver < 0x0201) samplerate = min(samplerate,22050);			if (sbver < 0x0300) numspeakers = 1;			if (sbver < 0x0400)			{				samplerate = min(samplerate,44100>>(numspeakers-1));				bytespersample = 1;			}			if (bytespersample == 2) sbdma = sbdma16; else sbdma = sbdma8;			break;		case 2:			findpas();        // If == -1 then print not found & quit			koutp(0xf8a,128);			break;		case 13:			if (numspeakers == 2) numspeakers = 1;			if (bytespersample == 2) bytespersample = 1;			break;	}	bytespertic = (((samplerate/120)+1)&~1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
风流少妇一区二区| 99在线热播精品免费| 国产精品成人午夜| 91麻豆精品国产自产在线观看一区| 国产999精品久久| 亚洲成人免费看| 成人欧美一区二区三区白人| 欧美一二三在线| 一本大道久久精品懂色aⅴ| 精品在线视频一区| 亚洲亚洲精品在线观看| 国产精品福利av| 久久美女艺术照精彩视频福利播放| 欧美色视频在线观看| 成人一区在线看| 久久99精品国产91久久来源| 午夜精品福利久久久| 国产精品不卡在线观看| www久久精品| 日韩欧美三级在线| 欧美日韩高清在线播放| 色综合久久久久| 波多野结衣91| 成人性生交大片免费看中文 | 国产美女精品一区二区三区| 亚洲国产sm捆绑调教视频 | 亚洲福利视频一区| 中文字幕在线不卡国产视频| 久久久久久久久久久久久夜| 日韩欧美电影一二三| 欧美色手机在线观看| 中文字幕人成不卡一区| 亚洲免费在线看| 国产日韩精品一区二区三区在线| 91精品欧美综合在线观看最新| 色婷婷亚洲综合| 91麻豆精品视频| 波多野结衣一区二区三区| 国产成人av电影在线播放| 黄色资源网久久资源365| 美女任你摸久久| 日韩—二三区免费观看av| 婷婷久久综合九色国产成人| 亚洲国产欧美另类丝袜| 亚洲国产一区二区三区| 亚洲大片一区二区三区| 亚洲国产日韩综合久久精品| 亚洲一区二区3| 午夜亚洲福利老司机| 天堂av在线一区| 美女爽到高潮91| 激情六月婷婷久久| 国产成人精品影视| jlzzjlzz欧美大全| 色综合久久久久综合体桃花网| 在线观看视频欧美| 欧美日韩高清一区二区不卡| 69久久99精品久久久久婷婷 | 91视频免费播放| 色老汉av一区二区三区| 欧美四级电影在线观看| 在线成人免费视频| 精品毛片乱码1区2区3区| 亚洲精品在线三区| 国产精品久久久久久亚洲毛片| 亚洲图片你懂的| 亚洲成人自拍偷拍| 久久国产精品色| 成人国产精品免费观看动漫 | 欧美videossexotv100| 久久久99久久| 亚洲精品视频观看| 美女尤物国产一区| 成人h动漫精品一区二区| 日本高清不卡在线观看| 91麻豆精品国产综合久久久久久 | 成人午夜激情片| 在线观看免费亚洲| 精品美女被调教视频大全网站| 国产精品久久久久影院老司| 一区二区三区在线视频观看| 美女被吸乳得到大胸91| 懂色av中文字幕一区二区三区 | 91精品一区二区三区久久久久久| 国产亚洲精品久| 一二三区精品福利视频| 免费观看在线综合| 99久久精品99国产精品| 欧美一区二区福利视频| 国产精品午夜在线观看| 午夜精品久久久久久久久| 高清不卡在线观看| 欧美巨大另类极品videosbest | 国产精品自拍一区| 在线一区二区三区四区五区| 精品免费国产一区二区三区四区| 中文字幕亚洲一区二区av在线| 日本成人在线视频网站| 91丨九色丨尤物| 久久综合久久鬼色| 肉肉av福利一精品导航| av网站一区二区三区| 精品国产91洋老外米糕| 亚洲va在线va天堂| 91在线你懂得| 国产精品网站在线| 九九热在线视频观看这里只有精品| 一本久久a久久精品亚洲| 欧美国产综合一区二区| 久久精品免费看| 欧美日韩精品欧美日韩精品一| 中文字幕视频一区二区三区久| 精品一区二区三区日韩| 欧美久久久久久久久中文字幕| 亚洲欧美另类图片小说| 国产成人综合网| 精品噜噜噜噜久久久久久久久试看| 亚洲一区在线电影| 91国产免费观看| 亚洲欧洲日韩一区二区三区| 国产二区国产一区在线观看| 日韩午夜激情电影| 亚洲成a人v欧美综合天堂下载 | caoporen国产精品视频| 久久综合成人精品亚洲另类欧美| 日本欧美在线观看| 欧美精品一二三区| 亚洲成人久久影院| 欧美日韩国产片| 亚洲一区二区三区不卡国产欧美| 日本久久电影网| 亚洲激情校园春色| 91欧美一区二区| 亚洲蜜臀av乱码久久精品 | 欧美一级片免费看| 午夜精品成人在线视频| 欧美日韩国产色站一区二区三区| 亚洲午夜精品网| 精品视频全国免费看| 亚洲成人精品一区二区| 欧美精品三级日韩久久| 午夜a成v人精品| 日韩欧美在线不卡| 激情亚洲综合在线| 国产亚洲欧美一区在线观看| 国产+成+人+亚洲欧洲自线| 国产日韩精品一区二区三区 | 国产精品盗摄一区二区三区| 99在线精品免费| 亚洲精品高清视频在线观看| 欧美大白屁股肥臀xxxxxx| 五月天丁香久久| 日韩欧美在线影院| 高清国产午夜精品久久久久久| 国产精品久久午夜夜伦鲁鲁| 9久草视频在线视频精品| 一区二区三区不卡视频在线观看| 欧美三级电影一区| 免费观看日韩av| 国产亚洲一二三区| 一本一道综合狠狠老| 亚洲午夜精品在线| 精品处破学生在线二十三| 成人深夜视频在线观看| 亚洲欧美国产毛片在线| 欧美日韩精品三区| 国内精品伊人久久久久av一坑| 国产欧美一区二区精品秋霞影院 | 久久午夜电影网| 不卡视频在线看| 亚洲成av人片在线观看无码| 日韩精品一区二区三区老鸭窝| 国产高清亚洲一区| 亚洲精品视频自拍| 欧美一级片在线| www..com久久爱| 日韩在线a电影| 国产午夜精品理论片a级大结局| 99久久婷婷国产综合精品| 午夜久久久久久| 国产精品天干天干在观线 | 国产精品视频一二三区| 欧美亚洲国产bt| 国产精品影视网| 亚洲一本大道在线| 国产欧美一二三区| 4438x亚洲最大成人网| 成人一区二区三区视频| 五月婷婷色综合| 日韩一区欧美一区| 欧美成人国产一区二区| 色呦呦国产精品| 国产一区二区视频在线| 亚洲一区二区三区四区五区黄 | 日本午夜精品视频在线观看| 欧美国产综合一区二区| 91精品国产综合久久久蜜臀粉嫩| 国产宾馆实践打屁股91| 免费观看在线色综合| 亚洲线精品一区二区三区|