home *** CD-ROM | disk | FTP | other *** search
- {This program was sent to me, on a sheet of paper, from OSS after I had some
- problems with their Personal Pascal version 1.01. It is supposed to fix all
- of the known bugs at the time and bring it up to working like version 1.02.
- The things it fixes are things like Delete_Dialog (which used to crash the
- system), Bring_To_Front, and a few other things. I have used it to modify
- my copy of PPASCAL, and had no problems with it, except for very sluggish
- mouse clicking upon leaving Pascal, but the guy from OSS had never heard of
- this problem and so did not have a fix for it just yet. To use this, compile
- it as a normal pascal program (GEM based) and put it on the A disk along with
- a COPY (NOT ORIGINAL) of your pascal system, including the files PASGEM and
-
- COMPILER.PRG, which are the two it updates. Run FIXPAS.PRG and it will do
- the update. You can run it more than once without damage, but it won't do
- anything extra after the first time. Be sure to keep a copy of the old version
- just in case something went wrong. Please forgive the sloppy style of this
- program, but I was in a real hurry. The original (on paper) was nicely
- commented and indented, but I wanted my system fixed NOW, so didn't bother to
- type the extra stuff in. I am normally better than this, honest! Good Luck.}
-
- program fixpas;
- var f: packed file of byte;
- patch_pos:long_integer;
- procedure patch(old_val,new_val:byte);
- begin
- get(f,patch_pos);
- if (f^<>old_val)and(f^<>new_val) then begin
- writeln('File doesn''t match: ',patch_pos:6:h,' ',f^:2:h);
- halt
- end;
- f^:=new_val;
- put(f,patch_pos);
- patch_pos:=patch_pos+1;
- end;
- procedure patch_pasgem;
- begin
- reset(f,'pasgem');
- patch_pos:=11587;
- patch($0e,$0c);
- patch_pos:=11600;
- patch($5c,$58);
- patch_pos:=37094;
- patch($48,$38);
-
- patch($c5,$05);
- patch($d1,$e5);
- patch($c5,$44);
- patch($d1,$d0);
- patch($c5,$c4);
- patch_pos:=37144;
- patch($67,$60);
- end;
- procedure patch_compiler;
- begin
- reset(f,'compiler.prg');
- patch_pos:=106550;
- patch($46,$7c);
- patch($61,$46);
- patch($74,$61);
-
- patch($61,$74);
- patch($6c,$61);
- patch($20,$6c);
- patch($65,$20);
- patch($72,$65);
- patch_pos:=106559;
- patch($6f,$72);
- patch($72,$6f);
- patch($21,$72);
- patch($5d,$21);
- patch($5b,$20);
- patch($20,$5d);
- patch($41,$5b);
- patch($62,$41);
- patch($6f,$62);
-
- patch($72,$6f);
- patch($74,$72);
- patch($20,$74);
- patch_pos:=122165;
- patch($01,$02);
- end;
- begin
- patch_pasgem;
- patch_compilerl;
- end.
-
-
- ə