Мазмуну:

Z80-mbc2 Z80 Code Flash Колдонуучу LED: 3 кадам
Z80-mbc2 Z80 Code Flash Колдонуучу LED: 3 кадам

Video: Z80-mbc2 Z80 Code Flash Колдонуучу LED: 3 кадам

Video: Z80-mbc2 Z80 Code Flash Колдонуучу LED: 3 кадам
Video: Z80-MBC2 Flashing LED Clock 2024, Ноябрь
Anonim
Z80-mbc2 Z80 Code Flash колдонуучу LED
Z80-mbc2 Z80 Code Flash колдонуучу LED

Бул z80-mbc2 компьютери үчүн Z80 ассемблеринде жазылган колдонуучунун LED программасы.

Мен муну мен үчүн тест жана кайра карап чыгуу көнүгүүсүн жасадым, бул 35 жылдан ашуун убакыттан бери биринчи Z80 программам.

Ырахат

Жабдуулар

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

SLR Systems Relдан Z80ASMдин көчүрмөсү. 1.32, көптөгөн cp/m архивдеринен жүктөлүп алынат

Редактор, мен ZDE16 колдондум, анткени ал z80-mbc2 үчүн CP/M жүктөө сүрөтүндө болчу.

1-кадам: Z80asmди Z80-mbc2ге орнотуңуз

Сиздин Z80-mbc2 Z80asm орнотуу
Сиздин Z80-mbc2 Z80asm орнотуу

Мен сиз 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

Бул дискте myled.z80 аттуу файлды жаратат F:, эскертүү: z80asm иштеши үчүн.z80 аталышында талап кылынат.

Эми кодду көчүрүү жана чаптоо, терминалдык ылдамдыгыңызга жараша, кичине бөлүктөргө көчүрүү жана чаптоо керек болушу мүмкүн. Же жазыңыз! ошол 1980 -жылдардын сезимин кайтарып алыңыз.

;

Колдонуучунун LED жана колдонуучу ачкычын текшерүү; BDOS барабар 05h; cp/m BDOS кирүү чекити USRLED барабар 0; Колдонуучунун LED көзөмөлү үчүн опкод USRKEY equ 80h; Колдонуучуну которуу үчүн опкод DPORT барабар 0; DATA порт i/o CPORT барабар 1; Командалык порттун чыгышы; org 0100h; ld (estack), sp; cp/m ld sp, stackке кайтуу үчүн болгон маалыматты сактоо; ld hl, msg; hello message call _puts lp: ld a, 1; күйгүзүү = 1 чалуу чакыруунун кечигүүсүн; кечигүү жана key (s) jr nz, аяктоону күтүү; нөл эмес, key/switch басылганын билдирет xor a; a = 0 чакыруу чалуу кечигүүсү; кечигүү же ачкыч/которуштурууну күтүү jr z, lp; эгер нөл, баскыч жок болсо/кайра которулсун; бүтүрүү: xor a; баскыч же которуу басылды, андыктан чалуу ld hl, коштошту; кош чалуу _puts; дисплей билдирүүсү HL = ld sp, (estack); баштапкы стек ret; cp/mге кайтуу; led: push af; led маанисин сактоо 0 же 1 ld a, USRLED out (CPORT), a; optcode pop af out (DPORT), a; data ret ret;; Терминал же колдонуучу ачкычынын кечигүүсүндө басылган текшерүүчү кечигүү цикли: ld bc, 00e00h; aprox 1/2s 8mhz CPU, таза табуу иш loop2: dec bc; циклди басуу bc эсептөө; BDOS push de ld c чакырганда regsти сактоо, 6; BDOS чийки i/o баскычын басылгандыгын текшерүү ld e, 0ffh BDOS pop de деп чакыруу; биздин баалуулуктарды стек поп же a дан кайра алуу; терминалдын ret nz басылгандыгын текшерүү; ооба кайтаруу (ошондой эле nz желек коюлган) а, USRKEY; Эми колдонуучунун ачкычын текшерүү (CPORT), a; командалык порт a, (DPORT); баскычты окуу жана a, 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 болсо, тестирлөөнүн аягы jr z, аткарылды; ооба, ld e, a; char ld c, 2 push hl басып чыгаруу үчүн BDOSко чалуу орнотуу; текст көрсөткүчүн сактоо BDOS; аны басып чыгаруу hl inc hl; кийинки char jr nxt; аткарууну улантуу: pop de; regs pop bc ret калыбына келтирүү; жана кайра; msg db 'Колдонуучунун LED сыноосу,' 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/Файлдын аягы 1 0 Ката (лар) табылды. 406 Абсолюттук байт. 16 Белги табылды.

Бул myled.z80 файлын издейт жана экилик (.com) файлын чыгарат, бул параметр /а эмнени билдирет.

Көбүрөөк маалымат алуу үчүн z80asm.doc файлын караңыз.

Программаны иштетүү үчүн териңиз:

F> myled

Колдонуучунун LED сыноосу, Exit F> дан чыгуу үчүн каалаган баскыч

Колдонуучу баскычын же терминалдан чыгуу үчүн баскычты басыңыз.

Бүттү.

Сунушталууда: