SCTEST

Small programm for test (S)CHIP-8 emulators. If all test passed, you see
"OK" on upper left corner, else programm print ERROR and error number.
Written by Sergey Naydenov, e-mail: tronix286@rambler.ru (c) 2010

Errors:

ERROR INI
        Emulator initialization failed. When program starts, all registers
        must be set to null.

ERROR BCD
        BCD instruction problems.

ERROR 0
        Problems with Fx65 instruction. Can't load zeroes from memory to 
        registers.

ERROR 1
        System font 8x5 not found. In memory at offset 000h - zeroes.

ERROR 2
        Addition without overflow (254+1). VF register need to be set to 0, 
        but after operation it is still 1

ERROR 3
        After operation 254+1, register v0 needs to be set to 255, but it isn't

ERROR 4
        Addition with overflow (255+1). VF register must be set to 1, but 
        after operation it is still 0

ERROR 5
        Wrong result after addition operation (255+1). It must be 0.

ERROR 6
        After substraction 1-1 register VF must be 1, but it is still 0.

ERROR 7
        Wrong result after 1-1 operation. Result must be 0.

ERROR 8
        Substract 0-1. VF register must be 0, but it is still 1.

ERROR 9
	Wrong result after 0-1 operation. Register v0 must be 255.

ERROR 10
	Wrong result after substract v1-v0 (subn v0,v1). VF register must be 1, but it is 0.
	
ERROR 11
	Wrong result after substract v1-v0 (subn v0,v1). Result must be 0.

ERROR 12
	Wrong result after substract v1-v0 (subn v0,v1). VF register must be 0, but it is 1.

ERROR 13
	Wrong result after substract v1-v0 (subn v0,v1). Result must be 255.
	
ERROR 14
	Wrong result after SHR v0 (v0 = 255). VF register must be 1, but it is 0.

ERROR 15
	Wrong result after SHR v0 (v0 = 255). Result must be 127.
	
ERROR 16
	Wrong result after SHR v0 (v0 = 64). VF register must be 0, but it is 1.

ERROR 17
	Wrong result after SHR v0 (v0 = 64). Result must be 32.
	
ERROR 18
	Wrong result after SHL v0 (v0 = 32). VF register must be 0, but it is 1.

ERROR 19
	Wrong result after SHL v0 (v0 = 32). Result must be 64.

ERROR 20
	Wrong result after SHL v0 (v0 = 250). VF register must be 1, but it is 0.

ERROR 21
	Wrong result after SHL v0 (v0 = 250). Result must be 244.

ERROR 22
        Check for unofficial XOR command (8xy3 - XOR Vx, Vy):
        Wrong result after XOR v0,v1 (v0 = 244, v1 = 123). Result must be 143.

ERROR 23
       Can not restore HP48 flags (Super Chip-48 FX75/FX85 instructions).

ERROR 24
       Check FX1E (I = I + VX) buffer overflow. If buffer overflow, register 
       VF must be set to 1, otherwise 0. As a result, register VF not set to 1.
       This undocumented feature of the Chip-8 and used by Spacefight 2019! 
       game.