home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 01 / ami046a.txt < prev    next >
Text File  |  1997-04-06  |  2KB  |  179 lines

  1. ************ UWAGA PROSZË PAMIËTAÊ ABY NIE ROBIÊ "NISKICH" APOSTROFÓW I
  2. CUDZYSÎOWÓW ************
  3.  
  4. <l>' (De)Szyfrowanie(C) 1994 By Arni Fusik
  5.  
  6. '
  7.  
  8. Global BANK
  9.  
  10. BANK=99
  11.  
  12. Repeat
  13.  
  14.    Repeat
  15.  
  16.       Print
  17.  
  18.       Print " Wybieraj: "
  19.  
  20.       Print
  21.  
  22.       Print "   1...Szyfrowanie pliku"
  23.  
  24.       Print
  25.  
  26.       Print "   2...Rozszyfrowanie pliku"
  27.  
  28.       Print
  29.  
  30.       Input " Co wybierasz? ";WYBOR
  31.  
  32.    Until WYBOR=1 or WYBOR=2
  33.  
  34.    Print
  35.  
  36.    If WYBOR=1
  37.  
  38.       ODCZYT_PLIKU
  39.  
  40.       SZYFROWANIE
  41.  
  42.       ZAPIS_PLIKU
  43.  
  44.    Else
  45.  
  46.       ODCZYT_PLIKU
  47.  
  48.       DESZYFROWANIE
  49.  
  50.       ZAPIS_PLIKU
  51.  
  52.    End If
  53.  
  54.    Print " Operacja zakoïczona"
  55.  
  56.    Print
  57.  
  58.    Input " Jeszcze raz [T/N]? ";ODP$
  59.  
  60. Until Upper$(ODP$)<>"T"
  61.  
  62. '
  63.  
  64. Procedure ODCZYT_PLIKU
  65.  
  66.    NAZWA$=Fsel$("*.TXT","","Odczyt pliku:")
  67.  
  68.    Open In 1,NAZWA$
  69.  
  70.    Reserve As Work BANK,Lof(1)
  71.  
  72.    Close 1
  73.  
  74.    Print " Odczyt pliku: ";NAZWA$
  75.  
  76.    Bload NAZWA$,Start(BANK)
  77.  
  78. End Proc
  79.  
  80. Procedure ZAPIS_PLIKU
  81.  
  82.    NAZWA$=Fsel$("*.TXT","","Zapis pliku:")
  83.  
  84.    Print " Zapis pliku: ";NAZWA$
  85.  
  86.    Bsave NAZWA$,Start(BANK) To Start(BANK)+Length(BANK)
  87.  
  88.    Erase BANK
  89.  
  90. End Proc
  91.  
  92. Procedure SZYFROWANIE
  93.  
  94.    Print " Proces szyfrowania"
  95.  
  96.    '------------------------- kolejnoôê bajtów w pliku
  97.  
  98.    For I=Start(BANK) To Start(BANK)+Length(BANK)-2 Step 2
  99.  
  100.       X=Peek(I)
  101.  
  102.       Poke I,Peek(I+1)
  103.  
  104.       Poke I+1,X
  105.  
  106.    Next
  107.  
  108.    '------------------------- negacja bitów
  109.  
  110.    For I=Start(BANK) To Start(BANK)+Length(BANK) Step 3
  111.  
  112.       X=Peek(I)
  113.  
  114.       Bchg 2,X
  115.  
  116.       Bchg 5,X
  117.  
  118.       Poke I,X
  119.  
  120.    Next
  121.  
  122.    '------------------------- rotacja
  123.  
  124.    For I=Start(BANK) To Start(BANK)+Length(BANK)
  125.  
  126.       X=Peek(I)
  127.  
  128.       Rol.b 1,X
  129.  
  130.       Poke I,X
  131.  
  132.    Next
  133.  
  134. End Proc
  135.  
  136. Procedure DESZYFROWANIE
  137.  
  138.    Print " Proces rozszyfrowania"
  139.  
  140.    '------------------------- rotacja
  141.  
  142.    For I=Start(BANK) To Start(BANK)+Length(BANK)
  143.  
  144.       X=Peek(I)
  145.  
  146.       Ror.b 1,X
  147.  
  148.       Poke I,X
  149.  
  150.    Next
  151.  
  152.    '------------------------- negacja bitów
  153.  
  154.    For I=Start(BANK) To Start(BANK)+Length(BANK) Step 3
  155.  
  156.       X=Peek(I)
  157.  
  158.       Bchg 2,X
  159.  
  160.       Bchg 5,X
  161.  
  162.       Poke I,X
  163.  
  164.    Next
  165.  
  166.    '------------------------- kolejnoôê bajtów w pliku
  167.  
  168.    For I=Start(BANK) To Start(BANK)+Length(BANK)-2 Step 2
  169.  
  170.       X=Peek(I)
  171.  
  172.       Poke I,Peek(I+1)
  173.  
  174.       Poke I+1,X
  175.  
  176.    Next
  177.  
  178. End Proc
  179.