Kaynağa Gözat

* fix bug report #1934

carl 23 yıl önce
ebeveyn
işleme
cc4b947871
3 değiştirilmiş dosya ile 18 ekleme ve 5 silme
  1. 8 4
      docs/videoex/ex2.pp
  2. 4 0
      docs/videoex/ex3.pp
  3. 6 1
      docs/videoex/vidutil.pp

+ 8 - 4
docs/videoex/ex2.pp

@@ -2,6 +2,10 @@ program example2;
 
 uses video,keyboard;
 
+{$ifndef cpu86}
+{$error This example only works on intel 80x86 machines}
+{$endif}
+
 Var
   P,PP,D : Integer;
   K: TKeyEvent;
@@ -9,10 +13,10 @@ Var
   Procedure PutSquare (P : INteger; C : Char);
   
   begin
-    VideoBuf^[P]:=Ord(C)+($07 shr 8);
-    VideoBuf^[P+ScreenWidth]:=Ord(c)+($07 shr 8);
-    VideoBuf^[P+1]:=Ord(c)+($07 shr 8);
-    VideoBuf^[P+ScreenWidth+1]:=Ord(c)+($07 shr 8);
+    VideoBuf^[P]:=Ord(C)+($07 shl 8);
+    VideoBuf^[P+ScreenWidth]:=Ord(c)+($07 shl 8);
+    VideoBuf^[P+1]:=Ord(c)+($07 shl 8);
+    VideoBuf^[P+ScreenWidth+1]:=Ord(c)+($07 shl 8);
   end;
 
 begin

+ 4 - 0
docs/videoex/ex3.pp

@@ -2,6 +2,10 @@ program testvideo;
 
 uses video,keyboard,vidutil;
 
+{$ifndef cpu86}
+{$error This example only works on intel 80x86 machines}
+{$endif}
+
 Var 
   i : longint;
   k : TkeyEvent;

+ 6 - 1
docs/videoex/vidutil.pp

@@ -5,6 +5,11 @@ Interface
 uses
   video;
 
+{$ifndef cpu86}
+{$error This example only works on intel 80x86 machines}
+{$endif}
+  
+
 Procedure TextOut(X,Y : Word;Const S : String);
 
 Implementation
@@ -20,7 +25,7 @@ begin
   If P+M>ScreenWidth*ScreenHeight then
     M:=ScreenWidth*ScreenHeight-P;
   For I:=1 to M do
-    VideoBuf^[P+I-1]:=Ord(S[i])+($07 shr 8);
+    VideoBuf^[P+I-1]:=Ord(S[i])+($07 shl 8);
 end;
   
 end.