#define ENDSTR1	"Heroes don't quit, but\ngo ahead and press Y\nif you aren't one."
#define ENDSTR2	"Press Y to quit,\nor press N to enjoy\nmore violent diversion."
#define ENDSTR3	"Depressing the Y key means\nyou must return to the\nhumdrum workday world."
#define ENDSTR4	"Hey, quit or play,\nY or N:\nit's your choice."
#define ENDSTR5	"Sure you don't want to\nwaste a few more\nproductive hours?"
#define ENDSTR6	"I think you had better\nplay some more. Please\npress N...please?"
#define ENDSTR7	"if you are tough, press N.\nif not, press Y daintily."
#define ENDSTR8	"I'm thinkin' that\nyou might wanna press N\nto play more. You do it."
#define ENDSTR9	"Sure. Fine. Quit.\nSee if we care.\nGet it over with.\nPress Y."

#define STR_ENDGAME1	"We owe you a great debt, Mr. Blazkowicz."
#define STR_ENDGAME2	"You have served your country well."
#define STR_ENDGAME3	"With the spear gone, the Allies will finally"
#define STR_ENDGAME4	"by able to destroy Hitler..."

#define STR_COPY1		"That's close, but not close enough to get"
#define STR_COPY2		"you into the game."

#define STR_COPY3		"Wow, you must have the early version of the"
#define STR_COPY4		"manual with the totally false information in it."

#define STR_COPY5		"I would let you into the game, but seeing"
#define STR_COPY6		"as that was not at all the right answer..."

#define STR_COPY7		"It's just too bad we can't get together on"
#define STR_COPY8		"this one.  Sorry."

#define STR_COPY9		"Hey, you're just SO off base!"

#define STR_COPY10		"You know, I once typed that myself when"
#define STR_COPY11		"I was your age."

#define STR_COPY12		"Nops.  Zero points.  Zugga."

#define STR_COPY13		"Yeah...right."

#define STR_COPY14		"You must like these quizzes."

#define STR_COPY15		"Could be called \"PixelMeister\"?"

#define STR_COPY16		"Might engineer some software?"

#define STR_COPY17		"Would be found"
#define STR_COPY18		"directing creatively?"

#define STR_COPY19		"Might be found"
#define STR_COPY20		"handling operations?"

#define STR_COPY21		"Has a name familiar"
#define STR_COPY22		"to your weatherman?"

#define STR_NOPE1		"Welcome to the DOS prompt, pirate!"
#define STR_NOPE2		"Eat hot DOS prompt, goober!"
#define STR_NOPE3		"Ya know, this program doesn't cost that much."
#define STR_NOPE4		"Hey...weren't you just AT this DOS prompt?"
#define STR_NOPE5		"What's a nice user like you doin' at a DOS prompt like this?"
#define STR_NOPE6		"Well, I'm sure you just \"misplaced\" the manual..."
#define STR_NOPE7		"Run me again when you've boned up on your manual a bit."
#define STR_NOPE8		"Nice try, but no Spear."
#define STR_NOPE9		"That information is in the Spear of Destiny manual, by the way."

#define STR_MISC1		"Under \"Killing the Enemy\", what"
#define STR_MISC2		"type of enemy is pictured?"

#define STR_MISC3		"How many eyelets are on B.J.'s"
#define STR_MISC4		"boots? (see page 2)"

#define STR_MISC5		"The word \"minister\" appears in"
#define STR_MISC6		"what gray shape on page 2?"

#define STR_MISC7		"How many bullets does B.J. have"
#define STR_MISC8		"on the screen-shot in the middle"
#define STR_MISC9		"of page 9?"

#define STR_STAR	"star"
#define STR_DEBRIEF	" DEBRIEFING\n SESSION\n"
#define STR_ENEMY1	"Name the member of the"
#define STR_ENEMY2	"enemy forces shown above"

#define STR_CHECKMAN	"CHECK YER MANUAL!"
#define STR_MAN1	"Which manual page"
#define STR_MAN2	"is the Options Menu"
#define STR_MAN3	"function"
#define STR_MAN4	"on?"

#define STR_ID1		"Which member of Id Software:"

#define QUITSUR	"Are you sure you want\n"\
		"to quit this great game?"

#define CURGAME	"You are currently in\n"\
		"a game. Continuing will\n"\
		"erase old game. Ok?"

#define GAMESVD	"There's already a game\n"\
		"saved at this position.\n"\
		"      Overwrite?"

#define ENDGAMESTR	"Are you sure you want\n"\
					"to end the game you\n"\
					"are playing? (Y or N):"

#define STR_NG	"New Game"
#define	STR_SD	"Sound"
#define	STR_CL	"Control"
#define	STR_LG	"Load Game"
#define	STR_SG	"Save Game"
#define	STR_CV	"Change View"
#define	STR_VS	"View Scores"
#define STR_EG	"End Game"
#define	STR_BD	"Back to Demo"
#define STR_QT	"Quit"

#define STR_LOADING	"Loading"
#define STR_SAVING	"Saving"

#define STR_GAME	"Game"
#define STR_DEMO	"Demo"
#define STR_LGC		"Load Game called\n\""
#define STR_EMPTY	"empty"
#define STR_CALIB	"Calibrate"
#define STR_JOYST	"Joystick"
#define STR_MOVEJOY	"Move joystick to\nupper left and\npress button 0\n"
#define STR_MOVEJOY2 "Move joystick to\nlower right and\npress button 1\n"
#define STR_ESCEXIT	"ESC to exit"

#define STR_NONE	"None"
#define	STR_PC		"PC Speaker"
#define	STR_ALSB	"AdLib/Sound Blaster"
#define	STR_DISNEY	"Disney Sound Source"
#define	STR_SB		"Sound Blaster"

#define	STR_MOUSEEN	"Mouse Enabled"
#define	STR_JOYEN	"Joystick Enabled"
#define	STR_PORT2	"Use joystick port 2"
#define	STR_GAMEPAD	"Gravis GamePad Enabled"
#define	STR_SENS	"Mouse Sensitivity"
#define	STR_CUSTOM	"Customize controls"

#define	STR_DADDY	"Can I play, Daddy?"
#define	STR_HURTME	"Don't hurt me."
#define	STR_BRINGEM	"Bring 'em on!"
#define	STR_DEATH	"I am Death incarnate!"

#define	STR_MOUSEADJ	"Adjust Mouse Sensitivity"
#define STR_SLOW	"Slow"
#define STR_FAST	"Fast"

#define	STR_CRUN	"Run"
#define STR_COPEN	"Open"
#define STR_CFIRE	"Fire"
#define STR_CSTRAFE	"Strafe"

#define	STR_LEFT	"Left"
#define	STR_RIGHT	"Right"
#define	STR_FRWD	"Frwd"
#define	STR_BKWD	"Bkwrd"
#define	STR_THINK	"Thinking"

#define STR_SIZE1	"Use arrows to size"
#define STR_SIZE2	"ENTER to accept"
#define STR_SIZE3	"ESC to cancel"

#define STR_YOUWIN	"you win!"

#define STR_TOTALTIME	"total time"

#define STR_RATKILL		    "kill    %"
#define STR_RATSECRET  	  "secret    %"
#define STR_RATTREASURE	"treasure    %"

#define STR_BONUS	"bonus"
#define STR_TIME	"time"
#define STR_PAR		" par"

#define STR_RAT2KILL            "kill ratio    %"
#define STR_RAT2SECRET  	  "secret ratio    %"
#define STR_RAT2TREASURE	"treasure ratio    %"

#define STR_DEFEATED	"defeated!"

#define STR_CHEATER1	"You now have 100% Health,"
#define STR_CHEATER2    "99 Ammo and both Keys!"
#define STR_CHEATER3	"Note that you have basically"
#define STR_CHEATER4	"eliminated your chances of"
#define STR_CHEATER5	"getting a high score!"

#define STR_NOSPACE1	"There is not enough space"
#define STR_NOSPACE2	"on your disk to Save Game!"

#define STR_SAVECHT1	"Your Save Game file is,"
#define STR_SAVECHT2	"shall we say, \"corrupted\"."
#define STR_SAVECHT3	"But I'll let you go on and"
#define STR_SAVECHT4	"play anyway...."

#define	STR_SEEAGAIN	"Let's see that again!"

///////////////////////////////////////////////////////////////////////////
//
//	SDL_CheckSB() - Checks to see if a SoundBlaster resides at a
//		particular I/O location
//
///////////////////////////////////////////////////////////////////////////
static boolean
SDL_CheckSB(int port)
{
	int	i;

	sbLocation = port << 4;		// Initialize stuff for later use

	sbOut(sbReset,true);		// Reset the SoundBlaster DSP
asm	mov	dx,0x388				// Wait >4usec
asm	in	al, dx
asm	in	al, dx
asm	in	al, dx
asm	in	al, dx
asm	in	al, dx
asm	in	al, dx
asm	in	al, dx
asm	in	al, dx
asm	in	al, dx

	sbOut(sbReset,false);		// Turn off sb DSP reset
asm	mov	dx,0x388				// Wait >100usec
asm	mov	cx,100
usecloop:
asm	in	al,dx
asm	loop usecloop

	for (i = 0;i < 100;i++)
	{
		if (sbIn(sbDataAvail) & 0x80)		// if data is available...
		{
			if (sbIn(sbReadData) == 0xaa)	// if it matches correct value
				return(true);
			else
			{
				sbLocation = -1;			// Otherwise not a SoundBlaster
				return(false);
			}
		}
	}
	sbLocation = -1;						// Retry count exceeded - fail
	return(false);
}

///////////////////////////////////////////////////////////////////////////
//
//	Checks to see if a SoundBlaster is in the system. if the port passed is
//		-1, then it scans through all possible I/O locations. if the port
//		passed is 0, then it uses the default (2). if the port is >0, then
//		it just passes it directly to SDL_CheckSB()
//
///////////////////////////////////////////////////////////////////////////
static boolean
SDL_DetectSoundBlaster(int port)
{
	int	i;

	if (port == 0)					// if user specifies default, use 2
		port = 2;
	if (port == -1)
	{
		if (SDL_CheckSB(2))			// Check default before scanning
			return(true);

		if (SDL_CheckSB(4))			// Check other SB Pro location before scan
			return(true);

		for (i = 1;i <= 6;i++)		// Scan through possible SB locations
		{
			if ((i == 2) || (i == 4))
				continue;

			if (SDL_CheckSB(i))		// if found at this address,
				return(true);		//	return success
		}
		return(false);				// All addresses failed, return failure
	}
	else
		return(SDL_CheckSB(port));	// User specified address or default
}