Scrierea unui emulator cip-8
În această serie de articole am de gând să-ți spun cum să scrie un simulator de calculator simplu ca un exemplu CHIP-8. În general-CHIP 8 nu este un computer adevărat, acesta poate fi comparat cu o mașină virtuală (cum ar fi Java), dar este mare pentru o înțelegere de bază a sistemelor de simulare pe calculator.
Emulator am scrie în C ++, folosind biblioteca grafică SDL. Codul se bazează pe codul sursă al meu emuChip emulator.
Istoria CHIP-8
CHIP-8 - un mic, limbaj de programare interpretat și un interpret pentru el, care a apărut pentru prima dată pe computerele de acasă COSMAC VIP, Telmac 1800, vis 6800, la sfârșitul anilor '70. Creator este Joseph Weisbecker. CHIP-8 a fost folosit pentru a crea jocuri, cum ar fi pong, Tetris, Space Invaders etc.
![Scrie cip-8 emulator (emulator) Scrierea unui emulator cip-8](https://webp.images-on-off.com/26/839/434x260_fk6316tjpy1vdr4grjca.webp)
În prezent, există mai multe și MegaChip dezvoltat Revival Studios. În această versiune adaugă grafice color și sunet.
caracteristici tehnice
Implementarea inițială CHIP-8 are un monocrom (alb-negru) afișare dimensiune pixeli 64h32. Schip, în plus față de bază a avansat modul de 128x64.
CHIP-8 se bazează grafica de pe ecran folosind sprite. Sprite are 8 pixeli în lățime și de la 1 la 15 pixeli în înălțime. Doar interpret 16 oferă o dimensiune predefinită de sprite 4x5 pixeli. Acest hexazecimale numerele 0 prin F.
claviatură
Calculatoarele pe care a fost utilizat originalul CHIP-8 a avut o tastatură 16-cheie a formularului.
![Scrie cip-8 emulator (emulator) Scrierea unui emulator cip-8](https://webp.images-on-off.com/26/839/200x200_znxor85305hr9jsui7r0.webp)
CHIP-8 are 16 de uz general V0-VF registre de opt biți. VF este utilizat ca un registru și de pavilion transport indicator sprite coliziune.
În plus, există două registre de opt biți ale cronometrului: întârzieri și sunet. Ambele cronometre reduce valoarea sa de 60 de ori pe secundă până când ajunge la zero. În cazul în care valoarea de sunet a timer-ul nu este zero interpret transmite sunet (beep!).
Astăzi este tot
În următorul articol vom trece să învețe limba de comenzi și Opcodes lor.