Advertisement
Guest User

Untitled

a guest
May 30th, 2017
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $large
  2. $sim
  3. $eeprom
  4.  
  5. '-----------------------------
  6. 'DOPISAC DO EEPROMU DLUGOSC
  7.  
  8.  
  9. Deflcdchar 0 , 12 , 4 , 6 , 12 , 4 , 4 , 14 , 32            
  10. Deflcdchar 1 , 2 , 4 , 14 , 16 , 14 , 1 , 30 , 32          
  11. Deflcdchar 2 , 2 , 4 , 14 , 16 , 16 , 17 , 14 , 32          
  12. Deflcdchar 3 , 32 , 32 , 14 , 17 , 31 , 16 , 14 , 4        
  13. Deflcdchar 4 , 32 , 32 , 15 , 17 , 17 , 15 , 1 , 14         'g
  14. Deflcdchar 5 , 2 , 4 , 31 , 2 , 4 , 8 , 31 , 32            
  15. Deflcdchar 6 , 2 , 4 , 14 , 17 , 17 , 17 , 14 , 32          
  16. Deflcdchar 7 , 4 , 32 , 31 , 2 , 4 , 8 , 31 , 32            
  17. 'Deflcdchar ? , 32 , 32 , 14 , 1 , 15 , 17 , 15 , 2            'ą
  18.  
  19. Config Porta = Input
  20. Config Portb = Output
  21.  
  22. Config Lcd = 16 * 2
  23. 'Config Lcdpin = Pin , Db4 = P3.4 , Db5 = P3.5 , Db6 = P3.6 , Db7 = P3.7 , E = P3.3 , Rs = P3.1   'konfig z zajec
  24. Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.0
  25.  
  26. 'Set Porta
  27.  
  28. Dim Dlugosc As Byte
  29. Dim Stan As Byte
  30. Dim Flaga As Bit
  31. Dim I As Byte
  32. Dim J As Byte
  33. Dim Tajnyszyfriterator As Byte
  34.  
  35. Dim Szyfr(9) As Byte
  36. Dim Szyfruser(9) As Byte
  37. Dim Tajnyszyfr(16) As Byte
  38. Dim Tajnyszyfruser(16) As Byte
  39. '-------------------------------------------
  40. Const Wsk_flaga = &H00
  41. Const Wsk_1 = &H01
  42. Const Wsk_2 = &H02
  43. Const Wsk_3 = &H03
  44. Const Wsk_4 = &H04
  45. Const Wsk_5 = &H05
  46. Const Wsk_6 = &H06
  47. Const Wsk_7 = &H07
  48. Const Wsk_8 = &H08
  49. Const Wsk_9 = &H09
  50. Const Wsk_dlugosc = &H0A
  51.  
  52. Dim Szyfr_pamiec(9) As Byte
  53. Szyfr_pamiec(1) = Wsk_1
  54. Szyfr_pamiec(2) = Wsk_2
  55. Szyfr_pamiec(3) = Wsk_3
  56. Szyfr_pamiec(4) = Wsk_4
  57. Szyfr_pamiec(5) = Wsk_5
  58. Szyfr_pamiec(6) = Wsk_6
  59. Szyfr_pamiec(7) = Wsk_7
  60. Szyfr_pamiec(8) = Wsk_8
  61. Szyfr_pamiec(9) = Wsk_9
  62.  
  63. Dim Flaga_eprom As Byte
  64. Flaga_eprom = 1
  65.  
  66. '--------------------------------------------
  67.  
  68. Tajnyszyfr(1) = 1
  69. Tajnyszyfr(2) = 2
  70. Tajnyszyfr(3) = 3
  71. Tajnyszyfr(4) = 4
  72. Tajnyszyfr(5) = 5
  73. Tajnyszyfr(6) = 6
  74. Tajnyszyfr(7) = 7
  75. Tajnyszyfr(8) = 8
  76. Tajnyszyfr(9) = 1
  77. Tajnyszyfr(10) = 2
  78. Tajnyszyfr(11) = 3
  79. Tajnyszyfr(12) = 4
  80. Tajnyszyfr(13) = 5
  81. Tajnyszyfr(14) = 6
  82. Tajnyszyfr(15) = 7
  83. Tajnyszyfr(16) = 8
  84.  
  85. Stan = 0
  86. Dlugosc = 0
  87. Flaga = 0
  88. ' tablice w bascomie zaczynają się od 1 xDDD
  89. I = 1
  90. Tajnyszyfriterator = 8
  91.  
  92. Declare Sub Wprowadz_dlugosc
  93. Declare Sub Wprowadz_szyfr1
  94. Declare Sub Wprowadz_szyfr2
  95. Declare Sub Sprawdz_szyfr
  96. Declare Sub Wprowadz_szyfr_otwieranie
  97. Declare Sub Sprawdz_szyfr_otwieranie
  98. Declare Sub Zmiana_szyfru
  99.  
  100. Dim Pom As Byte
  101. Dim Pom2 As Byte
  102. Pom2 = 16
  103. '-----------------------------------------------------
  104. ' if eprom == 0 to stan = 0
  105. ' jezeli w epromie cos jest to stan = 3 i uzupelniamy tablice "szyfr" zawartoscia epromu
  106.  
  107.  
  108. 'zapisane_halo to flaga z adresu pamieci w ktorym trzymam info o tym czy haslojest zapisane w pamieci,
  109. ' jesli 1 to zapisane
  110.  
  111. Dim Zapisane_haslo As Byte
  112. Readeeprom Zapisane_haslo , Wsk_flaga
  113.  
  114. If Zapisane_haslo = 1 Then
  115.    Stan = 3
  116.    Tajnyszyfriterator = 8
  117.    Readeeprom Dlugosc , Wsk_dlugosc
  118.    Print Dlugosc
  119.    I = 1
  120.  
  121.    For J = 1 To 9
  122.       Readeeprom Szyfr(j) , Szyfr_pamiec(j)
  123.       Print Szyfr(j)
  124.    Next
  125. Else
  126.    Stan = 0
  127. End If
  128. '-------------------------------------------------------
  129.  
  130. ' aby zmienic haslo nalezy najpierw podac poprawny szyfr, a nastepnie podac tajny szyfr
  131.  
  132. ' main
  133. Do
  134.    Main:
  135.    Pom = Dlugosc + 1
  136.  
  137.    If Tajnyszyfriterator = 17 Then Call Zmiana_szyfru
  138.  
  139.    If Stan = 0 Then Call Wprowadz_dlugosc
  140.    If Stan = 1 Then Call Wprowadz_szyfr1
  141.    If Stan = 2 Then Call Wprowadz_szyfr2
  142.    If Stan = 3 Then Call Wprowadz_szyfr_otwieranie
  143.  
  144.    Print "dlugosc=" ; Dlugosc ; " i=" ; I ; " TajnySzyfrIterator=" ; Tajnyszyfriterator
  145.  
  146. Loop
  147. End
  148.  
  149. ' wprowadzanie dlugosci
  150. Sub Wprowadz_dlugosc
  151.  
  152.    If Flaga = 0 Then
  153.       Cls
  154.       Lcd "Jak d" ; Chr(0) ; "u" ; Chr(4) ; "i szyfr?"
  155.       Lowerline
  156.       Lcd "  D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; ": "
  157.       Flaga = 1
  158.    End If
  159.  
  160.    If Porta.0 = 1 Then
  161.       Bitwait Porta.0 , Reset
  162.       Cls
  163.       Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
  164.       Lowerline
  165.       Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
  166.       Wait 5
  167.       Flaga = 0
  168.       Goto Main
  169.    End If
  170.  
  171.    If Porta.1 = 1 Then
  172.       Bitwait Porta.1 , Reset
  173.       Cls
  174.       Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
  175.       Lowerline
  176.       Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
  177.       Wait 5
  178.       Flaga = 0
  179.       Goto Main
  180.    End If
  181.  
  182.    If Porta.2 = 1 Then
  183.       Bitwait Porta.2 , Reset
  184.       Cls
  185.       Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
  186.       Lowerline
  187.       Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
  188.       Wait 5
  189.       Flaga = 0
  190.       Goto Main
  191.    End If
  192.  
  193.    If Porta.3 = 1 Then
  194.       Bitwait Porta.3 , Reset
  195.       Lcd "4"
  196.       Dlugosc = 5
  197.       Stan = 1
  198.       Flaga = 0
  199.    End If
  200.  
  201.    If Porta.4 = 1 Then
  202.       Bitwait Porta.4 , Reset
  203.       Lcd "5"
  204.       Dlugosc = 6
  205.       Stan = 1
  206.       Flaga = 0
  207.    End If
  208.  
  209.    If Porta.5 = 1 Then
  210.       Bitwait Porta.5 , Reset
  211.       Lcd "6"
  212.       Dlugosc = 7
  213.       Stan = 1
  214.       Flaga = 0
  215.    End If
  216.  
  217.    If Porta.6 = 1 Then
  218.       Bitwait Porta.6 , Reset
  219.       Lcd "7"
  220.       Dlugosc = 8
  221.       Stan = 1
  222.       Flaga = 0
  223.    End If
  224.  
  225.    If Porta.7 = 1 Then
  226.       Bitwait Porta.7 , Reset
  227.       Lcd "8"
  228.       Dlugosc = 9
  229.       Stan = 1
  230.       Flaga = 0
  231.    End If
  232.  
  233.  
  234. End Sub
  235.  
  236. ' wprowadzanie szyfru
  237. Sub Wprowadz_szyfr1
  238.  
  239.    If Flaga = 0 Then
  240.       Cls
  241.       Lcd "  Podaj szyfr"
  242.       Lowerline
  243.       Lcd "Szyfr: "
  244.       Flaga = 1
  245.    End If
  246.  
  247.    If I = Dlugosc Then
  248.  
  249.       ' sprawdzanie czy podany przez uzytkownika szyfr przypadkiem
  250.       ' nie pokrywa się z tajnymszyfrem
  251.       ' jakby się pokrywał to zmiana hasła byłaby niemożliwa
  252.  
  253.       ' jeden
  254.  
  255.       Dim Spr2 As Bit
  256.       Dim Jedenkrotszyoddlugosc As Byte
  257.       Jedenkrotszyoddlugosc = Dlugosc - 1
  258.  
  259.       Spr2 = 0
  260.  
  261.       For J = 1 To Jedenkrotszyoddlugosc
  262.          If Tajnyszyfr(j) <> Szyfr(j) Then
  263.             Spr2 = 1
  264.             Exit For
  265.          Else
  266.             Spr2 = 0
  267.          End If
  268.       Next J
  269.  
  270.       For J = 1 To Jedenkrotszyoddlugosc
  271.          'Print "szyfr: " ; Szyfr(j) ; " tajny szyfr: " ; Tajnyszyfr(j)
  272.       Next J
  273.       'Print "spr2: " ; Spr2
  274.  
  275.       ' dwa
  276.  
  277.       Dim Dlugosc2 As Byte
  278.       Dlugosc2 = Jedenkrotszyoddlugosc * 2
  279.  
  280.       Dim J2 As Byte
  281.       J2 = Dlugosc
  282.  
  283.       If Dlugosc2 <= 16 And Spr2 <> 0 Then
  284.          Spr2 = 0
  285.          For J = 1 To Jedenkrotszyoddlugosc
  286.             If Tajnyszyfr(j2) <> Szyfr(j) Then
  287.                Spr2 = 1
  288.             Else
  289.                Spr2 = 0
  290.             End If
  291.             Incr J2
  292.          Next J
  293.       End If
  294.  
  295.       J2 = Dlugosc
  296.       For J = 1 To Jedenkrotszyoddlugosc
  297.          'Print "szyfr: " ; Szyfr(j) ; " tajny szyfr: " ; Tajnyszyfr(j2)
  298.          Incr J2
  299.       Next J
  300.       'Print "spr2: " ; Spr2
  301.  
  302.       ' trzy
  303.  
  304.       Dlugosc2 = Jedenkrotszyoddlugosc * 3
  305.       J2 = Dlugosc * 2
  306.       J2 = J2 - 1
  307.  
  308.       If Dlugosc2 <= 16 And Spr2 <> 0 Then
  309.          Spr2 = 0
  310.          For J = 1 To Jedenkrotszyoddlugosc
  311.             If Tajnyszyfr(j2) <> Szyfr(j) Then
  312.                Spr2 = 1
  313.                Exit For
  314.             Else
  315.                Spr2 = 0
  316.             End If
  317.             Incr J2
  318.          Next J
  319.       End If
  320.  
  321.       J2 = Dlugosc * 2
  322.       J2 = J2 - 1
  323.       For J = 1 To Jedenkrotszyoddlugosc
  324.          'Print "szyfr: " ; Szyfr(j) ; " tajny szyfr: " ; Tajnyszyfr(j2)
  325.          Incr J2
  326.       Next J
  327.       'Print "spr2: " ; Spr2
  328.  
  329.       ' cztery
  330.  
  331.       Dlugosc2 = Jedenkrotszyoddlugosc * 4
  332.       J2 = Dlugosc * 3
  333.       J2 = J2 - 2
  334.  
  335.       If Dlugosc2 <= 16 And Spr2 <> 0 Then
  336.          Spr2 = 0
  337.          For J = 1 To Jedenkrotszyoddlugosc
  338.             If Tajnyszyfr(j2) <> Szyfr(j) Then
  339.                Spr2 = 1
  340.                Exit For
  341.             Else
  342.                Spr2 = 0
  343.             End If
  344.             Incr J2
  345.          Next J
  346.       End If
  347.  
  348.       J2 = Dlugosc * 3
  349.       J2 = J2 - 2
  350.       For J = 1 To Jedenkrotszyoddlugosc
  351.          'Print "szyfr: " ; Szyfr(j) ; " tajny szyfr: " ; Tajnyszyfr(j2)
  352.          Incr J2
  353.       Next J
  354.       'Print "spr2: " ; Spr2
  355.  
  356.  
  357.       ' jezeli nie pokrywają się to idz do potwierdzenia
  358.       If Spr2 = 1 Then
  359.          Stan = 2
  360.          Flaga = 0
  361.          I = 1
  362.          Goto Main
  363.       ' jezeli pokrywają się to wróć to ustawiania długosci
  364.       Else
  365.          Stan = 0
  366.          Flaga = 0
  367.          I = 1
  368.          Wait 5
  369.          Lcd "  wprowadzono   "
  370.          Lowerline
  371.          Lcd "  zaj" ; Chr(3) ; "ty szyfr  "
  372.          Goto Main
  373.       End If
  374.  
  375.    End If
  376.  
  377.    If Porta.0 = 1 Then
  378.       Bitwait Porta.0 , Reset
  379.       Lcd "#"
  380.       Szyfr(i) = 1
  381.       Incr I
  382.    End If
  383.  
  384.    If Porta.1 = 1 Then
  385.       Bitwait Porta.1 , Reset
  386.       Lcd "#"
  387.       Szyfr(i) = 2
  388.       Incr I
  389.    End If
  390.  
  391.    If Porta.2 = 1 Then
  392.       Bitwait Porta.2 , Reset
  393.       Lcd "#"
  394.       Szyfr(i) = 3
  395.       Incr I
  396.    End If
  397.  
  398.    If Porta.3 = 1 Then
  399.       Bitwait Porta.3 , Reset
  400.       Lcd "#"
  401.       Szyfr(i) = 4
  402.       Incr I
  403.    End If
  404.  
  405.    If Porta.4 = 1 Then
  406.       Bitwait Porta.4 , Reset
  407.       Lcd "#"
  408.       Szyfr(i) = 5
  409.       Incr I
  410.    End If
  411.  
  412.    If Porta.5 = 1 Then
  413.       Bitwait Porta.5 , Reset
  414.       Lcd "#"
  415.       Szyfr(i) = 6
  416.       Incr I
  417.    End If
  418.  
  419.    If Porta.6 = 1 Then
  420.       Bitwait Porta.6 , Reset
  421.       Lcd "#"
  422.       Szyfr(i) = 7
  423.       Incr I
  424.    End If
  425.  
  426.    If Porta.7 = 1 Then
  427.       Bitwait Porta.7 , Reset
  428.       Lcd "#"
  429.       Szyfr(i) = 8
  430.       Incr I
  431.    End If
  432.  
  433.  
  434. End Sub
  435.  
  436. ' potwierdzanie szyfru
  437. Sub Wprowadz_szyfr2
  438.  
  439.    If Flaga = 0 Then
  440.       Flaga = 1
  441.       Cls
  442.       Lcd " Potwierd" ; Chr(5) ; " szyfr"
  443.       Lowerline
  444.       Lcd "Szyfr: "
  445.       Flaga = 1
  446.    End If
  447.  
  448.    If I = Dlugosc Then
  449.       Stan = 2
  450.       Flaga = 0
  451.       I = 1
  452.       Call Sprawdz_szyfr
  453.    End If
  454.  
  455.    If Porta.0 = 1 Then
  456.       Bitwait Porta.0 , Reset
  457.       Lcd "#"
  458.       Szyfruser(i) = 1
  459.       Incr I
  460.    End If
  461.  
  462.    If Porta.1 = 1 Then
  463.       Bitwait Porta.1 , Reset
  464.       Lcd "#"
  465.       Szyfruser(i) = 2
  466.       Incr I
  467.    End If
  468.  
  469.    If Porta.2 = 1 Then
  470.       Bitwait Porta.2 , Reset
  471.       Lcd "#"
  472.       Szyfruser(i) = 3
  473.       Incr I
  474.    End If
  475.  
  476.    If Porta.3 = 1 Then
  477.       Bitwait Porta.3 , Reset
  478.       Lcd "#"
  479.       Szyfruser(i) = 4
  480.       Incr I
  481.    End If
  482.  
  483.    If Porta.4 = 1 Then
  484.       Bitwait Porta.4 , Reset
  485.       Lcd "#"
  486.       Szyfruser(i) = 5
  487.       Incr I
  488.    End If
  489.  
  490.    If Porta.5 = 1 Then
  491.       Bitwait Porta.5 , Reset
  492.       Lcd "#"
  493.       Szyfruser(i) = 6
  494.       Incr I
  495.    End If
  496.  
  497.    If Porta.6 = 1 Then
  498.       Bitwait Porta.6 , Reset
  499.       Lcd "#"
  500.       Szyfruser(i) = 7
  501.       Incr I
  502.    End If
  503.  
  504.    If Porta.7 = 1 Then
  505.       Bitwait Porta.7 , Reset
  506.       Lcd "#"
  507.       Szyfruser(i) = 8
  508.       Incr I
  509.    End If
  510.  
  511. End Sub
  512.  
  513. ' sprawdzanie czy podany szyfr zgadza sie z jego potwierdzeniem
  514. Sub Sprawdz_szyfr
  515.  
  516.    Flaga = 0
  517.    Jedenkrotszyoddlugosc = Dlugosc - 1
  518.  
  519.    For J = 1 To Jedenkrotszyoddlugosc
  520.       If Szyfr(j) <> Szyfruser(j) Then
  521.          Flaga = 0
  522.          Exit For
  523.       Else
  524.          Flaga = 1
  525.       End If
  526.       'Print "J=" ; J ; " " ; Szyfr(j) ; " " ; Szyfruser(j) ; " flaga= " ; Flaga
  527.    Next J
  528.  
  529.    'Print "flaga=" ; Flaga
  530.  
  531.    If Flaga = 0 Then
  532.       Cls
  533.       Lcd " Podano r" ; Chr(6) ; Chr(7) ; "ne "
  534.       Lowerline
  535.       Lcd "     szyfry!    "
  536.       Wait 5
  537.       Stan = 0
  538.       Flaga = 0
  539.       I = 1
  540.    Else
  541.       Cls
  542.       Lcd "  Szyfr zosta" ; Chr(0) ; "  "
  543.       Lowerline
  544.       Lcd "   ustawiony!   "
  545.       '------------------------------------------------------------------
  546.       ' Tutaj zrobić zapis tablicy "Szyfr" do EPROM!!!'
  547.  
  548.       Tajnyszyfriterator = 8
  549.  
  550.       For I = 1 To 9
  551.          Writeeeprom Szyfr(i) , Szyfr_pamiec(i)
  552.       Next
  553.  
  554.       Writeeeprom Flaga_eprom , Wsk_flaga
  555.       Writeeeprom Dlugosc , Wsk_dlugosc
  556.       '-----------------------------------------------------------------
  557.       Wait 5
  558.       Stan = 3
  559.       Flaga = 0
  560.       I = 1
  561.    End If
  562.  
  563. End Sub
  564.  
  565. ' domyslny tryb pracy (otwieranie sejfu jezeli szyfr jest poprawny)
  566. Sub Wprowadz_szyfr_otwieranie
  567.  
  568.    If Flaga = 0 Then
  569.       Cls
  570.       Lcd "  Podaj szyfr"
  571.       Lowerline
  572.       Lcd "Szyfr: "
  573.       Flaga = 1
  574.    End If
  575.  
  576.    If I = Dlugosc Then
  577.       Stan = 2
  578.       Flaga = 0
  579.       I = 1
  580.       Call Sprawdz_szyfr_otwieranie
  581.    End If
  582.  
  583.    If Porta.0 = 1 Then
  584.       Bitwait Porta.0 , Reset
  585.       Lcd "#"
  586.       Szyfruser(i) = 1
  587.       Incr I
  588.       Tajnyszyfruser(tajnyszyfriterator) = 1
  589.       Incr Tajnyszyfriterator
  590.    End If
  591.  
  592.    If Porta.1 = 1 Then
  593.       Bitwait Porta.1 , Reset
  594.       Lcd "#"
  595.       Szyfruser(i) = 2
  596.       Incr I
  597.       Tajnyszyfruser(tajnyszyfriterator) = 2
  598.       Incr Tajnyszyfriterator
  599.    End If
  600.  
  601.    If Porta.2 = 1 Then
  602.       Bitwait Porta.2 , Reset
  603.       Lcd "#"
  604.       Szyfruser(i) = 3
  605.       Incr I
  606.       Tajnyszyfruser(tajnyszyfriterator) = 3
  607.       Incr Tajnyszyfriterator
  608.    End If
  609.  
  610.    If Porta.3 = 1 Then
  611.       Bitwait Porta.3 , Reset
  612.       Lcd "#"
  613.       Szyfruser(i) = 4
  614.       Incr I
  615.       Tajnyszyfruser(tajnyszyfriterator) = 4
  616.       Incr Tajnyszyfriterator
  617.    End If
  618.  
  619.    If Porta.4 = 1 Then
  620.       Bitwait Porta.4 , Reset
  621.       Lcd "#"
  622.       Szyfruser(i) = 5
  623.       Incr I
  624.       Tajnyszyfruser(tajnyszyfriterator) = 5
  625.       Incr Tajnyszyfriterator
  626.    End If
  627.  
  628.    If Porta.5 = 1 Then
  629.       Bitwait Porta.5 , Reset
  630.       Lcd "#"
  631.       Szyfruser(i) = 6
  632.       Incr I
  633.       Tajnyszyfruser(tajnyszyfriterator) = 6
  634.       Incr Tajnyszyfriterator
  635.    End If
  636.  
  637.    If Porta.6 = 1 Then
  638.       Bitwait Porta.6 , Reset
  639.       Lcd "#"
  640.       Szyfruser(i) = 7
  641.       Incr I
  642.       Tajnyszyfruser(tajnyszyfriterator) = 7
  643.       Incr Tajnyszyfriterator
  644.    End If
  645.  
  646.    If Porta.7 = 1 Then
  647.       Bitwait Porta.7 , Reset
  648.       Lcd "#"
  649.       Szyfruser(i) = 8
  650.       Incr I
  651.       Tajnyszyfruser(tajnyszyfriterator) = 8
  652.       Incr Tajnyszyfriterator
  653.    End If
  654.  
  655. End Sub
  656.  
  657. ' sprawdzanie czy podany przez uzytkownika szyfr jest poprawny
  658. Sub Sprawdz_szyfr_otwieranie
  659.  
  660.    Flaga = 0
  661.    Jedenkrotszyoddlugosc = Dlugosc - 1
  662.  
  663.    For J = 1 To Jedenkrotszyoddlugosc
  664.       If Szyfr(j) <> Szyfruser(j) Then
  665.          Flaga = 0
  666.          Exit For
  667.       Else
  668.          Flaga = 1
  669.       End If
  670.    Next J
  671.  
  672.    If Flaga = 1 Then
  673.       Cls
  674.       Lcd "   Otwarte :)   "
  675.       Wait 60
  676.       Stan = 3
  677.       Flaga = 0
  678.       I = 1
  679.       Tajnyszyfriterator = 1
  680.    Else
  681.       'SEBA: doisac sprawdzanie czy tajny szyfr jest poprawnie wprowadzany jesli nie to losowac liczbe
  682.  
  683.       Dim Spr As Bit
  684.       Dim Jedenmniej As Byte
  685.       Jedenmniej = Tajnyszyfriterator - 1
  686.  
  687.       For J = 1 To Jedenmniej
  688.          'Print "tajnyszyfr: " ; Tajnyszyfr(j) ; " tajny szyfr user: " ; Tajnyszyfruser(j)
  689.          If Tajnyszyfruser(j) <> Tajnyszyfr(j) Then
  690.             Spr = 0
  691.             Exit For
  692.          Else
  693.             Spr = 1
  694.          End If
  695.       Next J
  696.  
  697.       If Spr = 0 Then
  698.          ' reset zawartosci tablicy tajnyszyfruser coby przez przypadek nie udało się zmienić szyfru
  699.          Tajnyszyfruser(1) = 0
  700.          Tajnyszyfruser(2) = 0
  701.          Tajnyszyfruser(3) = 0
  702.          Tajnyszyfruser(4) = 0
  703.          Tajnyszyfruser(5) = 0
  704.          Tajnyszyfruser(6) = 0
  705.          Tajnyszyfruser(7) = 0
  706.          Tajnyszyfruser(8) = 0
  707.          Tajnyszyfruser(9) = 0
  708.          Tajnyszyfruser(10) = 0
  709.          Tajnyszyfruser(11) = 0
  710.          Tajnyszyfruser(12) = 0
  711.          Tajnyszyfruser(13) = 0
  712.          Tajnyszyfruser(14) = 0
  713.          Tajnyszyfruser(15) = 0
  714.          Tajnyszyfruser(16) = 0
  715.  
  716.          Tajnyszyfriterator = 8
  717.       End If
  718.  
  719.       Cls
  720.       Lcd "  Podano b" ; Chr(0) ; Chr(3) ; "dny  "
  721.       Lowerline
  722.       Lcd "     szyfr!   "
  723.       Wait 5
  724.       Stan = 3
  725.       Flaga = 0
  726.       I = 1
  727.    End If
  728.  
  729. End Sub
  730.  
  731. ' sprawdzanie czy ukryty szyfr jest poprawny
  732. Sub Zmiana_szyfru
  733.  
  734.    Tajnyszyfriterator = 8
  735.    Flaga = 0
  736.    'Break
  737.  
  738.    For J = 1 To Pom2
  739.       If Tajnyszyfr(j) <> Tajnyszyfruser(j) Then
  740.          Flaga = 0
  741.          Exit For
  742.       Else
  743.          Flaga = 1
  744.       End If
  745.       'Print Tajnyszyfr(j) ; " " ; Tajnyszyfruser(j)
  746.    Next J
  747.  
  748.    For J = 1 To Pom2
  749.       'Print "TajnySzyfr= " ; Tajnyszyfr(j) ; " " ; "TajnySzyfrUser= " ; Tajnyszyfruser(j)
  750.    Next J
  751.  
  752.    If Flaga = 1 Then
  753.       Cls
  754.       Lcd "  wprowadzono   "
  755.       Lowerline
  756.       Lcd "  tajny szyfr   "
  757.       Wait 4
  758.       Flaga = 0
  759.       I = 1
  760.       Stan = 0
  761.  
  762.       ' reset tablicy tajnyszyfruser, aby przez przypadek nie udało się zmienić
  763.       ' szyfry bez podania prawidłowego szyfru
  764.       Tajnyszyfruser(1) = 0
  765.       Tajnyszyfruser(2) = 0
  766.       Tajnyszyfruser(3) = 0
  767.       Tajnyszyfruser(4) = 0
  768.       Tajnyszyfruser(5) = 0
  769.       Tajnyszyfruser(6) = 0
  770.       Tajnyszyfruser(7) = 0
  771.       Tajnyszyfruser(8) = 0
  772.       Tajnyszyfruser(9) = 0
  773.       Tajnyszyfruser(10) = 0
  774.       Tajnyszyfruser(11) = 0
  775.       Tajnyszyfruser(12) = 0
  776.       Tajnyszyfruser(13) = 0
  777.       Tajnyszyfruser(14) = 0
  778.       Tajnyszyfruser(15) = 0
  779.       Tajnyszyfruser(16) = 0
  780.  
  781.       Tajnyszyfriterator = 8
  782.  
  783.       Goto Main
  784.    End If
  785.  
  786. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement