  Ŀ
  Ŀ
                                                                          
                            Renkli Satrlar                               
                                                                          
  ٳ
                                                    Ziya Bahtiyar           
  





 Ayn ii yapan biri BASIC dieri PASCAL program, ekrana rastgele
  karakterlerle doldurduktan sonra, satrlardaki yazlarn renklerini rastgele
  renklerle deitirir.

 Her iki programda da ekran belleine dorudan eriim yaplr. Renkler ve
  karakterler BASIC'te RND, PASCAL'da RANDOM ile rastgele seilir.

 Renkli ekranlarda balang adresi ile mono ekranlardakisi farkldr. Bu
  yzden mono ekranda program kullanacaksanz deiiklik yapmay unutmayn.


                           BASIC     PASCAL
                              
      renkli ekranlarda   &HB800     $B800:0
      mono   ekranlarda   &HB000     $B000:0


 Program durdurmak iin bir tua basmanz gerekir.



    RENKS.BAS Ŀ
                                                                       
     10 DEF SEG=&HB800  ' Mono iin &HB000                             
     20 FOR A=1 TO 4000 : PRINT CHR$(RND*200+31); : NEXT A             
     30 FOR S=0 TO 24 : R=RND*15                                       
     40 FOR K=1 TO 160 STEP 2                                          
     50 POKE (S*160)+K,R                                               
     60 IF INKEY$<>"" THEN END                                         
     70 NEXT K                                                         
     80 NEXT S                                                         
     90 GOTO 30                                                        
   

    RENKS.PAS Ŀ
                                                                       
     Program RenkliSatirlar;  {Programlama Sanat, Eylul'94}           
                                                                       
     Type                                                              
       screen = record                                                 
                chrkod : byte;                                         
                atrkod : byte;                                         
                end;                                                   
                                                                       
     Var                                                               
       scrbuf  : array[1..25,1..80] of screen absolute $B800:0;        
                                            {mono iin $B000:0}        
       a,s,k,r : byte;                                                 
                                                                       
     BEGIN                                                             
       for a:=1 to 4000 do Write(random(200)+31);                      
       repeat                                                          
         for s:=1 to 25 do                                             
             begin                                                     
             r:=random(15);                                            
             for k:=1 to 80 do scrbuf[s,k].atrkod:=r;                  
             end;                                                      
       until keypressed;                                               
     END.                                                              
   