Satura rādītājs:

Veidojiet datoru ar pamata izpratni par elektroniku: 9 soļi (ar attēliem)
Veidojiet datoru ar pamata izpratni par elektroniku: 9 soļi (ar attēliem)

Video: Veidojiet datoru ar pamata izpratni par elektroniku: 9 soļi (ar attēliem)

Video: Veidojiet datoru ar pamata izpratni par elektroniku: 9 soļi (ar attēliem)
Video: BERMUDU DIVSTŪRIS x APVEDCEĻŠ - Brāl' Ar Dzīvi Nekaulē 2024, Jūlijs
Anonim
Veidojiet datoru ar pamata izpratni par elektroniku
Veidojiet datoru ar pamata izpratni par elektroniku

Vai esat kādreiz vēlējies izlikties, ka esat patiešām gudrs, un izveidot savu datoru no nulles? Vai jūs neko nezināt par to, kas nepieciešams, lai izveidotu minimālo datoru? Tas ir viegli, ja zināt pietiekami daudz par elektroniku, lai pareizi savienotu dažus IC. Šajā pamācībā tiks pieņemts, ka jums ir laba šī daļa, kā arī dažas citas lietas. Un ja nē, tam joprojām nevajadzētu būt pārāk grūti sekot līdzi, ja zināt, kā tiek veikta maize vai prototips. Šīs pamācības mērķis ir iegūt jums strādājošu "datoru", nezinot daudz par to darbību. Es apskatīšu vadu un programmēšanas pamatus, kā arī sniegšu jums ļoti īsu programmu. Tātad sāksim darbu.

1. darbība: detaļas un lietas

Daļas un lietas
Daļas un lietas
Daļas un lietas
Daļas un lietas

"Datoram" nepieciešama: jauda, ievade, apstrāde, atmiņa un izeja. Tehniski mums būs visas šīs lietas. Es aprakstīšu šīs lietas šādā secībā.

Lai iegūtu jaudu, jums būs nepieciešams 5 voltu (šeit apzīmēts kā 5V) avots. Ieteicams, lai tas būtu regulēts avots, lai nejauši neapceptu ķēdes daļas. Mūsu ievade būs pogas. Apstrāde ir pašsaprotama; mēs izmantojam procesoru. Atmiņā būs tikai ROM. Procesora iekšējie vispārējie reģistri būs pietiekami, lai tos izmantotu kā RAM. Izeja būs gaismas diodes.

1 LM7805C - 5V regulators

1 ZYLOG Z80 - procesors

1 AT28C64B - EEPROM

1 74LS273 - Octal D Flip -Flop

1 74HC374E - Octal D Flip -Flop

3 CD4001BE - Quad NOR vārti

1 NE555 - pulksteņu ģenerators

2 1K omu rezistors

1 10K omu rezistors

1 10K omu rezistoru tīkls; 8 Bussed VAI 8 Papildu 10K rezistori

1 1uF kondensators

1 100uF kondensators

1 Nospiediet pogu

1 3x4 pogu matrica VAI 8 papildu spiedpogas

8 LED - krāsu izvēlei nav nozīmes

8 330 omi rezistori vai rezistoru tīkls

1 Patiešām liels maizes dēlis vai vairāki mazi

Daudz un daudz vadu

Manā shēmā man ir instalēta SRAM nūja. Jums par to pat nav jāuztraucas. Es to pievienoju tikai shēmai, lai precīzi atspoguļotu manu faktisko ķēdi, un es pievienoju to shēmai turpmākai lietošanai. Shēmai pievienots arī četrvietīgs VAI vārts (74LS36). Divu neizmantoto vārtu ieejas ir piesaistītas VCC, un to izejas paliek peldošas (nav uzzīmētas). Strāvas ķēdē nav arī divu kondensatoru.

Es baroju regulētu 12V 5V regulatorā, lai pabarotu visu maizes dēli. Tas kļūst diezgan silts, tāpēc es pievienoju siltuma izlietni, lai to atdzesētu. Ja regulatora barošanai izmantojat mazāk nekā 12 V (izmantojiet vismaz 7 V), tam vajadzētu darboties vēsāk.

Z80 ir vieta, kur notiek maģija. Tas paņem ROM un glabā instrukcijas. EEPROM saglabā mūsu programmu procesora izpildei.

Octal flip-flop, kas ir mūsu izvadierīce, kas fiksē datus datu kopnē uz savu izvadi. Tas ļauj mums mainīt autobusa saturu, kas ir ļoti svarīgs solis, kas tiek veikts vairākas reizes vienā instrukcijā, nemainot lietotāja/skatītāja redzēto. Flip-flop nevar vadīt strāvu, kas nepieciešama, lai izgaismotu izejas gaismas diodes, tāpēc tās tiek ievadītas divās četru NOR vārtu mikroshēmās, kas darbojas, lai buferizētu 8 datu līnijas, lai vadītu gaismas diodes. Tā kā vārtu izeja ir apgriezta, mums ir jāpievieno arī gaismas diodes, lai tās tiktu apgrieztas, bet mēs nonāksim pie tā, kad nonāksim pie tā. Otru NOR mikroshēmu izmanto loģiskai dekodēšanai, bet tiek izmantoti tikai trīs vārti.

Ievadīšanai izmantotais astoņstūra flip-flop būtībā ir tas pats. Izejas flip-flops saglabā savu produkciju vai nu augstu, vai zemu, tāpēc to nevar izmantot autobusa vadīšanai; tajā būtu dati par autobusu. Flip-flop, ko izmanto ievadīšanai, aizvieto /RESET tapu ar /EN, kas vairāk vai mazāk atvieno mikroshēmas izejas (un no tās), lai tajā netiktu glabāti dati (trīsstāvu izejas).

2. darbība: barošanas, pulksteņa un atiestatīšanas shēmu savienošana

Strāvas, pulksteņa un atiestatīšanas shēmu savienošana
Strāvas, pulksteņa un atiestatīšanas shēmu savienošana
Strāvas, pulksteņa un atiestatīšanas shēmu savienošana
Strāvas, pulksteņa un atiestatīšanas shēmu savienošana
Strāvas, pulksteņa un atiestatīšanas shēmu savienošana
Strāvas, pulksteņa un atiestatīšanas shēmu savienošana

PIEZĪME. Visām detaļām vispirms pievienojiet vadus sliedēm. No visām lietām, kas jāaizmirst pieslēgt, mikroshēmām būs daudz mazāka iespēja izdzīvot aizmirstos barošanas savienojumus.

Strāvas ķēde ir visvienkāršākā vadu ķēde, kam seko attiecīgi atiestatīšanas un pulksteņa shēmas. Attēlā 12V ieeja atrodas strāvas padeves joslā pa labi. Brūnais vads, zem tā slēpjot dzeltenu, baro 12 V regulatoru. Regulatora izeja baro katru citu maizes dēļa barošanas bloku, un katrai barošanas joslai ir kopīgs pamats, jo tā darbojas elektronika.

Procesora darbībai ir nepieciešama pulksteņa ķēde. Bez tā tā vienkārši sēdēs sākotnējā stāvoklī un neko nedarīs. Pulkstenis darbina procesora iekšējos maiņu reģistrus, lai tas varētu ģenerēt signālus, lai veiktu lietas. Tiks piemērota jebkura pulksteņa ievade, pat vienkāršs rezistors un spiedpoga. Bet instrukciju izpildei nepieciešami daudzi pulksteņa cikli. Instrukcija rakstīt izvadā pati par sevi aizņem 12 ciklus. Jūs, iespējams, nevēlaties tur sēdēt un vairāk nekā 100 reizes nospiest pogu, lai iegūtu tikai vienu koda cilpu (faktiskie skaitļi ir norādījuma beigās). Tam ir paredzēts NE555. Tas pārslēdzas jūsu vietā, un tas tiek darīts ar (salīdzinoši) ātru ātrumu.

Pirms sākat elektroinstalāciju, iespējams, vēlēsities iet uz priekšu un izdomāt, kā vēlaties, lai komponenti tiktu izvietoti uz tāfeles. Mana pulksteņa ķēde ir tikko novietota tāfeles apakšā, lai tā nebūtu no citām sastāvdaļām. Mēs pieņemsim, ka jūs zināt, kā ar taimeri izveidot pamata pulksteni. Ja to nedarīsit, vēlēsities meklēt “555 Astable” un sekot apmācībai. Izmantojiet 1K rezistoru, lai pārietu starp 5V sliedi un taimera 7.tapu (R1), un 10K starp 7.tapu un 2.tapu (R2). Noteikti piesieniet atiestatīšanas tapu 4. tapu pie 5V sliedes, lai taimeris varētu darboties. Es ievietoju gaismas diodi manā izejā, lai es varētu pārbaudīt, vai pulkstenis patiešām darbojas, bet tas nav vajadzīgs.

Vēl viena iespēja ar NE555 ir iestatīt to kā NOT vārtus un izmantot 1K rezistoru, lai sasaistītu izeju ar ieeju. Parasti ir ieteicams izmantot 3 taimerus, bet es atklāju, ka tikai vienam vajadzētu darboties labi. Vienkārši ziniet, ka, to darot, tas svārstīsies ļoti lielā ātrumā, un būs ļoti grūti, pat neiespējami pateikt, ka izejas gaismas diodes mirgo. Šo iestatījumu sauc par "gredzena oscilatoru".

Ņemiet vērā, ka mēs vēl nepievienojam pulksteni procesorim. Mēs to vienkārši gatavojam. Ņemiet vērā arī loģikas mikroshēmu attēlā tieši virs pulksteņa. Tas tika pievienots vēlāk, un tā bija vienīgā daļēji saprātīgā vieta, kur to novietot. To izmanto RAM/ROM izvēlei. Šī pamācība ignorē RAM, tāpēc jums nebūs šīs mikroshēmas uz tāfeles.

Tagad mēs vadām atiestatīšanas ķēdi. Vispirms jums jāatrod vieta uz tāfeles. Es izvēlējos tieši pie pulksteņa. Pievienojiet savu pogu tāfelei. Izmantojiet 1K rezistoru, lai vienu pogas pusi piesietu pie 5V sliedes. Mūsu RESET tapas ir zemas, kas nozīmē, ka mums tās ir jātur augstu. Tam ir paredzēts rezistors. Šis krustojums ir arī vieta, kur savieno atiestatīšanas tapas. Pogas otra puse iet taisni uz zemes. Ja vēlaties atiestatīt ieslēgšanu, pievienojiet šim krustojumam arī 10uF kondensatoru. Tas saglabās spriegumu atiestatīšanas tapās pietiekami zemu, lai aktivizētu atiestatīšanas shēmu procesorā un flip-flop.

3. darbība: pieslēdziet Z80 vadu

Tagad mēs nonākam pie sīkumiem. Mēs vadosim zvēru, kas ir Z80. Savā panelī es ievietoju Z80 tās pašas plates daļas augšpusē, kurā ir atiestatīšanas ķēde. Kā minēts iepriekš, vispirms pievadiet strāvas sliedes. 5V iet uz 11. tapu kreisajā pusē, un zeme ir par vienu tapu uz leju, bet labajā pusē. Jūs, iespējams, pamanījāt arī mikroshēmas nepāra platumu. Tas novedīs pie tā, ka maizes dēļa vienā pusē ir 3 atvērti savienotāji, bet otrā - 2. Tas tikai padara mazāk ērtu vadot papildu lietas, ja izvēlaties to darīt.

Šie pin numuri-pieņemu, ka jūs zināt, kā pieskaitīt tapas uz IC-ir neizmantotas ieejas, un tām jābūt saistītām ar 5V sliedi: 16, 17, 24, 25.

Atceries mūsu pulksteni? Tās izeja iet uz z80 6. tapu. Atiestatīšanas ķēde tiek savienota ar tapu 26. Ja nav citu komponentu uz tāfeles, tas ir, cik es varu jums palīdzēt ar paša z80 vadu. Vairāk elektroinstalāciju, kas tai tiek veikta, veiks vēlākos posmos.

Tā kā ķēde man jau bija uzbūvēta, pirms es pat apsvēru šīs instrukcijas rakstīšanu, es atturēšos no attēla līdz nākamajam solim.

4. solis: ROM savienošana

ROM pieslēgšana
ROM pieslēgšana

PIEZĪME. Ja vēlaties to ieprogrammēt (iespējams, vēlēsities to apturēt uz tāfeles) (vairāk par to vēlāk).

Attiecībā uz ROM es to novietoju blakus Z80 labajā pusē un arī pārvietoju vienu tapu uz maizes dēļa. Tas ļāva man tieši pievadīt adreses autobusu, bet vairāk par to vēlāk. AT28C64B ir EEPROM, kas nozīmē, ka to var ieprogrammēt vairākas reizes, izslēdzot un ieslēdzot dažas tapas. Mēs nevēlamies, lai mūsu EEPROM nejauši pārprogrammētu sevi, kad tas atrodas ķēdē. Tātad, kad esat pievienojis strāvas sliedes, pievelciet 27 (/WE) tapu pie 5V sliedes, lai vispār atspējotu rakstīšanas funkciju.

Mana programma ir tik maza, man vajadzēja pieslēgt tikai zemākās 5 adrešu līnijas (A0-A4), bet es tomēr pieslēdzu A5, A6 un A7, lai es varētu rakstīt lielākas programmas bez papildu darba. Papildu adrešu līnijas (A8-A12) ir piesaistītas tieši zemei, lai novērstu nevēlamu piekļuvi augstākām adresēm no peldošām ievadēm. Tā kā neizmantotās adreses ieejas ir piesaistītas zemei un rakstīšanas kontrole ir saistīta ar 5 V spriegumu, pārējo savienošana ir diezgan vienkārša. Atrodiet procesoru A0 un pievienojiet to A0 ROM. Pēc tam atrodiet procesorā A1 un pievienojiet to ROM ROM A1. Dariet to, līdz visas adreses ir savienotas kopā. Attēlā mana adreses kopne uz ROM tiek veikta zilā vadā. Adreses kopne, kas dodas uz RAM, tiek veikta sarkanā vadā. Visi šie vadi bija iepriekš sagriezti un noņemti, jo tie bija iekļauti maizes dēļu vadu komplektā un bija ideāli piemēroti šai elektroinstalācijai.

Kad adreses ir pieslēgtas vadam (to sauc par adrešu kopni), rīkojieties tieši tāpat kā tapām, kas apzīmētas ar D0, pēc tam D1, D2 utt. Dariet to visām datu tapām (D0 - D7), un jums ir vadu datu kopne. Mēs esam gandrīz pabeiguši ROM savienošanu. Atrodiet ROM /CE (mikroshēmas iespējošanas) tapu un pievienojiet to procesora tapai 19, /MREQ (atmiņas pieprasījums) un pēc tam atrodiet ROM /OE (izejas iespējošana) un pievienojiet to procesora tapai 21, /RD (lasīt). Tagad esam pabeiguši. Tas viss tiek darīts ar džemperu vadiem, jo tiem ir jāiet uz procesora otru pusi, un maizes dēlis nepiedāvā pietiekami daudz vietas, lai izmantotu šādu kārtīgu elektroinstalāciju.

5. darbība: izejas vadu savienošana

Izejas vadi
Izejas vadi
Izejas vadi
Izejas vadi

Tā kā tas bija neapdzīvots, izejai izvēlējos tāfeles sadaļu pa kreisi no Z80. Novietojiet flip-flop uz turieni un pievienojiet tiem strāvas sliedes. Pin 1, /MR (reset) var savienot tieši ar procesora atiestatīšanas tapu, bet jūs varat atstāt to piesaistītu 5V sliedei. To darot, tiks parādīti tikai nevēlami dati līdz pirmajai rakstīšanai. Ievērojiet, kā mikroshēmā ir pulksteņa ieeja uz tapas 11. Šī ievade ir dīvaina, jo tā tiek aktivizēta, kad tapa paceļas augstu. Ņemiet vērā arī to, ka šī tapa NAV tas pats pulkstenis, kas vada procesoru. Šis pulkstenis bloķē datu kopnē apgalvotos datus.

Atcerieties, kā mēs savienojām ROM D0 - D7 ar tiem pašiem procesora tapām? Dariet tieši to pašu ar šo mikroshēmu. Tā D0 datu kopnē iet uz D0 un tā tālāk. Tapas, kas sākas ar "Q", ir izejas. Pirms mēs tos vadām, mums jāpievieno vairāk mikroshēmu. Es izmantoju quad NOR vārtus, jo man ir caurule, un man jau to vajadzēja, bet, ja pareizi vadīsit, derēs jebkura mikroshēma. Es būtu varējis pieslēgt vienu ieeju visos vārtos pie zemes un izmantot citas ieejas kā labi, kā ieejas, bet vienkāršības labad es izvēlējos abas ieejas savienot kopā.

Es novietoju mikroshēmas zem flip-flop, lai būtu vieglāk pieslēgt vadu bez džemperiem, taču šajā brīdī man bija maz vadu, tāpēc galu galā tam nebija nozīmes. Flip-flop Q0, Q1….. Q7 iet uz ieejām atsevišķos vārtos. Ar 4 vārtiem katrā iepakojumā/mikroshēmā man vajadzēja 2 iepakojumus un izmantoju visus vārtus. Ja atrodat flip-flop versiju, kas var vadīt gaismas diodes, neizmantojot šādu buferšķīdumu, šīs divas mikroshēmas nav vajadzīgas. Ja jūs izmantojat vārtus kā buferi, kuriem nav apgrieztas izejas (UN/VAI/XOR), varat savienot gaismas diodes, kā jūs gaidāt. Ja izmantojat tādas pašas detaļas kā es un/vai izejas ir apgrieztas, gaismas diodēm jābūt savienotām ar vadu, kā aprakstīts tālāk. Pirmajā attēlā redzama izejas IC daļa.

Izmantojiet 330 omu rezistorus, lai savienotu gaismas diodes (anodi) ar 5V sliedi un savienotu negatīvo (katodu) ar vārtu izeju. Otrajā attēlā var redzēt, ka es izmantoju divus rezistoru kopņus, katrs ar tikai pieciem iekšējiem rezistoriem. Šāda veida gaismas diodes iedegsies, kad izeja būs izslēgta. Mēs to darām, jo izeja ir izslēgta, kad ievade ir ieslēgta. Pārliecinieties, ka izsekojat, kuri vārti nodrošina jūsu izvadi no flip-flop vadības. Ja vien jūsu gaismas diodes nebūs izkliedētas vai to secībai nav nozīmes, to pazaudēšana vēlāk var radīt neskaidrības, kad jautājat sev, kāpēc izvade ir nepareiza.

6. darbība: ievades vadu savienošana

Ievades vadi
Ievades vadi

Paņemiet 74HC374 flip-flop un novietojiet to kaut kur. Manējais atradās kaut kur zem Z80 uz tāfeles apakšas. Atcerieties pēdējo reizi, kad mēs savienojām D0 ar D0 un D1 ar D1 utt.? Šoreiz mēs savienojam Q0 ar D0 un Q1 ar D1 utt. Par laimi, šoreiz mums nav jāpievieno bufera mikroshēmas, haha. Tā vietā mēs pievienosim 10K omu katrai "D" tapai (D0-D7) un zemei, un pēc tam pogu pie tām pašām tapām un 5V sliedes. Vai arī varat izmantot rezistoru kopni un ievērojami samazināt savu daļu skaitu. Palīdzēs arī 3x4 pogu matrica (bez matricas izvades !!). Attēlā redzama visa ievades ķēde kopā ar līmes loģiku (šī daļa ir nākamā).

7. solis: līmes loģika

Mums ir jāpievieno vēl viena pēdējā lieta. To sauc par "līmes loģiku", jo to izmanto, lai atšifrētu vadības signālus, lai tas viss darbotos; tas tur ķēdi kopā. Kad procesors vēlas ierakstīt datus izvadā, abi /IORQ un /WR (attiecīgi 20 un 22) kļūst zemi, un nosūtītie dati tiek apgalvoti datu kopnē. Pulksteņa tapa uz abām flip-flops ir aktīva augsta, kas nozīmē, ka dati tiek fiksēti, kad tapa saņem augstu signālu. Mēs izmantojam NOR vārtus un vadu /IORQ uz vienu vārtu ieeju un /WR uz otru ieeju. Ja kāds no tiem ir augsts, tas nozīmē, ka netiek atlasītas IO shēmas vai netiek veikta rakstīšanas darbība, izvads, kas baro flip-flop pulksteni, paliek zems. Ja abas ieejas ir zemas un tikai tad, kad izvade ir augsta un flip-flop fiksē datus.

Tagad mums ir jāpievieno ieejas flip-flop. Mēs varam pieslēgt pulksteņa tapu līdzīgi kā iepriekšējo, bet izmantojot /IORQ un /RD. Bet atšķirībā no citas flip-flop, mums ir arī a /OE tapa, kas jāsamazina tikai tad, kad /IORQ un /RD ir zems. Mēs varētu izmantot VAI vārtus. Vai arī mēs varētu vienkārši ņemt signālu, kas mums jau ir pulkstenim, un apgriezt to ar vienu no diviem apgrieztajiem vārtiem, kas mums jau ir pieejami. Norādot šo pamācību, man nebija pieejami VAI vārti, tāpēc es izmantoju vienu no pēdējām iespējām. Izmantojot pēdējo iespēju, man jebkurā gadījumā nebija jāpievieno papildu detaļas.

8. solis: programmēšana

Ja jūsu elektroinstalācija ir pareiza un mans skaidrojums ir skaidrs, atliek tikai ieprogrammēt ROM. Ir daži veidi, kā to izdarīt. Jūs varētu izvēlēties vienkāršāko ceļu un pasūtīt jaunu mikroshēmu no Digikey. Pasūtot detaļu, jums būs iespēja augšupielādēt HEX failu, un viņi to ieprogrammēs pirms nosūtīšanas. Izmantojiet šim norādījumam pievienotos HEX vai OBJ failus un pagaidiet, līdz tas tiks nosūtīts pa pastu. Otrā iespēja ir izveidot programmētāju ar Arduino vai kaut ko citu. Es mēģināju šo kārtību, un neizdevās pareizi nokopēt noteiktus datus, un man vajadzēja nedēļas, lai to noskaidrotu. Es beidzot izdarīju 3. iespēju, proti, ieprogrammēt to ar rokām un pārslēgt slēdžus, lai kontrolētu adreses un datu līnijas.

Kad šī programma ir tieši pārveidota par procesora OP kodu, tā atrodas tikai 17 baitu adrešu telpā, tāpēc programmēšana ar rokām nebija pārāk šausmīga. Programma ielādē vispārējā reģistrā B vērtību 00. Reģistrs B tiek izmantots iepriekšējā papildinājuma rezultāta saglabāšanai. Tā kā A reģistrs ir vieta, kur notiek matemātika, mēs to neizmantosim datu glabāšanai.

Runājot par A reģistru, mēs izpildām komandu IN, kas nolasa ievadi, un saglabājam nolasītos datus A. Tad pievienojam reģistra B saturu un izvadām rezultātu.

Pēc tam reģistrs A tiek kopēts reģistrā B. Un tad mēs veicam virkni lēcienu komandu. Tā kā visi lēcieni norāda uz adrešu līniju apakšējo baitu un tā kā augšējais lekšanas instrukcijas baits ir norādīts otrajā argumentā un ir "00", mēs varam piespiest katram lēcienam sekot NOP. Mēs to darām, lai dotu laiku starp izvades rādīšanu un ievades nolasīšanu, lai novērstu nejaušu ievadi. Katrs lēciens izmanto desmit pulksteņa ciklus, un katrs NOP izmanto četrus. Ja cilpa aizņem pārāk daudz laika, lai jūs varētu patikt, varat palielināt pulksteņa ātrumu vai pārprogrammēt to, lai izmantotu vienu lēcienu mazāk.

9. solis: pārbaude

Ja viss ir pareizi pievienots vadam un jūsu ROM ir ieprogrammēts pareizi, ir jāveic pēdējais solis: pievienojiet to un pārbaudiet, vai tas darbojas. Nospiediet pogu un pagaidiet dažas sekundes. Nepieciešams 81 pulksteņa cikls, lai programma sasniegtu pirmo cilpu, un katra cilpa aizņem 74 pulksteņa ciklus.

Ja tas nedarbojas, pārbaudiet, vai nav īssavienojumu un neatvienotu tapu (atveras) un citas elektroinstalācijas problēmas. Ja atteicāties no ieslēgšanas atiestatīšanas, pirms procesora darbības ir jāveic manuāla atiestatīšana. Adreses kopnei varat pievienot arī gaismas diodes, lai redzētu, vai tās darbojas. Man pašam bija problēmas ar to, tāpēc es tās ievietoju tieši datu kopnē. Tas ļāva man redzēt, kas tiek paziņots starp procesoru un ROM, neraizējoties par to, vai ROM tiek pareizi nolasīts, un tam būtu vajadzīgas laika diagrammas, un es vienkārši negribēju to iesaistīt. Izrādījās, ka tā bija laba izvēle, jo es beidzot noķēru problemātiskos OP kodus, kas tika nepareizi saglabāti.

Ieteicams: