Contributor: SCOTT TUNSTALL { Err.. RACER programmed by Scott Tunstall 1994. (When I first got me PC at the age of 22) Update in March 95 (Also by Scott Tunstall) - to piss off the B.Sc chaps. And what's more folks it's already on BBS's so ripping off me code will mean I sue you for (C). Renamed to The Dave Norrie Driving Simulator just to piss the c**t right off!! :) sorry Dave mate but this is easily the best game you'll play on your PC cos : (A) I programmed it (B) Your f***ing name is on it. :) :) :) Even SHITTER than the lawnmower simulator.. it's me racing game which has absolutely NO collision detection whatever. I done this just for a laugh see? And to practise assembler. Compared to me efforts now the assembler code in this really SUCKS!! (But why should I optimize a piece of shit like this? :) ) (And no commenting either.. tut tut) Oh by the way Ronny seeing as you don't believe I wrote space lords I thought I'd update me copy just for you... EAT YOUR WORDS } Program Norrie_Simulator; Uses Crt; Var CarX: byte; CarY: byte; OldCarX : byte; OldCarY : byte; Speed: byte; CaveY: byte; CaveHeight: byte; Dead: boolean; { OH NO! I AM SO EMBARASSED BY THIS CODE IT IS SHIT!! } Procedure ScrollLeft; Assembler; label outer,shift; asm push ds mov ax,$b800 { Want me to explain this eh? } mov ds,ax mov bx,0 mov dl,22 outer: mov cx,38 { Woulda been better with CL } push bx { ain't altered it to show you how shit it is - if you understand asm } shift: mov ax,[bx+2] mov [bx],ax add bx,2 loop shift { Err... don't tell anyone I wrote this OK } pop bx add bx,80 dec dl jne outer pop ds End; Procedure WriteNewTrack; var y:byte; Begin If CaveY <> 1 Then Begin TextBackground(Green); For Y:=1 to CaveY do Begin GotoXY(39,Y); Write(' '); End; End; gotoxy(39,CaveY); TextColor(White); Write('O'); gotoxy(39,CaveY+CaveHeight); Write('O'); TextBackground(LightGray); For Y:=CaveY + 1 to (CaveY + (CaveHeight-1)) do begin gotoXY(39,Y); Write(' '); End; TextBackground(Green); For Y:= (CaveY + CaveHeight + 1) to 22 do begin gotoxy(39,Y); write(' '); end; end; Procedure DrawScreen; Var Action:byte; Begin GotoXY(OldCarX,OldCarY); TextBackground(LightGray); Write(' '); ScrollLeft; WriteNewTrack; Action:= Random(30); Case Action Of 1: If CaveY > 1 Then Dec(CaveY); 2: If (CaveY + CaveHeight)< 22 Then Inc(CaveY); 3: If CaveHeight > 6 Then Dec(CaveHeight); 4: If (CaveY + CaveHeight)< 22 Then Inc(CaveHeight); End; End; Procedure Setup; Var X:byte; Begin TextMode(CO40); CaveY:=5; CaveHeight:=15; CarX:=1; CarY:=12; OldCarX:=CarX; OldCarY:=CarY; Speed:=100; { I added this bit to piss Dave off } gotoxy(4,24); textcolor(WHITE); textbackground(black); write('The Dave Norrie Driving Simulator'); { This bit was in the original } For X:=1 to 38 do DrawScreen; End; Procedure MovePlayer; Begin TextColor(LightGray); TextBackground(Blue); GotoXY(CarX,CarY); Write('>'); OldCarX:=CarX; OldCarY:=CarY; If KeyPressed Then Begin Case Upcase(Readkey) of 'Q': If CarY>1 Then Dec(CarY); 'A': If CarY<22 Then Inc(CarY); 'O': If CarX>1 Then Begin Speed:=Speed+5; Dec(CarX); End; 'P': If CarX<20 Then Begin Speed:=Speed-5; Inc(CarX); End; End; End; End; Begin SetUp; Repeat Delay(Speed); DrawScreen; MovePlayer; Until Dead; End. { Here's a few possible additions for you sad fucks who actually like this trash: 1. Collision detection (Not too good though - ruins the fun!) 2. Graphics ! (No then again maybe not) 3. Some sound (Keep it crap) 4. Err.. playability? }