Мазмұны:

Z80-mbc2 Z80 Code Flash пайдаланушы жарық диоды: 3 қадам
Z80-mbc2 Z80 Code Flash пайдаланушы жарық диоды: 3 қадам

Бейне: Z80-mbc2 Z80 Code Flash пайдаланушы жарық диоды: 3 қадам

Бейне: Z80-mbc2 Z80 Code Flash пайдаланушы жарық диоды: 3 қадам
Бейне: Z80-MBC2 Flashing LED Clock 2024, Желтоқсан
Anonim
Z80-mbc2 Z80 Code Flash пайдаланушы жарық диоды
Z80-mbc2 Z80 Code Flash пайдаланушы жарық диоды

Бұл z80-mbc2 компьютері үшін Z80 ассемблерінде жазылған қолданушы LED бағдарламасының мысалы.

Мен бұл тестті және қайталау жаттығуын жасадым, бұл менің Z80 бағдарламасының 35 жылдан астам уақыт бойы жасаған алғашқы бағдарламасы.

Ләззат алыңыз

Жабдықтар

Z80-mbc2 компьютері

SLR Systems Rel Z80ASM көшірмесі. 1.32, көптеген cp/m мұрағаттарынан жүктеуге болады

Редактор, мен ZDE16 қолдандым, себебі ол z80-mbc2 үшін CP/M жүктеу кескінінде болды.

1-қадам: Z80asm-ді Z80-mbc2-ге орнатыңыз

Z80asm-ді Z80-mbc2-ге орнатыңыз
Z80asm-ді Z80-mbc2-ге орнатыңыз

Мен сіздің Z80-MBC2-ге арналған құралдармен, атап айтқанда, сіз қолданатын cpmtools-тың кез келген нұсқасымен таныспын деп ойлаймын. Пәрмен жолының нұсқаларын қолданатын қадамдар:

  1. Z80asm.com және z80asm.doc (міндетті емес) файлдарын негізгі компьютерден каталогтан алыңыз
  2. SD картасын сол компьютерге салыңыз, мен төменде E дискісі ретінде көрсетілген деп ойлаймын.
  3. Мен құрастырушыны CP/M дискіме қойдым, cp/m 2.2 үшін бұл DS0N00. DSK дискінің кескіні болады.
  4. Команда: cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0: z80asm.com файлын кескінге көшіреді
  5. Cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.doc 0: пәрмені құжаттаманы дискіге көшіреді (міндетті емес)

Сіз z80-mbc-те cp/m 2.2 жүктеген кезде, енді A дискісінде z80asm.com және z80asm.doc (міндетті емес) болуы керек.

2-қадам: Бастапқы кодты сізге Z80-mbc2 көшіріңіз

Z80-mbc-ке терминалдық бағдарламаны пайдаланып қосылыңыз

Мен сізге бастапқы кодты сақтау үшін толтырылмаған дискіні пайдалануды ұсынамын, мысалы f: осы диск түрін таңдау үшін:

F:

бірнеше секундтан кейін сіз F: шақыруын көресіз.

Енді бос дискіні өңдеу үшін А дискісіндегі zde16 бағдарламасын қолданыңыз:

a: zde16 myled.z80

Бұл F: дискіде myled.z80 деп аталатын файл жасайды, ескеріңіз: z80asm жұмыс істеуі үшін.z80 атауында қажет.

Енді төмендегі кодты көшіріп, қойыңыз, терминалдың жылдамдығына және т.б. байланысты сізге кішкене бөліктерде көшіру және қою қажет болуы мүмкін. Немесе теріңіз! сол 1980 жылдардың сезімін қайтарыңыз.

;

Пайдаланушының жарық диоды мен пайдаланушы кілтін тексеру; BDOS теңдеуі 05h; cp/m BDOS кіру нүктесі USRLED теңдеуі 0; пайдаланушының жарықдиодты басқару үшін опкод USRKEY equ 80h; User Switch басқаруындағы опкод DPORT теңдеуі 0; DATA порты i/o CPORT теңдеуі 1; Командалық порт шығысы; ұйым 0100h; ld (estack), sp; cp/m ld sp, стекке қайту үшін бар ақпаратты сақтаңыз; ld hl, msg; сәлем. 0 қоңырау шалу қоңырауының кешігуі; jr z, lp пернесін/кілтін кешіктіру немесе күту; егер нөл, кілт/қосқыш болмаса, қайтадан өтіңіз; аяқтау: xor a; перне немесе қосқыш басылды, осылайша қоңырау шалды ld hl, қош; қоңырау _puts деп айтыңыз; хабарламаны көрсету HL = ld sp, (estack); бастапқы стек ret; cp/m -ге оралу; led: push af; 0 немесе 1 лд мәнін сақтау, USRLED шығу (CPORT), a; опт -код жіберілді қалқып шығу (DPORT), a; деректер жіберілді ret;; Терминал немесе пайдаланушы пернесінің кідірісінде басылатын тексеретін кідіріс циклы: ld bc, 00e00h; шамамен 1/2s 8mhz CPU, таза болжамды жұмыс циклы2: dec bc; циклді басуды bc санау; BDOS push de ld c шақыру кезінде тіркеулерді сақтау, 6; BDOS шикізат енгізу/шығару пернесі басылғанын тексеріңіз ld e, 0ffh BDOS pop де шақырыңыз; біздің мәндерді стек pop bc немесе a -ден қайтарыңыз; терминал ret nz -де басылғанын тексеріңіз; иә қайтару (сонымен қатар nz жалаушасын орнатады) ld a, USRKEY; Енді пайдаланушы кілтін тексеріңіз (CPORT), a; командалық порт a, (DPORT); оқу пернесі және а, 1; тек 0 ret nz биті қызықтырады; егер userkey ld a, b басылса, қайтыңыз; немесе bc = 0 немесе c jr nz, loop2; санау аяқталмады, xor a қайтадан өтіңіз; z жалаушасын 0 ретке қойыңыз; ешқандай пернені баспаңыз, кешіктірудің соңы; _puts: push bc; bdos қоңырауларына дайын біздің регистерді сақтаңыз push de nxt: ld a, (hl); char немесе a алу; бұл 0 екенін тексеріңіз, msg jr z аяқталды, жасалды; иә осылай жасалды ld e, a; char ld c, 2 push hl басып шығару үшін BDOS -қа қоңырауды орнатыңыз; мәтіндік көрсеткіш BDOS қоңырауын сақтаңыз; оны басып шығарыңыз hl inc hl; келесі char jr nxt; жалғастырыңыз: pop de; қалпына келтіруді аяқтаған тіркеулер bc ret; және қайтару; msg db 'User LED test, db 0ah, 0dh, 0 bye db' Exit 'db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 стек: dw 0 шығатын кез келген перне

Файлды ESC x көмегімен сақтаңыз. Қосымша ақпарат алу үшін ZDE16 пайдалану нұсқаулығын қараңыз, бұл Ctrl-K опциялары әр түрлі болмаса, көптеген өңдеу үшін wordstar сияқты.

3 -қадам: Бағдарламаны құрастырыңыз және іске қосыңыз

Құрылғыда бастапқы кодты алғаннан кейін.

Түрі:

F>

F> a: z80asm myled/a Z80ASM Copyright (C) 1983-86, SLR Systems Rel. 1.32 MYLED/A Файлдың соңы Pass 1 0 Қателер анықталды. 406 Абсолюттік байт. 16 Таңбалар анықталды.

Бұл myled.z80 файлын іздейді және екілік (.com) файлын шығарады, бұл опция /а дегенді білдіреді.

Қосымша ақпарат алу үшін z80asm.doc файлын қараңыз.

Бағдарламаны іске қосу үшін теріңіз:

F> myled

Қолданушының жарықдиодты сынағы, F> шығу үшін кез келген перне

Шығу үшін пайдаланушы түймесін немесе терминалдағы пернені басыңыз.

Орындалды.

Ұсынылған: