Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
8edd892
add cmake for vs2005
shadowsgit Feb 24, 2016
89ac960
rewrite ggc range case by if
shadowsgit Feb 24, 2016
d8d3062
vs2005 stdint
shadowsgit Feb 24, 2016
594598d
use __VA_ARGS__
shadowsgit Feb 24, 2016
2a0c116
fix unlikely for MSVC
shadowsgit Feb 24, 2016
d8b3286
fix missing __attribute__ in MSVC
shadowsgit Feb 24, 2016
517754f
use alloca (replace 6.19 Arrays of Variable Length)
shadowsgit Feb 24, 2016
aca0150
fix typo
shadowsgit Feb 24, 2016
d414fe3
hide ERROR from wingdi.h
shadowsgit Feb 24, 2016
f98067e
don't use getopt on windows (TOD need anothe cmdline parser)
shadowsgit Feb 24, 2016
86ee795
suppress missing headers
shadowsgit Feb 24, 2016
02f324e
workaround to not parse argv[0]
shadowsgit Feb 24, 2016
7c14650
enable K_CAN adapter
shadowsgit Feb 24, 2016
1668a98
qt5 compatibility
shadowsgit Feb 24, 2016
fc4e2a3
qt5 thread
shadowsgit Feb 24, 2016
e72dfb2
adjust cmake to qt5 and vs2013
shadowsgit Feb 24, 2016
623dac2
add vs2013.bat
shadowsgit Feb 24, 2016
f8bb3f2
build release
shadowsgit Feb 24, 2016
0bbbeab
remove exit(crash) on unhanded port 254h value , it looks like Nissan…
shadowsgit Feb 24, 2016
8b85ad9
add OS X support
shadowsgit Mar 1, 2016
5dd4611
adjust qt5 path to appveyor
shadowsgit Mar 10, 2016
e7b5e15
fix win32
shadowsgit Mar 3, 2016
444a8a9
fix loading of qt5 plugins
shadowsgit Mar 11, 2016
bac1bff
first attempt to use travis
shadowsgit Mar 11, 2016
b40161d
travis attempt #2
shadowsgit Mar 11, 2016
3ae1521
attempt3
shadowsgit Mar 11, 2016
ae54017
attempt4 adjust qt5 to brew
shadowsgit Mar 11, 2016
d397608
attemp 5
shadowsgit Mar 11, 2016
79f3589
update
shadowsgit Mar 11, 2016
78a1d5e
use brew without update
shadowsgit Mar 11, 2016
0d951d0
info
shadowsgit Mar 11, 2016
7fdea99
more attempts
shadowsgit Mar 11, 2016
c74af5a
qt5
shadowsgit Mar 14, 2016
4b767a4
qt5 #2
shadowsgit Mar 14, 2016
21e8013
fux typo
shadowsgit Mar 14, 2016
efe5e36
try to back folder
shadowsgit Mar 14, 2016
8a3c3b2
$9
shadowsgit Mar 14, 2016
b2a399f
11
shadowsgit Mar 14, 2016
f453ae5
patching
shadowsgit Mar 15, 2016
9b334b6
patching 2
shadowsgit Mar 15, 2016
3414558
remove dbus
shadowsgit Mar 15, 2016
f778205
adjust paths
shadowsgit Mar 15, 2016
7614f93
try to log
shadowsgit Mar 15, 2016
e79563a
disable patching for logging
shadowsgit Mar 15, 2016
a862ab4
try use latest qt5.5
shadowsgit Mar 15, 2016
5f011f2
remove setLibraryPaths
shadowsgit Mar 15, 2016
09190fb
use qt5.3
shadowsgit Mar 15, 2016
a8ac55e
Revert "disable patching for logging"
shadowsgit Mar 15, 2016
ef99feb
one more attempt
shadowsgit Mar 15, 2016
cbd7ded
export all plugins
shadowsgit Mar 15, 2016
e64807e
log directory
shadowsgit Mar 15, 2016
038dc80
more rpath
shadowsgit Mar 15, 2016
21aeed0
patch QtPrintSupport
shadowsgit Mar 16, 2016
9c052c1
patch widgets
shadowsgit Mar 16, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build/osx_clang64
59 changes: 59 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
language: cpp
os: osx
install:
-
brew install qt5
&& chmod -R 755 /usr/local/opt/qt5/*
;

script:
- install_name_tool -id @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets
- install_name_tool -id @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore
- install_name_tool -id @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui



- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets
- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/Current/QtWidgets
- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtGui.framework/Versions/Current/QtGui

- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport
- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport
- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/lib/QtPrintSupport.framework/Versions/Current/QtPrintSupport


- install_name_tool -id @rpath/plugins/platforms/libqcocoa.dylib /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib

- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtPrintSupport.framework/Versions/5/QtPrintSupport @rpath/QtPrintSupport.framework/Versions/5/QtPrintSupport /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib
- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets.framework/Versions/5/QtWidgets /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib
- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui.framework/Versions/5/QtGui /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib
- install_name_tool -change /usr/local/Cellar/qt5/5.3.2/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore.framework/Versions/5/QtCore /usr/local/opt/qt5/plugins/platforms/libqcocoa.dylib


- /bin/bash ./build_osx_clang_x64.sh

- install_name_tool -add_rpath @loader_path/ build/osx_clang64/Release/cascade
- install_name_tool -add_rpath @executable_path/ build/osx_clang64/Release/cascade
- install_name_tool -add_rpath . build/osx_clang64/Release/cascade

- zip -yrXj $TRAVIS_BUILD_DIR/cascade.zip build/osx_clang64/Release/cascade
- cd /usr/local/opt/qt5/lib/
- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtGui.framework
- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtWidgets.framework
- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtCore.framework
- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip QtPrintSupport.framework

- cd ..
- zip -qyrX $TRAVIS_BUILD_DIR/cascade.zip plugins
- cd $TRAVIS_BUILD_DIR
deploy:
provider: releases
api_key:
secure: Y8BQ86C8S6ZQeQ81Gs9hPJGmJEhoIJsC3GWEnOmgHVutY3psmIcOCOznCdViG4NAMX/DukYL3RFP9C3oOrIXUkwD8r/L9SlGVbuwxmxW3IuQsyGy+qHnvwYJHcJsIHM7XWxsYPz2Qe4+rqTN2fxJM/PD8edddVHt5gjI9nMrW2V1ptx+7RfG34/XtaP4EcBCAyNyhTOlNuuh8rimVHxhhM35tHVyO5ct6//TZJp4c93CBZAH/bkxnwys9LRa+Xfdl+sWdFjuKDL2q8McNRSv9vkKaxzjI4b10mKspwk8v2WVg21jeSAv720aJCdumhGxX4Ts2aExlUOkL0MbCMLGL7F+OggNGziFTyKiZGXkGotkbcqSN6+J7Ht16AO7K9ehB9JG3SOdyMn0DOCB92OF7C24T4Knj7ZQnkuz3KTow07pKl3lsbKlywdOINLmYw236n1W5TQmpBufZVUOZZ9LJ12g7zBnmLtfslauUENI8Om4Nubu6dDKteUm4xxd9JG7m35bX5jb5h2cZrVL5yyvTl+NPLCtFCKl9ojE4bjojxpXMSZmDzb4/ji3WMFXkfqUEMpCgogsZ3E3VhwzCWHL4+Tf8s8fWY7vw1dlyRyMNBcUA6gKAb5NIjHKkBhwJACGwtRmYv8jAN8siAxJEDisyzQ5xyDgwOWGmfNbeKNgjLs=
file:
- build/osx_clang64/Release/cascade
- cascade.zip
skip_cleanup: true
on:
repo: shadowsgit/cascade
branch: open_public
75 changes: 75 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
cmake_minimum_required(VERSION 2.8)
set (projectName cascade)

if(DIST_WIN32VS05)
set(QT_QMAKE_EXECUTABLE "c:/Qt/4.8.1-win32vs05/bin/qmake.exe")

find_package(Qt4 REQUIRED)
include(${QT_USE_FILE})
endif()

if(DIST_WIN32VS13)
set(CMAKE_PREFIX_PATH "c:/Qt/5.5/msvc2013")

find_package (Qt5Widgets REQUIRED)
endif()

if(DIST_MACOSX)
#set(CMAKE_PREFIX_PATH "/Volumes/developer/Qt/5.5/clang_64/")
set(CMAKE_PREFIX_PATH "/usr/local/opt/qt5/")

find_package (Qt5Widgets REQUIRED)
endif()


if(DIST_WINDOWS)
add_definitions(-DDIST_WINDOWS)
endif()

include_directories(${CMAKE_CURRENT_SOURCE_DIR} )
if(DIST_WIN32VS05)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/vs2005)
endif()

file(GLOB ${projectName}_SRC
"*.h"
"*.h"
"*.cpp"
)

set(CMAKE_AUTOMOC TRUE)

if(DIST_WINDOWS)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_sdl.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_linux.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_linux.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_macosx.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/iface_kl_ftdi.cpp)
endif()

if(DIST_MACOSX)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_sdl.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_win32.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_win32.cpp)

#list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_linux.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/os_serial_linux.cpp)
list(REMOVE_ITEM ${projectName}_SRC ${CMAKE_CURRENT_SOURCE_DIR}/iface_kl_ftdi.cpp)
endif()


message(${${projectName}_SRC})
add_executable(${projectName} ${${projectName}_SRC})

if(DIST_WINDOWS)
target_link_libraries(${projectName} ${CMAKE_CURRENT_SOURCE_DIR}/ftd2xx_win32/ftd2xx.lib )
if(DIST_WIN32VS05)
target_link_libraries(${projectName} Qt4::QtGui )
else()
qt5_use_modules(${projectName} Widgets)
endif()
elseif(DIST_MACOSX)
qt5_use_modules(${projectName} Widgets)
endif()


2 changes: 1 addition & 1 deletion autotty.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
AutoTTY::AutoTTY(UI *ui, const char *driver)
{
this->ui = ui;
this->driver = strdup(driver);
this->driver = driver?strdup(driver):NULL;
sh = -1;
plugged_in = false;
ui->setLED(LED_IFACE, false);
Expand Down
7 changes: 7 additions & 0 deletions build_osx_clang_x64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
mkdir build
mkdir "build/osx_clang64"
pushd "build/osx_clang64"
cmake -G"Xcode" ../../ -DDIST_MACOSX=1

xcodebuild -project Project.xcodeproj -configuration Release
popd
7 changes: 7 additions & 0 deletions build_vs2005.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
mkdir build
mkdir "build/vs2005"
pushd "build/vs2005"
cmake -G"Visual Studio 8 2005" ../../ -DDIST_WIN32VS05=1 -DDIST_WINDOWS=1

"%VS80COMNTOOLS%\..\IDE\devenv.com" Project.sln /build Release
popd
7 changes: 7 additions & 0 deletions build_vs2013.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
mkdir build
mkdir "build/vs2013"
pushd "build/vs2013"
cmake -G"Visual Studio 12" ../../ -DDIST_WIN32VS13=1 -DDIST_WINDOWS=1

"%VS120COMNTOOLS%\..\IDE\devenv.com" Project.sln /build Release
popd
20 changes: 12 additions & 8 deletions cpu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@
#include "hints.h"
#include <string.h>

#ifndef DIST_WINDOWS
#include <unistd.h>
#endif //DIST_WINDOWS

Cpu::Cpu(UI *ui)
{
end_cycles = (uint64_t)-1LL;
Expand Down Expand Up @@ -286,7 +290,7 @@ uint32_t Cpu::virtToPhysSlow(uint16_t addr, int fetch)
else if (map_hi == 8 && map_lo <= 0x1f) { // (map_lo == 0x1e || map_lo == 0x1f || map_lo == 3 || map_lo == 5 || map_lo == 4)) {
return 0xcaf00000UL + map_lo * 0x4000 + (addr - 0xc000);
}
else if (map_hi == 0x10) {
else if (map_hi == 0x10 ) {
if (exrom)
return 0xbab00000UL + map_lo * 0x4000 + (addr - 0xc000);
else
Expand Down Expand Up @@ -524,7 +528,7 @@ const char *Cpu::disassemble()
case 0x19: OP2SH("SHLB"); break;
case 0x1a: OP2SH("SHRAB"); break;
case 0x1b: OP2IX("XCHB"); break;
case 0x1c ... 0x1f: OP0("RESERVED"); break;
/* case 0x1c ... 0x1f: OP0("RESERVED"); break;
case 0x20 ... 0x27: OPJ11("SJMP"); break;
case 0x28 ... 0x2f: OPJ11("SCALL"); break;
case 0x30 ... 0x37: OPJBIT("JBC"); break;
Expand Down Expand Up @@ -560,7 +564,7 @@ const char *Cpu::disassemble()
case 0xb0 ... 0xb3: OP2("LDB"); break;
case 0xb4 ... 0xb7: OP2("ADDCB"); break;
case 0xb8 ... 0xbb: OP2("SUBCB"); break;
case 0xbc ... 0xbf: OP2("LDBSE"); break;
case 0xbc ... 0xbf: OP2("LDBSE"); break;*/
case 0xc0: OP2("ST"); break;
case 0xc1: OP2D("BMOV"); break;
case 0xc2: OP2("ST"); break;
Expand Down Expand Up @@ -597,9 +601,9 @@ const char *Cpu::disassemble()
case 0xe1: OPDJ8("DJNZW"); break;
case 0xe2: OPUNIMP("TIJMP"); break;
case 0xe3: sprintf(buf, "BR [%02X]", peek(1)); break;
case 0xe4 ... 0xe6: OP0("RESERVED"); break;
// case 0xe4 ... 0xe6: OP0("RESERVED"); break;
case 0xe7: OPJ16("LJMP"); break;
case 0xe8 ... 0xeb: OP0("RESERVED"); break;
// case 0xe8 ... 0xeb: OP0("RESERVED"); break;
case 0xec: OPUNIMP("DPTS"); break;
case 0xed: OPUNIMP("EPTS"); break;
case 0xee: OP0("RESERVED NOP"); break;
Expand Down Expand Up @@ -739,7 +743,7 @@ bool Cpu::loadRom(const char *name)
DEBUG(OS, "extracting RAR file %s\n", rom_name);
fclose(fp);
sprintf(new_name, "%s.lha", rom_name);
char cmd[strlen(rom_name) + strlen(new_name) + 50];
char *cmd = (char *)alloca(strlen(rom_name) + strlen(new_name) + 50);
sprintf(cmd, "unrar p -inul \"%s\" >\"%s\"", rom_name, new_name);
if (system(cmd)) {
ERROR("failed to unpack %s to %s\n", rom_name, new_name);
Expand Down Expand Up @@ -771,7 +775,7 @@ bool Cpu::loadRom(const char *name)
*r = 0;
sprintf(new_name, "%s.bin", stripname);
free(stripname);
char cmd[strlen(rom_name) + strlen(new_name) + 50];
char *cmd=(char *)alloca(strlen(rom_name) + strlen(new_name) + 50);
sprintf(cmd, "lha p -q \"%s\" >\"%s\"", rom_name, new_name);
if (system(cmd)) {
ERROR("failed to unpack %s to %s\n", rom_name, new_name);
Expand Down Expand Up @@ -821,7 +825,7 @@ bool Cpu::loadRom(const char *name)

memcpy(ram, rom, 0xc000);

char eename[strlen(rom_name) + 4 + 1];
char *eename=(char *)alloca(strlen(rom_name) + 4 + 1);
sprintf(eename, "%s.eep", rom_name);
eeprom->setFilename(eename);

Expand Down
50 changes: 21 additions & 29 deletions cpu.h
Original file line number Diff line number Diff line change
Expand Up @@ -151,17 +151,15 @@ friend class Keypad;
uint8_t memRead8Bus(uint16_t addr, int fetch);

typedef uint8_t (Cpu::*memReader)(uint16_t addr);
inline uint8_t memRead8(uint16_t addr) {
switch (addr) {
case 0 ... 1: return 0;
case 0x18 ... 0xff:
case 0x2000 ... 0xbfff:
return memRead8Ram(addr);
case 0xc000 ... 0xffff:
return memRead8Mapped(addr);
default:
return memRead8Slow(addr);
}
inline uint8_t memRead8(uint16_t addr)
{
if (addr == 1 || addr==0) return 0;
if (addr>=0x18 && addr <=0xFF) return memRead8Ram(addr);
if (addr>=0x2000 && addr <=0xbfff) return memRead8Ram(addr);
if (addr>=0xc000 && addr <=0xFFFF) return memRead8Mapped(addr);
//default
return memRead8Slow(addr);

}

uint8_t memRead8Ram(uint16_t addr) {
Expand Down Expand Up @@ -206,24 +204,18 @@ friend class Keypad;
}

typedef void (Cpu::*memWriter)(uint16_t addr, uint8_t value);
inline void memWrite8(uint16_t addr, uint8_t value) {
switch (addr) {
case 0 ... 0x17:
case 0x200 ... 0x2ff:
ioWrite8(addr, value);
break;
case 0x18 ... 0xff:
case 0x2000 ... 0xbfff:
memWrite8Ram(addr, value);
break;
case 0xc000 ... 0xffff:
memWrite8Mapped(addr, value);
break;
default:
memWrite8Slow(addr, value);
break;
}
}
inline void memWrite8(uint16_t addr, uint8_t value)
{
if (addr >=0x0 && addr <= 0x17) return ioWrite8(addr,value);
if (addr >=0x200 && addr <= 0x2ff) return ioWrite8(addr,value);
if (addr >=0x18 && addr <= 0xff) return memWrite8Ram(addr,value);
if (addr >=0x2000 && addr <= 0xbfff) return memWrite8Ram(addr,value);

if (addr >=0xc000 && addr <= 0xffff) return memWrite8Mapped(addr,value);
//default
return memWrite8Slow(addr, value);;
}

void memWrite8Slow(uint16_t addr, uint8_t value);
void memWrite8Mapped(uint16_t addr, uint8_t value) {
DEBUG(MEM, "WRITE %02X -> %04X\n", value, addr);
Expand Down
40 changes: 36 additions & 4 deletions cpu_emu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,15 @@ int Cpu::emulate(void)
psw |= PSW_VT;
}
break;
case 0x20 ... 0x27: /* sjmp rel11 */
case 0x20:
case 0x21:
case 0x22:
case 0x23:
case 0x24:
case 0x25:
case 0x26:
case 0x27:
// case 0x20 ... 0x27: /* sjmp rel11 */
rel16 = ((int16_t)((fetch() | ((opcode & 0x7) << 8)) << 5)) >> 5;
target = pc + rel16;
if (target == pc - 2) {
Expand All @@ -586,15 +594,31 @@ int Cpu::emulate(void)
pc = target;
cycle(7);
break;
case 0x28 ... 0x2f: /* scall rel11 */
case 0x28:
case 0x29:
case 0x2A:
case 0x2B:
case 0x2C:
case 0x2D:
case 0x2E:
case 0x2F:
// case 0x28 ... 0x2f: /* scall rel11 */
val8 = fetch();
rel16 = ((int16_t)((val8 | ((opcode & 0x7) << 8)) << 5)) >> 5;
target = pc + rel16;
push16(pc);
pc = target;
cycle(11);
break;
case 0x30 ... 0x37: /* jbc rel8 */
case 0x30:
case 0x31:
case 0x32:
case 0x33:
case 0x34:
case 0x35:
case 0x36:
case 0x37:
// case 0x30 ... 0x37: /* jbc rel8 */
imm8 = 1 << (opcode & 0x7);
addr8 = fetch();
sval8 = (int8_t)fetch();
Expand All @@ -606,7 +630,15 @@ int Cpu::emulate(void)
}
cycle(5);
break;
case 0x38 ... 0x3f: /* jbs rel8 */
case 0x38:
case 0x39:
case 0x3A:
case 0x3B:
case 0x3C:
case 0x3D:
case 0x3E:
case 0x3F:
// case 0x38 ... 0x3f: /* jbs rel8 */
imm8 = 1 << (opcode & 0x7);
addr8 = fetch();
sval8 = (int8_t)fetch();
Expand Down
Loading