Բովանդակություն:
- Պարագաներ
- Քայլ 1: Տեղադրեք Z80asm ձեր Z80-mbc2- ում
- Քայլ 2: Պատճենեք աղբյուրի կոդը ձեզ Z80-mbc2
- Քայլ 3: Կազմեք և գործարկեք ծրագիրը
Video: Z80-mbc2 Z80 Code Flash User LED: 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Սա օգտագործողի 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- ում
Ենթադրում եմ, որ որոշակի ծանոթ եմ ձեր Z80-MBC2- ի համար օգտագործվող գործիքներին, այն է `cpmtools- ի ցանկացած տարբերակ, որն օգտագործում եք: Ահա այն քայլերը, եթե օգտագործում եք հրամանի տողի տարբերակները.
- Ձեռք բերեք z80asm.com և z80asm.doc ֆայլերը (ըստ ցանկության) ձեր հյուրընկալող համակարգչի վրա տեղակայված գրացուցակում
- Տեղադրեք ձեր SD քարտը նույն ԱՀ -ի մեջ, ես ենթադրում եմ, որ այն ցուցադրվում է որպես սկավառակ E: ստորև:
- Ես հավաքողը տեղադրեցի իմ CP/M սկավառակի վրա A, cp/m 2.2 համար, որը սկավառակի պատկերը կլինի DS0N00. DSK
- Հրամանը ՝ cpmcp -f z80mbc2 -d0 e: DS0N00. DSK z80asm.com 0 ՝ ֆայլը պատճենելու է z80asm.com
- 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> - ից դուրս գալու ցանկացած բանալին
Սեղմեք կամ օգտվողի կոճակը կամ տերմինալի ստեղնը ՝ դուրս գալու համար:
Կատարած.
Խորհուրդ ենք տալիս:
Castle Planter (Tinkercad Code Blocks- ով). 25 քայլ (նկարներով)
Castle Planter (Tinkercad Code Blocks- ով. ամբողջությամբ վերստեղծել այս դիզայնի բոլոր կողմերը ՝ առանց
Pixy2Bot Object Follower (Servo Code) ՝ 4 քայլ
Pixy2Bot Object Follower (Servo Code). Ռոբոտին հետևող պարզ օբյեկտի կառուցում (առանց թեքության/թեքման մեխանիզմի) Arduino Uno + Motor Shield- ով, երկու էժան շարունակական ծառայություններ և Pixy2: Տեսանյութ ՝ https://youtu.be/lxBLt5DJ5BM
LabDroid: Morse Code կոդավորող/վերծանող ՝ 4 քայլ
LabDroid: Morse Code Encoder/Decoder: Ես շուտով կթարմացնեմ այն: Այս նախագիծը ցույց կտա ձեզ, թե ինչ կարող եք անել LabDroid- ի հետ: Քանի որ Hello World- ը սովորաբար պատրաստվում է տեքստի, լույսի կամ ձայնի հիման վրա, ես մտածեցի LabDr- ի համար
Arduino Morse Code Writer: 7 քայլ (նկարներով)
Arduino Morse Code Writer. Ես պատրաստել եմ ռոբոտ, որը կարող է ցանկացած տեքստ փոխակերպել Մորզեի ծածկագրի և այնուհետև գրել այն: Այն պատրաստված է ստվարաթղթից և Lego- ից, իսկ էլեկտրոնիկայի համար ես օգտագործել եմ Arduino և ընդամենը երկու շարժիչ
ARDUINO MENU DESIGN with OLED-UI (USER INTERFACE): 4 քայլ
ARDUINO MENU DESIGN With OLED-UI (USER INTERFACE). Բարև ձեզ: Այս ձեռնարկում ես կփորձեմ բացատրել, թե ինչպես կատարել ARDUINO MENU DESIGN ՝ օգտագործելով i2c OLED էկրան: Այն նաև հայտնի է որպես UI (Օգտվողի միջերես): Այն օգտագործվում է շատ նախագծերի համար, բայց այն պետք է ձեզ ծանոթ լինի 3D տպիչներից :) Ահա նաև տեսանյութ