Агуулгын хүснэгт:

Z80-mbc2 Z80 Code Flash хэрэглэгчийн LED: 3 алхам
Z80-mbc2 Z80 Code Flash хэрэглэгчийн LED: 3 алхам

Видео: Z80-mbc2 Z80 Code Flash хэрэглэгчийн LED: 3 алхам

Видео: Z80-mbc2 Z80 Code Flash хэрэглэгчийн LED: 3 алхам
Видео: 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 дээрээ суулгаарай

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: тушаал нь баримт бичгийг диск рүү хуулах болно (заавал биш)

Та 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 -аад оны мэдрэмжийг бас эргүүлэн олж аваарай.

;

Хэрэглэгчийн LED болон хэрэглэгчийн түлхүүрийг шалгах; BDOS тэнцэх 05h; cp/m BDOS оролтын цэг USRLED тэнцэх 0; Хэрэглэгчийн LED удирдлагын опкод USRKEY equ 80h; User Switch -ийн хяналтын кодын DPORT тэнцэх 0; DATA порт i/o CPORT equ 1; Командын портын гаралт; байгууллага 0100h; ld (estack), 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 руу буцах; удирдсан: түлхэх af; удирдсан утгыг хадгалах 0 эсвэл 1 ld a, USRLED гарах (CPORT), a; optcode илгээсэн pop af out (DPORT), a; өгөгдөл илгээгдсэн ret; Терминал эсвэл хэрэглэгчийн түлхүүрийн саатал дээр дарагдсан түлхүүрийг шалгадаг хойшлуулах давталт: ld bc, 00e00h; ойролцоогоор 1/2s 8mhz CPU, цэвэр таамаглах ажлын давталт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. bc = 0 эсвэл c jr nz, loop2; тоолж дуусаагүй, дахин яв xor a; z тугийг 0 ret болгож тохируулна уу; _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; үүнийг хэвлэх pop 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 by SLR Systems Rel. 1.32 MYLED/A Файлын төгсгөл 1 0 Алдаа илрүүлэв. 406 Абсолют байт. 16 тэмдэг илрүүлсэн.

Энэ нь myled.z80 файлыг хайж, хоёртын (.com) файлыг үүсгэх бөгөөд энэ нь сонголт /a гэсэн үг юм.

Дэлгэрэнгүй мэдээллийг z80asm.doc файлаас үзнэ үү.

Програмыг ажиллуулахын тулд дараахийг бичнэ үү.

F> myled

Хэрэглэгчийн LED тест, F> -ээс гарах дурын түлхүүр

Гарахын тулд хэрэглэгчийн товчлуур эсвэл терминал дээрх товчлуурыг дарна уу.

Дууссан.

Зөвлөмж болгож буй: