Works on Grand Prix Circuit EGA version dated 1-25-89. Place original Accolade disk 2 in drive A. Type: dir a:\gp*.* If you get the following on the screen: GPEGA EXE 87817 1-25-89 10:06a follow these instructions. Otherwise you are on your own. Using DOS or similar utility copy all the files from original disk 2 onto a DOS formated disk. From here on use only the copied disk. The symbol <-+ in this text means: Press the Carriage Return key. Rename GPEGA.EXE as GP.TMP (Any non .EXE or .COM extension will do). Start Debug by typing: debug a:\gp.tmp<-+ At the prompt - Type: r<-+ to display the registers. Debug will display the hex values of the registrs. My debug version displayed the following: AX=0000 BX=0001 CX=5709 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=16E4 ES=16E4 SS=16E4 CS=16E4 IP=0100 NV UP EI PL NZ NA PO NC 16E4:0100 4D DEC BP - Record on paper the content of CS BX and CX. Add 800 hex to the hex value of CS to get the hex value GHIJ - Record it. At the prompt - Type: sGHIJ:0 ffff 9c 58 80 e4 fe 50 9d<-+ Debug should find only one location and display: GHIJ:xyzw Record the hex value xyzw At the prompt - Type: sGHIJ:0 ffff a3 22 6e 03 c2<-+ Debug should find only one location and display: GHIJ:klmn Record the hex value klmn At the prompt - Type: uGHIJ:klmn<-+ Debug should display: GHIJ:klmn A3226E MOV [6E22],AX << this is location BB >> GHIJ:kl?? 03C2 ADD AX,DX GHIJ:kl?? C706266E5700 MOV WORD PTR [6E26],0057 GHIJ:kl?? B85700 MOV AX,0057 GHIJ:kl?? 33DB XOR BX,BX GHIJ:kl?? A3246E MOV [6E24],AX GHIJ:kl?? 8EDB MOV DS,BX GHIJ:kl?? 8B261000 MOV SP,[0010] GHIJ:kl?? 1F POP DS GHIJ:kl?? 07 POP ES GHIJ:kl?? 5F POP DI GHIJ:kl?? 5E POP SI GHIJ:kl?? 5D POP BP Deduct 11 hex from the hex value of xyzw to get XYZW (Record XYZW) At the prompt - Type: uGHIJ:XYZW<-+ Debug should display: GHIJ:XYZY B013 MOV AL,13 GHIJ:XY?? A25305 MOV [0553],AL GHIJ:XY?? A29106 MOV [0691],AL GHIJ:XY?? A2FF08 MOV [08FF],AL GHIJ:XY?? A20D09 MOV [090D],AL GHIJ:XY?? A22906 MOV [0629],AL GHIJ:XY?? 9C PUSHF << This is location AA >> GHIJ:XY?? 58 POP AX GHIJ:XY?? 80E4FE AND AH,FE GHIJ:XY?? 50 PUSH AX GHIJ:XY?? 9D POPF GHIJ:XY?? B430 MOV AH,30 GHIJ:XY?? CD21 INT 21 GHIJ:XY?? 3C02 CMP AL,02 GHIJ:XY?? 723B JB 611E Now to the actual modification of the code. The new code will perform the writing to memory locations to indicate successful execution of the original code, without actually testing for an original Accolade floppy disk. The new code overwrites some of the original code beginning at location AA and jump to location BB to continue execution of the original code. At the prompt - Type: aGHIJ:xyzw<-+ (This is xyzw - not XYZW hex value) ^ ^ +--+-------- Offset value (hex) of location AA Screen: GHIJ:xyzw Type: mov byte ptr[0513],10<-+ Screen: GHIJ:xy?? mov byte ptr[0513],10 GHIJ:xy?? Type: mov byte ptr[050d],3<-+ Screen: GHIJ:xy?? mov byte ptr[0513],10 GHIJ:xy?? mov byte ptr[050d],3 GHIJ:xy?? Type: mov ax,0009<-+ Screen: GHIJ:xy?? mov byte ptr[0513],10 GHIJ:xy?? mov byte ptr[050d],3 GHIJ:xy?? mov ax,0009 GHIJ:xy?? Type: jmp ne klmn << klmn = hex value of location BB >> Screen: GHIJ:xy?? mov byte ptr[0513],10 GHIJ:xy?? mov byte ptr[050d],3 GHIJ:xy?? mov ax,0009 GHIJ:xy?? jmp ne klmn GHIJ:xy?? Press Carriage Return <-+ (Get out of assemble mode) At the prompt - Type: uGHIJ:XYZW<-+ Screen: GHIJ:XY?? B013 MOV AL,13 GHIJ:XY?? A25305 MOV [0553],AL GHIJ:XY?? A29106 MOV [0691],AL GHIJ:XY?? A2FF08 MOV [08FF],AL GHIJ:XY?? A20D09 MOV [090D],AL GHIJ:XY?? A22906 MOV [0629],AL GHIJ:XY?? C606130510 MOV BYTE PTR [0513],10 << Verify GHIJ:XY?? C6060D0503 MOV BYTE PTR [050D],03 | GHIJ:XY?? B80900 MOV AX,0009 | GHIJ:XY?? E94B01 JMP klmn | ^ ^ +--+----- Make sure this = hex value of klmn At the prompt - Type: r<-+ Screen: AX=0000 BX=0001 CX=5709 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=16E4 ES=16E4 SS=16E4 CS=16E4 IP=0100 NV UP EI PL NZ NA PO NC 16E4:0100 4D DEC BP Compare values of CS BX and CX to those recorded at the beginning. If no change continue (If values changed see note below). Next step writes to the floppy in drive A. Make sure drive is ready with the copied disk in the drive. (Be careful not to ruin the original disk). At the prompt - Type: w<-+ Screen: Writing 15709 bytes Wait for the prompt At the prompt - Type: q<-+ (Quit debug) At the DOS prompt rename GP.TMP to GPEGA.EXE Type GPEGA to start the game from your newly created backup disk. Note: Registers CS BX and CX must equal their hex value at the beginning before writing the modified code to the disk. To restore the registers type: rcs<-+ then enter 4 digit hex value<-+ rbx<-+ then enter 4 digit hex value<-+ rcx<-+ then enter 4 digit hex value<-+ End.