
Z80 REPL․ Z80-ի ասեմբլերի հրահանգները հենց դիտարկիչում
ABA Games-ը հրապարակել է z80-repl-ը՝ դիտարկիչում աշխատող միջավայր, որտեղ մուտքագրում եք Z80-ի ասեմբլերի մեկ հրահանգ, սեղմում Enter և անմիջապես տեսնում ռեգիստրների, դրոշների ու հիշողության փոփոխությունը։ Ծրագիրն աշխատում է ամբողջովին հաճախորդի կողմում։
ABA Games-ը հրապարակել է z80-repl-ը՝ փոքր դիտարկչային միջավայր Z80 պրոցեսորի համար։ abagames.github.io/z80-repl հասցեով հասանելի գործիքը դասական ութբիթանոց պրոցեսորը վերածում է ինտերակտիվ հրահանգի տողի․ մուտքագրում եք մեկ ասեմբլերի հրահանգ, սեղմում Enter, և այն տեղում հավաքվում ու կատարվում է, իսկ ռեգիստրների, դրոշների և հիշողության վրա ազդեցությունը ցուցադրվում է էկրանին։
Ասեմբլերի տող, ոչ թե էմուլյատորի պատուհան
Էջը բաժանված է երեք տեքստային վահանակի։ Վերինը 64 ԿԲ հասցեային տարածության առաջին 256 բայթը ցուցադրում է որպես 16×16 տասնվեցական ցանց՝ աջ կողմում ASCII սյունակով․ PC, SP, HL, BC, DE, IX և IY արժեքներին համապատասխանող բջիջները առանձնացված են տարբեր գույներով։ Ներքևում ռեգիստրների վահանակն է՝ A, B, C, D, E, H, L, IX, IY, PC, SP, I և R ռեգիստրները, ինչպես նաև S Z Y H X P N C դրոշները՝ յուրաքանչյուրը միացված կամ անջատված վիճակում։ Երրորդ վահանակը հենց REPL-ն է՝ xterm.js տերմինալ։
Օգնության տողը բացատրում է մոդելը․ “Input a Z80 instruction and press the [enter] to run it”, օրինակներով՝ ld c,20h, add a,c և push bc։ Հրահանգը գրվում է հիշողության մեջ ծրագրի հաշվիչի հասցեով, ապա կատարվում է էմուլյատորի միջուկի կողմից, և REPL-ը տպում է ստացված օպկոդերի բայթերը՝ ցիկլերի քանակի հետ միասին։ Tab ստեղնը ցուցադրում է մուտքագրվածին համապատասխան հրահանգների ցանկը, իսկ սլաքները՝ հրահանգների պատմությունը։
Քայլ առ քայլ կատարում, ցիկլեր և սահմանափակումներ
Դատարկ տողում Enter սեղմելը կատարում է այն հրահանգը, որն արդեն գտնվում է PC-ում, ինչը գործիքը դարձնում է կարճ ռուտինաների վրիպազերծիչ։ Եթե հրահանգը չի փոխում ծրագրի հաշվիչը՝ օրինակ HALT, REPL-ը կատարում է այն մինչև 64 անգամ և հայտնում․ “Looping 64 times. Press the [enter] to continue.”։ Անհայտ մնեմոնիկայի դեպքում հայտնվում է պարզ “unknown instruction” հաղորդագրություն։
Մեքենայի մոդելը դիտավորյալ նվազագույն է․ հիշողությունը հարթ 64 ԿԲ զանգված է՝ առանց բանկավորման, իսկ մուտք/ելք ֆունկցիաները դատարկ են՝ ընթերցելիս վերադարձնում են զրո, գրառումը անտեսվում է։ Մեկնարկին PC-ն հավասար է 0x80-ի, SP-ն՝ 0xF0-ի։
Ինչի վրա է կառուցված
Ծրագիրը գրված է TypeScript-ով և օգտագործում է DrGoldfire-ի Z80.js էմուլյատորի միջուկը՝ xterm.js-ի հետ միասին տերմինալի ցուցադրման համար․ ամեն ինչ փաթեթավորված է մեկ սկրիպտի մեջ և մատուցվում GitHub Pages-ից, այսինքն՝ սերվերի վրա կոդ չի աշխատում։ Պահոցը տարածվում է MIT արտոնագրով և թվագրվում է 2018 թվականի սեպտեմբերով։
Ռետրո ծրագրավորողների և ուսանողների համար հենց այս համադրությունն է կարևոր։ Z80-ը տեղադրված էր այնպիսի մեքենաներում, ինչպիսիք են ZX Spectrum-ը, MSX-ը, Amstrad CPC-ն և Sega Master System-ը, և մեկ հրահանգ գործարկելով դրոշների փոփոխությունը տեսնելը ճարտարապետությունն ուսումնասիրելու արագ ճանապարհ է։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։