Мазмуну:
- 1 -кадам: Өзгөртүүлөргө тез кароо + Схемалар
- 2 -кадам: CPU, Memory жана Memory Control
- 3 -кадам: Системанын абалынын диоддору
- 4 -кадам: киргизүү жана чыгаруу
- 5 -кадам: баштапкы абалга келтирүү жана киргизүү жана чыгаруу
- 6 -кадам: Программалоо
Video: Z80 компьютерин кайра карап чыгуу: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Өткөндө мен Z80 негизделген компьютерди кантип куруу керектиги боюнча көрсөтмө жазгам жана схеманы мүмкүн болушунча жөнөкөй кылып, мүмкүн болушунча оңой курулушу үчүн иштеп чыккам. Мен дагы кичинекей программа жаздым, ошол эле жөнөкөйлүк идеясын колдонуп. Бул дизайн абдан жакшы иштеген, бирок мен ага таптакыр ыраазы болгон эмесмин. Мен аны программаны кайра жазуудан баштадым, ал аны иштөө учурунда программалоого мүмкүндүк берди. Бул мага коддун бөлүктөрүн EEPROMго арнабастан сынап көрүүгө уруксат берүү болчу, бул болсо менден EEPROMду кайра программалоону талап кылат. Бул мага кызыктуу идея сыяктуу көрүнгөн жок. Анан эс тутум мейкиндиктери жөнүндө ойлоно баштадым. Эгерде мен жабдуунун бир бөлүгүн интерфейске алгым келсе (негизинен IO), коддун бир бөлүгү тутумдагы эс тутумдун көлөмүнөн ашып кетиши мүмкүн. Эсиңизде болсун, дизайн даректик автобустун төмөнкү байтын гана колдонгон, андан кийин жогорку байттын төмөнкү бити ROM менен RAM мейкиндиктерин тандоо үчүн колдонулган. Бул менде 253 байт гана боштук бар болчу. Сиз эмне үчүн 256 ордуна 253. деп сурап жаткандырсыз. Бул менин жаңы кодум жазылган программанын аягында үч байт маалыматтарды киргизет (бул кийинчерээк каралат, анткени мен аны жаңы дизайн менен иштөө үчүн өзгөрткөн болом).
п
Мен дагы эмне болуп жатканын көрүү үчүн эски схемаларымды кайра карап чыктым. Мен эс тандоо схемасы менен кичинекей бир кемчилик таптым, аны мен ал жерге келгенде жабам. Жөнөкөйлөтүлгөн версия: бардык жазуу сурамдары чындыгында ишке ашат, бирок ал дайыма RAMге салынып келген. Бул, кыязы, тынчсызданууга татыктуу эмес болчу, бирок мен муну бул жолу туура жасагым келди. Жана муну менен мен жаңы схеманы тарта баштадым. Бул баракка тиркелген эки сүрөт реалдуу схеманын алдында жана кийин. Мен спагетти зымдарын тазаладым, бул күлкүлүү эмес.
п
Эгер сиз менин баштапкы баш ийүүмдү ээрчисеңиз жана бул сунушту аткарууну пландасаңыз, анда мени жек көрөсүз. Эгерде сиз жаңыдан баштасаңыз, анда сиз ийгиликке жетесиз. Жөн эле тизмедеги бөлүктөрдү (же алардын эквивалентин) кармап, ээрчип алыңыз.
Берилиштер:
LM7805 - 5 Вольт жөнгө салуучу Z80 - CPU; системанын мээлери AT28C64B - EEPROM. Компьютердин программалык камсыздоосу IDT6116SA - SRAM үчүн колдонулган "туруктуу" маалымат сактоочу жайы; колдонуучунун кодун жана /же жалпы маалыматтарды сактоого колдонулатNE555 - System clock74HC374 - Octal D -Latch /OE менен; киргизүү chip74LS273 катары колдонулат - Octal D -Latch with /MR; output chipTLC59211 - LED айдоочу чипи (74LS273 светодиоддорду башкара алышы үчүн колдонулат, анткени ал учурдагы өндүрүшкө жөндөмсүз) MC14572 - Бул "Line Driver" чипи, бирок мен аны Memory Control логикасына ылайыктуу деп таптым. Анын 4 инвертору жана 74LS32 - Quad OR gateCD4001 - Quad NOR дарбазасы CD4040 - 12 этаптуу Ripple Counter курулган NAND жана NOR дарбазасы бар; Чийилген, бирок ишке ашырылбаган саат бөлүштүргүч (системаны сааттын жайыраак ылдамдыгында иштетүү үчүн) 2 10K Ом резисторлору - 555 таймеринин схемасында колдонулат, андыктан каалаган нерсеңизди колдонуңуз 4 1K Ом резисторлору - Бири үчүн колдонулат. 555 таймер схемасы, андыктан эмнени кааласаңыз, ошону колдонуңуз. Дагы бирөө светодиод айдоо үчүн колдонулат, андыктан эгер кааласаңыз, аны да өзгөртүңүз8x330 Ом резистору 8x10K Ом резистору Bus11 LED - Үчөө тутумдун статусу үчүн колдонулат, калган сегизи чыгуулар. 8 үчүн мен графикалык дисплейди колдондум (HDSP -4836) 4 Конденсатор - экөө LM7805; 0.22uF жана 0.1uF. Бирөө 555 таймер үчүн, андыктан өзүңүз туура көргөндү колдонуңуз. Акыркысы-кубатты күйгүзүү үчүн; 100uF2 N. O. Баскычтар - Бирөө киргизүү үчүн колдонулат, экинчиси reset8 SPST DIP которгучтары - Маалыматты киргизүү; Мен Piano Key styleWire колдонгом. Көп жана көп зым
п
ЭСКЕРТҮҮ: MC14572 тешик версиясы эскирген, бирок SMD версиясы дагы деле активдүү (ал тургай "жаңы дизайн үчүн эмес"), андыктан аны колдонууга уруксат берүү үчүн райондук платаны сатып алышыңыз керек болот. Экинчи 74LS32 MC14572 ордуна колдонулушу мүмкүн (мурунку ible "эс тутумун тандоо схемасы" караңыз)
1 -кадам: Өзгөртүүлөргө тез кароо + Схемалар
Схемаларды кантип окуу керек: Чипке багытталган жебе-бул кириш: Киргизүү> -Чиптен алыстатылган жебе-бул чыгаруу: Чыгуу <-Автобустар жебенин ордуна линияны колдонот: Автобус |-
п
Көпчүлүк микросхемалар так чучуктары менен тартылган. Бул чиптерге кичине чөгүү тартылган. Көпчүлүк чиптерде пин номерлери жана этикеткалар бар. Алар окуу үчүн бир аз кыйын болушу мүмкүн. Карандашым тунарып бара жатты.
п
Электр схемасы боюнча, жаңы дизайндын макети негизинен түпнускасынан өзгөргөн жок. Мен даректин жогорку байтын эстеткичтерге байладым, андан кийин RAM/ROM тандоо үчүн жогорку тиштин кичине бөлүгүн (A12) колдондум. Бул ROM мейкиндиги 0000-00FFтен 0000-0FFFге чейин кеткенин билдирген. Рам мейкиндиги 0100-01FFден 1000-1FFFке чейин барды. Мен дагы Memory Control логикасын жакшыраак дизайнга алмаштырып, эки жаңы статустун диодун коштум (жана кээ бир клей логикасы). Мен дагы саат бөлгүч схемасын тарттым (бирок зым тарткан жокмун). Бул эки функцияны аткаруу болчу. Айкын функция - саат жыштыгын ылдый бөлүү. Башка функция PWM (Pulse Width Modulation) максаттары үчүн, анткени 555 50% милдет циклдери менен толкундарды пайда кылбайт. Бул чынжырдын мааниси жок, бирок эгер сиз кээ бир светодиоддорду иштетүү үчүн саатты колдонууну кааласаңыз, анда анын эффектилерин байкайсыз (бир (LED) диоддору экинчисине караганда күңүрт болот). Тизменин калган бөлүгү негизинен өзгөргөн жок.
2 -кадам: CPU, Memory жана Memory Control
Бул менин мурунку версиямдын окурмандары мени жек көргөн бөлүгү. Оригиналдуу конструкцияда, мен жөн эле тетиктерди тактайга ыргытып жиберүү менен анча -мынча көйгөй жараткандай кылып ыргытып жибердим. Жыйынтык кимдир бирөө ага бир табак спагетти ыргытып жиберди окшойт жана "зымдар!" Мен аны бир аз тазалагым келди, ошондуктан мен CPU, RAM жана ROMдон башкасынын баарын жулуп алуу менен баштадым. Мен дээрлик бардык киргизүү схемасын, чыгаруу схемасын жана клей логикасын тарттым. Бул мага дээрлик зыян келтирди, бирок бул керек болчу. Мен маалымат байланыштарынын бардыгын жана дарек шинасынын төмөнкү байтын калтырдым. Мен андан кийин дарек автобусунун кийинки төрт битин (A8-A11) ROM чипине туташтырдым. Бул жолу кайра программалоо үчүн чипти айланып өтүү үчүн кам көрдүм. Мен дагы RAM чипине чейин дарек байланыштарын секирип.
п
Муну менен, мен азыр эс тутумун башкаруунун логикасын орнотушум керек болчу. Түпнуска схемада мен процессордун /MREQ линиясын түздөн -түз /CEге эки эс чипине туташтырып койгом, андан кийин RAM /WE менен зым /WR туташтыргам. Андан кийин менде CPU /RD жана /MREQ логикалык түрдө OR'd жана A9 болчу. Негизи, ал бардык эстутум сурамдары RAM жана ROMду активдештирүү үчүн орнотулган, бирок A9 чиптердин /OEлеринин кайсынысы тандалганын тандоо үчүн колдонулган. Бул жакшы болду, анткени микросхемалар эс тутум сурамына чейин иштебей калат, андан кийин окуу өтүнүчү учурунда бир гана /OE активдүү болот. Бул кайчылаш жолго тоскоолдук кылды, бирок ыңгайсыз нюанс киргизди. А9 кайсы чип маалымат чыгарарын аныктоо үчүн гана колдонулгандыктан жана CPU RAM /WE пинине түз жетүү мүмкүнчүлүгүнө ээ болгондуктан, бардык жазуу сурамдары өтөт. Бул ROM үчүн жакшы эле, анткени анын жазуу режими 5В камсыздоосуна /WE байлап коюу менен тыюу салынган. Бирок, RAM A9га карабастан жазылат. Бул ROM мейкиндигине жазуу аракети RAM мейкиндигинде ошол эле жерге жазылат дегенди билдирет.
п
Мунун бир чечими - бул CPU чиптерине /OE жана /WE казыктарына түз жетүү үчүн, андан кийин MREQ жана A12ди колдонуу менен кайсы микросхемаларды /CE кууп жатканын башкаруу логикасын кайра чыңдоо. Мен бул идея менен бардым, бирок оригиналдуу дизайн сыяктуу төрт NOR дарбазасын жана инверторду колдонуунун ордуна, мен тапшырманы аткаруу үчүн идеалдуу болгон ыңгайсыз кичинекей чипти таптым. Мен чипте бар логикалык дарбазаларды гана колдонгон схеманы түзүшүм керек болчу, бирок бул жетиштүү оңой эле. A12 түз NAND дарбазасына жана NOR дарбазасына берилет. /MREQ NOR дарбазасына жана анын комплименти NAND дарбазасына берилет. NAND дарбазасы RAM үчүн /CE айдоо үчүн колдонулат, ал эми NOR чыгарылышы тескери болуп, ROM /CE айдоо үчүн колдонулат. Бул чип тандалганга чейин /MREQ төмөн болушу керек, анан A12 кайсынысы тандалаарын тандайт. Бул орнотуу менен, азыр ROMго жазуу сурамдары эч нерсе кылбайт. Ал ошондой эле энергияны үнөмдөйт, анткени экөөнүн ордуна бир гана чип активдүү. Логикалык чиптин өзүнө келсек, бизде дагы эле колдонулбаган эки инвертор бар. Бирөөсү кийинчерээк көнүп калат, бирок биз барганда ошол жерге жетебиз.
3 -кадам: Системанын абалынын диоддору
Мен бул долбоорду баштоодон мурун, мен белгилүү бир IC менен интерфейс түзүүгө аракет кылып жаткам, бирок мен аны менен кыйынчылыкка туш болдум. Эмне болуп жатканын билбестен, мен айлананы иликтөө үчүн LED панелин колдондум (курулган резистору бар жыйындардын бири). Муну кылуу мага бүгүнкү күнгө чейин колдонулган ностальгия идеясын берди: статустук диоддор эс тутумдан окулганын же жазылганын көрсөтүү үчүн колдонулат. Бул менде болгон LED менен бирге колдонулушу керек болчу. Кирүү LEDи /WAIT сигнал генераторуна туташып, системанын бизге киргизүүнү күтүп жатканын көрсөтүп турат (мен ал жерге жетем, кабатыр болбо). Мен IO жазуусун көрсөтүү үчүн LED кошууну ойлодум, бирок өзгөргөн LED диоддору буга чоң көрсөткүч болмок деп ойлодум. Мен ойлонуп, мен дагы эле кошо алам. Ошентсе да, эс тутум окулуп же жазылып жатканын билүү пайдалуу деп ойлойм. Ооба, бул баары бир программаны оңдоо үчүн пайдалуу. Мен чындыгында программамды иштетүүгө аракет кылып жатып, аны абдан көп колдондум: “бул эмне үчүн эстутумга жазылып жатат? Азырынча андай кылбаш керек!"
п
Бул светодиоддорду башкаруу үчүн мен NOR төрт дарбазасын колдондум. Мен дарбазалардын баарын колдондум. Статус сигналдарын жаратуу үчүн экөө гана колдонулган, бирок чиптин диоддорду айдоого күчү жетпейт. Алар ушунчалык көп күчтү батырууга жөндөмдүү, ошондуктан мен башка эки NOR дарбазасын инвертор катары колдонуп, светодиоддорду ушундай туташтырдым. Бир LED окууну көрсөтүү үчүн, экинчиси жазуу үчүн колдонулгандыктан жана окуу жана жазуу сурамы бир убакта болбойт, мен эки LED үчүн бир гана резисторду колдонуп кутула алдым. Мен чечмелешим керек болгон сигналдарга келсек, бул дагы оңой эле. Мен бардык эстутум окуу сурамдарынын көрсөтүлүшүн кааладым, ошондуктан биринчи NOR дарбазасында /MREQ жана /RD болгон. Жазуу абалы бир аз татаалыраак болчу, бирок ошончолук оңой эле. Мен дагы эле бир киргизүү катары /MREQ колдондум, бирок /WRди башка катары колдонуу мен качкым келген кичинекей бир нюансты жаратат. Бул БАРДЫК жазуу өтүнүчтөрүн көрсөтмөк. Мен чындыгында башынан өткөндөрдү гана кааладым. Анда мен муну кантип кылмак элем? Ооба, RAMди гана жазуу үчүн системаны кантип орнотконум эсиңиздеби? Мен RAM /CEди NOR дарбазасына башка киргизүү катары колдондум. Бул RAM тандалганда жана жазуу сурамы берилгенде гана LED күйөт дегенди билдирет. LED түсү боюнча мен окуу индикатору катары кызгылт сары түстү тандадым (бирок мен сары түстөрдү гана таптым) жана жазуу индикатору катары кызылды.
4 -кадам: киргизүү жана чыгаруу
Мурунку кадамда, сиз калган компоненттерди тактага кошуп койгонумду байкагандырсыз. Мен бош орунду ээлеп койгом, ошондуктан кокусунан зымдарды мен каалаган компонентке койбойм (андыктан бул компоненттин жаңы ордун табышым керек болчу). Киргизүү өчүргүчтөрүн ордунда калтырып, электр темир жолуна туташтырганымды да байкагандырсыз. Мен оригиналдуу жерди эң сонун жер деп чечтим жана жарык диоддорун жакын жерде (жогору) жайгаштырууну чечтим. Бар дисплейинин оң жагында - кирүүчү бекиткич. Анын үстүндө чыгуучу бекиткич жана анын сол жагында LED драйвери турат. Мен дисплейди айдоочуга туташтыруудан баштадым, анткени бул эң оңой болчу. Анан мен өчүргүчтөрдү кириш ысырмасынын кирүүчү тарабына туташтырдым. Кийинкиде мен LED драйверине чыккычтын чыгуучу тарабын туташтырдым. Бул зымдарды алуу ыңгайсыз көрүнүшү мүмкүн, бирок бул бир себеп болгон. Чыгуу ысырмасынын кириши маалымат шинасына, ошондой эле кириш ысырмасынын чыгуусуна туташтырылышы керек болчу. Идея, мен киргизген кириш ысырмасынын чыгууларын, чыгуучу ысырманын киришине туташтыруу болчу. Ошондо мен эмне кылышым керек болсо, ошол автобусту маалымат автобусуна туташтыруу керек болчу. Бул байланыштар физикалык жактан кайда кеткени маанилүү эмес, анткени алардын баары электрдик туташтырылган. Компьютер азыр дээрлик бүтүп калды.
5 -кадам: баштапкы абалга келтирүү жана киргизүү жана чыгаруу
Кечиресиз, бул кадам үчүн эч кандай сүрөт жок. Сүрөттөр үчүн мурунку кадамга кайрылыңыз.
п
Сиз мурунку кадамдын акыркы сүрөтүндө байкагандырсыз, менде жашыл баскыч жана башка логикалык чип орнотулган болчу. Чип - OR дарбазасы. /КҮТҮҮ сигналын чыгаруу үчүн эки дарбаза колдонулат. Ооба, процессордон OR-ing /IORQ жана /RD аркылуу сигнал чыгат. Чыгуу экинчи дарбазага жүктөлөт, ал жерде дагы баскычка OR'd келет. Кнопка дарбазанын киришин бийик кылат, ошону менен өндүрүштү бийикке чыгарат. Бул чыгаруу процессорлорго /КҮТҮҮ пине берилет. Басылбаса да, резистор кирүүнү төмөн кармап турат. Мен башында 10K каршылыгын колдондум, бирок LS32 чындыгында киришке чыңалуу коюп жатты. Резистор аны төмөн түшүргөн жок, мен аны 1K менен алмаштырууга туура келди. Кандай болбосун, идея - IO окуу сурамы берилгенде, биринчи жана экинчи OR дарбазалары процессорго күтүүнү айтат. Киргизгичтерди каалаган нерсеңизге койгондон кийин, сиз баскычты басасыз жана ал CPUду күтүү абалынан алып чыгат. Жашыл "кирүү" LEDи, мен мурунку кадамда айткандай, /WAIT пини азайып кеткенде, ал күйүп кетет.
п
Бирок биз азырынча бүтө элекпиз. Киргизүү флипке маалымат киргизүү жарактуу болгондо аны билдирүү үчүн сигнал керек жана CPUга чыгарылышы керек. Бул сааттын пини жогорку активдүү. Мурда биз аны жөн гана баскычка туташтырганбыз. Бул дагы эле жарактуу вариант, бирок бул жолу мен аны экинчи ЖЕ дарбазасы менен бирдей чыгарууну чечтим. Бул ICде /OE пини бар, аны айдаш керек. Эгерде ал бийик көтөрүлө турган болсо, анда ал автобуска эч качан маалымат киргизбейт. Эгерде төмөн кармаса, анда ал ар дайым автобусту башкармак. Муну оңдоо үчүн мен үчүнчү ЖЕ дарбазасын колдондум. Киргизүүлөр /IORQ жана /RD болуп саналат жана чыгаруу түздөн -түз люктун /OEге барат.
п
Чыгуучу бекиткичке да сааттын пини керек. Дагы, ал жогорку активдүү. Менин схемасында мен /IORQ жана /WR аркылуу пинди айдап жүргөн төртүнчү ЖЕ дарбазасын тарттым. Бул жазуу сурамы түшкөнгө чейин сааттын пини бийик кармалып турарын, анан кайра төмөн түшүп, кайра жогору кетерин билдирген. Бул, балким, жакшы болмок, анткени маалымат автобусунда жазуу аракетинен кийин дароо эле бул боюнча жарактуу маалыматтар болмок, бирок инженердик көз караштан алганда, таштанды дизайны болгон. Мен акыркы сүрөттөрдү тарткандан кийин гана бул катаны байкаган жокмун, бирок мен бул байланышты үзүп, же OR дарбазасынын чыгарылышын эс тутумун башкаруу логикасынан колдонулбаган инверторлордун бирине бергем, андан кийин анын чыгымын саат пинине туташтырдым.. Мен ошондой эле схеманы оңдоп, мен жасаган дагы бир катаны таптым. Мен да оңдоп койдум.
п
Мунун баары акыры бүткөндөн кийин, менде өтө аз жумуш бар болчу: баштапкы абалга келтирүү. Мен тактага баскыч кошуп, бир жагын бийик кармоо үчүн 10K каршылыгын колдондум. Экинчи тарап түз жерге түшөт. Ар бир чипке а /RESET пин (CPU жана чыгаруу ысыгы) менен барган /RESET чыгаруу жогору жагы болуп саналат. Күйгүзүүнү калыбына келтирүү үчүн, /RESET чыгаруусуна конденсатор коштум. Идея чоң резистор салыштырмалуу чоң конденсатордун акырындык менен заряддалышына жана /RESET казыктарын бир аз саат циклине кармап туруусуна алып келет (CPU төрт саат циклине муктаж). Сиз, балким, бул схеманын терс жагы эмне экенин болжой аласыз. Бул мурунку версиядагыдай эле терс, анткени ал ошол эле схема. Кнопка басылганда, конденсатор негизинен баскыч аркылуу кыска болот. Бул капкак үчүн да, баскыч үчүн да жаман, андыктан эгер сиз өзүңүздүн түзүлүшүңүздү бир аз туруктуу кылгыңыз келсе, аны кайра иштеп чыгууну кааласаңыз болот. Мен monostable режиминде орнотулган дагы 555 таймерди ойлоп жаткам. Бирок муну менен азыр компьютердик схема бүтүп калды. Ооба. Эми аны программалаш керек.
6 -кадам: Программалоо
Бул нерсени программалоо коркунучтуу түш болчу. Мен Arduino EEPROM программистин кургам. Иштеген жок. Мен башка бирөөнүн дизайнына жана коддоого негизделген башка курдум. Дагы деле иштеген жок. Мен кол менен даректерди жана маалымат байттарын кол менен орнотуунун сыналган ыкмасына кайттым. Эмнегедир мен муну бузуп койдум. Мен дагы аракет кылдым жана дагы эле туура эмес түшүндүм. Мен дагы бир жолу кайтып бардым жана анын бир байт менен өчүрүлгөнүн билдим, ошондуктан мен аны оңдоп, акыры иштеди, Кудайга шүгүр.
п
Чыныгы программага келсек, бул өтө татаал жана ээрчүү кыйын окшойт, бирок андай эмес. Бул абдан жөнөкөй, чынында. Анын жарымы сандарды көчүрүү. Экинчи жарымы 16-бит математика, шарттуу секирүү жана андан да көп сандарды көчүрүү ортосунда бөлүшүлгөн. Андыктан, мен муну башыман өткөрүп, анын кантип иштээрин айтып берейин.
п
Баштоо жөн эле программада колдонуу үчүн кээ бир реестр баалуулуктарын орнотот. Программалык цикл бир аз татаалыраак, бирок көп эмес. Биринчиден, ал 00 порттогу А регистрге киргизүүнү кабыл алат. Андан кийин E регистр эсине жазылат. Биринчи эки циклде E реестри керексиз маалыматтарды камтыйт, андыктан биз аны ROM мейкиндигинин акыркы эки байтына жазууга аракет кылабыз, анткени ал жазылбайт; дарек көрсөткүчү (IY) андан кийин көбөйтүлөт. Dде сакталган маани андан кийин жазылышы үчүн Еге жылдырылат. А андан кийин D жана L жүктөлөт жана E H. HLге көчүрүлөт, бул жерде баалуулуктарды салыштыруу ZF (нөлдүк желек) алып салуу жана текшерүү аркылуу ишке ашат. Салыштырмалуу биринчи маани В жана С реестрлеринде сакталат. В жана С бирдиктүү 16 биттик регистр катары каралат, BC. Эгерде баалуулуктар бирдей болсо, анда программа түздөн -түз RAM мейкиндигине секирет, анда колдонуучу коду жашайт деп болжолдонот. Эгерде BCдеги код дал келбесе, анда HL D жана E баштапкы баалуулуктары менен кайра жүктөлөт жана BCдегидей эле кайра SPдагы мааниге салыштырылат. Эгер бул дал келсе, анда ал ошол эле натыйжага ээ, бирок үч кошумча байт эске жазылат. Байт - бул процессордун программасынын эң башына кайтуусуна алып келүүчү код (программалык камсыздоону баштапкы абалга келтирүү). Эгерде экинчи салыштыруу дал келбесе, анда программа колдонуучунун маанисин алган жерине өтөт.
п
LD SP, EDBFH; exe коду (секирүүнү кошот)
п
LD IY, FFEH; кодду сактоо үчүн баштапкы эстутум көрсөткүчү
п
LD BC, EDC3H; exe коду (цикл жок)
п
цикл; assembler директивасы, ошондуктан биз бул бөлүктүн эс тутумунда кайда экенин билишибиз керек эмес
п
A, IN (00H); программа маалыматын алуу
п
LD (IY+00H), E; E сактала турган кодду камтыйт
п
INC IY; кийинки эс тутумуна өтүү
п
LD E, D; ld D to E
п
LD D, A; ld A to D
п
LD H, E; ld E to H
п
LD L, D; ld D into L
п
ЖЕ А; көтөрүү желегин кайра коюу
п
SBC HL, BC; exe коду 2 киргизилген болсо, 0 кайтарат
п
JP Z, 1000H; эгер андай болсо, программага өтүңүз жана аткарыңыз
п
LD H, E; болбосо, буларды туура баалуулуктарга жаңыртыңыз
п
LD L, D.
п
ЖЕ А; биринчи алып салуу көтөрүүчү желекти орноткон болушу мүмкүн. Тазалаңыз
п
SBC HL, SP; exe коду 1 киргизилген болсо, 0 кайтарат
п
JP NZ, укурук; андай болбосо, процессти кайталаңыз (баалуулукту алуу менен башталат)
п
LD (IY+00H), C3H; Болбосо, колдонуучу программанын аягына секирүү кодун киргизиңиз
п
LD (IY+01H), 00H; секирүү негизинен программалык камсыздоону баштапкы абалга келтирүү катары иштейт
п
LD (IY+02H), 00H; реестрлер өзгөртүлгөн учурда бул толугу менен баштапкы абалга келтирүү
п
JP 1000H; өтүү жана колдонуучу программасын аткаруу
Сунушталууда:
Кайра иштетилген жана кайра колдонулган материалдардан жасалган динамиктер: 6 кадам
Кайра иштетилген жана кайра колдонулган материалдардан жасалган спикерлер: " Музыка-бул адамзаттын универсалдуу тили. &Quot;-Генри Вадсворт Лонгфеллоу Бул жерде кайра иштетилген жана кайра колдонулган материалдарды колдонуу менен спикерлердин уккулуктуу үн топтомун түзүүнүн жакшы жолу. Ал эми эң жакшы жери-алар мага бир тыйынга да кымбат болгон жок. Баары бул пр
Жарыкка багытталган робот баш. Кайра иштетилген жана кайра колдонулган материалдардан: 11 кадам
Жарыкка багытталган робот баш. Кайра иштетилген жана кайра колдонулган материалдардан: Эгерде кимдир бирөө робототехника бош чөнтөк менен келе алабы деп ойлонсо, балким, бул үйрөтүүчү жооп бере алат. Эски принтердин кайра иштетилген тепкич моторлору, колдонулган теннис топтору, шамдар, колдонулган бальза, эски илгичтин зымы, эмальданган зым
Сүт кумурасын кайра иштетүүдөн чыгуу: 8 кадам
Сүт кумурасын кайра иштетүүдөн баш тартуу: Мен HDPE (Жогорку тыгыздык полиэтилен) пластикасын жаңы формаларга эритүү менен жалпы пластмассаларды кайра иштетүү жөнүндө бир нече постторду жана видеолорду көрдүм жана өзүмдү аскага чыгуучу дубал кылгым келди. Логикалык жактан, эмне үчүн экөөнү тең самдан сынап көрбөйсүз
LiPo (литий-полимер) батарейкаларын кайра калыбына келтирүү/кайра заряддоо!: 6 кадам
LiPo (Литий Полимер) Батареяларын калыбына келтирүү/Заряддоо !: LiPo батарейкалары эч качан 3.0В/клеткадан төмөн болбошу керек, болбосо аларды биротоло бузуп коюшу мүмкүн. Көптөгөн кубаттагычтар LiPo батарейкасын 2,5В/клеткадан төмөн заряддоого да жол бербейт. Ошентип, эгер сиз кокусунан учагыңызды/машинаңызды өтө узак иштетсеңиз, анда сиздин төмөндүгүңүз жок
Чыныгы үй компьютерин куруу оңой: Z80-MBC2 !: 9 кадам (сүрөттөр менен)
Чыныгы үй компьютерин жасоо оңой: Z80-MBC2 !: Эгерде сиз компьютердин кантип иштээрин жана " тышкы нерселер " менен иштешкенин билгиңиз келсе, азыркы учурда Arduino же Raspberry жана башка көптөгөн оюндарды ойнотууга даяр көптөгөн такталар бар. Бирок бул тактайларда баары бир "чектөө" бар … алар салам