March 2011

La notte porta consiglio, ma anche no

Se completassi questo emulatore che ho iniziato la settimana scorsa?

void Machine::init()
{
	if (m_memoryMap == 0)
		m_memoryMap = new MemoryMap();

	if (m_cpu == 0)
		m_cpu = new Cpu();

	m_name = "Kim-1";

	m_cpu->setAddressBus(&m_addressBus);
	m_cpu->setDataBus(&m_dataBus);

	reset();
}

nerdy

Comments (6)

Permalink

Questo sito è una droga

Vai su www.6502asm.com e copia-incolla questo codice:


lda #<data
sta $10
lda #>data
sta $11
lda #$00
sta $30
lda #$02
sta $31

loop:
ldx #$00
lda ($10,x)
sta ($30,x)
inc $10
lda $10
cmp #$00
bne next
inc $11
next:
inc $30
lda $30
cmp #$00
bne next2
inc $31
next2:
lda $31
cmp #$06
bmi loop
jmp end

data:
dcb 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
dcb 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
dcb 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,0,0,1,1,0,1,1,1,0,1,1,1,
dcb 1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,0,1,1,1,1,0,1,1,1,0,1,1,1,
dcb 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,
dcb 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,
dcb 0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,
dcb 0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,
dcb 1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,
dcb 0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,
dcb 0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,0,0,1,0,0,0,0,0,1,0,
dcb 0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,0,0,0,1,0,0,1,1,0,0,0,
dcb 0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,0,0,0,1,1,0,0,1,1,0,0,
dcb 0,1,1,0,1,1,1,0,1,1,1,1,1,1,1,0,
dcb 1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,
dcb 0,1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,
dcb 0,0,0,1,1,0,1,1,0,1,1,0,1,0,0,0,
dcb 0,1,1,1,0,0,1,1,1,1,1,1,1,0,1,0,
dcb 0,1,0,0,1,1,0,0,0,1,1,0,0,0,1,0,
dcb 0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,
dcb 0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,
dcb 0,1,1,1,0,1,1,1,0,0,1,0,1,1,0,1,
dcb 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,0,1,1,1,1,0,0,0,1,0,0,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,0,1,1,1,1,0,0,0,0,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,
dcb 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
dcb 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
dcb 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
end:

Enjoy!

Uncategorized

Comments (0)

Permalink

Un Engine per domarli, un Engine per trovarli, ecc…

Stavolta ho superato me stesso…


int main(int argc, char *argv[])
{
	using namespace engine;
	using namespace engine::graphics;
	using namespace engine::platform;

	Platform * myPlatform = new Platform();
	myPlatform->init();

	Display * display = myPlatform->getGraphicsDevice()->getDisplay(0);

	FixedSprite * testSprite = new FixedSprite("data\\prova.bmp");
	testSprite->setPosition(Vec2f(30, 30));

	Renderer * myRenderer = new Renderer();

	myRenderer->setDisplay(display);

	Entity2DTree * entityTree = new Entity2DTree(testSprite);

	myRenderer->draw(entityTree);
	myRenderer->update(1.0f);

	myPlatform->getCommon()->delay(1000);

	return 0;
}

Questo codice gira senza modifiche su una decina di sistemi operativi diversi, producendo…

questo:

nerdy

Comments (6)

Permalink