Съдържание:

Z80-mbc2 Z80 Код на флаш потребител LED: 3 стъпки
Z80-mbc2 Z80 Код на флаш потребител LED: 3 стъпки

Видео: Z80-mbc2 Z80 Код на флаш потребител LED: 3 стъпки

Видео: Z80-mbc2 Z80 Код на флаш потребител LED: 3 стъпки
Видео: Как работает ЭВМ? Собираем простейший компьютер на базе Z80, эмулятора ПЗУ и порта на D-триггере. 2024, Ноември
Anonim
Z80-mbc2 Z80 Код Светкавица потребител LED
Z80-mbc2 Z80 Код Светкавица потребител LED

Това е примерна потребителска LED програма, написана в асемблер Z80 за компютъра z80-mbc2.

Направих това тест и ревизия за мен, това е първата ми програма Z80 за повече от 35 години.

Наслади се

Консумативи

Компютър Z80-mbc2

Копие на Z80ASM от SLR Systems Rel. 1.32, може да се изтегли от много cp/m архиви

Редактор, използвах ZDE16, тъй като той вече беше на зареждащия образ на CP/M за z80-mbc2

Стъпка 1: Инсталирайте Z80asm на вашия Z80-mbc2

Инсталирайте Z80asm на вашия Z80-mbc2
Инсталирайте Z80asm на вашия Z80-mbc2

Предполагам, че сте запознати с инструментите, които имате за вашия Z80-MBC2, а именно каквато и версия на cpmtools да използвате. Ето стъпките, ако използвате версиите на командния ред:

  1. Вземете файловете z80asm.com и z80asm.doc (по избор) в директория на някое място на вашия хост компютър
  2. Поставете вашата SD карта в същия компютър, предполагам по -долу, че се показва като устройство E: по -долу.
  3. Поставих асемблера на моя CP/M диск A, за 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: ще копира документацията на диска (по избор)

Когато стартирате cp/m 2.2 на вашия z80-mbc, сега трябва да имате z80asm.com и z80asm.doc (по избор) на устройство A

Стъпка 2: Копирайте изходния код за вас Z80-mbc2

Свържете се към z80-mbc с помощта на вашата терминална програма

Предлагам ви да използвате ненаселен диск, за да запазите изходния код, например f: за да изберете този тип устройство:

F:

след няколко секунди ще видите подканата F:

сега използвайте програмата zde16 на устройство А, за да редактирате празен файл:

a: zde16 myled.z80

Това ще създаде файл, наречен myled.z80 на диска F:, забележете:.z80 е необходим в името, за да работи z80asm.

Сега копирайте и поставете кода по -долу, в зависимост от скоростта на терминала и т.н., може да се наложи да копирате и поставите на малки секции. Или го въведете! върнете се и онези 1980 -те.

;

; Тествайте потребителския светодиод и потребителския ключ; BDOS equ 05h; cp/m BDOS входна точка USRLED equ 0; код за опция за потребителски LED контрол USRKEY equ 80h; opcode за управление на потребителски превключвател DPORT равно 0; DATA порт i/o CPORT равно 1; Изход на командния порт; org 0100h; ld (estack), sp; запазете съществуващата информация за връщане към cp/m ld sp, стек; ld hl, msg; поздрав съобщение повикване _puts lp: ld a, 1; включване = 1 забавяне на повикване, водещо до повикване; забавяне и изчакване на ключ (и) jr nz, край; не нула означава клавиш/превключвател натиснат 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 (DPORT), a; изпратени данни ret;; Цикъл на закъснение, който натиска контролен клавиш на терминал или закъснение на потребителския ключ: ld bc, 00e00h; приблизително 1/2s 8mhz процесор, чиста работа цикъл на предположение 2: dec bc; броене на натискане на bc на цикъла; запазване на регистрите при извикване на BDOS push de ld c, 6; BDOS raw i/o проверете дали клавишът е натиснат ld e, 0ffh извикайте BDOS pop de; върнете нашите стойности от стека pop bc или a; проверете дали клавишът е натиснат на терминала ret nz; да връщане (също поддържа флаг nz зададен) ld a, USRKEY; Сега проверете потребителския ключ (CPORT), a; командния порт в a, (DPORT); ключ за четене и a, 1; интересува се само от бит 0 ret nz; връщане, ако потребителският ключ е натиснат ld a, b; или е bc = 0 или c jr nz, loop2; броенето не е завършено, отидете отново xor a; задайте флага z на 0 ret; връщане без натиснат клавиш, край на закъснението; _puts: push bc; запазете нашите регистри, готови за bdos повиквания push de nxt: ld a, (hl); get char or a; тест дали е 0, края на msg jr z, готово; да така е направено ld e, a; настройте повикване към BDOS, за да отпечатате char ld c, 2 push hl; запишете повикване с текстов указател BDOS; отпечатайте го pop hl inc hl; следващ char jr nxt; продължете напред: pop de; завършено възстановяване на regs; msg db 'User LED test, any key to exit' db 0ah, 0dh, 0 bye db 'Exit' db 0ah, 0dh, 0 estack dw 0 ds 256 - 2 стека: dw 0

Запазете файла с помощта на ESC x. Вижте ръководството за използване на ZDE16 за повече информация, това е малко като wordstar за повечето редакции, с изключение на това, че опциите Ctrl-K са различни.

Стъпка 3: Компилирайте и стартирайте програмата

След като имате изходния код на машината.

Тип:

F>

F> a: z80asm myled/a Z80ASM Авторско право (C) 1983-86 от SLR Systems Rel. 1.32 MYLED/A Край на файла Pass 1 0 Открити грешки (и). 406 абсолютни байта. 16 открити символа.

Това ще търси файла myled.z80 и ще произведе двоичен (.com) файл, това означава опцията /a.

Вижте файла z80asm.doc за повече информация.

За да стартирате програмата, въведете:

F> мила

LED потребителски тест, всеки клавиш за излизане от изход F>

Натиснете или потребителския бутон, или клавиш на терминала, за да излезете.

Свършен.

Препоръчано: