/* z80_ops.jscpp: Process the next opcode Copyright (c) 1999-2008 Philip Kendall, Witold Filipczyk, Matthew Westcott $Id$ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Contact details: Matthew Westcott, 14 Daisy Hill Drive, Adlington, Chorley, Lancs PR6 9NE UNITED KINGDOM */ #define HAVE_ENOUGH_MEMORY #include "z80_macros.jscpp" function sign_extend(v) { return v < 128 ? v : v-256; } /* Execute Z80 opcodes until the next event */ function z80_do_opcodes() { while(tstates < event_next_event ) { var opcode; /* Do the instruction fetch; readbyte_internal used here to avoid triggering read breakpoints */ contend( PC, 4 ); R = (R+1) & 0x7f; opcode = readbyte_internal( PC++ ); PC &= 0xffff; switch(opcode) { #include "opcodes_base.jscpp" } } }