
Z80 REPL — ასემბლერის ინსტრუქციების გაშვება ბრაუზერშივე
ABA Games-მა გამოაქვეყნა z80-repl — ბრაუზერში მომუშავე გარემო, სადაც Z80-ის ასემბლერის ინსტრუქციას აკრეფთ, Enter-ს აჭერთ და მაშინვე ხედავთ, როგორ იცვლება რეგისტრები, ფლაგები და მეხსიერება. პროექტი MIT ლიცენზიით ვრცელდება.
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-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.