Advertisement
Guest User

Untitled

a guest
May 20th, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $large
  2. $sim
  3.  
  4. Deflcdchar 0 , 12 , 4 , 6 , 12 , 4 , 4 , 14 , 32              
  5. Deflcdchar 1 , 2 , 4 , 14 , 16 , 14 , 1 , 30 , 32            
  6. Deflcdchar 2 , 2 , 4 , 14 , 16 , 16 , 17 , 14 , 32            
  7. Deflcdchar 3 , 32 , 32 , 14 , 17 , 31 , 16 , 14 , 4          
  8. Deflcdchar 4 , 32 , 32 , 15 , 17 , 17 , 15 , 1 , 14           'g
  9. Deflcdchar 5 , 2 , 4 , 31 , 2 , 4 , 8 , 31 , 32              
  10. Deflcdchar 6 , 2 , 4 , 14 , 17 , 17 , 17 , 14 , 32          
  11. Deflcdchar 7 , 4 , 32 , 31 , 2 , 4 , 8 , 31 , 32            
  12. 'Deflcdchar ? , 32 , 32 , 14 , 1 , 15 , 17 , 15 , 2            'ą
  13.  
  14. Dim Dlugosc As Byte
  15. Dim Stan As Byte
  16. Dim Flaga As Bit
  17. Dim I As Byte
  18. Dim J As Byte
  19. Dim Tajnyszyfriterator As Byte
  20.  
  21. Dim Szyfr(9) As Byte
  22. Dim Szyfruser(9) As Byte
  23. Dim Tajnyszyfr(16) As Byte
  24. Dim Tajnyszyfruser(16) As Byte
  25.  
  26. Tajnyszyfr(1) = 1
  27. Tajnyszyfr(2) = 2
  28. Tajnyszyfr(3) = 3
  29. Tajnyszyfr(4) = 4
  30. Tajnyszyfr(5) = 5
  31. Tajnyszyfr(6) = 6
  32. Tajnyszyfr(7) = 7
  33. Tajnyszyfr(8) = 8
  34. Tajnyszyfr(9) = 1
  35. Tajnyszyfr(10) = 2
  36. Tajnyszyfr(11) = 3
  37. Tajnyszyfr(12) = 4
  38. Tajnyszyfr(13) = 5
  39. Tajnyszyfr(14) = 6
  40. Tajnyszyfr(15) = 7
  41. Tajnyszyfr(16) = 8
  42.  
  43. Stan = 0
  44. Dlugosc = 0
  45. Flaga = 0
  46. ' tablice w bascomie zaczynają się od 1 xDDD
  47. I = 1
  48. Tajnyszyfriterator = 1
  49.  
  50. Declare Sub Wprowadz_dlugosc
  51. Declare Sub Wprowadz_szyfr
  52. Declare Sub Wprowadz_szyfr2
  53. Declare Sub Sprawdz_szyfr
  54. Declare Sub Wprowadz_szyfr_otwieranie_sejfu
  55. Declare Sub Sprawdz_szyfr_otwieranie
  56. Declare Sub Zmiana_szyfru
  57.  
  58. Dim Pom As Byte
  59. Dim Pom2 As Byte
  60. Pom2 = 16
  61.  
  62. ' STAS if eprom == 0 to stan = 0
  63. ' jezeli w epromie cos jest to stan = 3 i uzupelniamy tablice "szyfr" zawartoscia epromu
  64.  
  65. ' aby zmienic haslo nalezy najpierw podac poprawny szyfr, a nastepnie podac tajny szyfr
  66.  
  67. ' main
  68. Do
  69.    Main:
  70.    Pom = Dlugosc + 1
  71.  
  72.    If Tajnyszyfriterator = 17 Then Call Zmiana_szyfru
  73.  
  74.    If Stan = 0 Then Call Wprowadz_dlugosc
  75.    If Stan = 1 Then Call Wprowadz_szyfr1
  76.    If Stan = 2 Then Call Wprowadz_szyfr2
  77.    If Stan = 3 Then Call Wprowadz_szyfr_otwieranie_sejfu
  78.  
  79.    Print "dlugosc=" ; Dlugosc ; " i=" ; I ; " TajnySzyfrIterator=" ; Tajnyszyfriterator
  80.  
  81. Loop
  82. End
  83.  
  84. ' wprowadzanie dlugosci
  85. Sub Wprowadz_dlugosc
  86.  
  87.    If Flaga = 0 Then
  88.       Cls
  89.       Lcd "Jak d" ; Chr(0) ; "u" ; Chr(4) ; "i szyfr?"
  90.       Lowerline
  91.       Lcd "  D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; ": "
  92.       Flaga = 1
  93.    End If
  94.  
  95.    If P3.0 = 0 Then
  96.       Bitwait P3.0 , Set
  97.       Cls
  98.       Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
  99.       Lowerline
  100.       Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
  101.       Wait 5
  102.       Flaga = 0
  103.       goto main
  104.    End If
  105.  
  106.    If P3.1 = 0 Then
  107.       Bitwait P3.1, set
  108.       Cls
  109.       Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
  110.       Lowerline
  111.       Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
  112.       Wait 5
  113.       Flaga = 0
  114.       Goto Main
  115.    End If
  116.  
  117.    If P3.2 = 0 Then
  118.       Bitwait P3.2, set
  119.       Cls
  120.       Lcd " D" ; Chr(0) ; "u" ; Chr(4) ; "o" ; Chr(1) ; Chr(2) ; " szyfru "
  121.       Lowerline
  122.       Lcd " Pomi" ; Chr(3) ; "dzy 4 a 8 "
  123.       Wait 5
  124.       Flaga = 0
  125.       Goto Main
  126.    End If
  127.  
  128.    If P3.3 = 0 Then
  129.       Bitwait P3.3, set
  130.       Lcd "4"
  131.       Dlugosc = 5
  132.       Stan = 1
  133.       Flaga = 0
  134.    End If
  135.  
  136.    If P3.4 = 0 Then
  137.       Bitwait P3.4, set
  138.       Lcd "5"
  139.       Dlugosc = 6
  140.       Stan = 1
  141.       Flaga = 0
  142.    End If
  143.  
  144.    If P3.5 = 0 Then
  145.       Bitwait P3.5, set
  146.       Lcd "6"
  147.       Dlugosc = 7
  148.       Stan = 1
  149.       Flaga = 0
  150.    End If
  151.  
  152.    If P3.6 = 0 Then
  153.       Bitwait P3.6, set
  154.       Lcd "7"
  155.       Dlugosc = 8
  156.       Stan = 1
  157.       Flaga = 0
  158.    End If
  159.  
  160.    If P3.7 = 0 Then
  161.       Bitwait P3.7, set
  162.       Lcd "8"
  163.       Dlugosc = 9
  164.       Stan = 1
  165.       Flaga = 0
  166.    End If
  167.  
  168.  
  169. End Sub
  170.  
  171. ' wprowadzanie szyfru
  172. Sub Wprowadz_szyfr1
  173.  
  174.    If Flaga = 0 Then
  175.       Cls
  176.       Lcd "   Podaj szyfr"
  177.       Lowerline
  178.       Lcd "Szyfr: "
  179.       Flaga = 1
  180.    End If
  181.  
  182.    If I = Dlugosc Then
  183.       Stan = 2
  184.       Flaga = 0
  185.       I = 1
  186.       Goto Main
  187.    End If
  188.  
  189.    If P3.0 = 0 Then
  190.       Bitwait P3.0 , Set
  191.       Lcd "#"
  192.       Szyfr(i) = 1
  193.       Incr I
  194.    End If
  195.  
  196.    If P3.1 = 0 Then
  197.       Bitwait P3.1, set
  198.       Lcd "#"
  199.       Szyfr(i) = 2
  200.       Incr I
  201.    End If
  202.  
  203.    If P3.2 = 0 Then
  204.       Bitwait P3.2, set
  205.       Lcd "#"
  206.       Szyfr(i) = 3
  207.       Incr I
  208.    End If
  209.  
  210.    If P3.3 = 0 Then
  211.       Bitwait P3.3, set
  212.       Lcd "#"
  213.       Szyfr(i) = 4
  214.       Incr I
  215.    End If
  216.  
  217.    If P3.4 = 0 Then
  218.       Bitwait P3.4, set
  219.       Lcd "#"
  220.       Szyfr(i) = 5
  221.       Incr I
  222.    End If
  223.  
  224.    If P3.5 = 0 Then
  225.       Bitwait P3.5, set
  226.       Lcd "#"
  227.       Szyfr(i) = 6
  228.       Incr I
  229.    End If
  230.  
  231.    If P3.6 = 0 Then
  232.       Bitwait P3.6, set
  233.       Lcd "#"
  234.       Szyfr(i) = 7
  235.       Incr I
  236.    End If
  237.  
  238.    If P3.7 = 0 Then
  239.       Bitwait P3.7, set
  240.       Lcd "#"
  241.       Szyfr(i) = 8
  242.       Incr I
  243.    End If
  244.  
  245.  
  246. End Sub
  247.  
  248. ' potwierdzanie szyfru
  249. Sub Wprowadz_szyfr2
  250.  
  251.    If Flaga = 0 Then
  252.       Flaga = 1
  253.       Cls
  254.       Lcd " Potwierd" ; Chr(5) ; " szyfr"
  255.       Lowerline
  256.       Lcd "Szyfr: "
  257.       Flaga = 1
  258.    End If
  259.  
  260.    If I = Dlugosc Then
  261.       Stan = 2
  262.       Flaga = 0
  263.       I = 1
  264.       Call Sprawdz_szyfr
  265.    End If
  266.  
  267.    If P3.0 = 0 Then
  268.       Bitwait P3.0 , Set
  269.       Lcd "#"
  270.       Szyfruser(i) = 1
  271.       Incr I
  272.    End If
  273.  
  274.    If P3.1 = 0 Then
  275.       Bitwait P3.1, set
  276.       Lcd "#"
  277.       Szyfruser(i) = 2
  278.       Incr I
  279.    End If
  280.  
  281.    If P3.2 = 0 Then
  282.       Bitwait P3.2, set
  283.       Lcd "#"
  284.       Szyfruser(i) = 3
  285.       Incr I
  286.    End If
  287.  
  288.    If P3.3 = 0 Then
  289.       Bitwait P3.3, set
  290.       Lcd "#"
  291.       Szyfruser(i) = 4
  292.       Incr I
  293.    End If
  294.  
  295.    If P3.4 = 0 Then
  296.       Bitwait P3.4, set
  297.       Lcd "#"
  298.       Szyfruser(i) = 5
  299.       Incr I
  300.    End If
  301.  
  302.    If P3.5 = 0 Then
  303.       Bitwait P3.5, set
  304.       Lcd "#"
  305.       Szyfruser(i) = 6
  306.       Incr I
  307.    End If
  308.  
  309.    If P3.6 = 0 Then
  310.       Bitwait P3.6, set
  311.       Lcd "#"
  312.       Szyfruser(i) = 7
  313.       Incr I
  314.    End If
  315.  
  316.    If P3.7 = 0 Then
  317.       Bitwait P3.7, set
  318.       Lcd "#"
  319.       Szyfruser(i) = 8
  320.       Incr I
  321.    End If
  322.  
  323. End Sub
  324.  
  325. ' sprawdzanie czy podany szyfr zgadza sie z jego potwierdzeniem
  326. Sub Sprawdz_szyfr
  327.  
  328.    Flaga = 0
  329.  
  330.    For J = 1 To Dlugosc
  331.       If Szyfr(j) <> Szyfruser(j) Then
  332.          Flaga = 0
  333.          Exit For
  334.       Else
  335.          Flaga = 1
  336.       End If
  337.       Print "J=" ; J ; " " ; Szyfr(j) ; " " ; Szyfruser(j) ; " flaga= " ; Flaga
  338.    Next J
  339.  
  340.    Print "flaga=" ; Flaga
  341.  
  342.    If Flaga = 0 Then
  343.       Cls
  344.       Lcd " Podane szyfry "
  345.       Lowerline
  346.       Lcd "   sa r" ; Chr(6) ; Chr(7) ; "ne!   "
  347.       Wait 5
  348.       Stan = 0
  349.       Flaga = 0
  350.       I = 1
  351.    Else
  352.       Cls
  353.       Lcd "  Szyfr zosta" ; Chr(0) ; "  "
  354.       Lowerline
  355.       Lcd "   ustawiony!   "
  356.  
  357.       ' STAS: Tutaj zrobić zapis tablicy "Szyfr" do EPROM!!!'
  358.  
  359.       Wait 5
  360.       Stan = 3
  361.       Flaga = 0
  362.       I = 1
  363.    End If
  364.  
  365. End Sub
  366.  
  367. ' domyslny tryb pracy (otwieranie sejfu jezeli szyfr jest poprawny)
  368. Sub Wprowadz_szyfr_otwieranie_sejfu
  369.  
  370.    If Flaga = 0 Then
  371.       Cls
  372.       Lcd "   Podaj szyfr"
  373.       Lowerline
  374.       Lcd "Szyfr: "
  375.       Flaga = 1
  376.    End If
  377.  
  378.    If I = Dlugosc Then
  379.       Stan = 2
  380.       Flaga = 0
  381.       I = 1
  382.       Call Sprawdz_szyfr_otwieranie
  383.    End If
  384.  
  385.    If P3.0 = 0 Then
  386.       Bitwait P3.0 , Set
  387.       Lcd "#"
  388.       Szyfruser(i) = 1
  389.       Incr I
  390.       Tajnyszyfruser(tajnyszyfriterator) = 1
  391.       Incr Tajnyszyfriterator
  392.    End If
  393.  
  394.    If P3.1 = 0 Then
  395.       Bitwait P3.1, set
  396.       Lcd "#"
  397.       Szyfruser(i) = 2
  398.       Incr I
  399.       Tajnyszyfruser(tajnyszyfriterator) = 2
  400.       Incr Tajnyszyfriterator
  401.    End If
  402.  
  403.    If P3.2 = 0 Then
  404.       Bitwait P3.2, set
  405.       Lcd "#"
  406.       Szyfruser(i) = 3
  407.       Incr I
  408.       Tajnyszyfruser(tajnyszyfriterator) = 3
  409.       Incr Tajnyszyfriterator
  410.    End If
  411.  
  412.    If P3.3 = 0 Then
  413.       Bitwait P3.3, set
  414.       Lcd "#"
  415.       Szyfruser(i) = 4
  416.       Incr I
  417.       Tajnyszyfruser(tajnyszyfriterator) = 4
  418.       Incr Tajnyszyfriterator
  419.    End If
  420.  
  421.    If P3.4 = 0 Then
  422.       Bitwait P3.4, set
  423.       Lcd "#"
  424.       Szyfruser(i) = 5
  425.       Incr I
  426.       Tajnyszyfruser(tajnyszyfriterator) = 5
  427.       Incr Tajnyszyfriterator
  428.    End If
  429.  
  430.    If P3.5 = 0 Then
  431.       Bitwait P3.5, set
  432.       Lcd "#"
  433.       Szyfruser(i) = 6
  434.       Incr I
  435.       Tajnyszyfruser(tajnyszyfriterator) = 6
  436.       Incr Tajnyszyfriterator
  437.    End If
  438.  
  439.    If P3.6 = 0 Then
  440.       Bitwait P3.6, set
  441.       Lcd "#"
  442.       Szyfruser(i) = 7
  443.       Incr I
  444.       Tajnyszyfruser(tajnyszyfriterator) = 7
  445.       Incr Tajnyszyfriterator
  446.    End If
  447.  
  448.    If P3.7 = 0 Then
  449.       Bitwait P3.7, set
  450.       Lcd "#"
  451.       Szyfruser(i) = 8
  452.       Incr I
  453.       Tajnyszyfruser(tajnyszyfriterator) = 8
  454.       Incr Tajnyszyfriterator
  455.    End If
  456.  
  457. End Sub
  458.  
  459. ' sprawdzanie czy podany przez uzytkownika szyfr jest poprawny
  460. Sub Sprawdz_szyfr_otwieranie
  461.  
  462.    Flaga = 0
  463.  
  464.    For J = 1 To Dlugosc
  465.       If Szyfr(j) <> Szyfruser(j) Then
  466.          Flaga = 0
  467.          Exit For
  468.       Else
  469.          Flaga = 1
  470.       End If
  471.    Next J
  472.  
  473.    If Flaga = 1 Then
  474.       Cls
  475.       Lcd "   Otwarte :)   "
  476.       Wait 60
  477.       Stan = 3
  478.       Flaga = 0
  479.       I = 1
  480.       Tajnyszyfriterator = 1
  481.    Else
  482.       Cls
  483.       Lcd "  Podano b" ; Chr(0) ; Chr(3) ; "dny  "
  484.       Lowerline
  485.       Lcd "     szyfr!   "
  486.       Wait 5
  487.       Stan = 3
  488.       Flaga = 0
  489.       I = 1
  490.    End If
  491.  
  492. End Sub
  493.  
  494. ' sprawdzanie czy ukryty szyfr jest poprawny
  495. Sub Zmiana_szyfru
  496.  
  497.    Tajnyszyfriterator = 1
  498.    Flaga = 0
  499.    Break
  500.  
  501.    For J = 1 To Pom2
  502.       If Tajnyszyfr(j) <> Tajnyszyfruser(j) Then
  503.          Flaga = 0
  504.          Exit For
  505.       Else
  506.          Flaga = 1
  507.       End If
  508.       Print Tajnyszyfr(j) ; " " ;  Tajnyszyfruser(j)
  509.    Next J
  510.  
  511.    For J = 1 To Pom2
  512.       Print "TajnySzyfr= " ; Tajnyszyfr(j) ; " " ; "TajnySzyfrUser= " ; Tajnyszyfruser(j)
  513.    Next J
  514.  
  515.    If Flaga = 1 Then
  516.       Cls
  517.       Lcd "  wprowadzono   "
  518.       Lowerline
  519.       Lcd "  tajny szyfr   "
  520.       Flaga = 0
  521.       I = 1
  522.       Stan = 0
  523.       Goto Main
  524.    End If
  525.  
  526. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement