Browse Source

* do not call SetVESAMode in TDOSScreen.SaveConsoleScreen, because it destroys the palette before we can save it and because InitGraph is called later anyway

git-svn-id: trunk@29078 -
nickysn 10 years ago
parent
commit
658442e610
1 changed files with 61 additions and 64 deletions
  1. 61 64
      ide/fpusrscr.pas

+ 61 - 64
ide/fpusrscr.pas

@@ -513,73 +513,70 @@ begin
      (ConsoleVideoInfo.Mode=$6) or
      (ConsoleVideoInfo.Mode=$4) then
     begin
-      if VesaSetMode(ConsoleVideoInfo.Mode or $8000) then
+      Graph.DontClearGraphMemory:=true;
+      if ConsoleVideoInfo.Mode>=$100 then
         begin
-          Graph.DontClearGraphMemory:=true;
-          if ConsoleVideoInfo.Mode>=$100 then
-            begin
-              GraphDriver:=Graph.Vesa;
-              GraphMode:=ConsoleVideoInfo.Mode and $fff;
-            end
-          else
-            begin
-              case ConsoleVideoInfo.Mode of
-               $4 : begin
-                      GraphDriver:=Graph.CGA;
-                      case (Mem[$40:$66] shr 4) and 3 of
-                        0: GraphMode:=CGAC2;
-                        1: GraphMode:=CGAC0;
-                        2: GraphMode:=CGAC3;
-                        3: GraphMode:=CGAC1;
-                      end;
-                    end;
-               $6 : begin
-                      GraphDriver:=Graph.CGA;
-                      GraphMode:=CGAHi;
-                    end;
-               $E : begin
-                      GraphDriver:=Graph.VGA;
-                      GraphMode:=VGALo;
-                    end;
-               $10 : begin
-                       GraphDriver:=Graph.VGA;
-                       GraphMode:=VGAMed;
-                     end;
-               $12 : begin
-                       GraphDriver:=Graph.VGA;
-                       GraphMode:=VGAHi;
-                     end;
-               $13 : begin
-                       GraphDriver:=Graph.LowRes;
-                       GraphMode:=0;
-                     end;
-              end;
-            end;
-          Graph.InitGraph(GraphDriver,GraphMode,'');
-          if graphresult=grOk then
-            begin
-              ConsoleGraphDriver:=GraphDriver;
-              GraphDriverName:=GetDriverName;
-              GraphModeName:=GetModeName(GraphMode);
-              ConsoleGraphMode:=GraphMode;
-              Graph.DontClearGraphMemory:=false;
-              GraphXres:=Graph.GetmaxX;
-              GraphYres:=Graph.GetmaxY;
-              GraphImageSize:=ImageSize(0,0,GraphXres,GraphYres);
-              GetMem(GraphBuffer,GraphImageSize);
-              FillChar(GraphBuffer^,GraphImageSize,#0);
-              GetImage(0,0,GraphXres,GraphYres,GraphBuffer^);
-              ConsoleVideoInfo.Rows:=GraphYres div 8;
-              ConsoleVideoInfo.Cols:=GraphXres div 8;
-              {FreeBuffer;}
-              saved:=true;
-            end
+          GraphDriver:=Graph.Vesa;
+          GraphMode:=ConsoleVideoInfo.Mode and $fff;
+        end
+      else
+        begin
+          case ConsoleVideoInfo.Mode of
+           $4 : begin
+                  GraphDriver:=Graph.CGA;
+                  case (Mem[$40:$66] shr 4) and 3 of
+                    0: GraphMode:=CGAC2;
+                    1: GraphMode:=CGAC0;
+                    2: GraphMode:=CGAC3;
+                    3: GraphMode:=CGAC1;
+                  end;
+                end;
+           $6 : begin
+                  GraphDriver:=Graph.CGA;
+                  GraphMode:=CGAHi;
+                end;
+           $E : begin
+                  GraphDriver:=Graph.VGA;
+                  GraphMode:=VGALo;
+                end;
+           $10 : begin
+                   GraphDriver:=Graph.VGA;
+                   GraphMode:=VGAMed;
+                 end;
+           $12 : begin
+                   GraphDriver:=Graph.VGA;
+                   GraphMode:=VGAHi;
+                 end;
+           $13 : begin
+                   GraphDriver:=Graph.LowRes;
+                   GraphMode:=0;
+                 end;
+          end;
+        end;
+      Graph.InitGraph(GraphDriver,GraphMode,'');
+      if graphresult=grOk then
+        begin
+          ConsoleGraphDriver:=GraphDriver;
+          GraphDriverName:=GetDriverName;
+          GraphModeName:=GetModeName(GraphMode);
+          ConsoleGraphMode:=GraphMode;
+          Graph.DontClearGraphMemory:=false;
+          GraphXres:=Graph.GetmaxX;
+          GraphYres:=Graph.GetmaxY;
+          GraphImageSize:=ImageSize(0,0,GraphXres,GraphYres);
+          GetMem(GraphBuffer,GraphImageSize);
+          FillChar(GraphBuffer^,GraphImageSize,#0);
+          GetImage(0,0,GraphXres,GraphYres,GraphBuffer^);
+          ConsoleVideoInfo.Rows:=GraphYres div 8;
+          ConsoleVideoInfo.Cols:=GraphXres div 8;
+          {FreeBuffer;}
+          saved:=true;
+        end
 {$ifdef DEBUG}
-          else
-            Writeln(stderr,'Error in InitGraph ',Graphdriver, ' ',Graphmode)
+      else
+        Writeln(stderr,'Error in InitGraph ',Graphdriver, ' ',Graphmode)
 {$endif DEBUG}
-            ;
-        end;
+        ;
     end;
   { mode < $100 so use standard Save code }
   if not saved then