Added introduction page.
This commit is contained in:
parent
b5f0328beb
commit
37dab8d0b7
|
@ -12,32 +12,13 @@ void main() {
|
||||||
SIOUXSettings.leftpixel = 8;
|
SIOUXSettings.leftpixel = 8;
|
||||||
SIOUXSettings.toppixel = 44;
|
SIOUXSettings.toppixel = 44;
|
||||||
|
|
||||||
printf(
|
|
||||||
"\n\n"
|
|
||||||
"Trouble in Paradise\n"
|
|
||||||
"===================\n\n"
|
|
||||||
"A Macintosh port of \"Trouble in Paradise\" for Windows, made possible by a\n"
|
|
||||||
"generous code donation by Steve Gibson from Gibson Research Corporation.\n\n"
|
|
||||||
"This freeware utility determines whether an Iomega Zip or Jaz drive is prone\n"
|
|
||||||
"to developing the dreaded \"Click of Death\" (COD) syndrome. Steve Gibson's\n"
|
|
||||||
"research into the maintenance, repair and data recovery of Iomega's removable\n"
|
|
||||||
"media mass storage products led to this capability.\n\n"
|
|
||||||
);
|
|
||||||
|
|
||||||
printf( "------------------------------------------------------------------------------\n" );
|
printf( "------------------------------------------------------------------------------\n" );
|
||||||
printf( "This Mac port (c) 2021 Marcio Teixeira http://github.com/marciot/mac-tip\n" );
|
printf( "This Mac port (c) 2021 Marcio Teixeira http://github.com/marciot/mac-tip\n" );
|
||||||
printf( "Based on code (c) 2006 Gibson Research Corp http://grc.com/tip/clickdeath.htm\n" );
|
printf( "Based on code (c) 2006 Gibson Research Corp http://grc.com/tip/clickdeath.htm\n" );
|
||||||
printf( "------------------------------------------------------------------------------\n" );
|
printf( "------------------------------------------------------------------------------\n" );
|
||||||
|
printf("\nStarting tip ...\n");
|
||||||
|
|
||||||
SIOUXSetTitle("\pTrouble in Paradise for Macintosh (" __DATE__ ")");
|
SIOUXSetTitle("\pTrouble in Paradise for Macintosh (" __DATE__ ")");
|
||||||
|
|
||||||
// Confirm that the user wants to run TIP
|
run_tip();
|
||||||
|
|
||||||
char cmd[80];
|
|
||||||
printf("\n\nThis program is in BETA TESTING and may cause data loss!\n\nProceed [Y/N]? ");
|
|
||||||
gets( cmd );
|
|
||||||
if(tolower(cmd[0]) == 'y') {
|
|
||||||
run_tip();
|
|
||||||
printf("\n\nYou may need to REBOOT your Mac before cartridges are recognized by Mac OS.");
|
|
||||||
}
|
|
||||||
}
|
}
|
Binary file not shown.
|
@ -8,6 +8,18 @@
|
||||||
|
|
||||||
#include "tip.h"
|
#include "tip.h"
|
||||||
|
|
||||||
|
#define TITLE_TOP 11
|
||||||
|
#define BODY_TOP 54
|
||||||
|
#define BODY_LEFT 156
|
||||||
|
#define BODY_RIGHT 445
|
||||||
|
#define BODY_BOTTOM 280
|
||||||
|
|
||||||
|
#define BODY_WIDTH (BODY_RIGHT - BODY_LEFT)
|
||||||
|
#define BODY_HEIGHT (BODY_BOTTOM - BODY_TOP)
|
||||||
|
|
||||||
|
#define LOGO_1_LEFT 157
|
||||||
|
#define LOGO_1_TOP 57
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* WinMain
|
* WinMain
|
||||||
*
|
*
|
||||||
|
@ -30,6 +42,22 @@ void WinMain(uint8_t *DrivesSkipped) {
|
||||||
StartApplicationTimer();
|
StartApplicationTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* PAINT 3D HEADLINE
|
||||||
|
*******************************************************************************/
|
||||||
|
void Paint3DHeadline(const char *pszText, int Xleft, int Ytop) {
|
||||||
|
TextSize(24);
|
||||||
|
TextFace(bold);
|
||||||
|
TextFont(helvetica);
|
||||||
|
SetColor(WHITE_COLOR);
|
||||||
|
TextOut(Xleft, Ytop, pszText);
|
||||||
|
SetColor(BLACK_COLOR);
|
||||||
|
TextOut(Xleft+1, Ytop+1, pszText);
|
||||||
|
TextFont(applFont);
|
||||||
|
TextFace(0);
|
||||||
|
TextSize(10);
|
||||||
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* WndProc
|
* WndProc
|
||||||
*
|
*
|
||||||
|
@ -42,17 +70,80 @@ void WndProc(long iMessage, uint16_t wParam) {
|
||||||
if (iMessage == WM_PAINT) {
|
if (iMessage == WM_PAINT) {
|
||||||
// Draw the Lower Horz Button Divider
|
// Draw the Lower Horz Button Divider
|
||||||
|
|
||||||
|
GetDC(hMainWnd);
|
||||||
SetColor(GRAY_COLOR);
|
SetColor(GRAY_COLOR);
|
||||||
MoveTo(15, 289);
|
MoveTo(15, 289);
|
||||||
LineTo(446, 289);
|
LineTo(446, 289);
|
||||||
SetColor(WHITE_COLOR);
|
SetColor(WHITE_COLOR);
|
||||||
LineTo(446, 290);
|
LineTo(446, 290);
|
||||||
LineTo(14, 290);
|
LineTo(14, 290);
|
||||||
|
ReleaseDC(hMainWnd);
|
||||||
|
|
||||||
|
// Draw the Gibson 'G' Logo
|
||||||
|
if(CurrentPage == INTRO_PAGE) {
|
||||||
|
GetDC(hIntroWnd);
|
||||||
|
SetColor(GRAY_COLOR);
|
||||||
|
MoveTo(LOGO_1_LEFT+1, LOGO_1_TOP+29);
|
||||||
|
LineTo(LOGO_1_LEFT+14, LOGO_1_TOP+29);
|
||||||
|
LineTo(LOGO_1_LEFT+14, LOGO_1_TOP+0);
|
||||||
|
SetColor(WHITE_COLOR);
|
||||||
|
LineTo(LOGO_1_LEFT+12, LOGO_1_TOP+0);
|
||||||
|
LineTo(LOGO_1_LEFT+0, LOGO_1_TOP+12);
|
||||||
|
LineTo(LOGO_1_LEFT+0, LOGO_1_TOP+30);
|
||||||
|
|
||||||
|
SetColor(GRAY_COLOR);
|
||||||
|
MoveTo(LOGO_1_LEFT+18, LOGO_1_TOP+14);
|
||||||
|
LineTo(LOGO_1_LEFT+46, LOGO_1_TOP+14);
|
||||||
|
LineTo(LOGO_1_LEFT+46, LOGO_1_TOP+12);
|
||||||
|
LineTo(LOGO_1_LEFT+34, LOGO_1_TOP+0);
|
||||||
|
SetColor(WHITE_COLOR);
|
||||||
|
LineTo(LOGO_1_LEFT+17, LOGO_1_TOP+0);
|
||||||
|
LineTo(LOGO_1_LEFT+17, LOGO_1_TOP+15);
|
||||||
|
|
||||||
|
SetColor(GRAY_COLOR);
|
||||||
|
MoveTo(LOGO_1_LEFT+33, LOGO_1_TOP+46);
|
||||||
|
LineTo(LOGO_1_LEFT+46, LOGO_1_TOP+46);
|
||||||
|
LineTo(LOGO_1_LEFT+46, LOGO_1_TOP+29);
|
||||||
|
LineTo(LOGO_1_LEFT+34, LOGO_1_TOP+17);
|
||||||
|
SetColor(WHITE_COLOR);
|
||||||
|
LineTo(LOGO_1_LEFT+32, LOGO_1_TOP+17);
|
||||||
|
LineTo(LOGO_1_LEFT+32, LOGO_1_TOP+47);
|
||||||
|
|
||||||
|
SetColor(GRAY_COLOR);
|
||||||
|
MoveTo(LOGO_1_LEFT+1, LOGO_1_TOP+35);
|
||||||
|
LineTo(LOGO_1_LEFT+12, LOGO_1_TOP+46);
|
||||||
|
LineTo(LOGO_1_LEFT+29, LOGO_1_TOP+46);
|
||||||
|
LineTo(LOGO_1_LEFT+29, LOGO_1_TOP+32);
|
||||||
|
SetColor(WHITE_COLOR);
|
||||||
|
LineTo(LOGO_1_LEFT+0, LOGO_1_TOP+32);
|
||||||
|
LineTo(LOGO_1_LEFT+0, LOGO_1_TOP+35);
|
||||||
|
|
||||||
|
// show the current logo bitmap
|
||||||
|
SplashTheBitmap();
|
||||||
|
|
||||||
|
// paint the 3D program title
|
||||||
|
Paint3DHeadline(szIntroTitle, BODY_LEFT, TITLE_TOP);
|
||||||
|
|
||||||
|
// now the rest of the stuff ...
|
||||||
|
SetColor(BLACK_COLOR);
|
||||||
|
#define WH_RECT(L,T,W,H) L, T, L + W, T + H
|
||||||
|
|
||||||
|
Rect rect;
|
||||||
|
SetRect(&rect, WH_RECT(221, BODY_TOP, 230, 60));
|
||||||
|
TETextBox(szIntroSubTitle, strlen(szIntroSubTitle), &rect, teFlushDefault);
|
||||||
|
|
||||||
|
SetRect(&rect, WH_RECT(BODY_LEFT, BODY_TOP+64, BODY_WIDTH, 115));
|
||||||
|
TETextBox(szIntroText, strlen(szIntroText), &rect, teFlushDefault);
|
||||||
|
|
||||||
|
ReleaseDC(hIntroWnd);
|
||||||
|
}
|
||||||
|
|
||||||
// Paint the Copyright Notice
|
// Paint the Copyright Notice
|
||||||
|
GetDC(hMainWnd);
|
||||||
SetColor(GRAY_COLOR);
|
SetColor(GRAY_COLOR);
|
||||||
TextOut(15, 298, szCopyright_1);
|
TextOut(15, 298, szCopyright_1);
|
||||||
TextOut(15, 311, szCopyright_2);
|
TextOut(15, 311, szCopyright_2);
|
||||||
|
ReleaseDC(hMainWnd);
|
||||||
}
|
}
|
||||||
// -------------------------------------------------------------------------
|
// -------------------------------------------------------------------------
|
||||||
// WM_COMMAND : a button was pressed
|
// WM_COMMAND : a button was pressed
|
||||||
|
|
|
@ -4,11 +4,18 @@ extern WindowPtr tipWindow;
|
||||||
|
|
||||||
void run_tip();
|
void run_tip();
|
||||||
|
|
||||||
|
typedef enum TipPage {
|
||||||
|
INTRO_PAGE,
|
||||||
|
PERFORM_TEST_PAGE,
|
||||||
|
EXPLAIN_RESULTS,
|
||||||
|
} TipPage;
|
||||||
|
|
||||||
#define MINIMUM_JAZ_SPARES 500
|
#define MINIMUM_JAZ_SPARES 500
|
||||||
#define MAXIMUM_JAZ_SPARES 2557
|
#define MAXIMUM_JAZ_SPARES 2557
|
||||||
#define MINIMUM_ZIP_SPARES 50
|
#define MINIMUM_ZIP_SPARES 50
|
||||||
#define MAXIMUM_ZIP_SPARES 126
|
#define MAXIMUM_ZIP_SPARES 126
|
||||||
|
|
||||||
|
extern TipPage CurrentPage;
|
||||||
extern long CurrentDevice;
|
extern long CurrentDevice;
|
||||||
extern long DriveCount;
|
extern long DriveCount;
|
||||||
extern long JazDrive; // true if the current drive
|
extern long JazDrive; // true if the current drive
|
||||||
|
@ -16,6 +23,7 @@ extern long CartridgeStatus;
|
||||||
extern long LastLBAOnCartridge;
|
extern long LastLBAOnCartridge;
|
||||||
extern uint32_t StartingInstant;
|
extern uint32_t StartingInstant;
|
||||||
extern long NumberOfLBAs;
|
extern long NumberOfLBAs;
|
||||||
|
extern long AdapterMaxSectors;
|
||||||
extern long Side_0_SparesCount; // JAZ has only one count
|
extern long Side_0_SparesCount; // JAZ has only one count
|
||||||
extern long Side_1_SparesCount; // ZIP has counts for both sides
|
extern long Side_1_SparesCount; // ZIP has counts for both sides
|
||||||
extern long Initial_Side_0_Spares;
|
extern long Initial_Side_0_Spares;
|
||||||
|
@ -102,6 +110,8 @@ void StopApplicationTimer();
|
||||||
void PostQuitMessage();
|
void PostQuitMessage();
|
||||||
unsigned long GetSystemTime();
|
unsigned long GetSystemTime();
|
||||||
bool PrepareDC(int which);
|
bool PrepareDC(int which);
|
||||||
|
void SplashTheBitmap();
|
||||||
|
void Paint3DHeadline();
|
||||||
|
|
||||||
#define GetDC(h) {GrafPtr oldPort; \
|
#define GetDC(h) {GrafPtr oldPort; \
|
||||||
GetPort(&oldPort); \
|
GetPort(&oldPort); \
|
||||||
|
@ -144,6 +154,9 @@ enum {
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* STRINGS
|
* STRINGS
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
extern const char *szIntroTitle;
|
||||||
|
extern const char *szIntroSubTitle;
|
||||||
|
extern const char *szIntroText;
|
||||||
|
|
||||||
extern const char *szWindowTitle;
|
extern const char *szWindowTitle;
|
||||||
extern const char *szCopyright_1;
|
extern const char *szCopyright_1;
|
||||||
|
@ -234,6 +247,7 @@ enum {
|
||||||
hExitButton = IDB_QUIT,
|
hExitButton = IDB_QUIT,
|
||||||
hSoundCheckbox,
|
hSoundCheckbox,
|
||||||
// Extras added by MLT
|
// Extras added by MLT
|
||||||
|
hIntroWnd = 5,
|
||||||
hExplainWnd = IDB_EXPL
|
hExplainWnd = IDB_EXPL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -275,6 +289,7 @@ void AllowProgramExit();
|
||||||
void ErrorSound();
|
void ErrorSound();
|
||||||
void ProcessPendingMessages();
|
void ProcessPendingMessages();
|
||||||
void WinMain(uint8_t *DrivesSkipped);
|
void WinMain(uint8_t *DrivesSkipped);
|
||||||
|
void Paint3DHeadline(const char *pszText, int Xleft, int Ytop);
|
||||||
void WndProc(long iMessage, uint16_t wParam);
|
void WndProc(long iMessage, uint16_t wParam);
|
||||||
void TestMonitorWndProc();
|
void TestMonitorWndProc();
|
||||||
void ApplicationTimerProc();
|
void ApplicationTimerProc();
|
||||||
|
|
|
@ -17,17 +17,13 @@
|
||||||
#include "tip.h"
|
#include "tip.h"
|
||||||
#include "command_line.h"
|
#include "command_line.h"
|
||||||
|
|
||||||
enum TipPage {
|
|
||||||
kTestingPage,
|
|
||||||
kExplainPage,
|
|
||||||
} page;
|
|
||||||
|
|
||||||
static int gDone;
|
static int gDone;
|
||||||
static bool allowColor;
|
static bool allowColor;
|
||||||
static bool inited = false;
|
static bool inited = false;
|
||||||
static bool timerEnabled = false;
|
static bool timerEnabled = false;
|
||||||
static WindowPtr tipWindow;
|
static WindowPtr tipWindow;
|
||||||
static MenuHandle tipMenu;
|
static MenuHandle tipMenu;
|
||||||
|
static PicHandle tipIntroPic;
|
||||||
static TBHandle richText;
|
static TBHandle richText;
|
||||||
static const char *textFileName;
|
static const char *textFileName;
|
||||||
|
|
||||||
|
@ -58,15 +54,13 @@ void run_tip() {
|
||||||
|
|
||||||
NewTipWindow();
|
NewTipWindow();
|
||||||
EnableWindow(hTestButton, false);
|
EnableWindow(hTestButton, false);
|
||||||
SetRichEditText(szInstructions);
|
|
||||||
|
|
||||||
gDone = false;
|
gDone = false;
|
||||||
do {
|
do {
|
||||||
EventRecord event;
|
EventRecord event;
|
||||||
if (WaitNextEvent(everyEvent, &event, GetCaretTime(), cursorRgn)) {
|
if (WaitNextEvent(everyEvent, &event, GetCaretTime(), cursorRgn)) {
|
||||||
DoEvent(event, &cursorRgn);
|
DoEvent(event, &cursorRgn);
|
||||||
if(!inited && page == kTestingPage) {
|
if(!inited && CurrentPage == PERFORM_TEST_PAGE) {
|
||||||
printf("Starting tip\n");
|
|
||||||
// Start TIP as soon as the user dismisses the intro screen
|
// Start TIP as soon as the user dismisses the intro screen
|
||||||
inited = true;
|
inited = true;
|
||||||
uint8_t drivesSkipped;
|
uint8_t drivesSkipped;
|
||||||
|
@ -136,7 +130,7 @@ void NewTipWindow() {
|
||||||
|
|
||||||
SetControlValue(FindCntlHandle(IDB_BEEP),1); // Check the sound control
|
SetControlValue(FindCntlHandle(IDB_BEEP),1); // Check the sound control
|
||||||
|
|
||||||
page = kExplainPage;
|
CurrentPage = EXPLAIN_RESULTS;
|
||||||
GetDC(hExplainWnd);
|
GetDC(hExplainWnd);
|
||||||
|
|
||||||
// Create the text edit widget
|
// Create the text edit widget
|
||||||
|
@ -145,7 +139,10 @@ void NewTipWindow() {
|
||||||
|
|
||||||
ReleaseDC(hExplainWnd);
|
ReleaseDC(hExplainWnd);
|
||||||
|
|
||||||
SetPage(kTestingPage);
|
// Load the About box picture
|
||||||
|
tipIntroPic = GetPicture(128);
|
||||||
|
|
||||||
|
SetPage(INTRO_PAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddTipMenus() {
|
void AddTipMenus() {
|
||||||
|
@ -189,11 +186,14 @@ ControlHandle FindCntlHandle(int id) {
|
||||||
bool PrepareDC(int which) {
|
bool PrepareDC(int which) {
|
||||||
SetPort(tipWindow);
|
SetPort(tipWindow);
|
||||||
switch(which) {
|
switch(which) {
|
||||||
|
case hIntroWnd:
|
||||||
|
if(CurrentPage != INTRO_PAGE) return false;
|
||||||
|
break;
|
||||||
case hExplainWnd:
|
case hExplainWnd:
|
||||||
if(page != kExplainPage) return false;
|
if(CurrentPage != EXPLAIN_RESULTS) return false;
|
||||||
break;
|
break;
|
||||||
case hTestMonitor:
|
case hTestMonitor:
|
||||||
if(page != kTestingPage) return false;
|
if(CurrentPage != PERFORM_TEST_PAGE) return false;
|
||||||
SetOrigin(-20, -10);
|
SetOrigin(-20, -10);
|
||||||
break;
|
break;
|
||||||
case hMainWnd:
|
case hMainWnd:
|
||||||
|
@ -320,10 +320,13 @@ void DoMouseDown(EventRecord &event) {
|
||||||
int id = GetControlReference(thisControl);
|
int id = GetControlReference(thisControl);
|
||||||
switch(id) {
|
switch(id) {
|
||||||
case IDB_OKAY:
|
case IDB_OKAY:
|
||||||
SetPage(kTestingPage);
|
SetPage(PERFORM_TEST_PAGE);
|
||||||
break;
|
break;
|
||||||
case IDB_EXPL:
|
case IDB_EXPL:
|
||||||
SetPage(kExplainPage);
|
SetPage(EXPLAIN_RESULTS);
|
||||||
|
break;
|
||||||
|
case IDB_NEXT:
|
||||||
|
SetRichEditText(szInstructions);
|
||||||
break;
|
break;
|
||||||
case IDB_READ:
|
case IDB_READ:
|
||||||
OpenExplanationInSimpleText();
|
OpenExplanationInSimpleText();
|
||||||
|
@ -404,10 +407,21 @@ void StrToPascal(Str255 pStr, const char *str) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetPage(TipPage newPage) {
|
void SetPage(TipPage newPage) {
|
||||||
if(page == newPage) return;
|
if(CurrentPage == newPage) return;
|
||||||
page = newPage;
|
CurrentPage = newPage;
|
||||||
switch(page) {
|
switch(CurrentPage) {
|
||||||
case kTestingPage:
|
case INTRO_PAGE:
|
||||||
|
ShowWindow(IDB_TEST, SW_HIDE);
|
||||||
|
ShowWindow(IDB_BACK, SW_HIDE);
|
||||||
|
ShowWindow(IDB_EXPL, SW_HIDE);
|
||||||
|
ShowWindow(IDB_BEEP, SW_HIDE);
|
||||||
|
ShowWindow(IDB_OKAY, SW_HIDE);
|
||||||
|
ShowWindow(IDB_READ, SW_HIDE);
|
||||||
|
ShowWindow((*richText)->scroll, SW_HIDE);
|
||||||
|
ShowWindow(IDB_QUIT, SW_SHOW);
|
||||||
|
ShowWindow(IDB_NEXT, SW_SHOW);
|
||||||
|
break;
|
||||||
|
case PERFORM_TEST_PAGE:
|
||||||
ShowWindow((*richText)->scroll, SW_HIDE);
|
ShowWindow((*richText)->scroll, SW_HIDE);
|
||||||
ShowWindow(IDB_BACK, SW_HIDE);
|
ShowWindow(IDB_BACK, SW_HIDE);
|
||||||
ShowWindow(IDB_NEXT, SW_HIDE);
|
ShowWindow(IDB_NEXT, SW_HIDE);
|
||||||
|
@ -418,7 +432,7 @@ void SetPage(TipPage newPage) {
|
||||||
ShowWindow(IDB_QUIT, SW_SHOW);
|
ShowWindow(IDB_QUIT, SW_SHOW);
|
||||||
ShowWindow(IDB_BEEP, SW_SHOW);
|
ShowWindow(IDB_BEEP, SW_SHOW);
|
||||||
break;
|
break;
|
||||||
case kExplainPage:
|
case EXPLAIN_RESULTS:
|
||||||
ShowWindow(IDB_TEST, SW_HIDE);
|
ShowWindow(IDB_TEST, SW_HIDE);
|
||||||
ShowWindow(IDB_BACK, SW_HIDE);
|
ShowWindow(IDB_BACK, SW_HIDE);
|
||||||
ShowWindow(IDB_NEXT, SW_HIDE);
|
ShowWindow(IDB_NEXT, SW_HIDE);
|
||||||
|
@ -529,7 +543,7 @@ void SetRichEditText(const char *name) {
|
||||||
TBReadSimpleText(richText, &docSpec);
|
TBReadSimpleText(richText, &docSpec);
|
||||||
|
|
||||||
if (name != szRunning && name != szNotRunning) {
|
if (name != szRunning && name != szNotRunning) {
|
||||||
SetPage(kExplainPage);
|
SetPage(EXPLAIN_RESULTS);
|
||||||
} else {
|
} else {
|
||||||
InvalidateRect(hDefault);
|
InvalidateRect(hDefault);
|
||||||
}
|
}
|
||||||
|
@ -805,3 +819,16 @@ void ProcessPendingMessages() {
|
||||||
}
|
}
|
||||||
SystemTask();
|
SystemTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
* SPLASH THE BITMAP
|
||||||
|
*******************************************************************************/
|
||||||
|
void SplashTheBitmap() {
|
||||||
|
GetDC(hIntroWnd);
|
||||||
|
if(tipIntroPic) {
|
||||||
|
Rect rect;
|
||||||
|
SetRect(&rect, 16, 18, 16+120, 18/*+258*/ +220);
|
||||||
|
DrawPicture(tipIntroPic, &rect);
|
||||||
|
}
|
||||||
|
ReleaseDC(hIntroWnd);
|
||||||
|
}
|
|
@ -128,6 +128,21 @@ ErrorTypeList errorTypeList[] = {
|
||||||
0, 0
|
0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/********** Main Window Controls Text ************/
|
||||||
|
|
||||||
|
const char *szIntroTitle = "Trouble in Paradise";
|
||||||
|
const char *szIntroSubTitle = "FREEWARE by Steve Gibson\r" \
|
||||||
|
"Gibson Research Corporation\r" \
|
||||||
|
"http://grc.com ( v 2.1b )\r" \
|
||||||
|
"http://github.com/marciot/mac-tip";
|
||||||
|
const char *szIntroText =
|
||||||
|
"A Macintosh port of \"TIP\" for Windows by Marcio Teixeira, made possible by a "
|
||||||
|
"generous code donation by Steve Gibson.\r\r"
|
||||||
|
"This freeware utility determines whether an Iomega Zip or Jaz drive is prone "
|
||||||
|
"to developing the dreaded \"Click of Death\" syndrome. Gibson's "
|
||||||
|
"research into the maintenance, repair and data recovery of Iomega's removable "
|
||||||
|
"media mass storage products led to this capability.";
|
||||||
|
|
||||||
/****************** Control Text *****************/
|
/****************** Control Text *****************/
|
||||||
|
|
||||||
const char *szBack = "< Back";
|
const char *szBack = "< Back";
|
||||||
|
|
Loading…
Reference in New Issue