QuickDraw/FixMove.p

46 lines
933 B
OpenEdge ABL
Executable File

PROGRAM FixMove;
{ Assembler restrictions require procedure Move to assembled as MQVE. }
{ This program back patches the object file replacing 'MQVE' with 'MOVE' }
VAR f: FILE;
fileName: String[30];
buffer: PACKED ARRAY[0..1023] OF CHAR;
i,hitCount: INTEGER;
BEGIN
REPEAT
WRITE('file to patch:');
READLN(fileName);
RESET(f,fileName);
UNTIL IORESULT = 0;
i := BlockRead(f,buffer,2,0);
hitCount := 0;
FOR i := 0 TO 1020 DO
BEGIN
IF (buffer[i ] = 'M')
AND (buffer[i+1] = 'Q')
AND (buffer[i+2] = 'V')
AND (buffer[i+3] = 'E')
THEN
BEGIN
buffer[i+1] := 'O';
hitCount := hitCount + 1;
END;
END;
WRITE(hitCount:1,' matches found.');
IF hitCount = 0 THEN WRITELN(CHR(7))
ELSE
BEGIN
i := BlockWrite(f,buffer,2,0);
IF IORESULT <> 0 THEN WRITELN('Oops, trouble writing');
END;
CLOSE(f,lock);
END.