PDA

View Full Version : Calling all programmers!


scottg26
04-02-02, 09:21 PM
unit Calculatoru;

{ Program : Calculator
Author : Scott Graham
Purpose : Performs calculations such as add, subtract, multiply
and divide on two numbers entered in the edit boxes
Limitations : If letters are entered, program crashes
BSOD may result if numbers entered are too large
Modification History
Version Date Person Description
1.0 2/3/2002 SG Started Program
1.1 2/3/2002 SG All buttons work
1.2 2/3/2002 SG Added Stars (***) between procedures
Comments :
}

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TfrmCalculator = class(TForm)
lbltitle: TLabel;
lblnumber1: TLabel;
edtnumber1: TEdit;
lblnumber2: TLabel;
edtnumber2: TEdit;
btnplus: TButton;
lblminus: TButton;
Button2: TButton;
lbltimes: TButton;
lblresult: TLabel;
edtresult: TEdit;
btnexit: TButton;
procedure btnplusClick(Sender: TObject);
procedure lblminusClick(Sender: TObject);
procedure lbltimesClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure btnexitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmCalculator: TfrmCalculator;

implementation

{$R *.dfm}

//************************************************** ***************************
//This is the code to add the numbers when the "+" button is clicked
procedure TfrmCalculator.btnplusClick(Sender: TObject);

var
nnumber1, nnumber2, nresult: single;

begin

nnumber1 := StrToFloat(edtnumber1.Text);
nnumber2 := StrToFloat(edtnumber2.Text);
nresult := nnumber1 + nnumber2;
edtresult.Text := FloatToStr(nresult);


end;

//************************************************** ***************************
//This is the code to subtract the numbers when the "-" button is clicked
procedure TfrmCalculator.lblminusClick(Sender: TObject);

var
nnumber1, nnumber2, nresult: single;

begin

nnumber1 := StrToFloat(edtnumber1.Text);
nnumber2 := StrToFloat(edtnumber2.Text);
nresult := nnumber1 - nnumber2;
edtresult.Text := FloatToStr(nresult);

end;

//************************************************** ***************************
//This is the code to multiply the numbers when the "x" button is clicked
procedure TfrmCalculator.lbltimesClick(Sender: TObject);

var
nnumber1, nnumber2, nresult: single;

begin

nnumber1 := StrToFloat(edtnumber1.Text);
nnumber2 := StrToFloat(edtnumber2.Text);
nresult := nnumber1 * nnumber2;
edtresult.Text := FloatToStr(nresult);

end;

//************************************************** ***************************
//This is the code to divide the numbers when the "/" button is clicked
procedure TfrmCalculator.Button2Click(Sender: TObject);

var
nnumber1, nnumber2, nresult: single;

begin

nnumber1 := StrToFloat(edtnumber1.Text);
nnumber2 := StrToFloat(edtnumber2.Text);
nresult := nnumber1 / nnumber2;
edtresult.Text := FloatToStr(nresult);

end;

//************************************************** ***************************
//The code for the Exit button
procedure TfrmCalculator.btnexitClick(Sender: TObject);
begin

Close;

end;

end.

NiDan
04-02-02, 10:03 PM
what language is that written in.. kinda looks like pascal.



later...

merlin262
04-02-02, 10:06 PM
Nooooooooo gawd


C is the only way to enlightenment!


REPENT EVIL DOERS YOUR DAY OF JUDGEMENT IS AT HAND!

C SHALT PREVAIL!

scottg26
04-02-02, 10:28 PM
Its Delphi 6 by Borland, which is Object Orieneted pascal or something

ive only been doing programming for 5 weeks (if u don't count my previous efforts in BASIC, you know what im talking about :D)
so i don't really know anything. we do C later
i can do a loop and an array and read numbers from a file and maniplulate them.

JF_Aidan_Pryde
04-02-02, 10:34 PM
heheh, we just started Haskell (pure functional programming) so I can't really help. All I can tell is the difference between code and "comments." And "comments is good style! :D

scottg26
04-02-02, 10:40 PM
lol, gotta love comments :D

scottg26
04-02-02, 10:42 PM
here is another one:

unit NumberProgramu;

{************************************************* *****************************
Program : Number Program
Author : Scott Graham
Purpose : Shows whether an inputted number is positive, negative, or zero
Limitations : Program crashes if no value entered, or if it is too large/small
Modification History
Version Date Person Description
1.0 4/3/2002 SG Design Form, Exit button works
1.1 4/3/2002 SG Program works
************************************************** *****************************}

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TfrmNumberProgram = class(TForm)
btnTellme: TButton;
btnExit: TButton;
lblEnter: TLabel;
edtNumberinput: TEdit;
lblResultlabel: TLabel;
lblResultactual: TLabel;
procedure btnExitClick(Sender: TObject);
procedure btnTellmeClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmNumberProgram: TfrmNumberProgram;

implementation

{$R *.dfm}

//************************************************** ***************************
// Code for the Exit button

procedure TfrmNumberProgram.btnExitClick(Sender: TObject);
begin
Close;
end;

//************************************************** ***************************
procedure TfrmNumberProgram.btnTellmeClick(Sender: TObject);

// One variable, iNumber, to store the inputted number
var
iNumber: integer;

begin
// Read the number
iNumber := StrToInt(edtNumberinput.Text);

// Is the number negative?
if iNumber < 0 then
begin
lblResultactual.Caption := 'Negative'
end

// Is number zero?
else if iNumber = 0 then
begin
lblResultactual.Caption := 'Zero'
end

//If number is not negative or zero, it must be positive
else
begin
lblResultactual.Caption := 'Positive'
end;

end;

end.



and in the program in the original post, if u enter a REALLY high number like 111111111111111111111111111 the program will give you a BSOD. and CTRL + ALT + DEL becomes your friend :D

OMAC
04-03-02, 08:05 AM
Very cool, I've been learning for about 2 months, here's a little diddy to draw a white window in OpenGl (doesn't work though-2 errors when compiling)


#ifdef_FLAT_
#include <windows.h>
#include <GL/glut.h>

//Initialize and create OpenGL Window
int main (argc, char** argv)
{
glInit (&arge, argv);
glInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glInitWindowSize (400, 100);
glInitWindowPosition (100, 100);
glCreateWindow ("First openGL Window");

int() ;
glDisplayFunc (display) ;

gl MainLoop () ;

return (0) ;

}

//Set color(white) and shade mode(flat or smooth)
void init(void);
{
glClearColor (1.0, 1.0, 1.0, 0.0);
glShadeMode(GL_FLAT);
}

NiDan
04-03-02, 08:25 AM
Originally posted by scottg26
if u enter a REALLY high number like 111111111111111111111111111 the program will give you a BSOD. and CTRL + ALT + DEL becomes your friend

does delphi automatically allow you to use larger than 32-bit numbers, cuz i'm pretty sure that guy up there is bigger than 2^32 (4 billion and some change) and that x86 processors need special instructions to handle >32 bit numbers. that's a register overflow, so your processor is not happy which is why windows would not be happy.... unless you've got a 64-bit processor :D then i've got no clue.


later...

FluxCapacitor
04-03-02, 08:36 AM
Uhh... way to go scott. I have no idea what that says, I'm strictly a C and Python man.

EgonOlsen
04-03-02, 11:04 AM
Do we have "post your code"-day? Should i contribute? How much text can this message-board handle...:P ??

Blackadder
04-03-02, 11:14 AM
pffft. bloody B.Info.Tech(prog.) students.


B.App.Sci.(Mic.Bio.) ownz joo!


what?

oh, you don't know WTF I'm talking about?

ok, I'll buggeroff now.


:D

scottg26
04-03-02, 03:08 PM
Originally posted by OMAC
Very cool, I've been learning for about 2 months, here's a little diddy to draw a white window in OpenGl (doesn't work though-2 errors when compiling)


#ifdef_FLAT_
#include <windows.h>
#include <GL/glut.h>

//Initialize and create OpenGL Window
int main (argc, char** argv)
{
glInit (&arge, argv);
glInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glInitWindowSize (400, 100);
glInitWindowPosition (100, 100);
glCreateWindow ("First openGL Window");

int() ;
glDisplayFunc (display) ;

gl MainLoop () ;

return (0) ;

}

//Set color(white) and shade mode(flat or smooth)
void init(void);
{
glClearColor (1.0, 1.0, 1.0, 0.0);
glShadeMode(GL_FLAT);
}

whats that written it?

El Capitano
04-03-02, 04:56 PM
One problem I always have is I write code, leave it for months, come back to it and realise either it makes little/no sense, or it's so nasty and kludgy I practically have to rewrite it from scratch.

It's the holidays now and I've been trying to pick up one of my projects again, it's a client for an IM system called Jabber. Jabber uses XML and I couldn't find a decent object oriented parser, so I wrote one for myself. I knew nothing of file parsing, other than simple stuff, so I hacked at it until it worked, and boy is it a mess!. Here's a good example of some of the nasty code:

else {
cout << "Not self-closing, must have some content\n";
// Strip out first tag
cout << *tag << endl << "Stripping out first tag" << endl;
tag->replace(0, tag->find(">") + 1, "");
cout << *tag << endl;
cout << tag->at(0) << endl;
if (tag->at(0) == '<') cout << "Found < " << endl;
while (tag->at(0) != '<') {
content += tag->at(0);
tag->replace(0, 1, "");
}
cout << "Content: " << content << endl;
convertContent();
}
I've got an idea what it does, but it's nasty and I think a lot of it was written to avoid silly crashes. Since I'm doing a module on implementing programming languages, I'm a lot more savvy about these things now and I think I'll just rewrite the entire class from scratch.

El Capitano
04-03-02, 04:58 PM
Originally posted by scottg26
whats that written it?
It's C Scott. Personally, I'd go with C++ just for the sting class :)

Cop
04-03-02, 05:17 PM
Hey Scott, post the source code for Counter Angle :D

G6-200
04-03-02, 05:50 PM
I've written reams of this type of code:


(defun trans_blkpt (mx pnt)
(mapcar
'(lambda(var m)
(set var (+(*(car pnt)(car m))
(*(cadr pnt)(cadr m))
(*(caddr pnt)(caddr m))
(cadddr m)))
)
'(x y z)
(list(car mx)(cadr mx)(caddr mx))
)
(list x y z)
)


Anyone recognize the language?

G6

El Capitano
04-03-02, 06:12 PM
Originally posted by G6-200
Anyone recognize the language?

G6
No, not Scheme! Please, anything but Scheme! Oh, the memories, the horror, the untolled misery and death it left in its wake! OK, I'm being overdrammatic, but I hate scheme.

Sorting out broken tag

scottg26
04-03-02, 06:57 PM
Originally posted by Cop
Hey Scott, post the source code for Counter Angle :D

I would but i accidentally deleted the source code :(

So the next version (BETA 2) will be written in Delphi 6, once i learn some more. i might even use Kylix or something and make it for Linux too. w00t! multi platform!!!!!!!!!!! :D

Didn't you wonder why there havent been any updates for it yet? :D

G6-200
04-03-02, 07:10 PM
Originally posted by El Capitano

No, not Scheme! Please, anything but Scheme! Oh, the memories, the horror, the untolled misery and death it left in its wake! OK, I'm being overdrammatic, but I hate scheme.


Sorry, didn't mean to traumatize you there! :D
The above code is Auto-LISP for AutoCAD, Scheme also appears to be a subset of the LISP programming language.

G6

bonnes_1
04-03-02, 08:37 PM
Sorry none of that code beats my one that wrote "12" one million times in a text document!!!!!!!! It 0wnz j00 !!!!!!!!!!

Here's a sample:
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12

:D

OMAC
04-04-02, 11:02 AM
How do you make the address bar remember where you've been on this little program? cboURL is the texbox I'm using for the address bar.


small web browser in VB:

Private Sub Command5_Click()

End Sub

Private Sub cboURL_()

End Sub

Private Sub cboURL_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then
wWeb.Navigate cboURL.Text
End If
End Sub

Private Sub cmdBack_Click()
wWeb.GoBack
End Sub

Private Sub cmdForward_Click()
wWeb.GoForward
End Sub

Private Sub cmdHome_Click()
wWeb.GoHome
End Sub

Private Sub cmdStop_Click()
wWeb.Stop
End Sub

Private Sub Command1_Click()
wWeb.Navigate cboURL.Text
End Sub






My DSL has been down, that first prog I posted was written in C..............been messing with JAVA and HTML, all of the coding seems to follow the C structure/syntax

scottg26
04-04-02, 04:17 PM
sorry, but im only a beginner in Delphi and know nothing about C.
I can drawe triangles and circles in BASIC though! :)

EgonOlsen
04-04-02, 04:56 PM
JAVA is missing here, isn't it. A little part of my renderer code:

void doLightingCullingAndClipping(float mx, float my, float scalex, float scaley, float divx, float divy) {

final float viewplane=1;
int ViewSector=myWorld.Portals.ViewSector;
int saved=0;
int lowerx=0;
int higherx=0;
int lowery=0;
int highery=0;
int lastSec=-1;
int i=0;
int culled=0;

int xsize=((int)mx<<1)-1;
int ysize=((int)my<<1)-1;

float rDistFog=0;
float gDistFog=0;
float bDistFog=0;

float px=0f;
float py=0;

float p1x;
float p1y;
float p1z=0;

float p2x;
float p2y;
float p2z=0;

float p3x;
float p3y;
float p3z=0;

float n=0;

float p1zh;
float p2zh;
float p3zh;

float vx;
float vy;
float vz;

float wx;
float wy;
float wz;

float pxk;
float pyk;
float pzk;

float q=0;
float ln=0;

float firstU;
float firstV;
float secondU;
float secondV;
float thirdU;
float thirdV;

float lightDiv=config.linearDiv;

boolean clipped=false;

if (config.useObb && hasBb && config.useFrustumCulling) {

int obbXpClipped=0;
int obbXnClipped=0;
int obbYnClipped=0;
int obbYpClipped=0;
int obbZClipped=0;
int obbViewSec=0;

for (int p=obbStart; p<=obbEnd; p++) {

p1x=objVectors.xTr[p];
p1y=objVectors.yTr[p];
p1z=objVectors.zTr[p];

if (config.useFrustumCulling) {

if (objVectors.vertexSector[p]==ViewSector) {
obbViewSec++; // Zhlt, ob OBB ganz im ViewSector liegt
}

if (p1z<0) {
obbZClipped++;
} else {
p1zh=p1z*divx;
if (p1x<-p1zh) {
obbXnClipped++;
} else {
if (p1x>p1zh) {
obbXpClipped++;
}
else {
p1zh=p1z*divy;
if (p1y<-p1zh) {
obbYnClipped++;
} else {
if (p1y>p1zh) {
obbYpClipped++;
}
}
}
}
}
}
}

int obbDif=obbEnd+1-obbStart;
if ((obbYpClipped==obbDif)||(obbXpClipped==obbDif)||
(obbYnClipped==obbDif)||(obbXnClipped==obbDif)) {
clipped=true;
}
else {
if (obbViewSec!=obbDif && config.doPortalHsr) {
clipped=!myWorld.Portals.testObbAgainstPortals(thi s,mx,my,scalex,scaley);
}
else {
clipped=false;
}
}

}

if (!clipped) {

do {

boolean visok=true;

if (!oneSectorOnly && lastSec!=sector[i] && config.doPortalHsr) {

visok=false;

while (i<anzTri&&!visok) {
visok=myWorld.Portals.isSectorVisible(this,i);
if (!visok) {
i=sectorStartPoly[sector[i]+1];
}
}
}

lastSec=sector[i];

if (visok) {

clipped=false;

int p2=objVectors.coords[points[i][2]];
int p0=objVectors.coords[points[i][0]];
int p1=objVectors.coords[points[i][1]];

p1x=objVectors.xTr[p2];
p1y=objVectors.yTr[p2];
p1z=objVectors.zTr[p2];
p2x=objVectors.xTr[p1];
p2y=objVectors.yTr[p1];
p2z=objVectors.zTr[p1];
p3x=objVectors.xTr[p0];
p3y=objVectors.yTr[p0];
p3z=objVectors.zTr[p0];

if (config.useFrustumCulling) {

p1zh=p1z*divx;
p2zh=p2z*divx;
p3zh=p3z*divx;

if (((p1x<-p1zh)&&
(p2x<-p2zh)&&
(p3x<-p3zh))||
((p1x>p1zh)&&
(p2x>p2zh)&&
(p3x>p3zh))) {
clipped=true;
q=1;
culled++;
}
else {

p1zh=p1z*divy;
p2zh=p2z*divy;
p3zh=p3z*divy;

if (((p1y<-p1zh)&&
(p2y<-p2zh)&&
(p3y<-p3zh))||
((p1y>p1zh)&&
(p2y>p2zh)&&
(p3y>p3zh))) {
clipped=true;
q=1;
culled++;
}
}
}

if (p1z<viewplane&&p2z<viewplane&&p3z<viewplane) {
clipped=true;
q=1;
}
if (!clipped) {

if (doCulling) {

vx=p3x-p1x;
vy=p3y-p1y;
vz=p3z-p1z;

wx=p2x-p1x;
wy=p2y-p1y;
wz=p2z-p1z;

pxk=vy*wz-vz*wy;
pyk=vz*wx-vx*wz;
pzk=vx*wy-vy*wx;

q=(pxk*p1x+pyk*p1y+pzk*p1z);
}
else {
q=-1;
}

}

if (q<=0) {


if (!clipped) {

int lowerZ=0;
int firstOff=-2;
lowerx=0;
higherx=0;
lowery=0;
highery=0;

int texX=myWorld.textures[texture[i]].width;
int texY=myWorld.textures[texture[i]].height;
int texXh=texX>>1;
int texYh=texY>>1;
texX--;
texY--;

for (int t=0; t<3; t++) {

int pos=points[i][t];
int pos3=objVectors.coords[pos];


if (objVectors.lightCacheR[pos3]==0) {

objVectors.sbOrg[pos]=config.ambientBlue + addColorB;
objVectors.srOrg[pos]=config.ambientRed + addColorR;
objVectors.sgOrg[pos]=config.ambientGreen + addColorG;

lights templight=myWorld.Lights;

float xt=objVectors.xTr[pos3];
float yt=objVectors.yTr[pos3];
float zt=objVectors.zTr[pos3];

float gx= objVectors.nxTr[pos3];
float gy= objVectors.nyTr[pos3];
float gz= objVectors.nzTr[pos3];

float spec=0f;

for (int l=0; l<templight.anzLights; l++) {

float intR=templight.rOrg[l];
float intG=templight.gOrg[l];
float intB=templight.bOrg[l];

float intMul=0;

if (config.gouraud) {

float lx=templight.xTr[l]-xt;
float ly=templight.yTr[l]-yt;
float lz=templight.zTr[l]-zt;

ln=(float) Math.sqrt(lx*lx+ly*ly+lz*lz);

if (config.doSpecularLighting) {

float hx = templight.xTr[l]/2;
float hy = templight.yTr[l]/2;
float hz = templight.zTr[l]/2;

float hn = (float) Math.sqrt(hx*hx+hy*hy+hz*hz);
spec = (hx*gx+hy*gy+hz*gz) / hn;

if (spec<0) {spec=0;}
else {
if (!config.useFastSpecular) {
spec = config.specTerm * (float) Math.pow(spec,config.specPow);
}
else {
spec = config.specTerm * (spec / (config.specPow - config.specPow*spec + spec));
}

if (config.fadeoutLight) {spec-=ln/lightDiv;}
if (spec<0) {spec=0;}
}
}
else {

spec=0;
}


intMul=config.lightMul*(gx*lx+gy*ly+gz*lz)/ln;


if (config.fadeoutLight) {intMul-=ln/lightDiv;}

if (intMul<0) {intMul=0;}
}
else {
intMul=0; }

if (intMul!=0||true) {

objVectors.sbOrg[pos]+=intB*intMul + intB*spec;

......and so on :P

EgonOlsen
04-04-02, 05:03 PM
The result of the above and the other parts of the renderer (around 50 times more than this little example can show) can be something like this:

http://home.t-online.de/home/helge.foerster/jpctbsp.jpg

OMAC
04-05-02, 08:14 AM
Outstanding!, I didn't know you could render stuff like that with java. Very cool.....................
/*copies and pastes code for later inspection :D */

EgonOlsen
04-05-02, 08:35 AM
Originally posted by OMAC

/*copies and pastes code for later inspection :D */

The code is not complete. It's a small part of the culling/lighting code, but stripped to fit into this board. The complete code is not available at the moment, but you may try this link to grab a demo:

http://home.t-online.de/home/helge.foerster/jpct70.zip

The demo is using version 0.70 of the engine which is rather advanced compared to 0.69, but it isn't finished yet...so some minor glitches may occur (or maybe not...:P)

Edit: Navigation is done via the num-keys...

OMAC
04-05-02, 09:09 AM
thnx

scottg26
04-06-02, 10:56 PM
Originally posted by EgonOlsen
The result of the above and the other parts of the renderer (around 50 times more than this little example can show) can be something like this:

http://home.t-online.de/home/helge.foerster/jpctbsp.jpg

That is awesome! i wonder how long it will be before they teach us to do stuff like that

EgonOlsen
04-09-02, 12:04 PM
Originally posted by scottg26


That is awesome! i wonder how long it will be before they teach us to do stuff like that

Learn the basics and teach it yourself. You'll learn much more from trying it yourself than relying on somebody teaching you something (at least when it comes to programming).

scottg26
04-10-02, 05:44 AM
i would like to program something for OpenGL in Linux...........

EgonOlsen
04-10-02, 12:27 PM
I recommend to take a 2D api for drawing simple lines first (or draw the lines by yourself if you dare...) and start with a rotating wireframe cube or similar to understand the basics of 3D. 3D rendering requires a lot of math knowledge. OpenGL tries to hide some of the math, but you won't get far without a good understanding of what's going on.

OMAC
04-10-02, 12:51 PM
That put a halt to my learining OpenGl. Had to start on some geometry and algebra tutorials. :D
matrices and vertices............................sh*t!

scottg26
04-11-02, 05:52 AM
i did 7th form (Year 13) Calculus and Statistics at school..........

EgonOlsen
04-11-02, 07:24 AM
Originally posted by scottg26
i did 7th form (Year 13) Calculus and Statistics at school.......... Just give it a try...and i really recommend to start with something real simple to get the 'feeling' of what's important and where the problems are.

Ailuros
04-11-02, 07:46 AM
Originally posted by EgonOlsen
JAVA is missing here, isn't it. A little part of my renderer code:

void doLightingCullingAndClipping(float mx, float my, float scalex, float scaley, float divx, float divy) {

final float viewplane=1;
int ViewSector=myWorld.Portals.ViewSector;
int saved=0;
int lowerx=0;
int higherx=0;
int lowery=0;
int highery=0;
int lastSec=-1;
int i=0;
int culled=0;

int xsize=((int)mx<<1)-1;
int ysize=((int)my<<1)-1;

float rDistFog=0;
float gDistFog=0;
float bDistFog=0;

float px=0f;
float py=0;

float p1x;
float p1y;
float p1z=0;

float p2x;
float p2y;
float p2z=0;

float p3x;
float p3y;
float p3z=0;

float n=0;

float p1zh;
float p2zh;
float p3zh;

float vx;
float vy;
float vz;

float wx;
float wy;
float wz;

float pxk;
float pyk;
float pzk;

float q=0;
float ln=0;

float firstU;
float firstV;
float secondU;
float secondV;
float thirdU;
float thirdV;

float lightDiv=config.linearDiv;

etc etc....



*reaches out for the paddles and floats silently out of the thread....*

scottg26
04-11-02, 08:00 AM
im thinking of making a program to make an instant BSOD for windows.......................................

when i put a too larger number into my computer program it gives me one............

trouble is u have to hit the reset button cos u can't recover from it.

maybe i should just make it load a full screen picture of a BSSOD..........

EgonOlsen
04-11-02, 12:35 PM
Originally posted by scottg26

maybe i should just make it load a full screen picture of a BSSOD.......... Did that once for a webpage. When you visited it, the Internet Explorer went full screen and displayed a BSOD-picture...was funny...:)

scottg26
04-12-02, 05:01 AM
LOL :D

kinda like the web page that formats your PC and puts MAC OS on it :D