home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 11 / tricks / videoram.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-08-11  |  2.7 KB  |  97 lines

  1. (* ------------------------------------------------------ *)
  2. (*                 VIDEORAM.PAS                           *)
  3. (* Abspeichern des HGC-RAMs (Seite eins) in einer Datei   *)
  4. (*      (C) 1989 Erich Cadario Jr. & TOOLBOX              *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM VideoRAM;
  7.  
  8. TYPE
  9.   f = FILE OF CHAR;
  10.  
  11.   FUNCTION Hoch(potenz, wert : INTEGER) : INTEGER;
  12.   VAR
  13.     h1, h2 : INTEGER;
  14.   BEGIN
  15.     h1 := 1;
  16.     FOR h2 := 1 TO potenz DO h1 := h1 * 2;
  17.     hoch := h1 * wert;
  18.   END;
  19.  
  20.   PROCEDURE RAMUmwandeln;
  21.   VAR
  22.     datei           : f;
  23.     bte             : ARRAY [0..89,0..7] OF INTEGER;
  24.     rest            : ARRAY [0..7] OF INTEGER;
  25.     zahl            : ARRAY [0..719] OF INTEGER;
  26.     i,  j,  k,  l,
  27.     lauf,  LOOP,
  28.     hilfe,  help    : INTEGER;
  29.     c               : CHAR;
  30.  
  31.   BEGIN
  32.     Assign(datei, 'pixels.bte');
  33.     Rewrite(datei);
  34.     LOOP := 0;
  35.     WHILE LOOP < 7740 DO BEGIN
  36.       FOR j := 0 TO 3 DO
  37.         FOR k := 0 TO 89 DO
  38.           bte[k,j] := Mem[$B000:LOOP+j*8192+k];
  39.       FOR j := 0 TO 3 DO
  40.         FOR k := 0 TO 89 DO
  41.           bte[k,j+4] := Mem[$b000:LOOP+90+j*8192+k];
  42.       lauf := 7;
  43.       FOR j := 0 TO 89 DO BEGIN
  44.         FOR k:=0 TO 7 DO BEGIN
  45.           zahl[lauf-k] := 0;
  46.           FOR l := 0 TO 7 DO BEGIN
  47.             hilfe := bte[j,l];
  48.             rest[l] := bte[j,l] MOD 2;
  49.             bte[j,l] := hilfe DIV 2;
  50.             help := hoch(7-l, rest[l]);
  51.             zahl[lauf-k] := zahl[lauf-k] + help;
  52.           END;
  53.         END;
  54.         lauf := lauf + 8;
  55.       END;
  56.       FOR j := 0 TO 719 DO BEGIN
  57.         CASE zahl[j] OF
  58.           27: zahl[j] := zahl[j] - 2;
  59.           ELSE;
  60.         END;
  61.         c := Chr(zahl[j]);
  62.         Write(datei, c);
  63.       END;
  64.       LOOP := LOOP + 180;
  65.     END;
  66.     LOOP := 7740;
  67.       FOR j := 0 TO 3 DO
  68.         FOR k := 0 TO 89 DO
  69.           bte[k,j] := Mem[$b000:j*8192+LOOP+k];
  70.       FOR j := 0 TO 3 DO
  71.         FOR k := 0 TO 89 DO bte[k,j+4]:=0;
  72.       lauf := 7;
  73.       FOR j := 0 TO 89 DO BEGIN
  74.         FOR k := 0 TO 7 DO BEGIN
  75.           zahl[lauf-k] := 0;
  76.           FOR l := 0 TO 7 DO BEGIN
  77.             hilfe := bte[j,l];
  78.             rest[l] := bte[j,l] MOD 2;
  79.             bte[j,l] := hilfe DIV 2;
  80.             help := hoch(7-l, rest[l]);
  81.             zahl[lauf-k] := zahl[lauf-k] + help;
  82.           END;
  83.         END;
  84.         lauf := lauf + 8;
  85.       END;
  86.       FOR j := 0 TO 719 DO BEGIN
  87.         c := Chr(zahl[j]);
  88.         Write(datei, c);
  89.       END;
  90.     Close(datei);
  91.   END;
  92.  
  93. BEGIN
  94.    RAMUmwandeln;
  95. END.
  96. (* ------------------------------------------------------ *)
  97. (*                Ende von VIDEORAM.PAS                   *)