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.

Scrierea unui emulator cip-8

Î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.

Scrierea unui emulator cip-8

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.