亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
色乱码一区二区三区88| 一区二区三区不卡视频在线观看| 国产三级一区二区三区| 国产精品美女一区二区三区 | 国产美女主播视频一区| 国产成人小视频| 91国在线观看| 欧美xxxxx牲另类人与| 国产欧美日韩中文久久| 亚洲一区二区三区四区不卡| 国产真实乱子伦精品视频| 成人精品国产一区二区4080| 欧洲日韩一区二区三区| 精品国产免费久久| 18成人在线观看| 丝袜美腿亚洲色图| 成人av影视在线观看| 欧美精品日韩精品| 国产精品久久一卡二卡| 日韩av二区在线播放| heyzo一本久久综合| 日韩女优av电影在线观看| 成人欧美一区二区三区黑人麻豆 | 日韩精品一区二区三区四区 | 欧美三日本三级三级在线播放| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲精品第1页| 国产成人亚洲综合色影视 | 久久99精品久久久| 日本道精品一区二区三区| 久久综合成人精品亚洲另类欧美| 亚洲精品成人精品456| 国产乱码精品一区二区三区av| 精品视频一区二区三区免费| 国产精品青草久久| 免费成人av在线播放| 色偷偷久久一区二区三区| 久久女同互慰一区二区三区| 偷拍自拍另类欧美| 色综合久久六月婷婷中文字幕| 国产无遮挡一区二区三区毛片日本| 视频一区二区中文字幕| 99re8在线精品视频免费播放| 久久综合999| 日产国产高清一区二区三区| 91国偷自产一区二区开放时间 | 亚洲一区日韩精品中文字幕| av一本久道久久综合久久鬼色| 日韩午夜在线观看| 日韩一二在线观看| 亚洲一区欧美一区| 色综合天天性综合| 国产精品人妖ts系列视频| 国产一区二区免费在线| 日韩精品一区二区三区中文精品| 日韩电影在线观看网站| 91国在线观看| 亚洲综合激情小说| 99riav久久精品riav| 久久综合999| 久久国产免费看| 欧美一区三区四区| 午夜电影一区二区| 欧美午夜一区二区三区免费大片| 亚洲视频小说图片| 99精品偷自拍| 欧美精品三级日韩久久| 日韩激情视频网站| 欧美精品亚洲二区| 青草av.久久免费一区| 91精品一区二区三区久久久久久| 亚洲第一福利一区| 欧美挠脚心视频网站| 天堂一区二区在线免费观看| 欧美日韩在线综合| 石原莉奈在线亚洲二区| 欧美高清hd18日本| 国产精品伦一区| 成人福利视频在线看| 国产精品成人网| 91蝌蚪国产九色| 亚洲综合999| 欧美浪妇xxxx高跟鞋交| 日韩电影一区二区三区四区| 欧美一区二区三区免费在线看 | 精品国产乱码久久久久久久| 男人的j进女人的j一区| 99久久久国产精品免费蜜臀| 亚洲精品乱码久久久久久久久 | 老鸭窝一区二区久久精品| 精品国产伦理网| 国产激情一区二区三区四区| 国产精品网站在线| 一本高清dvd不卡在线观看| 精品日韩欧美一区二区| 国产成人在线免费| 亚洲精品免费在线观看| 欧美乱妇23p| 国产在线看一区| 亚洲欧洲日韩综合一区二区| 在线观看一区不卡| 蜜桃视频一区二区| 欧美国产精品中文字幕| 91免费国产视频网站| 天天综合天天做天天综合| 精品少妇一区二区三区免费观看| 一级中文字幕一区二区| 91精品久久久久久久99蜜桃 | 中文字幕亚洲不卡| 欧美日韩在线一区二区| 国产精品一区二区久久不卡| 亚洲欧美另类久久久精品| 91麻豆精品国产91久久久久| 国产一区二区91| 亚洲主播在线播放| 精品国产乱码久久久久久影片| 91在线精品秘密一区二区| 国产目拍亚洲精品99久久精品| 色悠久久久久综合欧美99| 日韩不卡在线观看日韩不卡视频| 久久久国产午夜精品| 欧美亚洲综合在线| 国产麻豆视频一区二区| 亚洲欧洲中文日韩久久av乱码| 欧美日本乱大交xxxxx| 国产成人无遮挡在线视频| 亚洲成人av免费| 日本在线不卡一区| 久久久久久久久免费| 欧美亚洲一区三区| 国产精品成人一区二区三区夜夜夜| 欧美日韩亚洲综合一区二区三区 | 国产精品久久久久一区二区三区| 日本电影欧美片| 国产91丝袜在线播放0| 亚洲bt欧美bt精品777| 久久精品国产澳门| 亚洲欧美电影一区二区| 26uuu另类欧美亚洲曰本| 欧美亚洲丝袜传媒另类| 国产91在线|亚洲| 奇米影视一区二区三区| 亚洲精品videosex极品| 国产人伦精品一区二区| 欧美一级视频精品观看| 欧美在线你懂得| 国产精品一二一区| 日本不卡不码高清免费观看| 亚洲黄一区二区三区| 国产精品网站在线观看| 久久影音资源网| 91精品婷婷国产综合久久竹菊| 在线区一区二视频| av不卡免费在线观看| 国产一区二区91| 久久99精品国产.久久久久久| 午夜精品久久久久久久蜜桃app | 欧洲一区在线电影| 99re66热这里只有精品3直播| 国产一区高清在线| 日本视频免费一区| 亚洲mv在线观看| 一区二区三区四区不卡在线| 国产精品乱码一区二三区小蝌蚪| 久久综合av免费| 久久综合久久综合九色| 欧美一级艳片视频免费观看| 91 com成人网| 欧美丰满嫩嫩电影| 欧美日韩国产高清一区| 欧美色网站导航| 欧美亚洲国产一区在线观看网站| 99re视频这里只有精品| 91啪在线观看| 成人av网站大全| 成人精品高清在线| 99精品视频在线观看| 9久草视频在线视频精品| 成人app网站| 亚洲国产日韩一区二区| 亚洲精品中文在线观看| 亚洲猫色日本管| 伊人婷婷欧美激情| 一区二区三区精品视频在线| 精品久久久久久久久久久久包黑料 | 久久久高清一区二区三区| 欧美精品一区二区三区在线| 精品国产一区二区三区不卡| 精品1区2区在线观看| 久久亚洲综合av| 国产欧美日韩另类视频免费观看| 久久先锋资源网| 色综合久久66| 欧美视频中文字幕| 国内成+人亚洲+欧美+综合在线 | 国产精品久久三| 亚洲欧美色图小说| 亚洲韩国精品一区| 日日夜夜精品视频免费 | 国产清纯在线一区二区www|