Բովանդակություն:

Z80-mbc2 Z80 Code Flash User LED: 3 քայլ
Z80-mbc2 Z80 Code Flash User LED: 3 քայլ

Video: Z80-mbc2 Z80 Code Flash User LED: 3 քայլ

Video: Z80-mbc2 Z80 Code Flash User LED: 3 քայլ
Video: Z80-MBC2 Flashing LED Clock 2024, Նոյեմբեր
Anonim
Z80-mbc2 Z80 Code Flash User LED
Z80-mbc2 Z80 Code Flash User 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 հրահանգը փաստաթղթերը պատճենելու է սկավառակի վրա (ըստ ցանկության)

Երբ ձեր z80-mbc- ով ներբեռնում եք cp/m 2.2, այժմ պետք է ունենաք z80asm.com և z80asm.doc (ըստ ցանկության) սկավառակի վրա

Քայլ 2: Պատճենեք աղբյուրի կոդը ձեզ Z80-mbc2

Միացեք z80-mbc- ին `օգտագործելով ձեր տերմինալ ծրագիրը

Ես առաջարկում եմ օգտագործել չբնակեցված սկավառակ `աղբյուրի կոդը պահելու համար, օրինակ` f: սկավառակի այս տեսակը ընտրելու համար.

F:

մի քանի վայրկյան հետո կտեսնեք F: հուշումը:

այժմ օգտագործեք zde16 ծրագիրը A drive- ում `դատարկ ֆայլ խմբագրելու համար.

a: zde16 myled.z80

Սա սկավառակի վրա կստեղծի myled.z80 անունով ֆայլ. Նշում.

Այժմ պատճենեք և տեղադրեք ծածկագիրը ստորև ՝ կախված ձեր տերմինալի արագությունից և այլն, գուցե ստիպված լինեք պատճենել և տեղադրել փոքր հատվածներում: Կամ մուտքագրեք այն: վերադարձեք նաև 1980 -ականների զգացողությունը:

;

Փորձարկեք օգտագործողի LED- ն և օգտվողի բանալին; BDOS հավասար 05h; cp/m BDOS մուտքագրման կետ USRLED հավասար 0; Օգտվողի լուսադիոդային ծածկագիր USRKEY հավասար 80 ժ; կոդ օգտվողի անջատիչի կառավարման համար DPORT հավասար 0; ՏՎՅԱԼՆԵՐԻ պորտ i/o CPORT հավասար 1; Հրամանի նավահանգստի ելք; org 0100 ժ; ld (estack), sp; պահպանել առկա տվյալները cp/m ld sp, stack վերադառնալու համար; ld hl, msg; բարև հաղորդագրություն զանգ _ մուտքագրում է lp: ld a, 1; միացնել = 1 զանգի led զանգի հետաձգում; հետաձգել և սպասել բանալին (ներ) jr nz, ավարտել; ոչ զրո նշանակում է ստեղնը/անջատիչը սեղմված xor a; a = 0 զանգի հանգեցրեց զանգի հետաձգում; հետաձգեք կամ սպասեք բանալին/անջատիչին jr z, lp; եթե զրո, առանց բանալին/անջատիչ, նորից գնացեք; ավարտել ՝ xor a; ստեղնը կամ անջատիչը սեղմված էր, այնպես որ կատարված կանչը հանգեցրեց ld hl, bye; ասեք bye call _puts; ցուցադրեք msg 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; տվյալները ուղարկված ret;; Հետաձգեք հանգույցը, որը ստուգում է ստեղնը սեղմված տերմինալի կամ օգտվողի բանալիների ուշացման վրա. 6; BDOS raw i/o ստուգում, եթե ստեղնը սեղմված է ld e, 0ffh զանգահարեք BDOS pop de; ստացեք մեր արժեքները stack pop bc կամ a- ից; ստուգեք, արդյոք ստեղնը սեղմված է տերմինալի ret nz; այո վերադարձի (պահում է նաև nz դրոշը սահմանված) ld a, USRKEY; Այժմ ստուգեք օգտվողի բանալին (CPORT), a; հրամանի նավահանգիստ a, (DPORT); կարդալու բանալին և a, 1; հետաքրքրված է միայն բիթ 0 ret nz; վերադարձ, եթե userkey սեղմել է ld a, b; կամ bc = 0 կամ c jr nz, loop2; չհաշված հաշվարկը, նորից գնացեք xor a; սահմանեք z դրոշը 0 ret; մի վերադարձեք բանալին սեղմված, հետաձգման ավարտը; _puts: push bc; պահպանել մեր regs պատրաստ bdos զանգերի համար push de nxt: ld a, (hl); ստանալ char կամ 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 pop bc ret; և վերադարձ; 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 stack: 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 ֆայլը:

Runրագիրը գործարկելու համար մուտքագրեք.

F> myled

Օգտագործողի LED թեստ, Ելք F> - ից դուրս գալու ցանկացած բանալին

Սեղմեք կամ օգտվողի կոճակը կամ տերմինալի ստեղնը ՝ դուրս գալու համար:

Կատարած.

Խորհուրդ ենք տալիս: