Turinys:

Sukurkite kompiuterį su pagrindiniais elektronikos supratimais: 9 žingsniai (su paveikslėliais)
Sukurkite kompiuterį su pagrindiniais elektronikos supratimais: 9 žingsniai (su paveikslėliais)

Video: Sukurkite kompiuterį su pagrindiniais elektronikos supratimais: 9 žingsniai (su paveikslėliais)

Video: Sukurkite kompiuterį su pagrindiniais elektronikos supratimais: 9 žingsniai (su paveikslėliais)
Video: Kaip sukurti Facebook verslo puslapį? Step by step 2024, Liepa
Anonim
Sukurkite kompiuterį su pagrindiniais elektronikos supratimais
Sukurkite kompiuterį su pagrindiniais elektronikos supratimais

Ar kada nors norėjote apsimesti, kad esate tikrai protingas, ir sukurti savo kompiuterį nuo nulio? Ar nieko nežinote, ko reikia norint sukurti minimalų kompiuterį? Na, tai lengva, jei pakankamai žinote apie elektroniką, kad teisingai sujungtumėte kai kuriuos IC. Ši pamoka manys, kad jums gerai sekasi ši dalis ir dar keletas dalykų. Ir jei ne, tai vis tiek neturėtų būti labai sunku sekti, jei žinote, kaip atliekama „boardboarding“/prototipų kūrimas. Šios instrukcijos tikslas yra suteikti jums veikiantį „kompiuterį“, nežinant daug apie jų veikimą. Aptarsiu laidus ir programavimo pagrindus, taip pat pateiksiu jums labai trumpą programą. Taigi pradėkime.

1 žingsnis: dalys ir daiktai

Dalys ir daiktai
Dalys ir daiktai
Dalys ir daiktai
Dalys ir daiktai

„Kompiuteriui“reikia: maitinimo, įvesties, apdorojimo, atminties ir išvesties. Techniškai mes turėsime visus šiuos dalykus. Aš aprašysiu šiuos dalykus tokia tvarka.

Norėdami gauti energijos, jums reikės 5 voltų (čia pažymėta kaip 5 V) šaltinio. Rekomenduojama, kad tai būtų reguliuojamas šaltinis, kad netyčia neapkeptumėte grandinės dalių. Mūsų įvestis bus mygtukai. Apdorojimas savaime suprantamas; mes naudojame procesorių. Atmintį sudarys tik ROM. Procesoriaus vidinių bendrosios paskirties registrų pakaks naudoti kaip RAM. Išėjimas bus šviesos diodai.

1 LM7805C - 5V reguliatorius

1 ZYLOG Z80 - procesorius

1 AT28C64B - EEPROM

1 74LS273 - „Octal D Flip -Flop“

1 74HC374E - „Octal D Flip -Flop“

3 CD4001BE - Quad NOR vartai

1 NE555 - laikrodžių generatorius

2 1K omo rezistorius

1 10 K omų rezistorius

1 10K omų rezistorių tinklas; 8 įvorės arba 8 papildomi 10K rezistoriai

1 1uF kondensatorius

1 100uF kondensatorius

1 Paspauskite mygtuką

1 3x4 mygtukų matrica ARBA 8 papildomi mygtukai

8 LED - spalvų pasirinkimas nesvarbus

8 330 omų rezistoriai arba rezistorių tinklas

1 Tikrai didelė duonos lenta arba keli maži

Daug ir daug vielos

Mano schemoje turiu įdiegtą SRAM lazdą. Jums net nereikia dėl to jaudintis. Aš pridėjau jį tik prie schemos, kad tiksliai atspindėčiau tikrąją grandinę, ir pridėjau ją prie grandinės, kad galėčiau naudoti ateityje. Prie schemos taip pat pridedami keturių OR vartai (74LS36). Du nenaudojami vartų įėjimai yra susieti su VCC, o jų išėjimai paliekami plūduriuojantys (nepiešti). Maitinimo grandinėje nėra dviejų kondensatorių.

Aš tiekiu reguliuojamą 12 V įtampą į 5 V reguliatorių, kad maitinčiau visą duonos lentą. Jis tampa gana šiltas, todėl pridedu radiatorių, kad atvėstų. Jei reguliatoriui tiekti naudojate mažiau nei 12 V (naudokite bent 7 V), jis turėtų veikti vėsiau.

Z80 yra vieta, kur įvyksta magija. Jis paima instrukcijas, saugomas ROM ir jas vykdo. EEPROM saugo mūsų programą procesoriui vykdyti.

Aštuonis šleifas, kuris yra mūsų išvesties įrenginys, kuris fiksuoja duomenų magistralės duomenis į savo išvestį. Tai leidžia mums pakeisti tai, kas yra autobuse, o tai yra labai svarbus žingsnis, atliekamas kelis kartus pagal instrukciją, nekeičiant to, ką mato vartotojas/žiūrovas. „Flip-flop“negali valdyti srovės, reikalingos išėjimo šviesos diodams apšviesti, todėl jie tiekiami į du iš keturių NOR vartų lustų, kurie apsaugo 8 duomenų linijas, kad galėtų valdyti šviesos diodus. Kadangi vartų išėjimas yra apverstas, mes taip pat turime prijungti šviesos diodus, kad jie būtų apversti, tačiau mes prieisime prie to, kai tai padarysime. Kitas NOR lustas naudojamas loginiam dekodavimui, tačiau naudojami tik trys vartai.

Įvedimui naudojamas aštuonkampis šleifas iš esmės yra tas pats. Išvesties šlepetės išlaiko aukštą arba mažą, todėl jos negalima naudoti autobusui vairuoti; jame būtų duomenys apie autobusą. Įvesties metu naudojamas atvartas pakeičia /RESET kaištį /EN, kuris daugiau ar mažiau atjungia lusto (ir iš jo) išėjimus, todėl jame nebus duomenų (trijų būsenų išėjimai).

2 žingsnis: Prijunkite maitinimo, laikrodžio ir atstatymo grandines

Maitinimo, laikrodžio ir atstatymo grandinių prijungimas
Maitinimo, laikrodžio ir atstatymo grandinių prijungimas
Maitinimo, laikrodžio ir atstatymo grandinių prijungimas
Maitinimo, laikrodžio ir atstatymo grandinių prijungimas
Maitinimo, laikrodžio ir atstatymo grandinių prijungimas
Maitinimo, laikrodžio ir atstatymo grandinių prijungimas

PASTABA: visų dalių atveju pirmiausia prijunkite maitinimo bėgius. Iš visų dalykų, kuriuos reikia pamiršti prijungti, lustai daug rečiau išgyvens užmirštus maitinimo jungtis.

Maitinimo grandinė yra paprasčiausias laidas, po kurio eina atitinkamai atstatymo ir laikrodžio grandinės. Paveikslėlyje 12 V įvestis yra dešinėje pusėje esančiame maitinimo skydelyje. Ruda viela, po ja slepianti geltoną, tiekia 12 V į reguliatorių. Reguliatoriaus išvestis maitina visas kitas maitinimo plokštes ant maitinimo plokštės, o kiekviena maitinimo juosta turi bendrą pagrindą, nes taip veikia elektronika.

Procesoriui veikti reikia laikrodžio grandinės. Be jo jis tiesiog sėdės savo pradinėje būsenoje ir nieko nedarys. Laikrodis valdo procesorių vidinius poslinkių registrus, kad galėtų generuoti signalus, kad galėtų atlikti tam tikrus veiksmus. Tiks bet koks laikrodžio įėjimas, net paprastas rezistorius ir mygtukas. Tačiau instrukcijoms vykdyti reikia daug laikrodžio ciklų. Pati instrukcija rašyti į išvestį trunka 12 ciklų. Tikriausiai nenorite ten sėdėti ir daugiau nei 100 kartų paspausti mygtuko, kad gautumėte tik vieną kodo kilpą (tikrieji skaičiai yra nurodymų pabaigoje). Tam skirtas NE555. Tai perjungia už jus ir tai daro (palyginti) greitai.

Prieš pradėdami ką nors jungti, galbūt norėsite eiti į priekį ir išsiaiškinti, kaip norite, kad jūsų komponentai būtų išdėstyti lentoje. Mano laikrodžio grandinė yra šiek tiek padėta lentos apačioje, kad ji nebūtų iš kitų komponentų. Manysime, kad žinote, kaip su laikmačiu pasidaryti pagrindinį laikrodį. Jei to nepadarysite, norėsite ieškoti „555 Astable“ir sekti mokymo programą. Naudokite 1K rezistorių, kad eitumėte tarp 5V bėgio ir laikmačio 7 kaiščio (R1), o 10K - tarp 7 ir 2 kaiščio (R2). Būtinai pririškite atstatymo kaištį 4 kaištį prie 5V bėgelio, kad laikmatis galėtų veikti. Aš įdėjau šviesos diodą į savo išvestį, kad galėčiau patikrinti, ar laikrodis iš tikrųjų veikia, bet to nereikia.

Kitas NE555 variantas yra nustatyti jį kaip NOT vartus ir naudoti 1K rezistorių, kad išvestis būtų susieta su įvestimi. Paprastai rekomenduojama naudoti 3 laikmačius, tačiau pastebėjau, kad tik 1 turėtų veikti gerai. Tiesiog žinokite, kad jei tai padarysite, jis svyruos labai dideliu greičiu ir bus labai sunku, net neįmanoma pasakyti, kad išvesties šviesos diodai mirksi. Ši sąranka vadinama „žiediniu osciliatoriumi“.

Atminkite, kad mes dar neprijungiame laikrodžio prie procesoriaus. Mes tiesiog ruošiamės. Taip pat atkreipkite dėmesį į loginį lustą, esantį tiesiai virš laikrodžio paveikslėlyje. Jis buvo pridėtas vėliau, ir tai buvo vienintelė pusiau pagrįsta vieta, kur jį įdėti. Jis naudojamas RAM/ROM pasirinkimui. Šis nurodymas ignoruoja RAM, todėl jūs neturėsite šio lusto savo plokštėje.

Dabar mes prijungiame atstatymo grandinę. Pirmiausia turite rasti vietą savo lentoje. Aš pasirinkau šalia laikrodžio. Pridėkite savo mygtuką prie lentos. Naudokite 1K rezistorių, kad vieną mygtuko pusę pririštumėte prie 5V bėgio. Mūsų RESET kaiščiai yra žemi, todėl turime juos laikyti aukštai. Tam ir skirtas rezistorius. Ši sankryža taip pat yra vieta, kur jungiasi atstatymo kaiščiai. Kita mygtuko pusė eina tiesiai į žemę. Jei norite iš naujo įjungti maitinimą, prie šios sankryžos taip pat pridėkite 10uF kondensatorių. Jis išlaikys atstatymo kaiščių įtampą pakankamai žemą, kad suaktyvintų atstatymo grandinę procesoriuje ir šlepetėje.

3 žingsnis: Z80 prijungimas

Dabar mes pereiname prie smulkmenų. Mes sujungsime žvėrį, kuris yra Z80. Savo plokštėje aš įdėjau Z80 tos pačios plokštės dalies viršuje, kaip ir atstatymo grandinė. Kaip minėta anksčiau, pirmiausia prijunkite maitinimo bėgius. 5V eina į 11 kaištį kairėje, o žemė yra viena kaištis žemyn, bet dešinėje. Galbūt pastebėjote ir keistą lusto plotį. Dėl to turėsite 3 atviras jungtis vienoje duonos lentos pusėje ir 2 kitoje. Jei pasirinksite tai padaryti, mažiau patogu prijungti papildomus daiktus.

Šie PIN kodai-manau, jūs žinote, kaip skaičiuoti kaiščius ant IC-yra nenaudojami įėjimai ir turi būti susieti su 5V bėgeliu: 16, 17, 24, 25.

Prisimeni mūsų laikrodį? Jo išėjimas patenka į z80 6 kaištį. Atstatymo grandinė jungiama prie kaiščio 26. Neturint kitų plokštėje esančių komponentų, tai yra tiek, kiek galiu jums padėti su paties z80 laidais. Daugiau prijungimo prie jo bus atlikta vėliau.

Kadangi aš jau buvau sukūręs grandinę, kol net negalvojau parašyti šios instrukcijos, aš laikysiuosi paveikslo iki kito žingsnio.

4 žingsnis: ROM prijungimas

ROM prijungimas
ROM prijungimas

PASTABA: galbūt norėsite atidėti jos įdėjimą į lentą, jei ji vis tiek turi būti užprogramuota (daugiau apie tai vėliau).

Dėl ROM aš padėjau jį šalia Z80 dešinėje ir vieną kaištį nustūmiau ant duonos lentos. Tai leido man tiesiogiai prijungti adresų magistralę, bet daugiau apie tai vėliau. „AT28C64B“yra EEPROM, tai reiškia, kad jį galima užprogramuoti kelis kartus išjungiant ir įjungiant kai kuriuos kaiščius. Mes nenorime, kad mūsų EEPROM netyčia perprogramuotų save, kai jis yra grandinėje. Taigi, kai prijungsite maitinimo bėgelius, prijunkite 27 (/WE) kaištį prie 5V bėgelio, kad išjungtumėte rašymo funkciją.

Mano programa tokia maža, man reikėjo prijungti tik apatines 5 adresų eilutes (A0-A4), bet vis tiek prijungiau A5, A6 ir A7, kad galėčiau rašyti didesnes programas be papildomo darbo. Papildomos adresų eilutės (A8-A12) yra tiesiogiai susietos su žeme, kad būtų išvengta nepageidaujamos prieigos prie aukštesnių adresų iš plaukiojančių įėjimų. Kai nenaudojami adreso įėjimai yra susieti su žeme, o rašymo valdymas - 5 V, likusių laidų prijungimas yra gana paprastas. Raskite A0 procesoriuje ir prijunkite jį prie A0 ROM. Tada suraskite A1 procesoriuje ir prijunkite jį prie A1 ROM. Darykite tai tol, kol sujungsite visus adresus. Paveikslėlyje mano adreso magistralė į ROM yra mėlyna. Adreso magistralė, einanti į RAM, yra raudona. Visi šie laidai buvo iš anksto nupjauti ir nuimti, nes jie buvo su duonos lentos laidų komplektu ir puikiai tinka šiam laidui.

Kai prijungsite adresus (tai vadinama adresų magistralė), atlikite tą patį su kaiščiais, pažymėtais D0, tada D1, D2 ir tt. Padarykite tai su visais duomenų kaiščiais (D0 - D7) ir turėsite prijungta duomenų magistralė. Mes beveik baigėme prijungti ROM. Raskite ROM /CE (lusto įgalinimo) kaištį ir prijunkite jį prie procesoriaus kaiščio 19, /MREQ (atminties užklausa), tada suraskite ROM /OE (išvesties įgalinimas) ir prijunkite jį prie procesoriaus kaiščio 21, /RD (skaityti). Dabar baigėme. Visa tai daroma naudojant trumpalaikius laidus, nes jie turi pereiti į kitą procesoriaus pusę, o duonos lenta nesuteikia pakankamai vietos tokiems tvarkingiems laidams naudoti.

5 žingsnis: išvesties prijungimas

Išvesties prijungimas
Išvesties prijungimas
Išvesties prijungimas
Išvesties prijungimas

Kadangi jis nebuvo apgyvendintas, išėjimui pasirinkau lentos skyrių kairėje nuo Z80. Uždėkite šlepetę ir prijunkite prie maitinimo bėgių. 1 kaištis, /MR (atstatymas) gali būti tiesiogiai prijungtas prie procesoriaus atstatymo kaiščio, tačiau galite palikti jį pririštą prie 5 V bėgio. Tai padarius, bus rodomi tik nepageidaujami duomenys iki pirmojo įrašymo. Atkreipkite dėmesį, kaip lustas turi laikrodžio įvestį kaištyje 11. Ši įvestis yra keista, nes ji aktyvuojama, kai kaištis pakyla aukštai. Taip pat atkreipkite dėmesį, kad šis kaištis NĖRA tas pats laikrodis, kuris valdo procesorių. Šis laikrodis fiksuoja duomenų magistralėje nurodytus duomenis.

Prisiminkite, kaip prijungėme D0 - D7 ROM prie tų pačių procesoriaus kaiščių? Atlikite tą patį su šiuo lustu. Jo D0 eina į D0 duomenų magistralėje ir pan. Smeigtukai, prasidedantys „Q“, yra išėjimai. Prieš prijungdami laidus, turime pridėti daugiau lustų. Aš naudoju quad NOR vartus, nes turiu jų vamzdelį ir man jų jau reikėjo, bet apie bet kokią mikroschemą pavyks, jei teisingai prijungsi. Aš galėjau susieti vieną įvestį visuose vartuose su žeme, o kitas įvestis naudoti kaip įvestis, bet paprastumo sumetimais pasirinkau prijungti abu įėjimus.

Aš įdėjau žetonus žemiau šlepetės, kad būtų lengviau prijungti laidus be džemperių, tačiau šiuo metu man trūko laido, todėl galų gale tai nebuvo svarbu. Q0, Q1….. Q7 ant flip-flop eina į atskirų vartų įvestis. Turėdamas 4 vartus kiekvienoje pakuotėje/mikroschemoje, man reikėjo 2 paketų ir naudojau visus vartus. Jei radote „flip-flop“versiją, kuri gali valdyti šviesos diodus, nereikalaujant tokio buferio, šių dviejų lustų nereikia. Jei vartus naudojate kaip buferį, kuriuose nėra apverstų išėjimų (AND/OR/XOR), galite prijungti šviesos diodus taip, kaip tikitės. Jei naudojate tas pačias dalis kaip aš ir (arba) išėjimai yra apversti, šviesos diodai turi būti prijungti, kaip aprašyta toliau. Pirmasis vaizdas rodo išvesties IC dalį.

Naudokite 330 omų rezistorius, kad susietumėte teigiamus šviesos diodus (anodą) su 5V bėgeliu ir prijunkite neigiamą (katodą) prie vartų išvesties. Antrame paveikslėlyje galite pamatyti, kad naudojau du rezistorius, kurių kiekvienoje yra tik penki vidiniai rezistoriai. Prijungus tokius šviesos diodus, jie užsidegs, kai išėjimas išjungtas. Mes tai darome, nes išėjimas yra išjungtas, kai įėjimas yra įjungtas. Visiškai įsitikinkite, kad stebite, kurie vartai išvedami iš „flip-flop“valdymo. Jei jūsų šviesos diodai nebus išsklaidyti arba jų tvarka bus beprasmė, jų praradimas gali sukelti painiavą vėliau, kai klausiate savęs, kodėl išvestis yra neteisinga.

6 veiksmas: įvesties prijungimas

Įvesties prijungimas
Įvesties prijungimas

Paimkite tą 74HC374 šlepetę ir padėkite ją kur nors. Mano buvo kažkur žemiau Z80 link lentos apačios. Prisimeni paskutinį kartą, kai prijungėme D0 prie D0 ir D1 prie D1 ir pan.? Šį kartą mes prijungiame Q0 prie D0 ir Q1 prie D1 ir pan. Laimei, šį kartą mums nereikia pridėti jokių buferinių žetonų, haha. Vietoj to mes prijungsime 10K omą prie kiekvieno „D“kaiščio (D0-D7) ir įžeminimo, o po to mygtuką prie tų pačių kaiščių ir 5V bėgelio. Arba galite naudoti rezistorių magistralę ir labai sumažinti savo dalių skaičių. Taip pat padės 3x4 mygtukų matrica (be matricinės išvesties !!). Paveikslėlyje parodyta visa įvesties grandinė kartu su klijų logika (ta dalis yra kita).

7 žingsnis: klijų logika

Mes turime paskutinį dalyką laidui. Tai vadinama „klijų logika“, nes ji naudojama iššifruoti valdymo signalus, kad visa tai veiktų; tai kas laiko grandinę kartu. Kai procesorius nori įrašyti duomenis į išvestį, abu /IORQ ir /WR (atitinkamai 20 ir 22) sumažėja, o siunčiami duomenys tvirtinami duomenų magistralėje. Abiejuose šlepečių laikrodžio kaištis yra aktyvus aukštas, o tai reiškia, kad duomenys užfiksuojami, kai kaištis gauna aukštą signalą. Mes naudojame NOR vartus ir laidą /IORQ prie vieno vartų įėjimo ir /WR prie kito įėjimo. Kai vienas iš jų yra aukštas, o tai reiškia, kad IO grandinės nėra pasirinktos arba rašymo operacija neatliekama, išvestis, maitinanti „flip-flop“laikrodį, išlieka maža. Kai abu įėjimai yra žemi, ir tik tada, kai išėjimas yra didelis, o šleifas fiksuoja duomenis.

Dabar turime prijungti įvesties šnipštą. Mes galime prijungti laikrodžio kaištį panašiai kaip ir ankstesnį, bet naudojant /IORQ ir /RD. Tačiau, skirtingai nei kitas šleifas, mes taip pat turime /OE kaištį, kurį reikia nuimti tik tada, kai /IORQ ir /RD yra žemi. Galėtume naudoti ARBA vartus. Arba galime tiesiog pasiimti signalą, kurį jau turime laikrodžiui, ir apversti jį vienu iš dviejų apverstų vartų, kuriuos jau turime. Tuo metu, kai nurodžiau šį nurodymą, aš neturėjau OR vartų, todėl naudojau vieną iš pastarųjų variantų. Naudojant pastarąją parinktį, vis tiek nereikėjo pridėti jokių papildomų dalių.

8 žingsnis: programavimas

Jei jūsų laidai yra teisingi ir mano paaiškinimas aiškus, belieka tik užprogramuoti ROM. Yra keletas būdų, kaip tai padaryti. Galite pasirinkti lengviausią kelią ir užsisakyti naują „Digikey“lustą. Užsisakydami dalį, turėsite galimybę įkelti HEX failą ir jie užprogramuos jį prieš išsiunčiant. Naudokite prie šios instrukcijos pridėtus HEX arba OBJ failus ir tiesiog palaukite, kol jie atkeliaus paštu. 2 variantas yra sukurti programuotoją su „Arduino“ar pan. Aš bandžiau tą būdą ir nepavyko tinkamai nukopijuoti tam tikrų duomenų, ir man prireikė savaičių, kad tai išsiaiškintume. Galų gale aš padariau 3 parinktį, tai yra programuoti rankiniu būdu ir apversti jungiklius, kad būtų galima valdyti adresą ir duomenų linijas.

Konvertuota tiesiai į procesoriaus OP kodą, visa ši programa yra tik 17 baitų adreso erdvėje, todėl programavimas rankiniu būdu nebuvo pernelyg baisus. Programa įkelia į bendrosios paskirties registrą B, kurio vertė yra 00. B registras naudojamas ankstesnio pridėjimo rezultatui saugoti. Kadangi matematika vyksta A registre, mes jo nenaudosime duomenims saugoti.

Kalbėdami apie A registrą, mes atliekame komandą IN, kuri nuskaito įvestį, ir išsaugome perskaitytus duomenis A. Tada pridedame registro B turinį ir išvedame rezultatą.

Po to registras A nukopijuojamas į registrą B. Ir tada mes atliekame šuolio komandų seriją. Kadangi visi šuoliai nurodo į apatinį adreso eilučių baitą ir kadangi viršutinis šuolio nurodymo baitas yra pateiktas antrajame argumente ir yra „00“, galime priversti kiekvieną šuolį sekti NOP. Tai darome norėdami suteikti laiko tarp išvesties rodymo ir įvesties įvesties, kad būtų išvengta atsitiktinio įvedimo. Kiekvienas šuolis naudoja dešimt laikrodžio ciklų, o kiekvienas NOP - keturis. Jei ciklas užtrunka per ilgai, galite patobulinti laikrodžio greitį arba perprogramuoti, kad būtų sumažintas vienas šuolis.

9 žingsnis: bandymas

Jei viską prijungėte teisingai ir jūsų ROM buvo užprogramuotas teisingai, turite atlikti paskutinį žingsnį: prijunkite jį ir pažiūrėkite, ar jis veikia. Paspauskite mygtuką ir palaukite kelias sekundes. Programai reikia 81 laikrodžio ciklo, kad ji pasiektų pirmąją kilpą, o kiekviena kilpa trunka 74 laikrodžio ciklus.

Jei tai neveikia, patikrinkite, ar nėra trumpųjų jungčių ir neprijungtų kaiščių (atsidaro) ir kitų laidų problemų. Jei atsisakėte įjungimo iš naujo nustatymo, jums reikės atlikti rankinį atstatymą, kol procesorius nieko nedarys. Taip pat galite prijungti šviesos diodus prie adresų magistralės, kad pamatytumėte, ar jie elgiasi. Aš pats turėjau problemų dėl to, todėl jas priklijavau tiesiai prie duomenų magistralės. Tai leido man pamatyti, kas buvo perduodama tarp procesoriaus ir ROM, ir man nereikėjo jaudintis, ar ROM buvo teisingai skaitomas, o tam būtų reikėję laiko diagramų, ir aš tiesiog nenorėjau to įtraukti. Pasirodo, tai buvo geras pasirinkimas, nes pagaliau pagavau probleminius OP kodus, kurie buvo neteisingai saugomi.

Rekomenduojamas: