#!/usr/bin/env php $%02X %s', $addr, $value, PHP_EOL); // } // ) ); $lastAddr = null; $lastAddrCount = 0; $lastStackPtr = $cpu->state->s; $cpu->state->pc = 0x400; printf('[ %s ]%s', $cpu->state, PHP_EOL); for(;;) { $cpu->tick(); if($lastStackPtr !== $cpu->state->s) { $lastStackPtr = $cpu->state->s; printf('Stack page:%s', PHP_EOL); for($i = 0; $i < 0x100; ++$i) { printf(' %02X', $cpu->mem->read($cpu->state->sPage | $i, true)); if(($i & 0x1F) === 0x1F) echo PHP_EOL; } } echo PHP_EOL; if($lastAddr === $cpu->state->pc) { if(++$lastAddrCount > 9) { printf('Trapped!%s', PHP_EOL); break; } } else { $lastAddr = $cpu->state->pc; $lastAddrCount = 0; } printf('[ %s ]%s', $cpu->state, PHP_EOL); //usleep(200); readline(); }