
Satura rādītājs:
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59


Agrāk es esmu uzrakstījis ceļvedi, kā izveidot datoru, kura pamatā ir Z80, un es izveidoju shēmu pēc iespējas vienkāršāku, lai to varētu uzbūvēt pēc iespējas vienkāršāk. Es arī uzrakstīju nelielu programmu, izmantojot to pašu vienkāršības ideju. Šis dizains strādāja diezgan labi, bet es nebiju ar to apmierināts. Es sāku ar programmas pārrakstīšanu, kas ļāva to ieprogrammēt izpildlaika laikā. Tas ļāva man pārbaudīt koda gabalus, nenododot to EEPROM, kas savukārt prasītu man pārprogrammēt EEPROM. Man šī ideja nelikās jautra. Tad es sāku domāt par atmiņas vietām. Ja es gribētu saslēgt aparatūru (galvenokārt IO), koda gabals potenciāli varētu pārsniegt sistēmai pieejamo atmiņas vietu. Atcerieties, ka dizains izmantoja tikai adrešu kopnes apakšējo baitu, un pēc tam augstākā baita apakšējo bitu izmantoja, lai izvēlētos starp ROM un RAM atstarpēm. Tas nozīmēja, ka man bija jāizmanto tikai 253 baiti vietas. Jūs, iespējams, jautājat, kāpēc 253, nevis 256. Tas ir tāpēc, ka mans jaunais kods rakstiskas programmas beigās ievada trīs baitus datu (tas tiks apskatīts vēlāk, jo es to pārveidoju, lai strādātu pie jaunā dizaina).
n
Es atgriezos pie savām vecajām shēmām, lai redzētu, kas vēl notiek. Atradu nelielu trūkumu atmiņas izvēles shēmā, kuru es noklusēšu, kad tur nokļūšu. Vienkāršotā versija: visi rakstīšanas pieprasījumi patiešām tiktu veikti, lai gan tas vienmēr tika ievietots RAM. Tas, iespējams, nebija vērts uztraukties, bet es šoreiz gribēju to darīt pareizi. Un līdz ar to es sāku zīmēt jaunu shēmu. Šai lapai pievienotie divi attēli ir pirms un pēc faktiskās ķēdes. Es iztīrīju tik daudz spageti vadu, tas nav smieklīgi.
n
Ja jūs sekojāt manam sākotnējam iesniegumam un plānojat sekot līdzi šim, jūs mani ienīstat. Ja jūs sākat svaigu, tad jums veicas. Vienkārši satveriet sarakstā esošās daļas (vai to ekvivalentu) un sekojiet līdzi.
Piegādes:
LM7805 - 5 voltu regulatorsZ80 - centrālais procesors; sistēmas smadzenesAT28C64B - EEPROM. “Pastāvīga” datu krātuve, ko izmanto datora programmaparatūrai IDT6116SA - SRAM; izmanto lietotāja koda glabāšanai un /vai vispārējai datu glabāšanaiNE555 - Sistēmas pulkstenis74HC374 - Octal D -Latch ar /OE; izmanto kā ievades mikroshēmu74LS273 - Octal D -Latch ar /MR; izvades mikroshēmaTLC59211 - LED draivera mikroshēma (tiek izmantota, lai 74LS273 varētu vadīt gaismas diodes, jo tā viena pati nav spējīga izvadīt strāvu) MC14572 - Šī ir “līnijas draivera” mikroshēma, taču es atklāju, ka tā ir ideāli piemērota atmiņas vadības loģikai. Tam ir 4 invertori un iebūvēti NAND un NOR vārti74LS32 - Quad OR gateCD4001 - Quad NOR gateCD4040 - 12 Stage Ripple Counter; Zīmēts, bet nav ieviests pulksteņa dalītājs (sistēmas darbināšanai ar lēnāku pulksteņa ātrumu) 2 10K omu rezistori - viens tiek izmantots 555 taimera ķēdē, tāpēc izmantojiet to, kādu vērtību vēlaties 44K omi - viens tiek izmantots 555 taimera ķēde, tāpēc izmantojiet to, ko vēlaties. Cits tiek izmantots gaismas diožu vadīšanai, tāpēc arī mainiet to, ja vēlaties Attiecībā uz 8 es izmantoju joslu diagrammas displeju (HDSP -4836) 4 Kondensatori - divi tiek izmantoti LM7805; 0,22uF un 0,1uF. Viens ir paredzēts taimerim 555, tāpēc izmantojiet to, kas jums šķiet pareizs. Pēdējais ir paredzēts ieslēgšanas atiestatīšanai; 100uF2 N. O. Spiedpogas - vienu izmanto ievadīšanai, otru atiestatīšanai8 SPST DIP slēdži - datu ievade; Es izmantoju Piano Key styleWire. Daudz un daudz vadu
n
PIEZĪME. MC14572 caur caurumu versija ir novecojusi, taču SMD versija joprojām ir aktīva (pat ne statuss “nav paredzēts jaunam dizainam”), tāpēc jums, iespējams, būs jāiegādājas shēmas plate, lai to varētu izmantot. Otro 74LS32 var izmantot MC14572 vietā (skatiet iepriekšējās ible shēmu “atmiņas izvēles ķēde”)
1. darbība: ātrs izmaiņu pārskats + shēmas

Kā izlasīt shēmas: Bultiņa, kas norādīta mikroshēmā, ir ievade: Ievads> -Bultas, kas vērsta prom no mikroshēmas, ir izeja: Izeja <-Autobusi izmanto līniju bultiņas vietā: Autobuss |-
n
Lielākā daļa mikroshēmu ir izvilktas ar precīziem pinoutiem. Uz šīm mikroshēmām ir uzzīmēts mazais kritums. Lielākajai daļai mikroshēmu ir arī tapu numuri un etiķetes. Tos var būt nedaudz grūti lasīt. Mans zīmulis kļuva blāvs.
n
Attiecībā uz shēmas savienojumiem jaunā dizaina izkārtojums lielākoties nemainās no oriģināla. Es savienoju atmiņas augšējā baita apakšējo nipeli atmiņās un pēc tam RAM/ROM izvēlei izmantoju augšējā knaipa zemo bitu (A12). Tas nozīmēja, ka ROM vietas apjoms palielinājās no 0000-00FF līdz 0000-0FFF. Ram platība mainījās no 0100-01FF līdz 1000-1FFF. Es arī nomainīju atmiņas vadības loģiku, lai iegūtu labāku dizainu, un pievienoju divas jaunas statusa gaismas diodes (un dažas līmes loģikas). Esmu arī uzzīmējis (bet ne vadu) pulksteņa dalītāja ķēdi. Tam bija jāveic divas funkcijas. Acīmredzamā funkcija ir sadalīt pulksteņa frekvenci uz leju. Otra funkcija ir paredzēta PWM (impulsa platuma modulācijas) nolūkiem, jo 555 nerada viļņus ar 50% darba cikliem. Šajā shēmā tam nav īsti nozīmes, bet, ja vēlaties izmantot pulksteni, lai vadītu dažas gaismas diodes, jūs noteikti pamanīsit efektus (viens (-i) LED (-u) būs blāvāks nekā otrs). Visa pārējā shēma būtībā nemainās.
2. solis: CPU, atmiņa un atmiņas vadība




Šī ir tā daļa, kur manas iepriekšējās versijas lasītāji mani ienīst. Sākotnējā uzbūvē es vienkārši uzmeta detaļas uz tāfeles vietā, kur, pēc izskata, tās neradīs problēmas ar savienošanu. Rezultāts izskatījās tā, it kā kāds būtu izmetis uz tā spageti un šķita “vadi”! Es gribēju to nedaudz iztīrīt, tāpēc sāku ar visu, izņemot CPU, RAM un ROM, izvilkšanu. Es izvilku gandrīz visu ievades ķēdi, izejas ķēdi un līmes loģiku. Man bija gandrīz sāpīgi to darīt, bet tas bija nepieciešams. Es atstāju neskartus visus datu savienojumus un adrešu kopnes apakšējo baitu. Pēc tam es pievienoju nākamos četrus adreses kopnes (A8-A11) bitus ar ROM mikroshēmu. Es parūpējos, lai šoreiz apbrauktu mikroshēmu, lai būtu vieglāk uzvilkt pārprogrammēšanu. Es arī pārslēdzu adrešu savienojumus uz RAM mikroshēmu.
n
Līdz ar to man tagad bija jāieslēdz atmiņas vadības loģika. Sākotnējā shēmā es biju savienojis procesora /MREQ līniju tieši ar /CE abām atmiņas mikroshēmām, pēc tam es vadu /WR pievienoju RAM /WE. Tad man bija CPU /RD un /MREQ loģiski VAI kopā, kā arī A9. Būtībā tas tika iestatīts tā, lai visi atmiņas pieprasījumi aktivizētu gan RAM, gan ROM, bet A9 tika izmantots, lai atlasītu, kura no mikroshēmām /OE tika izvēlēta. Tas bija labi, un viss tāpēc, ka mikroshēmas paliks neaktīvas, līdz tiks veikts atmiņas pieprasījums, un tad tikai viens /OE būtu aktīvs lasīšanas pieprasījuma laikā. Tas novērsa šķērsruna, bet ieviesa neērtu niansi. Tā kā A9 tika izmantots tikai, lai noteiktu, kura mikroshēma izvada datus, un CPU bija tieša piekļuve RAM /WE tapai, tiks izpildīti visi rakstīšanas pieprasījumi. Tas bija labi ROM, jo tā rakstīšanas režīmu kavē sasiešana /WE tieši pie 5 V barošanas avota. Tomēr RAM tiks rakstīts neatkarīgi no A9. Tas nozīmēja, ka mēģinājums rakstīt uz ROM vietas vietu rakstīs uz to pašu RAM vietas vietu.
n
Viens no risinājumiem varētu būt vadības loģikas savienošana, lai CPU būtu tieša piekļuve mikroshēmu /OE un /WE tapām un pēc tam, izmantojot MREQ un A12, lai izvēlētos, kuras mikroshēmas /CE tika darbinātas. Es gāju pie šīs idejas, bet tā vietā, lai izmantotu četrus NOR vārtus un tādu invertoru kā sākotnējais dizains, es atradu neērtu mazu mikroshēmu, kas bija ideāli piemērota šim uzdevumam. Man bija jāizveido shēma, kurā tika izmantoti tikai mikroshēmā pieejamie loģiskie vārti, taču tas bija pietiekami vienkārši. A12 tiek ievadīts tieši NAND vārtos un NOR vārtos. /MREQ tiek ievadīts NOR vārtos, un tā kompliments tiek ievadīts NAND vārtos. NAND vārti tiek izmantoti, lai vadītu /CE RAM, un NOR izeja tiek apgriezta un izmantota, lai vadītu ROM /CE. Tas nozīmē, ka /MREQ ir jābūt zemam, pirms tiek atlasīta kāda mikroshēma, un pēc tam A12 izvēlas, kura no tām tiks izvēlēta. Izmantojot šo iestatījumu, visi rakstīšanas pieprasījumi uz ROM neko nedos. Tas arī ietaupa enerģiju, jo ir aktīva tikai viena mikroshēma abu vietā. Kas attiecas uz pašu loģisko mikroshēmu, mums joprojām ir divi neizmantoti invertori. Viens pieradīs vēlāk, bet mēs tur nokļūsim, kad tur nonāksim.
3. darbība: sistēmas statusa gaismas diodes


Pirms šī projekta uzsākšanas es mēģināju saskarties ar noteiktu IC, taču man bija problēmas ar to. Neesot pārliecināts par notiekošo, es izmantoju paneļa stiprinājuma LED, lai zondētu apkārt (viens no tiem komplektiem, kurā ir iebūvēts rezistors). To darot, man radās nostalģijas ideja, kas tiek izmantota joprojām: statusa gaismas diodes izmantoja, lai norādītu, vai atmiņa tiek lasīta vai rakstīta. Tas bija jāizmanto kopā ar ieejas LED, kas man jau bija. Ievades gaismas diode tika pievienota /WAIT signāla ģeneratoram, lai norādītu mums, ka sistēma gaida ievadi (es tur nokļūšu, neuztraucieties). Es apsvēru iespēju pievienot LED, lai norādītu uz IO rakstīšanu, bet es sapratu, ka izvades gaismas diodes, kas tiek mainītas, jau būtu lielisks rādītājs tam. Domājot par to, es vēl varu to vēl pievienot. Tomēr man šķiet noderīgi zināt, vai atmiņa tiek lasīta vai rakstīta. Jebkurā gadījumā tas ir noderīgi programmu atkļūdošanai. Es patiesībā to ļoti izmantoju, cenšoties panākt, lai mana programma darbotos: “kāpēc tā raksta atmiņā? Tam vēl nevajadzētu to darīt!”
n
Lai kontrolētu šīs gaismas diodes, es izmantoju quad NOR vārtus. Es izmantoju visus vārtus. Statusa signālu ģenerēšanai tika izmantoti tikai divi, bet mikroshēmai nav jaudas iespēju faktiski vadīt gaismas diodes. Viņi spēj nogremdēt tik daudz enerģijas, tāpēc es izmantoju pārējos divus NOR vārtus kā invertorus un pievienoju gaismas diodes kā tādas. Tā kā viena gaismas diode tiek izmantota, lai norādītu nolasījumus, bet otra - rakstīšanai, un lasīšanas un rakstīšanas pieprasījums nenotiks vienlaikus, es varēju izvairīties, izmantojot abām gaismas diodēm tikai vienu rezistoru. Kas attiecas uz signāliem, kas man bija jāatšifrē, tas arī bija pietiekami vienkārši. Es gribēju, lai tiktu norādīti visi atmiņas lasīšanas pieprasījumi, tāpēc pirmo NOR vārtu ievadēs bija /MREQ un /RD. Rakstīšanas statuss bija nedaudz sarežģītāks, taču tikpat vienkāršs. Es joprojām izmantoju /MREQ kā vienu ievadi, bet /WR kā otra izmantošana radītu nelielu niansi, no kuras es gribēju izvairīties. Tas būtu norādījis VISUS rakstīšanas pieprasījumus. Es gribēju tikai tos, kas faktiski izgāja cauri. Tātad, kā es to darītu? Atcerieties, kā es esmu iestatījis sistēmu, lai varētu ierakstīt tikai RAM? Es izmantoju RAM /CE kā otru ievadi NOR vārtiem. Tas nozīmē, ka gaismas diode iedegsies tikai tad, kad ir atlasīta RAM un tiek veikts rakstīšanas pieprasījums. Attiecībā uz LED krāsu es izvēlējos oranžu kā lasīšanas indikatoru (bet es atradu tikai dzeltenus) un sarkanu kā rakstīšanas indikatoru.
4. solis: ievade un izvade



Iepriekšējā solī jūs, iespējams, pamanījāt, ka dažus no pārējiem komponentiem jau esmu pievienojis tāfelei. Es rezervēju vietu, lai nejauši nenovietotu vadus tur, kur es gribēju komponentu (tāpēc man būtu jāatrod jauna vieta šim komponentam). Jūs, iespējams, pamanījāt, ka es atstāju ieejas slēdžus vietā un pievienoju strāvas sliedi. Es nolēmu, ka sākotnējā atrašanās vieta bija ideāla vieta, un nolēmu izvades gaismas diodes novietot tuvumā (virs). Pa labi no joslas displeja ir ievades aizbīdnis. Virs tā ir izejas aizbīdnis, bet pa kreisi - LED draiveris. Es sāku, savienojot displeju ar draiveri, jo tas bija visvieglāk izdarāms. Tad es pievienoju slēdžus ievades aizbīdņa ievades pusei. Tālāk es savienoju izejas aizbīdņa izejas pusi ar LED draiveri. Tas var šķist neērts pasūtījums, lai tos savienotu, bet tam bija iemesls. Izejas aizbīdņa ieeja bija jāpievieno datu kopnei, kā arī ievades aizbīdņa izeja. Ideja bija savienot ievades aizbīdņa izejas ar izejas aizbīdņa ieejām, ko es arī izdarīju. Tad viss, kas man bija jādara, bija šo nekārtību savienot ar datu kopni. Nav svarīgi, kur šie savienojumi fiziski nonāca, jo tie visi būtu elektriski savienoti. Dators tagad ir gandrīz gatavs.
5. darbība: ievades un izvades atiestatīšana un pabeigšana
Diemžēl šim solim nav attēlu. Attēlus skatiet iepriekšējā solī.
n
Jūs, iespējams, pamanījāt iepriekšējā soļa pēdējā attēlā, man bija instalēta zaļa poga un cita loģikas mikroshēma. Mikroshēma ir VAI vārti. /WAIT signāla ģenerēšanai tiek izmantoti divi vārti. Viens ģenerē signālu, OR-ing /IORQ un /RD no procesora. Izeja tiek ievadīta otrajos vārtos, kur tā vēlreiz noklikšķina uz pogas VAI. Poga paaugstina vārtu ievadi, tādējādi paaugstinot izvadi. Šī izeja tiek padota procesoriem /WAIT tapai. Lai gan rezistors nav nospiests, tas tur ieeju zemu. Sākumā es izmantoju 10K rezistoru, bet LS32 faktiski izvadīja spriegumu ieejā. Rezistors to nenolaida pietiekami zemu, un man tas bija jāaizstāj ar 1K. Jebkurā gadījumā ideja ir tāda, ka, iesniedzot IO lasīšanas pieprasījumu, pirmais un otrais VAI vārti liek procesoram gaidīt. Kad esat iestatījis ievades slēdžus uz visu, ko vēlaties, jūs nospiežat pogu, un tas izved CPU no gaidīšanas stāvokļa. Zaļā “ievades” gaismas diode, kā es to nosaucu iepriekšējā solī, ir pieslēgta vadam tā, ka, kad /WAIT tapa nokrīt, tā iedegas.
n
Bet mēs vēl neesam pabeiguši. Ievades flip flopam ir nepieciešams signāls, lai tas informētu, kad datu ievade ir derīga, un to vajadzētu nodot CPU. Šī pulksteņa tapa ir aktīva. Iepriekš mēs to vienkārši savienojām ar pogu. Šī joprojām ir derīga opcija, taču šoreiz es izvēlējos to ievietot tajā pašā izejā kā otros VAI vārtus. Šim IC ir arī /OE tapa, kas ir jāpārvieto. Ja tas tiktu turēts augstu, tas nekad neievadītu datus autobusā. Ja tas tiek turēts zemā līmenī, tas vienmēr vadīs autobusu. Lai to labotu, es vienkārši izmantoju trešo VAI vārtu. Ieejas ir /IORQ un /RD, un izeja nonāk tieši aizbīdņa /OE.
n
Izejas aizbīdnim ir nepieciešama arī pulksteņa tapa. Atkal, tas ir aktīvs augsts. Savā shēmā es uzzīmēju ceturtos VAI vārtus, kas tieši virza tapu, izmantojot /IORQ un /WR. Tas nozīmēja, ka pulksteņa tapa tiks turēta augstu, līdz tiks iesniegts rakstīšanas pieprasījums, pēc tam tas atkal pazemināsies un pēc tam būs augsts. Tas, iespējams, būtu bijis labi, jo datu kopnei tūlīt pēc rakstīšanas mēģinājuma joprojām būtu bijuši derīgi dati, taču no inženierijas viedokļa tas bija atkritumu dizains. Es pamanīju šo kļūdu tikai pēc tam, kad biju uzņēmis pēdējos attēlus, taču es izjaucu šo savienojumu un pēc tam no atmiņas vadības loģikas ievadīju VAI vārtu izeju vienā no neizmantotajiem invertoriem, pēc tam pievienoju tās izvadi pulksteņa tapai. Es arī izlaboju shēmu un atradu citu kļūdu, ko biju pieļāvis. Es arī to izlaboju.
n
Kad tas viss beidzot bija paveikts, man bija jāveic ļoti mazs darbs: atiestatīšanas ķēde. Es plāksnei pievienoju pogu un izmantoju 10K rezistoru, lai vienu pusi turētu augstu. Otra puse iet tieši uz zemes. Augsti turētā puse ir /RESET izeja, kas tika iegūta katrai mikroshēmai ar /RESET tapu (CPU un izejas aizbīdnis). Lai atjaunotu ieslēgšanu, es pievienoju /RESET izejai kondensatoru. Ideja ir tāda, ka lielās vērtības rezistors liks salīdzinoši lielajam kondensatoram lēni uzlādēties un kādu laiku pulksteņa ciklu laikā turēt /RESET kontaktus zemu (CPU nepieciešami četri pulksteņa cikli). Jūs droši vien jau varat uzminēt, kāda ir šīs ķēdes negatīvā puse. Tas ir tāds pats negatīvs kā iepriekšējā versija, jo tā ir tā pati ķēde. Nospiežot pogu, kondensators caur pogu ir īssavienojums. Tas ir slikti gan vāciņam, gan pogai, tādēļ, ja vēlaties padarīt savu būvi nedaudz pastāvīgāku, iespējams, vēlēsities to pārveidot. Es domāju par citu 555 taimeri, kas uzstādīts monostabilā režīmā. Bet līdz ar to datora ķēde tagad ir pabeigta. Yay. Tagad tas ir jāprogrammē.
6. darbība: programmēšana
Šīs lietas programmēšana bija murgs. Es izveidoju Arduino EEPROM programmētāju. Tas nedarbojās. Es izveidoju vēl vienu, pamatojoties uz kāda cita dizainu un kodēšanu. Joprojām nestrādāja. Es atgriezos pie pārbaudītās metodes-manuāli manuāli iestatīt adreses un datu baitus. Kaut kā es to sajaucu. Es mēģināju vēlreiz un joprojām kļūdījos. Es atkal atgriezos un atklāju, ka tas ir izslēgts ar vienu baitu, tāpēc es to izlaboju, un, paldies Dievam, tas beidzot strādāja.
n
Runājot par faktisko programmu, šķiet, ka tā ir ļoti sarežģīta un grūti izpildāma, bet tā nav. Tas ir diezgan vienkārši, patiesībā. Puse no tā ir skaitļu kopēšana apkārt. Otra puse ir sadalīta starp 16 bitu matemātiku, nosacītiem lēcieniem un vēl vairāk ciparu kopēšanu. Tāpēc ļaujiet man iet caur to un pastāstīt, kā tas darbojas.
n
Inicializācija tikai nosaka dažas reģistra vērtības, ko izmantot programmai. Programmas cikls ir nedaudz sarežģītāks, bet ne visai daudz. Pirmkārt, tas pieņem ievadi A reģistrā portā 00. Pēc tam E reģistrs tiek ierakstīts atmiņā. Pirmajās divās cilpās E reģistrs satur nevēlamus datus, tāpēc mēs mēģinām tos ierakstīt pēdējos divos ROM vietas baitos, jo tas faktiski netiks rakstīts; adreses rādītājs (IY) tiek palielināts. Pēc tam D saglabātā vērtība tiek pārvietota uz E, lai rakstītu tālāk. Pēc tam A tiek ielādēts D un L, un E tiek kopēts H. HL ir vieta, kur vērtību salīdzinājums notiek, atņemot un pārbaudot ZF (nulles karogs). Pirmā salīdzinātā vērtība tiek saglabāta reģistros B un C. B un C tiek uzskatīti par vienu 16 bitu reģistru BC. Ja vērtības ir vienādas, programma pāriet tieši RAM telpā, kur tiek pieņemts, ka atrodas lietotāja kods. Ja kods BC neatbilst, tad HL tiek atkārtoti ielādēts ar sākotnējām vērtībām no D un E un tiek atkal salīdzināts ar vērtību SP tādā pašā veidā, kā tas tika salīdzināts ar BC. Ja tas ir atbilstība, tam ir tāds pats rezultāts, bet atmiņā tiek ierakstīti trīs papildu baiti. Baiti ir kods, kas liek CPU atgriezties programmas sākumā (programmatūras atiestatīšana). Tomēr, ja otrais salīdzinājums nebija atbilstība, programma atgriežas vietā, kur tā no lietotāja iegūst vērtību.
n
LD SP, EDBFH; exe kods (pievieno lēcienu)
n
LD IY, FFEH; sākotnējais atmiņas rādītājs koda glabāšanai
n
LD BC, EDC3H; exe kods (bez cilpas)
n
cilpa; montētāja direktīvu, lai mums nebūtu jāzina, kur atmiņā atrodas šī daļa
n
IN, (00H); iegūt programmas datus
n
LD (IY+00H), E; E satur kodu, kas jāuzglabā
n
INC IY; pāriet uz nākamo atmiņas vietu
n
LD E, D; ld D uz E
n
LD D, A; ld A uz D
n
LD H, E; Ievadiet E uz H
n
LD L, D; ld D uz L
n
VAI A; atiestatīt nēsāšanas karodziņu
n
SBC HL, BC; atgriež 0, ja tika ievadīts exe kods 2
n
JP Z, 1000H; ja tā, pārejiet uz programmu un izpildiet to
n
LD H, E; pretējā gadījumā atsvaidziniet tos līdz pareizām vērtībām
n
LD L, D.
n
VAI A; pirmajā atņemšanā, iespējams, ir iestatīts pārnēsāšanas karogs. Notīriet to
n
SBC HL, SP; atgriež 0, ja tika ievadīts exe kods 1
n
JP NZ, cilpa; ja nē, atkārtojiet procesu (sākot ar vērtības iegūšanu)
n
LD (IY+00H), C3H; pretējā gadījumā ievadiet lēciena kodu lietotāja programmas beigās
n
LD (IY+01H), 00H; lēciens būtībā darbojas kā programmatūras atiestatīšana
n
LD (IY+02H), 00H; tā ir pilnīga atiestatīšana, ja reģistri tiek mainīti
n
JP 1000H; pāriet un izpildīt lietotāja programmu
Ieteicams:
Z80 MBC2 - QP/M BIOS un iekrāvēja atkārtota apkopošana: 6 soļi

Z80 MBC2 - QP/M Bios un Loader atkārtota apkopošana: Ja, tāpat kā es, atrodaties situācijā, kad jums ir jāpārkopē sava MBC2 QP/M bios - tad jūs to darāt. process, kā pārkompilēt esošo versiju. Jūsu ziņā ir veikt izmaiņas faktiskajā BIOS
Z80-mbc2 Z80 koda zibspuldze Lietotāja LED: 3 soļi

Z80-mbc2 Z80 koda zibspuldzes lietotāja gaismas diode: šī ir piemēra lietotāja LED programma, kas rakstīta Z80 montētājā z80-mbc2 datoram. Es to izdarīju pārbaudes un pārskatīšanas uzdevumā, šī ir mana pirmā Z80 programma vairāk nekā 35 gadus
Datora radiatora atkārtota izmantošana tranzistora radiatora izveidei: 7 soļi

Datora radiatora atkārtota izmantošana tranzistora radiatora izveidei: Pirms kāda laika es nopirku dažus Raspberry Pi 3, ar kuriem spēlēties. Tā kā tie nāk bez radiatora, es dažiem biju tirgū. Es ātri meklēju Google un atradu šo pamācību (Raspberry Pi Heat Sink) - tas notika pēc idejas noraidīšanas
PSP izmantošana kā datora kursorsvira un pēc tam datora vadīšana, izmantojot PSP: 5 soļi (ar attēliem)

PSP izmantošana kā datora kursorsvira un pēc tam datora vadīšana, izmantojot PSP: Izmantojot PSP homebrew, varat darīt daudzas atdzist lietas, un šajā pamācībā es iemācīšu jums izmantot PSP kā kursorsviru spēļu spēlēšanai, taču ir arī programma, kas ļauj izmantot kursorsviru kā peli. Šeit ir materiāls
Izmantojiet SSH un XMing, lai parādītu X programmas no Linux datora Windows datorā: 6 soļi

Izmantojiet SSH un XMing, lai parādītu X programmas no Linux datora Windows datorā. un palaist programmas. Nu, jūs varat instalēt X serveri un iespējot SSH tunelēšanu ar savu SSH klientu, un vienu