+ exec + rm -rf /rpmbuild + mkdir -p /rpmbuild + su -c 'rpmbuild -ba /builddir/build/SPECS/z88dk.spec --define "debug_package %{nil}" --undefine _annotated_build --define "_missing_doc_files_terminate_build %{nil}" --define "_emacs_sitestartdir /usr/share/emacs/site-lisp/site-start.d" --define "_emacs_sitelispdir /usr/share/emacs/site-lisp" --nocheck ' mockbuild Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.lnRV2w + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf z88dk + /usr/bin/gzip -dc /builddir/build/SOURCES/z88dk-20150709.tgz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd z88dk + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #0 (z88dk-1.10-makefile-usr-share.patch):' Patch #0 (z88dk-1.10-makefile-usr-share.patch): + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file Makefile + echo 'Patch #1 (z88dk-1.10-64bit.patch):' Patch #1 (z88dk-1.10-64bit.patch): + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file src/copt/copt.c Hunk #1 succeeded at 509 (offset 2 lines). patching file src/sccz80/io.c patching file src/sccz80/io.h patching file src/sccz80/primary.c + echo 'Patch #2 (z88dk-1.10-makefile-flags.patch):' Patch #2 (z88dk-1.10-makefile-flags.patch): + /usr/bin/patch --no-backup-if-mismatch -p1 --fuzz=0 patching file src/zcc/Makefile patching file src/zx7/Makefile + find . -depth -name CVS -type d -exec rm -rf '{}' ';' + mv doc/netman . + chmod 644 netman/man3z/DeviceOffline.3 netman/man3z/DeviceOnline.3 netman/man3z/QueryPackage.3 netman/man3z/byteorder.3 netman/man3z/getnetbyname.3 netman/man3z/getnetbynumber.3 netman/man3z/getprotobyname.3 netman/man3z/getprotobynumber.3 netman/man3z/getservbyname.3 netman/man3z/getservbyport.3 netman/man3z/getservprotobyname.3 netman/man3z/getservprotobynumber.3 netman/man3z/htonl.3 netman/man3z/htons.3 netman/man3z/ntohl.3 netman/man3z/ntohs.3 netman/man3z/pktdrive.3 netman/man3z/resolve.3 netman/man3z/reverse_addr_lookup.3 netman/man3z/sock_abort.3 netman/man3z/sock_close.3 netman/man3z/sock_closed.3 netman/man3z/sock_dataready.3 netman/man3z/sock_flush.3 netman/man3z/sock_listen.3 netman/man3z/sock_open.3 netman/man3z/sock_opened.3 netman/man3z/sock_putc.3 netman/man3z/sock_puts.3 netman/man3z/sock_read.3 netman/man3z/sock_shutdown.3 netman/man3z/sock_write.3 netman/man3z/tcp_RegCatchall.3 netman/man3z/tcp_calloc.3 netman/man3z/tcp_free.3 netman/man3z/tcp_malloc.3 netman/man3z/tcp_pagein.3 netman/man3z/tcp_pageout.3 + find doc examples src -type f -exec sed -i -e 's/\r*$//' '{}' ';' + find doc examples src -type f -exec chmod 644 '{}' ';' + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.2FfDaf + umask 022 + cd /builddir/build/BUILD + cd z88dk + export Z80_OZFILES=/builddir/build/BUILD/z88dk/lib/ + Z80_OZFILES=/builddir/build/BUILD/z88dk/lib/ + export ZCCCFG=/builddir/build/BUILD/z88dk/lib/config/ + ZCCCFG=/builddir/build/BUILD/z88dk/lib/config/ + export PATH=/builddir/build/BUILD/z88dk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin + PATH=/builddir/build/BUILD/z88dk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin + export CC=gcc + CC=gcc + export 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 ' + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 ' + export 'LDFLAGS=-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + LDFLAGS='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + make clean cd src/appmake ; make clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/appmake' rm -f appmake appmake.o z88.o zxvgs.o zx.o z88shell.o abc80.o zx81.o msx.o mtx.o mz.o nec.o p2000.o aquarius.o rom.o sorcerer.o sos.o svi.o sc3000.o ace-tap.o hex.o lynx.o rex6000.o tixx.o nascom.o cpc.o m5.o mc.o newbrain.o newext.o sms.o trs80.o c128.o galaksija.o vz.o enterprise.o x07.o residos.o inject.o vg5k.o extract.o core rm -f -rf Debug Release make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/appmake' cd src/copt ; make clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/copt' rm -f copt copt.o core rm -f -rf Debug Release make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/copt' cd src/cpp ; make clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/cpp' rm -f *.o core *~ zcpp rm -f -rf Debug Release make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/cpp' cd src/sccz80 ; make clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/sccz80' rm -f *.o *~ core sccz80 rm -f -rf Debug Release make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/sccz80' cd src/z80asm ; make clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/z80asm' rm -f *.core lib/*.core lib/t/*.core lib/t/uthash/*.core rm -f *.o lib/*.o lib/t/*.o lib/t/uthash/*.o rm -f *.out lib/*.out lib/t/*.out lib/t/uthash/*.out rm -f *.orig lib/*.orig lib/t/*.orig lib/t/uthash/*.orig rm -f *.exe lib/*.exe lib/t/*.exe lib/t/uthash/*.exe rm -f *.tmp lib/*.tmp lib/t/*.tmp lib/t/uthash/*.tmp rm -f *.bak lib/*.bak lib/t/*.bak lib/t/uthash/*.bak rm -f *.log lib/*.log lib/t/*.log lib/t/uthash/*.log rm -f *~ lib/*~ lib/t/*~ lib/t/uthash/*~ rm -f -rf Debug Release x1 x2 x3 rm -f t/libtestlib.a t/*.o t/*.out lib/t/*.o lib/t/*.out t/test_codearea t/test_symtab rm -f z80asm lib/z80asm test* lib/test* rm -f t/*.tmp lib/t/*.tmp t/dev/*.tmp rm -f microman.bin microman.tap mandel.bin mandel.tap zcc_opt.def rm -f enigma.* crt0.* make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/z80asm' cd src/zcc ; make clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/zcc' rm -f zcc zcc.o core rm -f -rf Debug Release make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/zcc' make -C support/ar clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/support/ar' rm -f z80nm ar.o getopt/*.o core rm -f -rf Debug Release make[1]: Leaving directory '/builddir/build/BUILD/z88dk/support/ar' cd libsrc ; make clean make[1]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' make -C ace clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/ace' rm -f *.o* zcc_opt.def cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/ace/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/ace/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/ace' make -C assert clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' rm -f *.o* *.sym *.map *~ *.err zcc_opt.def rm -f assert.asm *.i make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C c128 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/c128' rm -f *.o* *.sym *.map zcc_opt.def *.i getkeyscia.asm getjoyscia.asm gettimeracia.asm gettimerbcia.asm gettodcia.asm setintctrlcia.asm settimeracia.asm settimerbcia.asm settodcia.asm timervalcia.asm todcharcia.asm todstrcia.asm is64kvdc.asm printstrvdc.asm set64kvdc.asm set80x50textvdc.asm setbitmapvdc.asm setbitmapintvdc.asm attrsonvdc.asm attrsoffvdc.asm printbmivdc.asm printbmvdc.asm memtobufvdc.asm buftomemvdc.asm circlepointsvdc.asm circleivdc.asm clrattrvdc.asm clrbitmapvdc.asm clrscrvdc.asm copymemvdc.asm copydspvdc.asm setcursorvdc.asm ellipsevdc.asm ellipseivdc.asm fillattrvdc.asm filldspvdc.asm fillmemvdc.asm linevdc.asm lineivdc.asm mapvdc.asm initpcx.asm donepcx.asm decodelinepcx.asm decodefilepcx.asm decodelineintpcx.asm decodefileintpcx.asm savevdc.asm restorevdc.asm setcharvdc.asm setdsppagevdc.asm scrollupvdc.asm scrolldownvdc.asm winvdc.asm clrwinattrvdc.asm clrwinvdc.asm attacksid.asm releasesid.asm clearsid.asm volumesid.asm envelopesid.asm freqsid.asm pulsewavesid.asm getmousesid.asm getpotssid.asm make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/c128' make -C ctype clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/ctype' rm -f *.o* *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/ctype' make -C farz88 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/farz88' rm -f *.o *~ cd strings ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/farz88/strings' rm -f *.o* *.sym *.map *~ *.err zcc_opt.def rm -f strdup_far.asm *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/farz88/strings' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/farz88' make -C fcntl clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C cpc clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpc' rm -f *.sym *.map zcc_opt.def *.o* *.i close.asm cpc_openin.asm cpc_openout.asm open.asm open_z88.asm read.asm write.asm writebyte.asm readbyte.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpc' make -C dummy clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/dummy' rm -f *.sym *.map zcc_opt.def *.o* make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/dummy' make -C gen_rnd clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/gen_rnd' rm -f *.o* zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/gen_rnd' make -C spectrum clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum' cd plus3 ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/plus3' rm -f *.o* zcc_opt.def make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/plus3' cd microdrive ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/microdrive' rm -f *.o* zcc_opt.def make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/microdrive' cd zxbasdrv ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/zxbasdrv' rm -f *.sym *.map zcc_opt.def *.o* make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/zxbasdrv' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum' make -C nc100 clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/nc100' rm -f *.sym *.map zcc_opt.def *.o* *~ *.i lseek.asm open_z88.asm opendir.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/nc100' make -C newbrain clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/newbrain' rm -f *.sym *.map zcc_opt.def *.o* make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/newbrain' make -C sprinter clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/sprinter' rm -f *.sym *.map zcc_opt.def *.o* *.i close.asm creat.asm lseek.asm open.asm open_z88.asm read.asm write.asm writebyte.asm readbyte.asm getcwd.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/sprinter' make -C z88 clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' rm -f *.sym *.map zcc_opt.def *.o* *.i close.asm creat.asm lseek.asm open.asm open_z88.asm nropen.asm read.asm write.asm writebyte.asm readbyte.asm stat.asm opendor.asm readdor.asm closedor.asm writedor.asm deletedor.asm sondor.asm brotherdor.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' make -C zxvgs clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/zxvgs' rm -f *.o* zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/zxvgs' make -C cpm clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpm' rm -f *.sym *.map zcc_opt.def *.o* *~ *.i _putoffset.asm bios.asm bdos.asm close.asm creat.asm change_volume.asm dir_move_first.asm dir_move_next.asm dir_get_entry_type.asm dir_get_entry_name.asm dir_get_entry_size.asm get_current_volume.asm get_dir_name.asm fdtell.asm getfcb.asm lseek.asm open.asm open_z88.asm parsefcb.asm read.asm readbyte.asm remove.asm rename.asm setfcb.asm write.asm writebyte.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpm' make -C osca clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca' cd flos ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flos' rm -f *.o* zcc_opt.def make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flos' cd flosmulti ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flosmulti' rm -f *.o* zcc_opt.def make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flosmulti' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca' #make -C sos clean make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C math/genmath clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/genmath' rm -f *.o* *.sym *.map *.err zcc_opt.def *.i make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/genmath' make -C math/z88math clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/z88math' rm -f *.o* *.sym *.map *.err zcc_opt.def *.i cosh.asm sinh.asm tanh.asm make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/z88math' make -C math/cpcmath clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' rm -f *.o* *.sym *.map *.err zcc_opt.def *.i amax.asm amin.asm ceil.asm fabs.asm fmod.asm ftoa.asm ftoe.asm cosh.asm sinh.asm tanh.asm atan2.asm atof.asm halfpi.asm make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' make -C math/zxmath clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' rm -f *.o* *.sym *.map *.err make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' make -C graphics clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics' rm -f *.o rm -f 8080/*.o rm -f abc80/*.o rm -f ace/*.o rm -f aquarius/*.o cd c128 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128' rm -f *.o* *.sym *.map zcc_opt.def *.i clg.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128' cd c128_64k ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128_64k' rm -f *.o* *.sym *.map zcc_opt.def *.i clg.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128_64k' rm -f cpc/*.o cd enterprise ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise' rm -f *.o* *.sym *.map zcc_opt.def *.i clg.asm circle.asm uncircle.asm setxy.asm fill.asm draw.asm drawr.asm drawto.asm undraw.asm undrawr.asm undrawto.asm plot.asm unplot.asm xorplot.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise' cd enterprise_hr ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise_hr' rm -f *.o* *.sym *.map zcc_opt.def *.i clg.asm circle.asm uncircle.asm setxy.asm fill.asm draw.asm drawr.asm drawto.asm undraw.asm undrawr.asm undrawto.asm plot.asm unplot.asm xorplot.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise_hr' rm -f gal/*.o rm -f gray/*.o rm -f gray/ticalc/*.o rm -f gray/cpc/*.o rm -f gray/zx81/*.o rm -f mc1000/*.o rm -f msx/*.o rm -f msx/surface/*.o rm -f mz/*.o rm -f nascom/*.o rm -f osca/*.o rm -f oz/*.o rm -f p2000/*.o rm -f pc6001/*.o rm -f sam/*.o rm -f sorcerer/*.o rm -f spectrum/*.o rm -f text/*.o rm -f text6/*.o rm -f ticalc/*.o rm -f trs80/*.o rm -f ts2068hr/*.o rm -f vz200/*.o rm -f z88/*.o rm -f zx80/*.o rm -f time/zx81/*.o rm -f zx81/*.o rm -f zx81/hr/*.o rm -f zx81/udg/*.o cd x11 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/x11' rm -f *.o* zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/x11' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics' make -C malloc clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/malloc' cd strings ; rm -f *.o* ; cd .. rm -f *.o* *.sym *.map *~ *.err zcc_opt.def *.i make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/malloc' make -C net clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/net' rm -f *.obj *.sym *.map *.o* *.i zcc_opt.def get_networks.asm get_protocols.asm get_services.asm getnetbyname.asm getnetbynumber.asm getprotobyname.asm getprotobynumber.asm getservbyname.asm getservbyport.asm getservprotobyname.asm getservprotobyport.asm getxxbyname.asm getxxbyport.asm make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/net' make -C printflike clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' rm -f *.err *.o* *.sym *.map zcc_opt.def *.i fprintf.asm fscanf.asm itou.asm ltoa_any.asm printf.asm scanf.asm sprintf.asm sscanf.asm utoi.asm vfprintf_comp.asm vfprintf_fp.asm vfscanf.asm vsprintf.asm vsscanf.asm make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C rex clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rex' rm -f *.o* *~ zcc_opt.def cd graphics ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rex/graphics' rm -f *.sym *.map zcc_opt.def *.o* make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rex/graphics' cd farcall ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rex/farcall' rm -f *.o* zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rex/farcall' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rex' make -C rs232 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd cpc ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc' cd sti ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/sti' rm -f *.sym *.map zcc_opt.def *.o* *~ *.err *.i make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/sti' cd booster ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/booster' rm -f *.sym *.map zcc_opt.def *.o* *~ *.err *.i make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/booster' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc' cd z88 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' rm -f *.sym *.map zcc_opt.def *.o* *~ *.err *.i rs232_close.asm rs232_get.asm rs232_init.asm rs232_params.asm rs232_put.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' cd spectrum ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum' cd plus3 ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/plus3' rm -f *.sym *.map zcc_opt.def *.o* *~ *.err *.i rs232_close.asm rs232_get.asm rs232_init.asm rs232_params.asm rs232_put.asm make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/plus3' cd if1 ; make clean ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/if1' rm -f *.sym *.map zcc_opt.def *.o* *~ *.err *.i rs232_close.asm rs232_get.asm rs232_init.asm rs232_params.asm rs232_put.asm make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/if1' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum' cd osca ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/osca' rm -f *.sym *.map zcc_opt.def *.o* *~ *.err *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/osca' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C setjmp clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' rm -f *.o* *.sym *.map *~ *.err zcc_opt.def *.i longjmp.asm setjmp.asm make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C spectrum clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' rm -f *.o* zcc_opt.def cd basic ; rm -f *.o* ; cd .. cd diagnostic ; rm -f *.o* ; cd .. cd display ; rm -f *.o* ; cd .. cd if1 ; rm -f *.o* ; cd .. cd opus ; rm -f *.o* ; cd .. cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' cd uspeech ; rm -f *.o* ; cd .. cd zxmmc ; rm -f *.o* ; cd .. cd ulaplus ; rm -f *.o* ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' make -C stdio clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' rm -f *.o* *.sym *.map zcc_opt.def *.i closeall.asm fabandon.asm fchkstd.asm fdopen.asm feof.asm fgetpos.asm fgets.asm fgets_cons.asm fopen.asm fopen_z88.asm fputs_callee.asm freopen.asm fseek.asm ftell.asm fwrite.asm printk.asm printn.asm puts.asm ungetc.asm vfprintf_mini.asm fclose.asm fgetc.asm fputc_callee.asm freopen_z88.asm fread.asm fflush.asm rm -f ansi/*.o rm -f ansi/abc80/*.o rm -f ansi/ace/*.o rm -f ansi/aquarius/*.o rm -f ansi/c128/*.o rm -f ansi/cpc/*.o rm -f ansi/generic/*.o rm -f ansi/mc1000/*.o rm -f ansi/nascom/*.o rm -f ansi/oz/*.o rm -f ansi/osca/*.o rm -f ansi/p2000/*.o rm -f ansi/pc6001/*.o rm -f ansi/sam/*.o rm -f ansi/sharp-mz/*.o rm -f ansi/spectrum/*.o rm -f ansi/ts2068/*.o rm -f ansi/sprinter/*.o rm -f ansi/vg5k/*.o rm -f ansi/vz200/*.o rm -f ansi/x1/*.o rm -f ansi/z88/*.o rm -f ansi/zx81/*.o rm -f abc80/*.o rm -f abc800/*.o rm -f ace/*.o rm -f aquarius/*.o rm -f c128/*.o rm -f cpc/*.o rm -f cpm/*.o rm -f enterprise/*.o rm -f gal/*.o rm -f lynx/*.o rm -f m5/*.o rm -f mc1000/*.o rm -f msx/*.o rm -f mtx/*.o rm -f mz/*.o rm -f nascom/*.o rm -f nc100/*.o rm -f newbrain/*.o rm -f osca/*.o rm -f oz/*.o rm -f p2000/*.o rm -f pc6001/*.o rm -f sam/*.o rm -f sms/*.o rm -f sos/*.o rm -f sorcerer/*.o rm -f spectrum/*.o rm -f test/*.o rm -f ticalc/*.o rm -f trs80/*.o rm -f ts2068/*.o rm -f sprinter/*.o rm -f svi/*.o rm -f sc3000/*.o rm -f vz200/*.o rm -f vg5k/*.o rm -f x07/*.o rm -f x1/*.o rm -f z88/*.o rm -f zx80/*.o rm -f zx81/*.o rm -f rcmx000/*.o cd zsock ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/zsock' rm -f *.o* zcc_opt.def *.sym *.map *.i closenet.asm fflush_net.asm fgetc_net.asm fputc_net.asm opennet.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/zsock' cd 8080 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' rm -f *.o* *.sym *.map zcc_opt.def *.i fabandon.asm fchkstd.asm fclose.asm fgetc.asm fputc.asm fputs.asm ungetc.asm vfprintf_mini.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C stdlib clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f *.o* *.sym *.map zcc_opt.def *.i sleep.asm csleep.asm delay.asm unbcd.asm wcmatch.asm getopt.asm cd z88 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/z88' rm -f *.o* *.sym *.map zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/z88' cd spectrum ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/spectrum' rm -f *.o* *.sym *.map zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/spectrum' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C strings clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f *.o* *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C time clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' rm -f *.o* *.i *.sym *.map zcc_opt.def rm -f zx81/*.o* rm -f abc80/*.o* rm -f ace/*.o* rm -f cpm/*.o* rm -f enterprise/*.o* rm -f newbrain/*.o* rm -f osca/*.o* rm -f p2000/*.o* rm -f rcmx000/*.o* rm -f mc1000/*.o* cd x1 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/x1' rm -f *.o* *.i *.sym *.map zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/x1' cd z88 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' rm -f *.o* *.i *.sym *.map zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' cd spectrum ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' rm -f *.o* *.i *.sym *.map zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' cd sprinter ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/sprinter' rm -f *.o* *.i *.sym *.map zcc_opt.def *.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/sprinter' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C z80_crt0s clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' rm -f crt0/*.o* crt0/*.sym crt0/*.map rm -f crt0_long/*.o* crt0_long/*.sym crt0_long/*.map rm -f z80_emu/*.o* z80_emu/*.sym z80_emu/*.map rm -f crt0_sdcc/*.o* crt0_sdcc/*.sym crt0_sdcc/*.map make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' make -C z88 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z88' rm -f *.obj *.sym *.map *.o* *~ zcc_opt.def *.i DeRegisterInt.asm exec_cli.asm fnexpand.asm getpid.asm nameapp.asm openpopup.asm opentitled.asm openwindow.asm QueryPackage.asm RegisterInt.asm stripdev.asm strippath.asm wcclose.asm wcnext.asm wcopen.asm cd fdstdio ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z88/fdstdio' rm -f *.o* *.sym *.map zcc_opt.def *.i fchkhdl.asm fdfread.asm fdfwrite.asm fdprintn.asm zfdopen.asm zfdopen_z88.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z88/fdstdio' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z88' make -C zxvgs clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/zxvgs' rm -f *.o* *.i *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/zxvgs' make -C adt clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/adt' cd hashtable ; rm -f *.o* *.sym *.map zcc_opt.def ; cd .. cd heap ; rm -f *.o* *.sym *.map zcc_opt.def ; cd .. cd linkedlist ; rm -f *.o* *.sym *.map zcc_opt.def ; cd .. cd stack ; rm -f *.o* *.sym *.map zcc_opt.def ; cd .. cd queue ; rm -f *.o* *.sym *.map zcc_opt.def ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/adt' make -C balloc clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/balloc' rm -f *.o* *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/balloc' make -C im2 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/im2' rm -f *.o* *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/im2' make -C rect clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rect' rm -f *.o* *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rect' make -C algorithm clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/algorithm' rm -f *.o* *.sym *.map *~ *.err zcc_opt.def *.i cd AStarSearch ; rm -f *.o* *.sym *.map *~ *.err zcc_opt.def *.i ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/algorithm' make -C debug clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/debug' rm -f *.sym *.map zcc_opt.def *.o* *~ *.err *.i dump.asm make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/debug' make -C osca clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/osca' rm -f *.o* *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/osca' make -C oz clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/oz' rm -f *.o* zcc_opt.def rm -f emu/ozgfx/*.o* rm -f ozinput/*.o* ozinput/zcc_opt.def rm -f ozinterrupt/*.o* ozinterrupt/zcc_opt.def rm -f ozmisc/*.o* ozmisc/zcc_opt.def rm -f ozscreen/*.o* ozscreen/zcc_opt.def rm -f oztime/*.o* oztime/zcc_opt.def rm -f ozgfx/*.o* ozgfx/zcc_opt.def rm -f ozserial/*.o* ozserial/zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/oz' make -C lib3d clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/lib3d' rm -f *.o* zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/lib3d' make -C input clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/input' rm -f spectrum/*.o* rm -f zx81/*.o* rm -f x1/*.o* make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/input' rm -f abc80/*.o rm -f abc800/*.o make -C enterprise clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/enterprise' rm -f *.o* *.sym *.map zcc_opt.def *.i make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/enterprise' make -C msx clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' rm -f *.o* *.sym *.map zcc_opt.def *.i make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f newbrain/*.o rm -f ts2068/*.o rm -f vz/*.o make -C zx81 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/zx81' rm -f *.o* basic/*.o* tape/*.o* *.sym *.map zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/zx81' rm -f cpc/*.o make -C sms clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sms' rm -f *.bin *.i *.lib *.op* *.o *~ zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sms' make -C sos clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sos' rm -f *.o* zcc_opt.def cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sos/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i rnd_saveblock.asm rnd_loadblock.asm tape_save.asm tape_save_block.asm tape_load.asm tape_load_block.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sos/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sos' make -C threading/preempt clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/threading/preempt' rm -f *.o ../.././preempt.lib zcc_opt.def make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/threading/preempt' make -C sprites/software/sp1 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sprites/software/sp1' rm -f *.o rm -f spectrum/sprites/*.o rm -f spectrum/sprites/draw/*.o rm -f spectrum/tiles/*.o rm -f spectrum/updater/*.o rm -f ts2068hr/sprites/*.o rm -f ts2068hr/sprites/draw/*.o rm -f ts2068hr/tiles/*.o rm -f ts2068hr/updater/*.o rm -f zx81hr/sprites/*.o rm -f zx81hr/sprites/draw/*.o rm -f zx81hr/tiles/*.o rm -f zx81hr/updater/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sprites/software/sp1' make -C stdio_new clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio_new' rm -f stream-general/*.o rm -f stream-out/*.o rm -f error/*.o rm -f general/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio_new' make -C sdcard clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sdcard' rm -f *.sym *.map zcc_opt.def *.o* rm -f osca/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sdcard' make -C games clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' rm -f *.sym *.map zcc_opt.def *.o* rm -f ace/*.o c128/*.o cpc/*.o aquarius/*.o msx/*.o rm -f sam/*.o spectrum/*.o trs80/*.o vg5k/*.o vz/*.o z88/*.o rm -f gal/*.o ticalc/*.o enterprise/*.o mtx/*.o rm -f osca/*.o zx81snd/*.o mc1000/*.o pc6001/*.o p2000/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C x1 clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/x1' rm -f *.o* *.sym *.map zcc_opt.def *.i make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/x1' rm -f *.lib make[1]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' cd lib/clibs ; rm -f *.lib find . -name "*.o" -type f -exec rm -f {} \; + make echo '#define PREFIX "'/usr/share'/z88dk"' > src/config.h echo '#define UNIX 1' >> src/config.h make -C src/appmake make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/appmake' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c appmake.c appmake.c: In function 'writebyte_pk': appmake.c:757:18: warning: unused variable 'b' [-Wunused-variable] unsigned char a,b; ^ appmake.c:757:16: warning: unused variable 'a' [-Wunused-variable] unsigned char a,b; ^ appmake.c: In function 'get_temporary_filename': appmake.c:29:23: warning: implicit declaration of function 'close'; did you mean 'pclose'? [-Wimplicit-function-declaration] #define mktempfile(a) close(mkstemp(a)) ^ appmake.c:1303:5: note: in expansion of macro 'mktempfile' mktempfile(filen); ^~~~~~~~~~ appmake.c: In function 'option_set.isra.0': appmake.c:573:12: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] return ret; ^~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c z88.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c zxvgs.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c zx.c zx.c: In function 'turbo_rawout': zx.c:353:9: warning: unused variable 'period' [-Wunused-variable] int i,period; ^~~~~~ zx.c: In function 'zx_exec': zx.c:443:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ zx.c:629:31: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'long int' [-Wformat=] printf("\nInfo: Position %u is too low, not relocating TS2068 BASIC.", pos); ~^ %lu zx.c:731:5: warning: implicit declaration of function 'writestring_p'; did you mean 'writestring_pk'? [-Wimplicit-function-declaration] writestring_p(mybuf,fpout,&parity); ^~~~~~~~~~~~~ writestring_pk zx.c:879:5: warning: "/*" within comment [-Wcomment] /* Write out the BASIC header file */ zx.c:1449:16: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ((turbo && (blockcount == 4) || (blockcount == 6) ) || (turbo && dumb)) { ~~~~~~^~~~~~~~~~~~~~~~~~~~ zx.c:427:10: warning: unused variable 'period' [-Wunused-variable] int period; ^~~~~~ At top level: zx.c:135:26: warning: 'zx_bitpos' defined but not used [-Wunused-variable] static int zx_bitpos = TRUE; ^~~~~~~~~ zx.c: In function 'zx_exec': zx.c:1315:16: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized] if ((ts2068) && (pos >= 33000)) ~~~~~~~~~^~~~~~~~~~~~~~~~~ zx.c:493:6: warning: 'c' may be used uninitialized in this function [-Wmaybe-uninitialized] c+=hexdigit(patchdata[i]); ^~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c z88shell.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c abc80.c abc80.c: In function 'datablockout': abc80.c:124:3: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&buffer[3],253,1,fin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/include/string.h:494:0, from appmake.h:15, from abc80.c:10: In function 'strcpy', inlined from 'abc80_exec' at abc80.c:346:3: /usr/include/bits/string_fortified.h:90:10: warning: '__builtin___memcpy_chk' writing 9 bytes into a region of size 8 overflows the destination [-Wstringop-overflow=] return __builtin___strcpy_chk (__dest, __src, __bos (__dest)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c zx81.c zx81.c: In function 'zx81_exec': zx81.c:173:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( help || binname == NULL ) ^~ zx81.c:179:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' if (dumb) { ^~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c msx.c msx.c: In function 'msx_bit': msx.c:57:9: warning: unused variable 'j' [-Wunused-variable] int i, j, period0, period1; ^ msx.c: In function 'msx_exec': msx.c:130:36: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL ) ) { ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c mtx.c mtx.c: In function 'mtx_exec': mtx.c:123:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c mz.c mz.c: In function 'mz_patch': mz.c:515:6: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if (foopatch) ^~ mz.c:517:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' image[i+1]=dst_table[0]%256; ^~~~~ mz.c: In function 'mz_exec': mz.c:673:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ At top level: mz.c:50:14: warning: 'mzfout' defined but not used [-Wunused-variable] static FILE *mzfout; ^~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c nec.c nec.c: In function 'nec_exec': nec.c:449:13: warning: variable 'codeseg' set but not used [-Wunused-but-set-variable] int codeseg; ^~~~~~~ nec.c:433:16: warning: unused variable 'name' [-Wunused-variable] char name[12]; ^~~~ nec.c:915:14: warning: 'zerocount' may be used uninitialized in this function [-Wmaybe-uninitialized] zerocount++; ~~~~~~~~~^~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c p2000.c p2000.c: In function 'p2000_exec': p2000.c:39:7: warning: unused variable 'mybuf' [-Wunused-variable] char mybuf[20]; ^~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c aquarius.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c rom.c rom.c: In function 'rom_exec': rom.c:48:13: warning: 'len' may be used uninitialized in this function [-Wmaybe-uninitialized] int len; ^~~ rom.c:49:13: warning: 'fillsize' may be used uninitialized in this function [-Wmaybe-uninitialized] int fillsize; ^~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c sorcerer.c sorcerer.c: In function 'sorcerer_bit': sorcerer.c:97:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation] for (i=0; i < (period0); i++) ^~~ sorcerer.c:100:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for' bit_state = !bit_state; ^~~~~~~~~ sorcerer.c: In function 'sorcerer_exec': sorcerer.c:152:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c sos.c sos.c: In function 'sos_exec': sos.c:89:27: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=] fprintf(fpout,"_SOS 01 %4X %4X%c",pos,pos,10); ~~^ %4lX sos.c:89:31: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long int' [-Wformat=] fprintf(fpout,"_SOS 01 %4X %4X%c",pos,pos,10); ~~^ %4lX gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c svi.c svi.c: In function 'sv_bit': svi.c:93:9: warning: unused variable 'j' [-Wunused-variable] int i, j, period0, period1, period1lo; ^ svi.c: In function 'sv_tone': svi.c:207:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation] for (i=0; (i < 1600); i++) ^~~ svi.c:213:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for' sv_bit(fpout,1,1); ^~~~~~ svi.c: In function 'svi_exec': svi.c:275:36: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL ) ) { ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ svi.c:263:7: warning: variable 'gothdr' set but not used [-Wunused-but-set-variable] char gothdr; ^~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c sc3000.c sc3000.c: In function 'sc3000_exec': sc3000.c:237:13: warning: unused variable 'screen_size' [-Wunused-variable] int screen_size; ^~~~~~~~~~~ sc3000.c:233:21: warning: unused variable 'value' [-Wunused-variable] long pos, value; ^~~~~ sc3000.c:389:22: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized] writebyte_cksum(pos/256,fpout,&checksum); /* MSB */ ~~~^~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c ace-tap.c ace-tap.c: In function 'acetap_exec': ace-tap.c:125:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c hex.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c lynx.c lynx.c: In function 'lynx_exec': lynx.c:55:17: warning: unused variable 'j' [-Wunused-variable] int c,i,j; ^ lynx.c:49:13: warning: unused variable 'wavfile' [-Wunused-variable] char wavfile[FILENAME_MAX+1]; ^~~~~~~ At top level: lynx.c:25:26: warning: 'ly_l_lvl' defined but not used [-Wunused-variable] static char ly_l_lvl; ^~~~~~~~ lynx.c:24:26: warning: 'ly_h_lvl' defined but not used [-Wunused-variable] static char ly_h_lvl; ^~~~~~~~ lynx.c:23:26: warning: 'l_lvl' defined but not used [-Wunused-variable] static char l_lvl; ^~~~~ lynx.c:22:26: warning: 'h_lvl' defined but not used [-Wunused-variable] static char h_lvl; ^~~~~ lynx.c:21:26: warning: 'bit_state' defined but not used [-Wunused-variable] static char bit_state = 0; ^~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c rex6000.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c tixx.c tixx.c: In function 'tixx_exec': tixx.c:403:5: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(buf, n, 1, fp); ^~~~~~~~~~~~~~~~~~~~ tixx.c:517:13: warning: 'ext' may be used uninitialized in this function [-Wmaybe-uninitialized] else if (ext == E_86P) ^ tixx.c:357:9: warning: 'suffix' may be used uninitialized in this function [-Wmaybe-uninitialized] suffix_change(filename,suffix); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c nascom.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c cpc.c cpc.c: In function 'CRCupdate': cpc.c:188:12: warning: operation on 'aux' may be undefined [-Wsequence-point] aux = (aux <<= 1) ^ kCRCpoly; ^ cpc.c: In function 'cpc_exec': cpc.c:258:21: warning: unused variable 'data' [-Wunused-variable] unsigned char data[256]; ^~~~ cpc.c:409:3: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(srchead,128,1,source); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ cpc.c:464:3: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(srcdata,header[19]+header[20]*256,1,source); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c m5.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c mc.c mc.c: In function 'mc_exec': mc.c:171:13: warning: unused variable 'pos' [-Wunused-variable] long pos; ^~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c newbrain.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c newext.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c sms.c sms.c: In function 'sms_exec': sms.c:93:5: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&memory[0], sizeof(memory[0]), len, fpin); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c trs80.c trs80.c: In function 'trs80_exec': trs80.c:138:44: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( help || binname == NULL || !dumb && ( crtfile == NULL ) ) { ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ trs80.c:273:7: warning: 'ckflag' may be used uninitialized in this function [-Wmaybe-uninitialized] if ( ckflag ) ^ trs80.c:274:5: warning: 'cksum' may be used uninitialized in this function [-Wmaybe-uninitialized] writebyte (cksum,fpout); /* Checksum */ ^~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c c128.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c galaksija.c galaksija.c: In function 'gal_bit': galaksija.c:51:9: warning: unused variable 'j' [-Wunused-variable] int i, j, period0, period1, pulse_width; ^ galaksija.c: In function 'gal_exec': galaksija.c:150:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ galaksija.c:136:17: warning: unused variable 'j' [-Wunused-variable] int c,i,j; ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c vz.c vz.c: In function 'vz_exec': vz.c:307:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation] for (i=0;i<=(strlen(name));i++) ^~~ vz.c:313:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for' startaddr = fgetc(fpin)+256*fgetc(fpin); ^~~~~~~~~ vz.c:171:13: warning: unused variable 'pos' [-Wunused-variable] long pos; ^~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c enterprise.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c x07.c x07.c: In function 'x07_exec': x07.c:229:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ x07.c:451:23: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=] sprintf(addr,"&H%04x",pos-1); ~~~^ ~~~~~ %04lx x07.c:503:23: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=] sprintf(addr,"&H%04x",pos); ~~~^ %04lx x07.c:509:23: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=] sprintf(addr,"&H%04x",pos+len); ~~~^ ~~~~~~~ %04lx x07.c:559:23: warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=] sprintf(addr,"&H%04x",pos); ~~~^ %04lx x07.c:219:13: warning: unused variable 'screen_size' [-Wunused-variable] int screen_size; ^~~~~~~~~~~ x07.c:217:27: warning: unused variable 'blocklen' [-Wunused-variable] int c, i, len, blocklen; ^~~~~~~~ x07.c:215:21: warning: unused variable 'value' [-Wunused-variable] long pos, value; ^~~~~ x07.c:757:6: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized] if (pos!=1380) { ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c residos.c residos.c: In function 'residos_exec': residos.c:114:12: warning: pointer targets in passing argument 1 of 'strcpy' differ in signedness [-Wpointer-sign] strcpy(memory,"ZXPKG"); ^~~~~~ In file included from /usr/include/features.h:428:0, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdio.h:27, from appmake.h:11, from residos.c:11: /usr/include/bits/string_fortified.h:88:1: note: expected 'char * restrict' but argument is of type 'unsigned char *' __NTH (strcpy (char *__restrict __dest, const char *__restrict __src)) ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c inject.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c vg5k.c vg5k.c: In function 'vg_bit': vg5k.c:53:9: warning: unused variable 'j' [-Wunused-variable] int i, j, period0, period1; ^ vg5k.c: In function 'vg5k_exec': vg5k.c:140:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] if ( binname == NULL || !dumb && ( crtfile == NULL && origin == -1 ) ) { ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vg5k.c:289:23: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] if (dumb && i==28) printf("\nInfo: Start location $%x",c*256+j); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c extract.c extract.c: In function 'extract_exec': extract.c:34:13: warning: unused variable 'filename' [-Wunused-variable] char filename[FILENAME_MAX+1]; ^~~~~~~~ gcc -o appmake -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld appmake.o z88.o zxvgs.o zx.o z88shell.o abc80.o zx81.o msx.o mtx.o mz.o nec.o p2000.o aquarius.o rom.o sorcerer.o sos.o svi.o sc3000.o ace-tap.o hex.o lynx.o rex6000.o tixx.o nascom.o cpc.o m5.o mc.o newbrain.o newext.o sms.o trs80.o c128.o galaksija.o vz.o enterprise.o x07.o residos.o inject.o vg5k.o extract.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/appmake' make -C src/appmake PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/appmake' install appmake /builddir/build/BUILD/z88dk/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/appmake' make -C src/copt make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/copt' gcc -c -o copt.o -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -DLOCAL_REGEXP -I. copt.c copt.c: In function 'match': copt.c:266:6: warning: too many arguments for format [-Wformat-extra-args] "please use REGEXP only on the last occurance of a variable\ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ in the input pattern\n", ~~~~~~~~~~~~~~~~~~~~~~~ copt.c: In function 'opt': copt.c:517:49: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:519:5: vars[0], vars[1], vars[2], vars[3], vars[4], ~~~~~~~ copt.c:517:55: warning: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:519:14: vars[0], vars[1], vars[2], vars[3], vars[4], ~~~~~~~ copt.c:517:61: warning: format '%lx' expects argument of type 'long unsigned int', but argument 6 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:519:23: vars[0], vars[1], vars[2], vars[3], vars[4], ~~~~~~~ copt.c:517:67: warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:519:32: vars[0], vars[1], vars[2], vars[3], vars[4], ~~~~~~~ copt.c:517:73: warning: format '%lx' expects argument of type 'long unsigned int', but argument 8 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:519:41: vars[0], vars[1], vars[2], vars[3], vars[4], ~~~~~~~ copt.c:517:79: warning: format '%lx' expects argument of type 'long unsigned int', but argument 9 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:520:5: vars[5], vars[6], vars[7], vars[8], vars[9]); ~~~~~~~ copt.c:517:85: warning: format '%lx' expects argument of type 'long unsigned int', but argument 10 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:520:14: vars[5], vars[6], vars[7], vars[8], vars[9]); ~~~~~~~ copt.c:517:91: warning: format '%lx' expects argument of type 'long unsigned int', but argument 11 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:520:23: vars[5], vars[6], vars[7], vars[8], vars[9]); ~~~~~~~ copt.c:517:97: warning: format '%lx' expects argument of type 'long unsigned int', but argument 12 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:520:32: vars[5], vars[6], vars[7], vars[8], vars[9]); ~~~~~~~ copt.c:517:103: warning: format '%lx' expects argument of type 'long unsigned int', but argument 13 has type 'char *' [-Wformat=] sprintf(signature, (sizeof(char*)>4)?"%s%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx%016lx\n":"%s%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx%08lx\n", ~~~~~^ %016s copt.c:520:41: vars[5], vars[6], vars[7], vars[8], vars[9]); ~~~~~~~ copt.c: At top level: copt.c:582:1: warning: return type defaults to 'int' [-Wimplicit-int] main(int argc, char **argv) ^~~~ gcc -c -o regex/regcomp.o -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -DLOCAL_REGEXP -I. regex/regcomp.c In file included from regex/regcomp.c:17:0: regex/cclass.h:6:16: warning: missing braces around initializer [-Wmissing-braces] } cclasses[] = { ^ In file included from regex/regcomp.c:18:0: regex/cname.h:5:14: warning: missing braces around initializer [-Wmissing-braces] } cnames[] = { ^ regex/regcomp.c: In function 'p_ere': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:210:3: note: in expansion of macro 'REQUIRE' REQUIRE(HERE() != conc, REG_EMPTY); /* require nonempty */ ^~~~~~~ regex/regcomp.c: In function 'p_ere_exp': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:257:3: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EPAREN); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:61:24: note: in expansion of macro 'REQUIRE' #define MUSTEAT(c, e) (REQUIRE(MORE() && GETNEXT() == (c), e)) ^~~~~~~ regex/regcomp.c:270:3: note: in expansion of macro 'MUSTEAT' MUSTEAT(')', REG_EPAREN); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:313:3: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EESCAPE); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:318:3: note: in expansion of macro 'REQUIRE' REQUIRE(!MORE() || !isdigit(PEEK()), REG_BADRPT); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:334:2: note: in expansion of macro 'REQUIRE' REQUIRE(!wascaret, REG_BADRPT); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:361:5: note: in expansion of macro 'REQUIRE' REQUIRE(count <= count2, REG_BADBR); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:370:4: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EBRACE); ^~~~~~~ regex/regcomp.c: In function 'p_str': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:393:2: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EMPTY); ^~~~~~~ regex/regcomp.c: In function 'p_bre': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:436:2: note: in expansion of macro 'REQUIRE' REQUIRE(HERE() != start, REG_EMPTY); /* require nonempty */ ^~~~~~~ regex/regcomp.c: In function 'p_simp_re': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:461:3: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EESCAPE); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:491:3: note: in expansion of macro 'REQUIRE' REQUIRE(EATTWO('\\', ')'), REG_EPAREN); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:521:3: note: in expansion of macro 'REQUIRE' REQUIRE(starordinary, REG_BADRPT); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:539:5: note: in expansion of macro 'REQUIRE' REQUIRE(count <= count2, REG_BADBR); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:548:4: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EBRACE); ^~~~~~~ regex/regcomp.c: In function 'p_count': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:573:2: note: in expansion of macro 'REQUIRE' REQUIRE(ndigits > 0 && count <= DUPMAX, REG_BADBR); ^~~~~~~ regex/regcomp.c: In function 'p_bracket': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:61:24: note: in expansion of macro 'REQUIRE' #define MUSTEAT(c, e) (REQUIRE(MORE() && GETNEXT() == (c), e)) ^~~~~~~ regex/regcomp.c:613:2: note: in expansion of macro 'MUSTEAT' MUSTEAT(']', REG_EBRACK); ^~~~~~~ regex/regcomp.c: In function 'p_b_term': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:684:3: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EBRACK); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:686:3: note: in expansion of macro 'REQUIRE' REQUIRE(c != '-' && c != ']', REG_ECTYPE); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:688:3: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EBRACK); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:689:3: note: in expansion of macro 'REQUIRE' REQUIRE(EATTWO(':', ']'), REG_ECTYPE); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:693:3: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EBRACK); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:695:3: note: in expansion of macro 'REQUIRE' REQUIRE(c != '-' && c != ']', REG_ECOLLATE); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:697:3: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EBRACK); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:698:3: note: in expansion of macro 'REQUIRE' REQUIRE(EATTWO('=', ']'), REG_ECOLLATE); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:713:3: note: in expansion of macro 'REQUIRE' REQUIRE(start <= finish, REG_ERANGE); ^~~~~~~ regex/regcomp.c: In function 'p_b_symbol': regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:781:2: note: in expansion of macro 'REQUIRE' REQUIRE(MORE(), REG_EBRACK); ^~~~~~~ regex/regcomp.c:59:30: warning: value computed is not used [-Wunused-value] #define REQUIRE(co, e) ((co) || SETERROR(e)) ^ regex/regcomp.c:787:2: note: in expansion of macro 'REQUIRE' REQUIRE(EATTWO('.', ']'), REG_ECOLLATE); ^~~~~~~ At top level: regex/regcomp.c:1209:1: warning: 'mcin' defined but not used [-Wunused-function] mcin(cs, cp) ^~~~ regex/regcomp.c:1182:1: warning: 'mcsub' defined but not used [-Wunused-function] mcsub(cs, cp) ^~~~~ regex/regcomp.c: In function 'regcomp': regex/regcomp.c:1565:22: warning: 'scan' may be used uninitialized in this function [-Wmaybe-uninitialized] while (OP(s = *scan++) != OCHAR) ^~ regex/regcomp.c:1502:16: note: 'scan' was declared here register sop *scan; ^~~~ gcc -c -o regex/regerror.o -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -DLOCAL_REGEXP -I. regex/regerror.c regex/regerror.c:48:13: warning: missing braces around initializer [-Wmissing-braces] } rerrs[] = { ^ gcc -c -o regex/regexec.o -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -DLOCAL_REGEXP -I. regex/regexec.c In file included from regex/regexec.c:51:0: regex/engine.c: In function 'sdissect': regex/engine.c:251:17: warning: variable 'dp' set but not used [-Wunused-but-set-variable] register char *dp; ^~ In file included from regex/regexec.c:100:0: regex/engine.c: In function 'ldissect': regex/engine.c:251:17: warning: variable 'dp' set but not used [-Wunused-but-set-variable] register char *dp; ^~ At top level: regex/regexec.c:24:12: warning: 'nope' defined but not used [-Wunused-variable] static int nope = 0; /* for use in asserts; shuts lint up */ ^~~~ gcc -c -o regex/regfree.o -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -DLOCAL_REGEXP -I. regex/regfree.c gcc -o copt -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld copt.o regex/regcomp.o regex/regerror.o regex/regexec.o regex/regfree.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/copt' make -C src/copt PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/copt' install copt /builddir/build/BUILD/z88dk/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/copt' make -C src/cpp make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/cpp' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c cpp1.c cpp1.c:243:1: warning: return type defaults to 'int' [-Wimplicit-int] main(argc, argv) ^~~~ cpp1.c: In function 'main': cpp1.c:252:2: warning: implicit declaration of function 'initdefines' [-Wimplicit-function-declaration] initdefines(); /* O.S. specific def's */ ^~~~~~~~~~~ cpp1.c:253:6: warning: implicit declaration of function 'dooptions' [-Wimplicit-function-declaration] i = dooptions(argc, argv); /* Command line -flags */ ^~~~~~~~~ cpp1.c:299:2: warning: implicit declaration of function 'setincdirs' [-Wimplicit-function-declaration] setincdirs(); /* Setup -I include directories */ ^~~~~~~~~~ cpp1.c: In function 'cppmain': cpp1.c:361:20: warning: implicit declaration of function 'get'; did you mean 'getw'? [-Wimplicit-function-declaration] while (type[(c = get())] == SPA)/* Skip leading blanks */ ^~~ getw cpp1.c:370:17: warning: implicit declaration of function 'control' [-Wimplicit-function-declaration] counter = control(counter); /* Yes, do a #command */ ^~~~~~~ cpp1.c:378:7: warning: implicit declaration of function 'skipnl' [-Wimplicit-function-declaration] skipnl(); /* Skip to newline */ ^~~~~~ cpp1.c:403:6: warning: implicit declaration of function 'unget'; did you mean 'ungetc'? [-Wimplicit-function-declaration] unget(); /* Reread the char. */ ^~~~~ ungetc cpp1.c:421:11: warning: implicit declaration of function 'macroid' [-Wimplicit-function-declaration] c = macroid(c); /* Grab the token */ ^~~~~~~ cpp1.c:422:30: warning: implicit declaration of function 'catenate'; did you mean 'atexit'? [-Wimplicit-function-declaration] } while (type[c] == LET && catenate()); ^~~~~~~~ atexit cpp1.c:433:7: warning: implicit declaration of function 'scannumber'; did you mean 'srandom_r'? [-Wimplicit-function-declaration] scannumber(c, output); ^~~~~~~~~~ srandom_r cpp1.c:437:7: warning: implicit declaration of function 'scanstring'; did you mean 'savestring'? [-Wimplicit-function-declaration] scanstring(c, output); /* Copy it to output */ ^~~~~~~~~~ savestring cpp1.c: In function 'output': cpp1.c:462:10: warning: type defaults to 'int' in declaration of 'quote_quote' [-Wimplicit-int] static quote_quote=0; ^~~~~~~~~~~ cpp1.c: In function 'sharp': cpp1.c:499:35: warning: suggest parentheses around '&&' within '||' [-Wparentheses] || sharpfilename != NULL && !streq(name, sharpfilename)) { gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c cpp2.c cpp2.c: In function 'control': cpp2.c:77:13: warning: implicit declaration of function 'skipws' [-Wimplicit-function-declaration] c = skipws(); ^~~~~~ cpp2.c:81:13: warning: implicit declaration of function 'scanid'; did you mean 'srand'? [-Wimplicit-function-declaration] scanid(c); /* Get #word to token[] */ ^~~~~~ srand cpp2.c:83:13: warning: implicit declaration of function 'unget'; did you mean 'ungetc'? [-Wimplicit-function-declaration] unget(); /* Hack -- allow #123 as a */ ^~~~~ ungetc cpp2.c:134:17: warning: implicit declaration of function 'skipnl' [-Wimplicit-function-declaration] dump_line: skipnl(); /* Ignore rest of line */ ^~~~~~ cpp2.c:155:17: warning: implicit declaration of function 'save' [-Wimplicit-function-declaration] save(c); ^~~~ cpp2.c:156:21: warning: implicit declaration of function 'get'; did you mean 'getw'? [-Wimplicit-function-declaration] c = get(); ^~~ getw cpp2.c:165:49: warning: array subscript has type 'char' [-Wchar-subscripts] for (tp = work; isdigit(*tp) || type[*tp] == SPA; tp++) ^ cpp2.c:184:13: warning: implicit declaration of function 'dodefine'; did you mean 'L_define'? [-Wimplicit-function-declaration] dodefine(); ^~~~~~~~ L_define cpp2.c:188:13: warning: implicit declaration of function 'doundef'; did you mean 'L_undef'? [-Wimplicit-function-declaration] doundef(); ^~~~~~~ L_undef cpp2.c:241:17: warning: implicit declaration of function 'eval' [-Wimplicit-function-declaration] if (eval() == 0) ^~~~ cpp2.c: In function 'doinclude': cpp2.c:381:17: warning: implicit declaration of function 'macroid' [-Wimplicit-function-declaration] delim = macroid(skipws()); ^~~~~~~ cpp2.c:416:13: warning: implicit declaration of function 'openinclude'; did you mean 'doinclude'? [-Wimplicit-function-declaration] if (openinclude(work, (delim == '"'))) ^~~~~~~~~~~ doinclude cpp2.c: In function 'openinclude': cpp2.c:459:17: warning: implicit declaration of function 'hasdirectory' [-Wimplicit-function-declaration] && hasdirectory(infile->filename, tmpname)) ^~~~~~~~~~~~ cpp2.c:472:17: warning: implicit declaration of function 'openfile'; did you mean 'addfile'? [-Wimplicit-function-declaration] if (openfile(tmpname)) ^~~~~~~~ addfile gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c cpp3.c cpp3.c:71:1: warning: return type defaults to 'int' [-Wimplicit-int] setincdirs() ^~~~~~~~~~ cpp3.c: In function 'dooptions': cpp3.c:217:11: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if (isdatum = (*ap != '*')) /* If it's just -S, */ ^~~~~~~ cpp3.c: At top level: cpp3.c:309:1: warning: return type defaults to 'int' [-Wimplicit-int] initdefines() ^~~~~~~~~~~ cpp3.c: In function 'setincdirs': cpp3.c:142:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cpp3.c: In function 'initdefines': cpp3.c:380:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c cpp4.c cpp4.c: In function 'dodefine': cpp4.c:84:16: warning: implicit declaration of function 'skipws' [-Wimplicit-function-declaration] if (type[(c = skipws())] != LET) ^~~~~~ cpp4.c:95:11: warning: implicit declaration of function 'get'; did you mean 'getw'? [-Wimplicit-function-declaration] if ((c = get()) == '(') { /* With arguments? */ ^~~ getw cpp4.c:104:3: warning: implicit declaration of function 'scanid'; did you mean 'srand'? [-Wimplicit-function-declaration] scanid(c); /* Get the formal param */ ^~~~~~ srand cpp4.c:133:43: warning: implicit declaration of function 'unget'; did you mean 'ungetc'? [-Wimplicit-function-declaration] if (get()=='#') q=0; else { q=1; unget(); } ^~~~~ ungetc cpp4.c:134:30: warning: array subscript has type 'char' [-Wchar-subscripts] while (workp > work && type[workp[-1]] == SPA) ^ cpp4.c:165:3: warning: implicit declaration of function 'scannumber'; did you mean 'srandom_r'? [-Wimplicit-function-declaration] scannumber(c, save); /* Scan it off */ ^~~~~~~~~~ srandom_r cpp4.c: In function 'checkparm': cpp4.c:247:3: warning: implicit declaration of function 'save' [-Wimplicit-function-declaration] save(i + MAC_PARM); /* Save a magic cookie */ ^~~~ cpp4.c:82:14: note: previous declaration of 'save' was here extern int save(); /* Save char in work[] */ ^~~~ cpp4.c: In function 'stparmscan': cpp4.c:306:7: warning: implicit declaration of function 'scanstring'; did you mean 'savestring'? [-Wimplicit-function-declaration] if (!scanstring(delim, save)) ^~~~~~~~~~ savestring cpp4.c: At top level: cpp4.c:323:1: warning: return type defaults to 'int' [-Wimplicit-int] doundef() ^~~~~~~ cpp4.c:360:1: warning: return type defaults to 'int' [-Wimplicit-int] charput(c) ^~~~~~~ cpp4.c: In function 'expand': cpp4.c:427:11: warning: implicit declaration of function 'ungetstring'; did you mean 'savestring'? [-Wimplicit-function-declaration] ungetstring(work); ^~~~~~~~~~~ savestring cpp4.c:467:15: warning: implicit declaration of function 'expcollect'; did you mean 'pselect'? [-Wimplicit-function-declaration] else if (expcollect()) { /* Collect arguments */ ^~~~~~~~~~ pselect cpp4.c: In function 'expcollect': cpp4.c:507:18: warning: implicit declaration of function 'cget'; did you mean 'fgets'? [-Wimplicit-function-declaration] for (;; c = cget()) { /* Collect arg's bytes */ ^~~~ fgets cpp4.c: In function 'doundef': cpp4.c:341:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cpp4.c: In function 'charput': cpp4.c:371:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c cpp5.c cpp5.c:162:30: warning: missing braces around initializer [-Wmissing-braces] static TYPES basic_types[] = { ^ cpp5.c: In function 'eval': cpp5.c:239:12: warning: implicit declaration of function 'evallex'; did you mean 'eval'? [-Wimplicit-function-declaration] if ((op = evallex(opp->skip)) == OP_SUB && binop == 0) ^~~~~~~ eval cpp5.c:350:10: warning: array subscript has type 'char' [-Wchar-subscripts] opname[opp->op]); ^ cpp5.c: In function 'evallex': cpp5.c:385:10: warning: implicit declaration of function 'skipws' [-Wimplicit-function-declaration] c = skipws(); ^~~~~~ cpp5.c:386:15: warning: implicit declaration of function 'macroid' [-Wimplicit-function-declaration] if ((c = macroid(c)) == EOF_CHAR || c == '\n') { ^~~~~~~ cpp5.c:387:3: warning: implicit declaration of function 'unget'; did you mean 'ungetc'? [-Wimplicit-function-declaration] unget(); ^~~~~ ungetc cpp5.c:390:35: warning: implicit declaration of function 'catenate'; did you mean 'atexit'? [-Wimplicit-function-declaration] } while ((t = type[c]) == LET && catenate()); ^~~~~~~~ atexit cpp5.c:403:12: warning: implicit declaration of function 'evalchar'; did you mean 'evallex'? [-Wimplicit-function-declaration] evalue = evalchar(skip); /* Somewhat messy */ ^~~~~~~~ evallex cpp5.c:427:11: warning: implicit declaration of function 'dosizeof'; did you mean '__size_t'? [-Wimplicit-function-declaration] return (dosizeof()); /* Gets own routine */ ^~~~~~~~ __size_t cpp5.c:442:15: warning: implicit declaration of function 'evalnum'; did you mean 'isalnum'? [-Wimplicit-function-declaration] evalue = evalnum(c); ^~~~~~~ isalnum cpp5.c:451:11: warning: implicit declaration of function 'cget'; did you mean 'fgets'? [-Wimplicit-function-declaration] c1 = cget(); /* Peek at next char */ ^~~~ fgets cpp5.c: In function 'dosizeof': cpp5.c:557:8: warning: implicit declaration of function 'bittest' [-Wimplicit-function-declaration] if (!bittest(typecode & *testp)) { ^~~~~~~ cpp5.c: In function 'bittest': cpp5.c:599:1: warning: type of 'value' defaults to 'int' [-Wimplicit-int] bittest(value) ^~~~~~~ cpp5.c: In function 'evalchar': cpp5.c:708:17: warning: implicit declaration of function 'get'; did you mean 'getw'? [-Wimplicit-function-declaration] while ((((c = get()) >= '0' && c <= '9') ^~~ getw cpp5.c: In function 'evaleval': cpp5.c:825:9: warning: 'v2' may be used uninitialized in this function [-Wmaybe-uninitialized] v1 &= v2; ~~~^~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c cpp6.c cpp6.c: In function 'skipnl': cpp6.c:139:10: warning: implicit declaration of function 'get'; did you mean 'getw'? [-Wimplicit-function-declaration] c = get(); ^~~ getw cpp6.c: In function 'macroid': cpp6.c:198:6: warning: implicit declaration of function 'expand'; did you mean 'srand'? [-Wimplicit-function-declaration] expand(dp); ^~~~~~ srand gcc -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o zcpp cpp1.o cpp2.o cpp3.o cpp4.o cpp5.o cpp6.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/cpp' make -C src/cpp PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/cpp' install zcpp /builddir/build/BUILD/z88dk/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/cpp' make -C src/sccz80 make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/sccz80' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o callfunc.o callfunc.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o codegen.o codegen.c codegen.c: In function 'putstk': codegen.c:396:13: warning: variable 'ptr' set but not used [-Wunused-but-set-variable] SYMBOL *ptr; ^~~ codegen.c: In function 'modstk': codegen.c:1039:1: warning: label 'modstkcht' defined but not used [-Wunused-label] modstkcht: ^~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o const.o const.c const.c: In function 'stash_double_str': const.c:249:13: warning: pointer targets in passing argument 1 of 'strncpy' differ in signedness [-Wpointer-sign] strncpy(buf,start,len); ^~~ In file included from /usr/include/features.h:428:0, from /usr/include/sys/types.h:25, from ccdefs.h:15, from const.c:21: /usr/include/bits/string_fortified.h:103:1: note: expected 'char * restrict' but argument is of type 'unsigned char *' __NTH (strncpy (char *__restrict __dest, const char *__restrict __src, ^ const.c: In function 'tstr': const.c:395:15: warning: variable 'j' set but not used [-Wunused-but-set-variable] int k,j; ^ const.c: In function 'storeq': const.c:431:29: warning: pointer targets in passing argument 1 of 'strncmp' differ in signedness [-Wpointer-sign] if (strncmp(queue,litq+j,k) == 0) {*val=j-1; return(1);} /*success!*/ ^~~~~ In file included from ccdefs.h:39:0, from const.c:21: /usr/include/string.h:139:12: note: expected 'const char *' but argument is of type 'unsigned char *' extern int strncmp (const char *__s1, const char *__s2, size_t __n) ^~~~~~~ const.c:431:35: warning: pointer targets in passing argument 2 of 'strncmp' differ in signedness [-Wpointer-sign] if (strncmp(queue,litq+j,k) == 0) {*val=j-1; return(1);} /*success!*/ ^~~~ In file included from ccdefs.h:39:0, from const.c:21: /usr/include/string.h:139:12: note: expected 'const char *' but argument is of type 'unsigned char *' extern int strncmp (const char *__s1, const char *__s2, size_t __n) ^~~~~~~ const.c: In function 'qstr': const.c:450:9: warning: unused variable 'c' [-Wunused-variable] int c; ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o data.o data.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o declfunc.o declfunc.c declfunc.c: In function 'setlocvar': declfunc.c:458:5: warning: implicit declaration of function 'function_appendix' [-Wimplicit-function-declaration] function_appendix(currfn); ^~~~~~~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o declinit.o declinit.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o declvar.o declvar.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o error.o error.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o expr.o expr.c expr.c: In function 'heir1': expr.c:65:35: warning: unused variable 'uoper' [-Wunused-variable] void (*oper)(), (*doper)(), (*uoper)() ; ^~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o float.o float.c float.c: In function 'fltadd': float.c:259:14: warning: variable 'temp' set but not used [-Wunused-but-set-variable] uint32_t temp, carry; ^~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o goto.o goto.c goto.c: In function 'dogoto': goto.c:116:9: warning: 'label' may be used uninitialized in this function [-Wmaybe-uninitialized] jump(label); ^~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o io.o io.c io.c: In function 'startbuffer': io.c:144:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types] buf->before = currentbuffer; /* <-- DON'T USE NULL HERE TO SUPPRESS WARNING !! */ ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o lex.o lex.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o main.o main.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o misc.o misc.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o plunge.o plunge.c plunge.c: In function 'dropout': plunge.c:60:9: warning: unused variable 'temp' [-Wunused-variable] int temp; ^~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o preproc.o preproc.c preproc.c: In function 'preprocess': preproc.c:201:13: warning: unused variable 'k' [-Wunused-variable] int k; ^ preproc.c:200:16: warning: unused variable 'sname' [-Wunused-variable] char c,sname[NAMESIZE]; ^~~~~ preproc.c:200:14: warning: unused variable 'c' [-Wunused-variable] char c,sname[NAMESIZE]; ^ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o primary.o primary.c primary.c: In function 'calc': primary.c:186:18: warning: comparison of distinct pointer types lacks a cast if (oper == zdiv) return (left / right ); ^~ primary.c:187:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zmod) return (left % right ); ^~ primary.c:188:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zle) return (left <= right) ; ^~ primary.c:189:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zge) return (left >= right) ; ^~ primary.c:190:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zlt) return (left < right) ; ^~ primary.c:191:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zgt) return (left > right) ; ^~ primary.c:192:23: warning: comparison of distinct pointer types lacks a cast else if (oper == asr) return (left >> right) ; ^~ primary.c: In function 'calcun': primary.c:201:18: warning: comparison of distinct pointer types lacks a cast if (oper == zdiv) return (left / right ); ^~ primary.c:202:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zmod) return (left % right ); ^~ primary.c:203:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zle) return (left <= right) ; ^~ primary.c:204:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zge) return (left >= right) ; ^~ primary.c:205:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zlt) return (left < right) ; ^~ primary.c:206:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zgt) return (left > right) ; ^~ primary.c:207:23: warning: comparison of distinct pointer types lacks a cast else if (oper == asr) return (left >> right) ; ^~ primary.c: In function 'CalcStand': primary.c:220:18: warning: comparison of distinct pointer types lacks a cast if (oper == zor) return (left | right) ; ^~ primary.c:221:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zxor) return (left ^ right) ; ^~ primary.c:222:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zand) return (left & right) ; ^~ primary.c:223:23: warning: comparison of distinct pointer types lacks a cast else if (oper == mult) return (left * right) ; ^~ primary.c:224:23: warning: comparison of distinct pointer types lacks a cast else if (oper == asl) return (left << right) ; ^~ primary.c:225:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zeq) return (left == right) ; ^~ primary.c:226:23: warning: comparison of distinct pointer types lacks a cast else if (oper == zne) return (left != right) ; ^~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o stmt.o stmt.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o sym.o sym.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o while.o while.c gcc -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o sccz80 callfunc.o codegen.o const.o data.o declfunc.o declinit.o declvar.o error.o expr.o float.o goto.o io.o lex.o main.o misc.o plunge.o preproc.o primary.o stmt.o sym.o while.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/sccz80' make -C src/sccz80 PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/sccz80' install -m 755 sccz80 /builddir/build/BUILD/z88dk/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/sccz80' make -C src/z80asm make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/z80asm' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o errors.o errors.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o libfile.o libfile.c libfile.c: In function 'make_library': libfile.c:61:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( opts.verbose ) ^~ libfile.c:65:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' lib_file = myfopen_atomic( lib_filename, "w+b" ); ^~~~~~~~ libfile.c:83:40: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'size_t {aka long unsigned int}' [-Wformat=] printf( "'%s' module at %08X.\n", obj_filename, fptr ); ~~~^ %08lX gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o z80asm.o z80asm.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o sym.o sym.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o opcodes.o opcodes.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o modlink.o modlink.c modlink.c: In function 'define_location_symbols': modlink.c:514:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( opts.verbose ) ^~ modlink.c:518:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' str_sprintf( name, ASMHEAD_KW, "", "" ); ^~~~~~~~~~~ modlink.c: In function 'LinkModule': modlink.c:741:18: warning: 'fptr_libnmdecl' may be used uninitialized in this function [-Wmaybe-uninitialized] flag = LinkLibModules( filename, fptr_base, fptr_libnmdecl, fptr_modname ); /* link library modules */ ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ modlink.c:684:53: note: 'fptr_libnmdecl' was declared here long fptr_namedecl, fptr_modname, fptr_modcode, fptr_libnmdecl; ^~~~~~~~~~~~~~ modlink.c:741:18: warning: 'fptr_modname' may be used uninitialized in this function [-Wmaybe-uninitialized] flag = LinkLibModules( filename, fptr_base, fptr_libnmdecl, fptr_modname ); /* link library modules */ ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ modlink.c:684:25: note: 'fptr_modname' was declared here long fptr_namedecl, fptr_modname, fptr_modcode, fptr_libnmdecl; ^~~~~~~~~~~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o model.o model.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o listfile.o listfile.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o module.o module.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o z80pass.o z80pass.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o symtab.o symtab.c symtab.c: In function 'find_symbol': symtab.c:73:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( sym == NULL && opts.sdcc && name[0] == '_' ) ^~ symtab.c:76:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' if ( sym != NULL ) ^~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o directives.o directives.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o options.o options.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o scan.o scan.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o parse.o parse.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o codearea.o codearea.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o deffile.o deffile.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o objfile.o objfile.c objfile.c: In function 'write_code': objfile.c:207:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( opts.verbose ) ^~ objfile.c:210:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' if ( code_size > 0 ) ^~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o mapfile.o mapfile.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o expr.o expr.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o symref.o symref.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o hist.o hist.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/srcfile.o lib/srcfile.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/list.o lib/list.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/dbg.o lib/dbg.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/str.o lib/str.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/class.o lib/class.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/strpool.o lib/strpool.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/fileutil.o lib/fileutil.c lib/fileutil.c: In function 'xfget_int8': lib/fileutil.c:474:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( value & 0x80 ) ^~ lib/fileutil.c:476:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' return value; ^~~~~~ lib/fileutil.c: In function 'xfget_int16': lib/fileutil.c:507:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( value & 0x8000 ) ^~ lib/fileutil.c:509:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' return value; ^~~~~~ lib/fileutil.c: In function 'xfget_int32': lib/fileutil.c:544:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( value & 0x80000000L ) ^~ lib/fileutil.c:546:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' return value; ^~~~~~ lib/fileutil.c: In function 'path_replace_ext': lib/fileutil.c:614:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( new_ext != NULL ) ^~ lib/fileutil.c:616:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' ret = strpool_add(str_data(dest)); ^~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/strhash.o lib/strhash.c lib/strhash.c: In function 'StrHash_find': lib/strhash.c:91:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] if ( self == NULL || key == NULL ) ^~ lib/strhash.c:94:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' key = StrHash_norm_key( self, key ); ^~~ gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/alloc.o lib/alloc.c In file included from lib/alloc.h:14:0, from lib/alloc.c:9: lib/alloc.c: In function '__fini': lib/dbg.h:36:9: warning: format '%u' expects argument of type 'unsigned int', but argument 7 has type 'size_t {aka long unsigned int}' [-Wformat=] warn("[" type "] (%s:%d" STRERROR_FORMAT_ ") " message "\n", \ ^ lib/dbg.h:16:43: note: in definition of macro 'warn' #define warn(message,...) fprintf(stderr, message, ##__VA_ARGS__) ^~~~~~~ lib/dbg.h:43:32: note: in expansion of macro 'log_' #define log_warn(message, ...) log_("WARN ", message, ##__VA_ARGS__) ^~~~ lib/alloc.c:118:4: note: in expansion of macro 'log_warn' log_warn("memory leak (%u bytes) allocated at %s:%d", ^~~~~~~~ lib/alloc.c:118:28: note: format string is defined here log_warn("memory leak (%u bytes) allocated at %s:%d", ~^ %lu In file included from lib/alloc.h:14:0, from lib/alloc.c:9: lib/alloc.c: In function 'new_block': lib/dbg.h:36:9: warning: format '%u' expects argument of type 'unsigned int', but argument 7 has type 'size_t {aka long unsigned int}' [-Wformat=] warn("[" type "] (%s:%d" STRERROR_FORMAT_ ") " message "\n", \ ^ lib/dbg.h:16:43: note: in definition of macro 'warn' #define warn(message,...) fprintf(stderr, message, ##__VA_ARGS__) ^~~~~~~ lib/dbg.h:42:31: note: in expansion of macro 'log_' #define log_err(message, ...) log_("ERROR", message, ##__VA_ARGS__) ^~~~ lib/dbg.h:50:6: note: in expansion of macro 'log_err' log_err(message, ##__VA_ARGS__); \ ^~~~~~~ lib/alloc.c:149:2: note: in expansion of macro 'check' check( block, ^~~~~ lib/alloc.c:150:22: note: format string is defined here "memory alloc (%u bytes) failed at %s:%d", client_size, file, lineno ); ~^ %lu In file included from lib/alloc.h:14:0, from lib/alloc.c:9: lib/alloc.c: In function 'm_realloc_': lib/dbg.h:36:9: warning: format '%u' expects argument of type 'unsigned int', but argument 7 has type 'size_t {aka long unsigned int}' [-Wformat=] warn("[" type "] (%s:%d" STRERROR_FORMAT_ ") " message "\n", \ ^ lib/dbg.h:16:43: note: in definition of macro 'warn' #define warn(message,...) fprintf(stderr, message, ##__VA_ARGS__) ^~~~~~~ lib/dbg.h:42:31: note: in expansion of macro 'log_' #define log_err(message, ...) log_("ERROR", message, ##__VA_ARGS__) ^~~~ lib/dbg.h:50:6: note: in expansion of macro 'log_err' log_err(message, ##__VA_ARGS__); \ ^~~~~~~ lib/alloc.c:294:2: note: in expansion of macro 'check' check( block, "memory realloc (%u bytes) failed at %s:%d", size, file, lineno ); ^~~~~ lib/alloc.c:294:34: note: format string is defined here check( block, "memory realloc (%u bytes) failed at %s:%d", size, file, lineno ); ~^ %lu In file included from lib/alloc.h:14:0, from lib/alloc.c:9: lib/dbg.h:36:9: warning: format '%u' expects argument of type 'unsigned int', but argument 7 has type 'size_t {aka long unsigned int}' [-Wformat=] warn("[" type "] (%s:%d" STRERROR_FORMAT_ ") " message "\n", \ ^ lib/dbg.h:16:43: note: in definition of macro 'warn' #define warn(message,...) fprintf(stderr, message, ##__VA_ARGS__) ^~~~~~~ lib/dbg.h:42:31: note: in expansion of macro 'log_' #define log_err(message, ...) log_("ERROR", message, ##__VA_ARGS__) ^~~~ lib/dbg.h:50:6: note: in expansion of macro 'log_err' log_err(message, ##__VA_ARGS__); \ ^~~~~~~ lib/alloc.c:302:2: note: in expansion of macro 'check' check( result, "memory realloc (%u bytes) failed at %s:%d", size, file, lineno ); ^~~~~ lib/alloc.c:302:35: note: format string is defined here check( result, "memory realloc (%u bytes) failed at %s:%d", size, file, lineno ); ~^ %lu In file included from lib/alloc.h:14:0, from lib/alloc.c:9: lib/dbg.h:36:9: warning: format '%u' expects argument of type 'unsigned int', but argument 7 has type 'size_t {aka long unsigned int}' [-Wformat=] warn("[" type "] (%s:%d" STRERROR_FORMAT_ ") " message "\n", \ ^ lib/dbg.h:16:43: note: in definition of macro 'warn' #define warn(message,...) fprintf(stderr, message, ##__VA_ARGS__) ^~~~~~~ lib/dbg.h:42:31: note: in expansion of macro 'log_' #define log_err(message, ...) log_("ERROR", message, ##__VA_ARGS__) ^~~~ lib/dbg.h:50:6: note: in expansion of macro 'log_err' log_err(message, ##__VA_ARGS__); \ ^~~~~~~ lib/alloc.c:306:2: note: in expansion of macro 'check' check( block, "memory realloc (%u bytes) failed at %s:%d", size, file, lineno ); ^~~~~ lib/alloc.c:306:34: note: format string is defined here check( block, "memory realloc (%u bytes) failed at %s:%d", size, file, lineno ); ~^ %lu gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/minunit.o lib/minunit.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o lib/array.o lib/array.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -o z80asm errors.o libfile.o z80asm.o sym.o opcodes.o modlink.o model.o listfile.o module.o z80pass.o symtab.o directives.o options.o scan.o parse.o codearea.o deffile.o objfile.o mapfile.o expr.o symref.o hist.o lib/srcfile.o lib/list.o lib/dbg.o lib/str.o lib/class.o lib/strpool.o lib/fileutil.o lib/strhash.o lib/alloc.o lib/minunit.o lib/array.o -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -I. -Ilib -It -Wall -c -o t/testlib.o t/testlib.c ar rcs t/libtestlib.a errors.o libfile.o sym.o opcodes.o modlink.o model.o listfile.o module.o z80pass.o symtab.o directives.o options.o scan.o parse.o codearea.o deffile.o objfile.o mapfile.o expr.o symref.o hist.o lib/srcfile.o lib/list.o lib/dbg.o lib/str.o lib/class.o lib/strpool.o lib/fileutil.o lib/strhash.o lib/alloc.o lib/minunit.o lib/array.o t/testlib.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/z80asm' make -C src/z80asm PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/z80asm' install z80asm /builddir/build/BUILD/z88dk/bin/ install asmpp.pl /builddir/build/BUILD/z88dk/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/z80asm' make -C src/zcc make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/zcc' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -g -c -o zcc.o zcc.c zcc.c: In function 'expand_macros': zcc.c:971:55: warning: field precision specifier '.*' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat=] snprintf(varname, sizeof(varname), "%.*s", ( end - ptr - 2 ), ptr + 2); ~~^~ ~~~~~~~~~~~~~~~~~ zcc.c:977:55: warning: field precision specifier '.*' expects argument of type 'int', but argument 4 has type 'long int' [-Wformat=] snprintf(varname, sizeof(varname), "%.*s", end - ptr + 1, ptr); ~~^~ ~~~~~~~~~~~~~ zcc.c: In function 'SetNumber': zcc.c:1002:11: warning: variable 'val' set but not used [-Wunused-but-set-variable] int val; ^~~ zcc.c: In function 'configure_assembler': zcc.c:1251:21: warning: unused variable 'ptr' [-Wunused-variable] char *ptr; ^~~ zcc.c: In function 'configure_compiler': zcc.c:1317:28: warning: too many arguments for format [-Wformat-extra-args] snprintf(buf,sizeof(buf),"-mz80 --no-optsdcc-in-asm --c1mode --emit-externs",sdcc_assemblernames[assembler_type]); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ zcc.c: In function 'ShowErrors': zcc.c:1546:49: warning: zero-length gnu_printf format string [-Wformat-zero-length] sprintf(strstr(filenamebuf,"'"),""); ^~ zcc.c:1524:37: warning: unused variable 'fnlen' [-Wunused-variable] int j,linepos,fnpos,fnlen; ^~~~~ zcc.c:1524:31: warning: unused variable 'fnpos' [-Wunused-variable] int j,linepos,fnpos,fnlen; ^~~~~ zcc.c:1549:25: warning: ignoring return value of 'fgets', declared with attribute warn_unused_result [-Wunused-result] fgets(buffer2, LINEMAX, fp2); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ zcc.c:1552:17: warning: 'fp2' may be used uninitialized in this function [-Wmaybe-uninitialized] fclose(fp2); ^~~~~~~~~~~ gcc -o zcc -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld zcc.o zcc.o: In function `tempname': /builddir/build/BUILD/z88dk/src/zcc/zcc.c:1605: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp' make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/zcc' make -C src/zcc PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/zcc' install zcc /builddir/build/BUILD/z88dk/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/zcc' make -C src/scanner make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/scanner' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o scanner.o scanner.c gcc -o zpragma -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld scanner.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/scanner' make -C src/scanner PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/scanner' install zpragma /builddir/build/BUILD/z88dk/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/scanner' make -C src/zx7 make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/zx7' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o compress.o compress.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o optimize.o optimize.c gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o zx7.o zx7.c gcc -o zx7 -Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld compress.o optimize.o zx7.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/zx7' make -C src/zx7 PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/zx7' install zx7 /builddir/build/BUILD/z88dk/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/zx7' make -C support/ar make[1]: Entering directory '/builddir/build/BUILD/z88dk/support/ar' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -c -o ar.o ar.c ar.c: In function 'read_signature': ar.c:181:27: warning: format '%X' expects argument of type 'unsigned int', but argument 3 has type 'long int' [-Wformat=] printf("\nFile %s at $%04X: %s\n", filename, ftell( fp ) - 8, file_signature ); ~~~^ ~~~~~~~~~~~~~~~ %04lX ar.c: In function 'dump_names': ar.c:222:26: warning: format '%X' expects argument of type 'unsigned int', but argument 4 has type 'long int' [-Wformat=] printf(" %c %c $%04X %s", scope, type, value, name ); ~~~^ %04lX ar.c: In function 'dump_library': ar.c:453:7: warning: variable 'obj_start' set but not used [-Wunused-but-set-variable] long obj_start, obj_len; ^~~~~~~~~ ar.c: In function 'main': ar.c:483:7: warning: unused variable 'flags' [-Wunused-variable] int flags = 0; ^~~~~ ar.c: In function 'dump_names': ar.c:191:23: warning: 'section_name' may be used uninitialized in this function [-Wmaybe-uninitialized] if ( section_name && *section_name ) /* not "" section */ ^~~~~~~~~~~~~ ar.c:199:8: note: 'section_name' was declared here char *section_name, *name; ^~~~~~~~~~~~ ar.c: In function 'dump_expr': ar.c:191:23: warning: 'section_name' may be used uninitialized in this function [-Wmaybe-uninitialized] if ( section_name && *section_name ) /* not "" section */ ^~~~~~~~~~~~~ ar.c:249:41: note: 'section_name' was declared here char *source_file, *last_source_file, *section_name, *target_name; ^~~~~~~~~~~~ gcc -o z80nm -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 ar.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/support/ar' make -C support/ar PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/support/ar' install z80nm /builddir/build/BUILD/z88dk/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/support/ar' make -C src/ticks make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/ticks' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -g -c -o ticks.o ticks.c ticks.c: In function 'tapcycles': ticks.c:449:19: warning: value computed is not used [-Wunused-value] wavpos!=0x20000 && (ear^= 64); ^~ ticks.c: In function 'f': ticks.c:472:14: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] return ff & 168 ~~~^~~~~ ticks.c:475:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | fb >> 8 & 2 ~~~~~~~~^~~ ticks.c:476:36: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | (fr ^ fa ^ fb ^ fb >> 8) & 16 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:479:45: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | (fa & -256 ~~~~~~~~~~ ? 154020 >> ((fr ^ fr >> 4) & 15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ((fr ^ fa) & (fr ^ fb)) >> 5) & 4; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ ticks.c: In function 'setf': ticks.c:485:20: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fa= 255 & (fb= a & -129 | (a&4)<<5); ~~^~~~~~ ticks.c: In function 'main': ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:746:9: note: in expansion of macro 'LDPR' LDPR(b, c, a); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:746:9: note: in expansion of macro 'LDPR' LDPR(b, c, a); ^~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:749:9: note: in expansion of macro 'LDPR' LDPR(d, e, a); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:749:9: note: in expansion of macro 'LDPR' LDPR(d, e, a); ^~~~ ticks.c:769:14: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= t+1 & 255 ~^~ ticks.c:769:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= t+1 & 255 ~~~~^~~~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:824:9: note: in expansion of macro 'INC' INC(b); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:828:9: note: in expansion of macro 'INC' INC(c); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:831:9: note: in expansion of macro 'INC' INC(d); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:834:9: note: in expansion of macro 'INC' INC(e); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:838:11: note: in expansion of macro 'INC' INC(h); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:840:11: note: in expansion of macro 'INC' INC(yh); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:842:11: note: in expansion of macro 'INC' INC(xh); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:846:11: note: in expansion of macro 'INC' INC(l); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:848:11: note: in expansion of macro 'INC' INC(yl); ^~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:850:11: note: in expansion of macro 'INC' INC(xl); ^~~ ticks.c:856:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 ~~^~~~ ticks.c:73:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:859:11: note: in expansion of macro 'INCPI' INCPI(yh, yl); ^~~~~ ticks.c:73:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:861:11: note: in expansion of macro 'INCPI' INCPI(xh, xl); ^~~~~ ticks.c:62:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:864:9: note: in expansion of macro 'INC' INC(a); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:867:9: note: in expansion of macro 'DEC' DEC(b); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:870:9: note: in expansion of macro 'DEC' DEC(c); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:873:9: note: in expansion of macro 'DEC' DEC(d); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:876:9: note: in expansion of macro 'DEC' DEC(e); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:880:11: note: in expansion of macro 'DEC' DEC(h); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:882:11: note: in expansion of macro 'DEC' DEC(yh); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:884:11: note: in expansion of macro 'DEC' DEC(xh); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:888:11: note: in expansion of macro 'DEC' DEC(l); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:890:11: note: in expansion of macro 'DEC' DEC(yl); ^~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:892:11: note: in expansion of macro 'DEC' DEC(xl); ^~~ ticks.c:898:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 ~~^~~~ ticks.c:79:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:901:11: note: in expansion of macro 'DECPI' DECPI(yh, yl); ^~~~~ ticks.c:79:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:903:11: note: in expansion of macro 'DECPI' DECPI(xh, xl); ^~~~~ ticks.c:67:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&256 \ ~~^~ ticks.c:906:9: note: in expansion of macro 'DEC' DEC(a); ^~~ ticks.c:951:15: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&215 ~~^~~~ ticks.c:953:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb &128 ~~~~~~~~^~~~ ticks.c:959:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((a&1)+1^1)<<7; ~~~~~^~ ticks.c:960:15: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&215 ~~^~~~ ticks.c:962:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb &128 ~~~~~~~~^~~~ ticks.c:968:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff>>8 & 1; ~~~~~~^~~ ticks.c:969:15: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&215 ~~^~~~ ticks.c:971:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb & 128 ~~~~~~~~^~~~~ ticks.c:976:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] a= t= (a*513 | ff&256)>>1; ~~^~~~ ticks.c:977:15: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&215 ~~^~~~ ticks.c:979:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb &128 ~~~~~~~~^~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:984:19: ADDRRRR(h, l, b, c); ~~~~~~~ ticks.c:984:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, b, c); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:984:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, b, c); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:984:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, b, c); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:986:19: ADDRRRR(yh, yl, b, c); ~~~~~~~~~ ticks.c:986:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, b, c); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:986:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, b, c); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:986:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, b, c); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:988:19: ADDRRRR(xh, xl, b, c); ~~~~~~~~~ ticks.c:988:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, b, c); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:988:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, b, c); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:988:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, b, c); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:992:19: ADDRRRR(h, l, d, e); ~~~~~~~ ticks.c:992:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, d, e); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:992:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, d, e); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:992:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, d, e); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:994:19: ADDRRRR(yh, yl, d, e); ~~~~~~~~~ ticks.c:994:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, d, e); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:994:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, d, e); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:994:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, d, e); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:996:19: ADDRRRR(xh, xl, d, e); ~~~~~~~~~ ticks.c:996:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, d, e); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:996:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, d, e); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:996:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, d, e); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:1000:19: ADDRRRR(h, l, h, l); ~~~~~~~ ticks.c:1000:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, h, l); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:1000:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, h, l); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:1000:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(h, l, h, l); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:1002:19: ADDRRRR(yh, yl, yh, yl); ~~~~~~~~~ ticks.c:1002:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, yh, yl); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:1002:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, yh, yl); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:1002:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(yh, yl, yh, yl); ^~~~~~~ ticks.c:85:15: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] ( a+c << 8 ), \ ticks.c:1004:19: ADDRRRR(xh, xl, xh, xl); ~~~~~~~~~ ticks.c:1004:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, xh, xl); ^~~~~~~ ticks.c:86:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & 128 \ ~~~~~~^~~ ticks.c:1004:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, xh, xl); ^~~~~~~ ticks.c:88:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:1004:11: note: in expansion of macro 'ADDRRRR' ADDRRRR(xh, xl, xh, xl); ^~~~~~~ ticks.c:119:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff &128 \ ~~~~^~ ticks.c:1008:11: note: in expansion of macro 'ADDISP' ADDISP(h, l); ^~~~~~ ticks.c:121:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:1008:11: note: in expansion of macro 'ADDISP' ADDISP(h, l); ^~~~~~ ticks.c:119:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff &128 \ ~~~~^~ ticks.c:1010:11: note: in expansion of macro 'ADDISP' ADDISP(yh, yl); ^~~~~~ ticks.c:121:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:1010:11: note: in expansion of macro 'ADDISP' ADDISP(yh, yl); ^~~~~~ ticks.c:119:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff &128 \ ~~~~^~ ticks.c:1012:11: note: in expansion of macro 'ADDISP' ADDISP(xh, xl); ^~~~~~ ticks.c:121:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb&128 \ ~~^~ ticks.c:1012:11: note: in expansion of macro 'ADDISP' ADDISP(xh, xl); ^~~~~~ ticks.c:1060:16: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] (a | ff&256)>153 && (u= 352); ~~^~~~ ticks.c:1061:11: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] (a&15 | t)>9 && (u+= 6); ~^~~ ticks.c:1061:22: warning: value computed is not used [-Wunused-value] (a&15 | t)>9 && (u+= 6); ^~ ticks.c:1069:14: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | u&256; ~^~~~ ticks.c:1073:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff &-41 ~~~~~~~~^~~~ ticks.c:1076:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fa= fa & -17 ~~~^~~~~ ticks.c:1081:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb &128 ~~~~~~~~^~~~ ticks.c:1084:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff &128 ~~~~^~~~ ticks.c:1085:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | a & 40; ~~~~^~~~ ticks.c:1089:27: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= fb &128 ~~~~~~~~~~~~~~^~~~ ticks.c:1091:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ~ff & 256 ~~~~^~~~~ ticks.c:1093:17: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | a & 40; ~~~~^~~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1353:11: note: in expansion of macro 'LDPR' LDPR(h, l, b); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1353:11: note: in expansion of macro 'LDPR' LDPR(h, l, b); ^~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1361:11: note: in expansion of macro 'LDPR' LDPR(h, l, c); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1361:11: note: in expansion of macro 'LDPR' LDPR(h, l, c); ^~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1369:11: note: in expansion of macro 'LDPR' LDPR(h, l, d); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1369:11: note: in expansion of macro 'LDPR' LDPR(h, l, d); ^~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1377:11: note: in expansion of macro 'LDPR' LDPR(h, l, e); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1377:11: note: in expansion of macro 'LDPR' LDPR(h, l, e); ^~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1385:11: note: in expansion of macro 'LDPR' LDPR(h, l, h); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1385:11: note: in expansion of macro 'LDPR' LDPR(h, l, h); ^~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1393:11: note: in expansion of macro 'LDPR' LDPR(h, l, l); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1393:11: note: in expansion of macro 'LDPR' LDPR(h, l, l); ^~~~ ticks.c:31:16: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1401:11: note: in expansion of macro 'LDPR' LDPR(h, l, a); ^~~~ ticks.c:31:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= b+1&255 | a<<8 ^ ticks.c:1401:11: note: in expansion of macro 'LDPR' LDPR(h, l, a); ^~~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1565:9: note: in expansion of macro 'SBC' SBC(b, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1568:9: note: in expansion of macro 'SBC' SBC(c, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1571:9: note: in expansion of macro 'SBC' SBC(d, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1574:9: note: in expansion of macro 'SBC' SBC(e, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1578:11: note: in expansion of macro 'SBC' SBC(h, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1580:11: note: in expansion of macro 'SBC' SBC(yh, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1582:11: note: in expansion of macro 'SBC' SBC(xh, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1586:11: note: in expansion of macro 'SBC' SBC(l, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1588:11: note: in expansion of macro 'SBC' SBC(yl, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1590:11: note: in expansion of macro 'SBC' SBC(xl, 4); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1594:11: note: in expansion of macro 'SBC' SBC(mem[l|h<<8], 7); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1596:11: note: in expansion of macro 'SBC' SBC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ^~~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1598:11: note: in expansion of macro 'SBC' SBC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ^~~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1730:9: note: in expansion of macro 'CP' CP(b, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1733:9: note: in expansion of macro 'CP' CP(c, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1736:9: note: in expansion of macro 'CP' CP(d, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1739:9: note: in expansion of macro 'CP' CP(e, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1743:11: note: in expansion of macro 'CP' CP(h, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1745:11: note: in expansion of macro 'CP' CP(yh, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1747:11: note: in expansion of macro 'CP' CP(xh, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1751:11: note: in expansion of macro 'CP' CP(l, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1753:11: note: in expansion of macro 'CP' CP(yl, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1755:11: note: in expansion of macro 'CP' CP(xl, 4); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1760:11: note: in expansion of macro 'CP' CP(w, 7); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1763:11: note: in expansion of macro 'CP' CP(w, 7); ^~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1766:11: note: in expansion of macro 'CP' CP(w, 7); ^~ ticks.c:141:46: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fr= a= (ff= (fa= a)+(fb= ~b)+(ff>>8&1^1)) ~~~~~^~ ticks.c:1906:9: note: in expansion of macro 'SBC' SBC(mem[pc++], 7); ^~~ ticks.c:164:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= fr & -41 \ ~~~~^~~~ ticks.c:1919:9: note: in expansion of macro 'CP' CP(w, 7); ^~ ticks.c:1948:15: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] mp= mp&65280 ~~^~~~~~ ticks.c:1948:11: warning: operation on 'mp' may be undefined [-Wsequence-point] mp= mp&65280 ~~^~~~~~~~~~ | ++mp; ~~~~~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2045:25: note: in expansion of macro 'RRC' case 0x08: RRC(b); break; // RRC B ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2046:25: note: in expansion of macro 'RRC' case 0x09: RRC(c); break; // RRC C ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2047:25: note: in expansion of macro 'RRC' case 0x0a: RRC(d); break; // RRC D ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2048:25: note: in expansion of macro 'RRC' case 0x0b: RRC(e); break; // RRC E ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2049:25: note: in expansion of macro 'RRC' case 0x0c: RRC(h); break; // RRC H ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2050:25: note: in expansion of macro 'RRC' case 0x0d: RRC(l); break; // RRC L ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2054:25: note: in expansion of macro 'RRC' RRC(u); ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2056:25: note: in expansion of macro 'RRC' case 0x0f: RRC(a); break; // RRC A ^~~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2057:25: note: in expansion of macro 'RL' case 0x10: RL(b); break; // RL B ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2058:25: note: in expansion of macro 'RL' case 0x11: RL(c); break; // RL C ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2059:25: note: in expansion of macro 'RL' case 0x12: RL(d); break; // RL D ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2060:25: note: in expansion of macro 'RL' case 0x13: RL(e); break; // RL E ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2061:25: note: in expansion of macro 'RL' case 0x14: RL(h); break; // RL H ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2062:25: note: in expansion of macro 'RL' case 0x15: RL(l); break; // RL L ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2066:25: note: in expansion of macro 'RL' RL(u); ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2068:25: note: in expansion of macro 'RL' case 0x17: RL(a); break; // RL A ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2069:25: note: in expansion of macro 'RR' case 0x18: RR(b); break; // RR B ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2070:25: note: in expansion of macro 'RR' case 0x19: RR(c); break; // RR C ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2071:25: note: in expansion of macro 'RR' case 0x1a: RR(d); break; // RR D ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2072:25: note: in expansion of macro 'RR' case 0x1b: RR(e); break; // RR E ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2073:25: note: in expansion of macro 'RR' case 0x1c: RR(h); break; // RR H ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2074:25: note: in expansion of macro 'RR' case 0x1d: RR(l); break; // RR L ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2078:25: note: in expansion of macro 'RR' RR(u); ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2080:25: note: in expansion of macro 'RR' case 0x1f: RR(a); break; // RR A ^~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2093:25: note: in expansion of macro 'SRA' case 0x28: SRA(b); break; // SRA B ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2094:25: note: in expansion of macro 'SRA' case 0x29: SRA(c); break; // SRA C ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2095:25: note: in expansion of macro 'SRA' case 0x2a: SRA(d); break; // SRA D ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2096:25: note: in expansion of macro 'SRA' case 0x2b: SRA(e); break; // SRA E ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2097:25: note: in expansion of macro 'SRA' case 0x2c: SRA(h); break; // SRA H ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2098:25: note: in expansion of macro 'SRA' case 0x2d: SRA(l); break; // SRA L ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2102:25: note: in expansion of macro 'SRA' SRA(u); ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2104:25: note: in expansion of macro 'SRA' case 0x2f: SRA(a); break; // SRA A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2129:25: note: in expansion of macro 'BIT' case 0x40: BIT(1, b); break; // BIT 0,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2130:25: note: in expansion of macro 'BIT' case 0x41: BIT(1, c); break; // BIT 0,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2131:25: note: in expansion of macro 'BIT' case 0x42: BIT(1, d); break; // BIT 0,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2132:25: note: in expansion of macro 'BIT' case 0x43: BIT(1, e); break; // BIT 0,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2133:25: note: in expansion of macro 'BIT' case 0x44: BIT(1, h); break; // BIT 0,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2134:25: note: in expansion of macro 'BIT' case 0x45: BIT(1, l); break; // BIT 0,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2135:25: note: in expansion of macro 'BITHL' case 0x46: BITHL(1); break; // BIT 0,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2135:25: note: in expansion of macro 'BITHL' case 0x46: BITHL(1); break; // BIT 0,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2136:25: note: in expansion of macro 'BIT' case 0x47: BIT(1, a); break; // BIT 0,A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2137:25: note: in expansion of macro 'BIT' case 0x48: BIT(2, b); break; // BIT 1,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2138:25: note: in expansion of macro 'BIT' case 0x49: BIT(2, c); break; // BIT 1,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2139:25: note: in expansion of macro 'BIT' case 0x4a: BIT(2, d); break; // BIT 1,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2140:25: note: in expansion of macro 'BIT' case 0x4b: BIT(2, e); break; // BIT 1,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2141:25: note: in expansion of macro 'BIT' case 0x4c: BIT(2, h); break; // BIT 1,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2142:25: note: in expansion of macro 'BIT' case 0x4d: BIT(2, l); break; // BIT 1,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2143:25: note: in expansion of macro 'BITHL' case 0x4e: BITHL(2); break; // BIT 1,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2143:25: note: in expansion of macro 'BITHL' case 0x4e: BITHL(2); break; // BIT 1,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2144:25: note: in expansion of macro 'BIT' case 0x4f: BIT(2, a); break; // BIT 1,A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2145:25: note: in expansion of macro 'BIT' case 0x50: BIT(4, b); break; // BIT 2,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2146:25: note: in expansion of macro 'BIT' case 0x51: BIT(4, c); break; // BIT 2,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2147:25: note: in expansion of macro 'BIT' case 0x52: BIT(4, d); break; // BIT 2,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2148:25: note: in expansion of macro 'BIT' case 0x53: BIT(4, e); break; // BIT 2,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2149:25: note: in expansion of macro 'BIT' case 0x54: BIT(4, h); break; // BIT 2,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2150:25: note: in expansion of macro 'BIT' case 0x55: BIT(4, l); break; // BIT 2,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2151:25: note: in expansion of macro 'BITHL' case 0x56: BITHL(4); break; // BIT 2,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2151:25: note: in expansion of macro 'BITHL' case 0x56: BITHL(4); break; // BIT 2,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2152:25: note: in expansion of macro 'BIT' case 0x57: BIT(4, a); break; // BIT 2,A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2153:25: note: in expansion of macro 'BIT' case 0x58: BIT(8, b); break; // BIT 3,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2154:25: note: in expansion of macro 'BIT' case 0x59: BIT(8, c); break; // BIT 3,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2155:25: note: in expansion of macro 'BIT' case 0x5a: BIT(8, d); break; // BIT 3,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2156:25: note: in expansion of macro 'BIT' case 0x5b: BIT(8, e); break; // BIT 3,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2157:25: note: in expansion of macro 'BIT' case 0x5c: BIT(8, h); break; // BIT 3,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2158:25: note: in expansion of macro 'BIT' case 0x5d: BIT(8, l); break; // BIT 3,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2159:25: note: in expansion of macro 'BITHL' case 0x5e: BITHL(8); break; // BIT 3,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2159:25: note: in expansion of macro 'BITHL' case 0x5e: BITHL(8); break; // BIT 3,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2160:25: note: in expansion of macro 'BIT' case 0x5f: BIT(8, a); break; // BIT 3,A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2161:25: note: in expansion of macro 'BIT' case 0x60: BIT(16, b); break; // BIT 4,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2162:25: note: in expansion of macro 'BIT' case 0x61: BIT(16, c); break; // BIT 4,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2163:25: note: in expansion of macro 'BIT' case 0x62: BIT(16, d); break; // BIT 4,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2164:25: note: in expansion of macro 'BIT' case 0x63: BIT(16, e); break; // BIT 4,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2165:25: note: in expansion of macro 'BIT' case 0x64: BIT(16, h); break; // BIT 4,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2166:25: note: in expansion of macro 'BIT' case 0x65: BIT(16, l); break; // BIT 4,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2167:25: note: in expansion of macro 'BITHL' case 0x66: BITHL(16); break; // BIT 4,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2167:25: note: in expansion of macro 'BITHL' case 0x66: BITHL(16); break; // BIT 4,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2168:25: note: in expansion of macro 'BIT' case 0x67: BIT(16, a); break; // BIT 4,A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2169:25: note: in expansion of macro 'BIT' case 0x68: BIT(32, b); break; // BIT 5,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2170:25: note: in expansion of macro 'BIT' case 0x69: BIT(32, c); break; // BIT 5,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2171:25: note: in expansion of macro 'BIT' case 0x6a: BIT(32, d); break; // BIT 5,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2172:25: note: in expansion of macro 'BIT' case 0x6b: BIT(32, e); break; // BIT 5,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2173:25: note: in expansion of macro 'BIT' case 0x6c: BIT(32, h); break; // BIT 5,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2174:25: note: in expansion of macro 'BIT' case 0x6d: BIT(32, l); break; // BIT 5,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2175:25: note: in expansion of macro 'BITHL' case 0x6e: BITHL(32); break; // BIT 5,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2175:25: note: in expansion of macro 'BITHL' case 0x6e: BITHL(32); break; // BIT 5,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2176:25: note: in expansion of macro 'BIT' case 0x6f: BIT(32, a); break; // BIT 5,A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2177:25: note: in expansion of macro 'BIT' case 0x70: BIT(64, b); break; // BIT 6,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2178:25: note: in expansion of macro 'BIT' case 0x71: BIT(64, c); break; // BIT 6,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2179:25: note: in expansion of macro 'BIT' case 0x72: BIT(64, d); break; // BIT 6,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2180:25: note: in expansion of macro 'BIT' case 0x73: BIT(64, e); break; // BIT 6,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2181:25: note: in expansion of macro 'BIT' case 0x74: BIT(64, h); break; // BIT 6,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2182:25: note: in expansion of macro 'BIT' case 0x75: BIT(64, l); break; // BIT 6,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2183:25: note: in expansion of macro 'BITHL' case 0x76: BITHL(64); break; // BIT 6,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2183:25: note: in expansion of macro 'BITHL' case 0x76: BITHL(64); break; // BIT 6,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2184:25: note: in expansion of macro 'BIT' case 0x77: BIT(64, a); break; // BIT 6,A ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2185:25: note: in expansion of macro 'BIT' case 0x78: BIT(128, b); break; // BIT 7,B ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2186:25: note: in expansion of macro 'BIT' case 0x79: BIT(128, c); break; // BIT 7,C ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2187:25: note: in expansion of macro 'BIT' case 0x7a: BIT(128, d); break; // BIT 7,D ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2188:25: note: in expansion of macro 'BIT' case 0x7b: BIT(128, e); break; // BIT 7,E ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2189:25: note: in expansion of macro 'BIT' case 0x7c: BIT(128, h); break; // BIT 7,H ^~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2190:25: note: in expansion of macro 'BIT' case 0x7d: BIT(128, l); break; // BIT 7,L ^~~ ticks.c:320:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2191:25: note: in expansion of macro 'BITHL' case 0x7e: BITHL(128); break; // BIT 7,(HL) ^~~~~ ticks.c:322:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2191:25: note: in expansion of macro 'BITHL' case 0x7e: BITHL(128); break; // BIT 7,(HL) ^~~~~ ticks.c:311:19: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~^~~~ ticks.c:2192:25: note: in expansion of macro 'BIT' case 0x7f: BIT(128, a); break; // BIT 7,A ^~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2199:25: note: in expansion of macro 'RESHL' case 0x86: RESHL(254); break; // RES 0,(HL) ^~~~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2207:25: note: in expansion of macro 'RESHL' case 0x8e: RESHL(253); break; // RES 1,(HL) ^~~~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2215:25: note: in expansion of macro 'RESHL' case 0x96: RESHL(251); break; // RES 2,(HL) ^~~~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2223:25: note: in expansion of macro 'RESHL' case 0x9e: RESHL(247); break; // RES 3,(HL) ^~~~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2231:25: note: in expansion of macro 'RESHL' case 0xa6: RESHL(239); break; // RES 4,(HL) ^~~~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2239:25: note: in expansion of macro 'RESHL' case 0xae: RESHL(223); break; // RES 5,(HL) ^~~~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2247:25: note: in expansion of macro 'RESHL' case 0xb6: RESHL(191); break; // RES 6,(HL) ^~~~~ ticks.c:340:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] & n ~^~~~~~~~ ticks.c:2255:25: note: in expansion of macro 'RESHL' case 0xbe: RESHL(127); break; // RES 7,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2263:25: note: in expansion of macro 'SETHL' case 0xc6: SETHL(1); break; // SET 0,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2271:25: note: in expansion of macro 'SETHL' case 0xce: SETHL(2); break; // SET 1,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2279:25: note: in expansion of macro 'SETHL' case 0xd6: SETHL(4); break; // SET 2,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2287:25: note: in expansion of macro 'SETHL' case 0xde: SETHL(8); break; // SET 3,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2295:25: note: in expansion of macro 'SETHL' case 0xe6: SETHL(16); break; // SET 4,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2303:25: note: in expansion of macro 'SETHL' case 0xee: SETHL(32); break; // SET 5,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2311:25: note: in expansion of macro 'SETHL' case 0xf6: SETHL(64); break; // SET 6,(HL) ^~~~~ ticks.c:348:24: warning: operation on 't' may be undefined [-Wsequence-point] mem[t]= mem[t= l|h<<8] | n ~^~~~~~~~ ticks.c:2319:25: note: in expansion of macro 'SETHL' case 0xfe: SETHL(128); break; // SET 7,(HL) ^~~~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2337:24: note: in expansion of macro 'RRC' case 0x08: RRC(t); mem[mp]= b= t; break; // LD B,RRC (IX+d) // LD B,RRC (IY+d) ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2338:24: note: in expansion of macro 'RRC' case 0x09: RRC(t); mem[mp]= c= t; break; // LD C,RRC (IX+d) // LD C,RRC (IY+d) ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2339:24: note: in expansion of macro 'RRC' case 0x0a: RRC(t); mem[mp]= d= t; break; // LD D,RRC (IX+d) // LD D,RRC (IY+d) ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2340:24: note: in expansion of macro 'RRC' case 0x0b: RRC(t); mem[mp]= e= t; break; // LD E,RRC (IX+d) // LD E,RRC (IY+d) ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2341:24: note: in expansion of macro 'RRC' case 0x0c: RRC(t); mem[mp]= h= t; break; // LD H,RRC (IX+d) // LD H,RRC (IY+d) ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2342:24: note: in expansion of macro 'RRC' case 0x0d: RRC(t); mem[mp]= l= t; break; // LD L,RRC (IX+d) // LD L,RRC (IY+d) ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2343:24: note: in expansion of macro 'RRC' case 0x0e: RRC(t); mem[mp]= t; break; // RRC (IX+d) // RRC (IY+d) ^~~ ticks.c:261:23: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] | ((r&1)+1 ^ 1)<<7, \ ~~~~~^~ ticks.c:2344:24: note: in expansion of macro 'RRC' case 0x0f: RRC(t); mem[mp]= a= t; break; // LD A,RRC (IX+d) // LD A,RRC (IY+d) ^~~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2345:24: note: in expansion of macro 'RL' case 0x10: RL(t); mem[mp]= b= t; break; // LD B,RL (IX+d) // LD B,RL (IY+d) ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2346:24: note: in expansion of macro 'RL' case 0x11: RL(t); mem[mp]= c= t; break; // LD C,RL (IX+d) // LD C,RL (IY+d) ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2347:24: note: in expansion of macro 'RL' case 0x12: RL(t); mem[mp]= d= t; break; // LD D,RL (IX+d) // LD D,RL (IY+d) ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2348:24: note: in expansion of macro 'RL' case 0x13: RL(t); mem[mp]= e= t; break; // LD E,RL (IX+d) // LD E,RL (IY+d) ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2349:24: note: in expansion of macro 'RL' case 0x14: RL(t); mem[mp]= h= t; break; // LD H,RL (IX+d) // LD H,RL (IY+d) ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2350:24: note: in expansion of macro 'RL' case 0x15: RL(t); mem[mp]= l= t; break; // LD L,RL (IX+d) // LD L,RL (IY+d) ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2351:24: note: in expansion of macro 'RL' case 0x16: RL(t); mem[mp]= t; break; // RL (IX+d) // RL (IY+d) ^~ ticks.c:269:24: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | ff >> 8 & 1, \ ~~~~~~~~~^~~ ticks.c:2352:24: note: in expansion of macro 'RL' case 0x17: RL(t); mem[mp]= a= t; break; // LD A,RL (IX+d) // LD A,RL (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2353:24: note: in expansion of macro 'RR' case 0x18: RR(t); mem[mp]= b= t; break; // LD B,RR (IX+d) // LD B,RR (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2354:24: note: in expansion of macro 'RR' case 0x19: RR(t); mem[mp]= c= t; break; // LD C,RR (IX+d) // LD C,RR (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2355:24: note: in expansion of macro 'RR' case 0x1a: RR(t); mem[mp]= d= t; break; // LD D,RR (IX+d) // LD D,RR (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2356:24: note: in expansion of macro 'RR' case 0x1b: RR(t); mem[mp]= e= t; break; // LD E,RR (IX+d) // LD E,RR (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2357:24: note: in expansion of macro 'RR' case 0x1c: RR(t); mem[mp]= h= t; break; // LD H,RR (IX+d) // LD H,RR (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2358:24: note: in expansion of macro 'RR' case 0x1d: RR(t); mem[mp]= l= t; break; // LD L,RR (IX+d) // LD L,RR (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2359:24: note: in expansion of macro 'RR' case 0x1e: RR(t); mem[mp]= t; break; // RR (IX+d) // RR (IY+d) ^~ ticks.c:276:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= (r*513 | ff&256)>>1, \ ~~^~ ticks.c:2360:24: note: in expansion of macro 'RR' case 0x1f: RR(t); mem[mp]= a= t; break; // LD A,RR (IX+d) // LD A,RR (IY+d) ^~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2369:24: note: in expansion of macro 'SRA' case 0x28: SRA(t); mem[mp]= b= t; break; // LD B,SRA (IX+d) // LD B,SRA (IY+d) ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2370:24: note: in expansion of macro 'SRA' case 0x29: SRA(t); mem[mp]= c= t; break; // LD C,SRA (IX+d) // LD C,SRA (IY+d) ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2371:24: note: in expansion of macro 'SRA' case 0x2a: SRA(t); mem[mp]= d= t; break; // LD D,SRA (IX+d) // LD D,SRA (IY+d) ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2372:24: note: in expansion of macro 'SRA' case 0x2b: SRA(t); mem[mp]= e= t; break; // LD E,SRA (IX+d) // LD E,SRA (IY+d) ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2373:24: note: in expansion of macro 'SRA' case 0x2c: SRA(t); mem[mp]= h= t; break; // LD H,SRA (IX+d) // LD H,SRA (IY+d) ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2374:24: note: in expansion of macro 'SRA' case 0x2d: SRA(t); mem[mp]= l= t; break; // LD L,SRA (IX+d) // LD L,SRA (IY+d) ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2375:24: note: in expansion of macro 'SRA' case 0x2e: SRA(t); mem[mp]= t; break; // SRA (IX+d) // SRA (IY+d) ^~~ ticks.c:290:21: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] ff= (r*513+128^128)>>1, \ ^ ticks.c:2376:24: note: in expansion of macro 'SRA' case 0x2f: SRA(t); mem[mp]= a= t; break; // LD A,SRA (IX+d) // LD A,SRA (IY+d) ^~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2395:24: note: in expansion of macro 'BITI' BITI(1); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2395:24: note: in expansion of macro 'BITI' BITI(1); break; ^~~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2398:24: note: in expansion of macro 'BITI' BITI(2); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2398:24: note: in expansion of macro 'BITI' BITI(2); break; ^~~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2401:24: note: in expansion of macro 'BITI' BITI(4); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2401:24: note: in expansion of macro 'BITI' BITI(4); break; ^~~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2404:24: note: in expansion of macro 'BITI' BITI(8); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2404:24: note: in expansion of macro 'BITI' BITI(8); break; ^~~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2407:24: note: in expansion of macro 'BITI' BITI(16); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2407:24: note: in expansion of macro 'BITI' BITI(16); break; ^~~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2410:24: note: in expansion of macro 'BITI' BITI(32); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2410:24: note: in expansion of macro 'BITI' BITI(32); break; ^~~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2413:24: note: in expansion of macro 'BITI' BITI(64); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2413:24: note: in expansion of macro 'BITI' BITI(64); break; ^~~~ ticks.c:328:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~~~~^~~~ ticks.c:2416:24: note: in expansion of macro 'BITI' BITI(128); break; ^~~~ ticks.c:330:21: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | -41 & (t&= n), \ ~~~~~~^~~~~~~~~ ticks.c:2416:24: note: in expansion of macro 'BITI' BITI(128); break; ^~~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2597:22: note: in expansion of macro 'INR' case 0x40: INR(b); break; // IN B,(C) ^~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2598:22: note: in expansion of macro 'INR' case 0x48: INR(c); break; // IN C,(C) ^~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2599:22: note: in expansion of macro 'INR' case 0x50: INR(d); break; // IN D,(C) ^~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2600:22: note: in expansion of macro 'INR' case 0x58: INR(e); break; // IN E,(C) ^~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2601:22: note: in expansion of macro 'INR' case 0x60: INR(h); break; // IN H,(C) ^~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2602:22: note: in expansion of macro 'INR' case 0x68: INR(l); break; // IN L,(C) ^~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2603:22: note: in expansion of macro 'INR' case 0x70: INR(t); break; // IN X,(C) ^~~ ticks.c:354:18: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 \ ~~~^~~~ ticks.c:2604:22: note: in expansion of macro 'INR' case 0x78: INR(a); break; // IN A,(C) ^~~ ticks.c:366:20: warning: suggest parentheses around '-' inside '<<' [-Wparentheses] v= l-b+(h-a<<8)-(ff>>8&1),\ ~^~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= ~a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ #define ADCHLRR(a, b) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 15, \ ~~~~~~~~~~~~~~~~~~~~~~~ v= l+b+(h+a<<8)+(ff>>8&1),\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ FILE * ft; ~~~~~~~~~~ unsigned char * tapbuf; ~~~~~~~~~~~~~~~~~~~~~~~ int v ~~~~~~~~~ , wavpos= 0 ~~~~~~~~~~~ , wavlen= 0 ~~~~~~~~~~~ , mues ~~~~~~ ; ~ unsigned short ~~~~~~~~~~~~~~ pc= 0 ~~~~~ , sp= 0 ~~~~~~~ , mp= 0 ~~~~~~~ , t= 0 ~~~~~~ , u= 0 ~~~~~~ , ff= 0 ~~~~~~~ , ff_= 0 ~~~~~~~~ , fa= 0 ~~~~~~~ , fa_= 0 ~~~~~~~~ , fb= 0 ~~~~~~~ , fb_= 0 ~~~~~~~~ , fr= 0 ~~~~~~~ , fr_= 0 ~~~~~~~~ ; ~ long long ~~~~~~~~~ st= 0 ~~~~~ , sttap ~~~~~~~ , stint ~~~~~~~ , counter= 1e8 ~~~~~~~~~~~~~~ ; ~ unsigned char ~~~~~~~~~~~~~ a= 0 ~~~~ , b= 0 ~~~~~~ , c= 0 ~~~~~~ , d= 0 ~~~~~~ , e= 0 ~~~~~~ , h= 0 ~~~~~~ , l= 0 ~~~~~~ , a_= 0 ~~~~~~~ , b_= 0 ~~~~~~~ , c_= 0 ~~~~~~~ , d_= 0 ~~~~~~~ , e_= 0 ~~~~~~~ , h_= 0 ~~~~~~~ , l_= 0 ~~~~~~~ , xl= 0 ~~~~~~~ , xh= 0 ~~~~~~~ , yl= 0 ~~~~~~~ , yh= 0 ~~~~~~~ , i= 0 ~~~~~~ , r= 0 ~~~~~~ , r7= 0 ~~~~~~~ , ih= 1 ~~~~~~~ , iy= 0 ~~~~~~~ , iff= 0 ~~~~~~~~ , im= 0 ~~~~~~~ , w= 0 ~~~~~~ , ear= 255 ~~~~~~~~~~ , halted= 0 ~~~~~~~~~~~ ; ~ long tapcycles(void){ ~~~~~~~~~~~~~~~~~~~~~ mues= 1; ~~~~~~~~ wavpos!=0x20000 && (ear^= 64); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavpos>0x1f000 ) ~~~~~~~~~~~~~~~~~~~~ fseek( ft, wavpos-0x20000, SEEK_CUR ), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen-= wavpos, ~~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while( (tapbuf[++wavpos]^ear<<1)&0x80 && wavpos<0x20000 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mues+= 81; // correct value must be 79.365, adjusted to simulate contention in Alkatraz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavlen<=wavpos ) ~~~~~~~~~~~~~~~~~~~~ return 0; ~~~~~~~~~ else ~~~~ return mues; ~~~~~~~~~~~~ } ~ int in(int port){ ~~~~~~~~~~~~~~~~~ return port&1 ? 255 : ear; ~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void out(int port, int value){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ return; ~~~~~~~ } ~ int f(void){ ~~~~~~~~~~~~ return ff & 168 ~~~~~~~~~~~~~~~~ | ff >> 8 & 1 ~~~~~~~~~~~~~ | !fr << 6 ~~~~~~~~~~ | fb >> 8 & 2 ~~~~~~~~~~~~~ | (fr ^ fa ^ fb ^ fb >> 8) & 16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | (fa & -256 ~~~~~~~~~~~~ ? 154020 >> ((fr ^ fr >> 4) & 15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ((fr ^ fa) & (fr ^ fb)) >> 5) & 4; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void setf(int a){ ~~~~~~~~~~~~~~~~~ fr= ~a & 64; ~~~~~~~~~~~~ ff= a|= a<<8; ~~~~~~~~~~~~~ fa= 255 & (fb= a & -129 | (a&4)<<5); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ int main (int argc, char **argv){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unsigned char * mem= (unsigned char *) malloc (0x10000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int size= 0, start= 0, end= 0, intr= 0, tap= 0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char * output= NULL; ~~~~~~~~~~~~~~~~~~~~ FILE * fh; ~~~~~~~~~~ tapbuf= (unsigned char *) malloc (0x20000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( argc==1 ) ~~~~~~~~~~~~~ printf("Ticks v0.14c beta, a silent Z80 emulator by Antonio Villena, 10 Jan 2013\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" ticks [-pc X] [-start X] [-end X] [-counter X] [-output ]\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" File between 1 and 65536 bytes with Z80 machine code\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -tape emulates ZX tape in port $FE from a .WAV file\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -pc X X in hexadecimal is the initial PC value\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -start X X in hexadecimal is the PC condition to start the counter\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -end X X in hexadecimal is the PC condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -counter X X in decimal is another condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -int X X in decimal are number of cycles for periodic interrupts\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -output dumps the RAM content to a 64K file\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" Default values for -pc, -start and -end are 0000 if ommited. When the program "), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("exits, it'll show the number of cycles between start and end trigger in decimal\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(0); ~~~~~~~~ while (argc > 1){ ~~~~~~~~~~~~~~~~~ if( argv[1][0] == '-' && argv[2] ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch (argc--, argv++[1][1]){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 'p': ~~~~~~~~~ pc= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 's': ~~~~~~~~~ start= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'e': ~~~~~~~~~ end= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'i': ~~~~~~~~~ intr= strtol(argv[1], NULL, 10); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'c': ~~~~~~~~~ sscanf(argv[1], "%llu", &counter); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ counter<0 && (counter= 9e18); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'o': ~~~~~~~~~ output= argv[1]; ~~~~~~~~~~~~~~~~ break; ~~~~~~ case 't': ~~~~~~~~~ ft= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !ft ) ~~~~~~~~~ printf("\nTape file not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memcpy(&wavlen, tapbuf+4, 4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen+= 8; ~~~~~~~~~~~ if( *(int*) tapbuf != 0x46464952 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid WAV header\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+16) != 16 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid subchunk size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+20) != 0x10001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid number of channels or compression (only Mono and PCM allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+24) != 44100 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid sample rate (only 44100Hz allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+32) != 0x80001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid align or bits per sample (only 8-bits samples allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+40)+44 != wavlen ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid header size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ wavpos= 44; ~~~~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ printf("\nWrong Argument: %s\n", argv[0]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ } ~ else{ ~~~~~ fh= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fh ) ~~~~~~~~~ printf("\nFile not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fseek(fh, 0, SEEK_END); ~~~~~~~~~~~~~~~~~~~~~~~ size= ftell(fh); ~~~~~~~~~~~~~~~~ rewind(fh); ~~~~~~~~~~~ if( size>65536 && size!=65574 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nIncorrect length: %d\n", size), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ else if( !strcasecmp(strchr(argv[1], '.'), ".sna" ) && size==49179 ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILE *fk= fopen("48.rom", "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fk ) ~~~~~~~~~ printf("\nZX Spectrum ROM file not found: 48.rom\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(mem, 1, 16384, fk); ~~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fk); ~~~~~~~~~~~ fread(&i, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ ff_= ff; ~~~~~~~~ fr_= fr; ~~~~~~~~ fa_= fa; ~~~~~~~~ fb_= fb; ~~~~~~~~ fread(&a_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&e, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~ iff>>= 2; ~~~~~~~~~ fread(&r, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ r7= r; ~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ fread(&a, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(mem+0x4000, 1, 0xc000, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RET(0); ~~~~~~~ } ~ else if( size==65574 ) ~~~~~~~~~~~~~~~~~~~~~~ fread(mem, 1, 65536, fh), ~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ u= w, ~~~~~ fread(&a, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&pc, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&i, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&r, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ r7= r, ~~~~~~ fread(&e, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ setf(w), ~~~~~~~~ ff_= ff, ~~~~~~~~ fr_= fr, ~~~~~~~~ fa_= fa, ~~~~~~~~ fb_= fb, ~~~~~~~~ setf(u), ~~~~~~~~ fread(&a_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&mp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ else ~~~~ fread(mem, 1, size, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ } ~ ++argv; ~~~~~~~ --argc; ~~~~~~~ } ~ if( size==65574 ){ ~~~~~~~~~~~~~~~~~~ fread(&wavpos, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~ ear= wavpos<<6 | 191; ~~~~~~~~~~~~~~~~~~~~~ wavpos>>= 1; ~~~~~~~~~~~~ if( wavpos && ft ) ~~~~~~~~~~~~~~~~~~ fseek(ft, wavlen-wavpos, SEEK_SET), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen= wavpos, ~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&sttap, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ tap= sttap; ~~~~~~~~~~~ } ~ else ~~~~ sttap= tap= tapcycles(); ~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fh); ~~~~~~~~~~~ if( !size ) ~~~~~~~~~~~ printf("File not specified or zero length\n"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= intr; ~~~~~~~~~~~~ do{ ~~~ if( pc==start ) ~~~~~~~~~~~~~~~ st= 0, ~~~~~~ stint= intr, ~~~~~~~~~~~~ sttap= tap; ~~~~~~~~~~~ if( intr && st>stint && ih ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= st+intr; ~~~~~~~~~~~~~~~ if( iff ){ ~~~~~~~~~~ halted && (pc++, halted= 0); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ iff= 0; ~~~~~~~ mem[--sp]= pc>>8; ~~~~~~~~~~~~~~~~~ mem[--sp]= pc; ~~~~~~~~~~~~~~ r++; ~~~~ switch( im ){ ~~~~~~~~~~~~~ case 1: ~~~~~~~ st++; ~~~~~ case 0: ~~~~~~~ pc= 56; ~~~~~~~ st+= 12; ~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ pc= mem[t= 255 | i << 8]; ~~~~~~~~~~~~~~~~~~~~~~~~~ pc|= mem[++t] << 8; ~~~~~~~~~~~~~~~~~~~ st+= 19; ~~~~~~~~ } ~ } ~ } ~ if( tap && st>sttap ) ~~~~~~~~~~~~~~~~~~~~~ sttap= st+( tap= tapcycles() ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ r++; ~~~~ // printf("pc=%04X, [pc]=%02X, bc=%04X, de=%04X, hl=%04X, af=%04X, ix=%04X, iy=%04X\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // pc, mem[pc], c|b<<8, e|d<<8, l|h<<8, f()|a<<8, xl|xh<<8, yl|yh<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: // NOP ~~~~~~~~~~~~~~~~~ case 0x40: // LD B,B ~~~~~~~~~~~~~~~~~~~~ case 0x49: // LD C,C ~~~~~~~~~~~~~~~~~~~~ case 0x52: // LD D,D ~~~~~~~~~~~~~~~~~~~~ case 0x5b: // LD E,E ~~~~~~~~~~~~~~~~~~~~ case 0x64: // LD H,H ~~~~~~~~~~~~~~~~~~~~ case 0x6d: // LD L,L ~~~~~~~~~~~~~~~~~~~~ case 0x7f: // LD A,A ~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x76: // HALT ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ halted= 1; ~~~~~~~~~~ pc--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x01: // LD BC,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(b, c); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x11: // LD DE,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(d, e); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x21: // LD HL,nn // LD IX,nn // LD IY,nn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRIM(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRIM(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ LDRRIM(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x31: // LD SP,nn ~~~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ sp= mem[pc++]; ~~~~~~~~~~~~~~ sp|= mem[pc++]<<8; ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x02: // LD (BC),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x12: // LD (DE),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0a: // LD A,(BC) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1a: // LD A,(DE) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x22: // LD (nn),HL // LD (nn),IX // LD (nn),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPNNRR(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPNNRR(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDPNNRR(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x32: // LD (nn),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ t= mem[pc++]; ~~~~~~~~~~~~~ mem[t|= mem[pc++]<<8]= a; ~~~~~~~~~~~~~~~~~~~~~~~~~ mp= t+1 & 255 ~~~~~~~~~~~~~ | a<<8; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2a: // LD HL,(nn) // LD IX,(nn) // LD IY,(nn) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRPNN(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRPNN(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDRRPNN(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3a: // LD A,(nn) ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ mp= mem[pc++]; ~~~~~~~~~~~~~~ a= mem[mp|= mem[pc++]<<8]; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x03: // INC BC ~~~~~~~~~~~~~~~~~~~~ INCW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x13: // INC DE ~~~~~~~~~~~~~~~~~~~~ INCW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x23: // INC HL // INC IX // INC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INCW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ INCW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x33: // INC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0b: // DEC BC ~~~~~~~~~~~~~~~~~~~~ DECW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1b: // DEC DE ~~~~~~~~~~~~~~~~~~~~ DECW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2b: // DEC HL // DEC IX // DEC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DECW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ DECW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3b: // DEC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x04: // INC B ~~~~~~~~~~~~~~~~~~~ INC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x0c: // INC C ~~~~~~~~~~~~~~~~~~~ INC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x14: // INC D ~~~~~~~~~~~~~~~~~~~ INC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1c: // INC E ~~~~~~~~~~~~~~~~~~~ INC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x24: // INC H // INC IXh // INC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yh); ~~~~~~~~ else ~~~~ INC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2c: // INC L // INC IXl // INC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yl); ~~~~~~~~ else ~~~~ INC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x34: // INC (HL) // INC (IX+d) // INC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ INCPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3c: // INC A ~~~~~~~~~~~~~~~~~~~ INC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x05: // DEC B ~~~~~~~~~~~~~~~~~~~ DEC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0d: // DEC C ~~~~~~~~~~~~~~~~~~~ DEC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x15: // DEC D ~~~~~~~~~~~~~~~~~~~ DEC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1d: // DEC E ~~~~~~~~~~~~~~~~~~~ DEC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x25: // DEC H // DEC IXh // DEC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yh); ~~~~~~~~ else ~~~~ DEC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2d: // DEC L // DEC IXl // DEC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yl); ~~~~~~~~ else ~~~~ DEC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x35: // DEC (HL) // DEC (IX+d) // DEC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=-1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ DECPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3d: // DEC A ~~~~~~~~~~~~~~~~~~~ DEC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x06: // LD B,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(b); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0e: // LD C,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(c); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x16: // LD D,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(d); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1e: // LD E,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(e); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x26: // LD H,n // LD IXh,n // LD IYh,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(h); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yh); ~~~~~~~~~~ else ~~~~ LDRIM(xh); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2e: // LD L,n // LD IXl,n // LD IYl,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(l); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yl); ~~~~~~~~~~ else ~~~~ LDRIM(xl); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x36: // LD (HL),n // LD (IX+d),n // LD (IY+d),n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 10, ~~~~~~~~ mem[l|h<<8]= mem[pc++]; ~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPIN(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ LDPIN(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3e: // LD A,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(a); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x07: // RLCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a*257>>7; ~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0f: // RRCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a>>1 ~~~~~~~~~~ | ((a&1)+1^1)<<7; ~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x17: // RLA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a<<1 ~~~~~~~~~~ | ff>>8 & 1; ~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb & 128 ~~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1f: // RRA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= (a*513 | ff&256)>>1; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x09: // ADD HL,BC // ADD IX,BC // ADD IY,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, b, c); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x19: // ADD HL,DE // ADD IX,DE // ADD IY,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, d, e); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x29: // ADD HL,HL // ADD IX,IX // ADD IY,IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, h, l); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, yh, yl); ~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, xh, xl); ~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x39: // ADD HL,SP // ADD IX,SP // ADD IY,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDISP(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDISP(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ ADDISP(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x18: // JR ~~~~~~~~~~~~~~~~ st+= 12; ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x20: // JR NZ,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x28: // JR Z,s8 ~~~~~~~~~~~~~~~~~~~~~ JRC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x30: // JR NC,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x38: // JR C,s8 ~~~~~~~~~~~~~~~~~~~~~ JRCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x08: // EX AF,AF' ~~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = a_; ~~~~~~~~~ a_ = a; ~~~~~~~~ a = t; ~~~~~~~~ t = ff_; ~~~~~~~~~~ ff_= ff; ~~~~~~~~~ ff = t; ~~~~~~~~ t = fr_; ~~~~~~~~~~ fr_= fr; ~~~~~~~~~ fr = t; ~~~~~~~~ t = fa_; ~~~~~~~~~~ fa_= fa; ~~~~~~~~~ fa = t; ~~~~~~~~ t = fb_; ~~~~~~~~~~ fb_= fb; ~~~~~~~~~ fb = t; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x10: // DJNZ ~~~~~~~~~~~~~~~~~~ if( --b ) ~~~~~~~~~ st+= 13, ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ st+= 8, ~~~~~~~ pc++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x27: // DAA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= (fr^fa^fb^fb>>8) & 16; ~~~~~~~~~~~~~~~~~~~~~~~~~ u= 0; ~~~~~ (a | ff&256)>153 && (u= 352); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (a&15 | t)>9 && (u+= 6); ~~~~~~~~~~~~~~~~~~~~~~~~ fa= a|256; ~~~~~~~~~~ if( fb&512 ) ~~~~~~~~~~~~ a-= u, ~~~~~~ fb= ~u; ~~~~~~~ else ~~~~ a+= fb= u; ~~~~~~~~~~ ff= (fr= a) ~~~~~~~~~~~ | u&256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2f: // CPL ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ff= ff &-41 ~~~~~~~~~~~~~~~~ | (a^=255)& 40; ~~~~~~~~~~~~~~~ fb|= -129; ~~~~~~~~~~ fa= fa & -17 ~~~~~~~~~~~~~ | ~fr & 16; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x37: // SCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fr^fa) & 16; ~~~~~~~~~~~~~~~ ff= 256 ~~~~~~~ | ff &128 ~~~~~~~~~~ | a & 40; ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3f: // CCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~~~~~~~ | (ff>>4^fr^fa) & 16; ~~~~~~~~~~~~~~~~~~~~~ ff= ~ff & 256 ~~~~~~~~~~~~~ | ff & 128 ~~~~~~~~~~~ | a & 40; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x41: // LD B,C ~~~~~~~~~~~~~~~~~~~~ LDRR(b, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x42: // LD B,D ~~~~~~~~~~~~~~~~~~~~ LDRR(b, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x43: // LD B,E ~~~~~~~~~~~~~~~~~~~~ LDRR(b, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x44: // LD B,H // LD B,IXh // LD B,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x45: // LD B,L // LD B,IXl // LD B,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x46: // LD B,(HL) // LD B,(IX+d) // LD B,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x47: // LD B,A ~~~~~~~~~~~~~~~~~~~~ LDRR(b, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x48: // LD C,B ~~~~~~~~~~~~~~~~~~~~ LDRR(c, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4a: // LD C,D ~~~~~~~~~~~~~~~~~~~~ LDRR(c, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4b: // LD C,E ~~~~~~~~~~~~~~~~~~~~ LDRR(c, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4c: // LD C,H // LD C,IXh // LD C,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4d: // LD C,L // LD C,IXl // LD C,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4e: // LD C,(HL) // LD C,(IX+d) // LD C,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4f: // LD C,A ~~~~~~~~~~~~~~~~~~~~ LDRR(c, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x50: // LD D,B ~~~~~~~~~~~~~~~~~~~~ LDRR(d, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x51: // LD D,C ~~~~~~~~~~~~~~~~~~~~ LDRR(d, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x53: // LD D,E ~~~~~~~~~~~~~~~~~~~~ LDRR(d, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x54: // LD D,H // LD D,IXh // LD D,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x55: // LD D,L // LD D,IXl // LD D,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x56: // LD D,(HL) // LD D,(IX+d) // LD D,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x57: // LD D,A ~~~~~~~~~~~~~~~~~~~~ LDRR(d, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x58: // LD E,B ~~~~~~~~~~~~~~~~~~~~ LDRR(e, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x59: // LD E,C ~~~~~~~~~~~~~~~~~~~~ LDRR(e, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5a: // LD E,D ~~~~~~~~~~~~~~~~~~~~ LDRR(e, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5c: // LD E,H // LD E,IXh // LD E,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5d: // LD E,L // LD E,IXl // LD E,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5e: // LD E,(HL) // LD E,(IX+d) // LD E,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5f: // LD E,A ~~~~~~~~~~~~~~~~~~~~ LDRR(e, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x60: // LD H,B // LD IXh,B // LD IYh,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x61: // LD H,C // LD IXh,C // LD IYh,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x62: // LD H,D // LD IXh,D // LD IYh,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x63: // LD H,E // LD IXh,E // LD IYh,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x65: // LD H,L // LD IXh,IXl // LD IYh,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, yl, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, xl, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x66: // LD H,(HL) // LD H,(IX+d) // LD H,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x67: // LD H,A // LD IXh,A // LD IYh,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x68: // LD L,B // LD IXl,B // LD IYl,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x69: // LD L,C // LD IXl,C // LD IYl,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6a: // LD L,D // LD IXl,D // LD IYl,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6b: // LD L,E // LD IXl,E // LD IYl,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6c: // LD L,H // LD IXl,IXh // LD IYl,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, yh, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, xh, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6e: // LD L,(HL) // LD L,(IX+d) // LD L,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6f: // LD L,A // LD IXl,A // LD IYl,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x70: // LD (HL),B // LD (IX+d),B // LD (IY+d),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x71: // LD (HL),C // LD (IX+d),C // LD (IY+d),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x72: // LD (HL),D // LD (IX+d),D // LD (IY+d),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x73: // LD (HL),E // LD (IX+d),E // LD (IY+d),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x74: // LD (HL),H // LD (IX+d),H // LD (IY+d),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x75: // LD (HL),L // LD (IX+d),L // LD (IY+d),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x77: // LD (HL),A // LD (IX+d),A // LD (IY+d),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x78: // LD A,B ~~~~~~~~~~~~~~~~~~~~ LDRR(a, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x79: // LD A,C ~~~~~~~~~~~~~~~~~~~~ LDRR(a, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7a: // LD A,D ~~~~~~~~~~~~~~~~~~~~ LDRR(a, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7b: // LD A,E ~~~~~~~~~~~~~~~~~~~~ LDRR(a, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7c: // LD A,H // LD A,IXh // LD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7d: // LD A,L // LD A,IXl // LD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7e: // LD A,(HL) // LD A,(IX+d) // LD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x80: // ADD A,B ~~~~~~~~~~~~~~~~~~~~~ ADD(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x81: // ADD A,C ~~~~~~~~~~~~~~~~~~~~~ ADD(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x82: // ADD A,D ~~~~~~~~~~~~~~~~~~~~~ ADD(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x83: // ADD A,E ~~~~~~~~~~~~~~~~~~~~~ ADD(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x84: // ADD A,H // ADD A,IXh // ADD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yh, 4); ~~~~~~~~~~~ else ~~~~ ADD(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x85: // ADD A,L // ADD A,IXl // ADD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yl, 4); ~~~~~~~~~~~ else ~~~~ ADD(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x86: // ADD A,(HL) // ADD A,(IX+d) // ADD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADD(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x87: // ADD A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x88: // ADC A,B ~~~~~~~~~~~~~~~~~~~~~ ADC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x89: // ADC A,C ~~~~~~~~~~~~~~~~~~~~~ ADC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8a: // ADC A,D ~~~~~~~~~~~~~~~~~~~~~ ADC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8b: // ADC A,E ~~~~~~~~~~~~~~~~~~~~~ ADC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8c: // ADC A,H // ADC A,IXh // ADC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yh, 4); ~~~~~~~~~~~ else ~~~~ ADC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8d: // ADC A,L // ADC A,IXl // ADC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yl, 4); ~~~~~~~~~~~ else ~~~~ ADC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8e: // ADC A,(HL) // ADC A,(IX+d) // ADC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8f: // ADC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)+(ff>>8&1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x90: // SUB B ~~~~~~~~~~~~~~~~~~~ SUB(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x91: // SUB C ~~~~~~~~~~~~~~~~~~~ SUB(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x92: // SUB D ~~~~~~~~~~~~~~~~~~~ SUB(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x93: // SUB E ~~~~~~~~~~~~~~~~~~~ SUB(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x94: // SUB H // SUB IXh // SUB IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yh, 4); ~~~~~~~~~~~ else ~~~~ SUB(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x95: // SUB L // SUB IXl // SUB IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yl, 4); ~~~~~~~~~~~ else ~~~~ SUB(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x96: // SUB (HL) // SUB (IX+d) // SUB (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SUB(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x97: // SUB A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= ff= 0; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x98: // SBC A,B ~~~~~~~~~~~~~~~~~~~~~ SBC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x99: // SBC A,C ~~~~~~~~~~~~~~~~~~~~~ SBC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9a: // SBC A,D ~~~~~~~~~~~~~~~~~~~~~ SBC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9b: // SBC A,E ~~~~~~~~~~~~~~~~~~~~~ SBC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9c: // SBC A,H // SBC A,IXh // SBC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yh, 4); ~~~~~~~~~~~ else ~~~~ SBC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9d: // SBC A,L // SBC A,IXl // SBC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yl, 4); ~~~~~~~~~~~ else ~~~~ SBC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9e: // SBC A,(HL) // SBC A,(IX+d) // SBC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SBC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9f: // SBC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= (ff= (ff&256)/-256); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa0: // AND B ~~~~~~~~~~~~~~~~~~~ AND(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa1: // AND C ~~~~~~~~~~~~~~~~~~~ AND(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa2: // AND D ~~~~~~~~~~~~~~~~~~~ AND(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa3: // AND E ~~~~~~~~~~~~~~~~~~~ AND(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa4: // AND H // AND IXh // AND IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yh, 4); ~~~~~~~~~~~ else ~~~~ AND(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa5: // AND L // AND IXl // AND IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yl, 4); ~~~~~~~~~~~ else ~~~~ AND(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa6: // AND (HL) // AND (IX+d) // AND (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ AND(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa7: // AND A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= ~(ff= fr= a); ~~~~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa8: // XOR B ~~~~~~~~~~~~~~~~~~~ XOR(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa9: // XOR C ~~~~~~~~~~~~~~~~~~~ XOR(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaa: // XOR D ~~~~~~~~~~~~~~~~~~~ XOR(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xab: // XOR E ~~~~~~~~~~~~~~~~~~~ XOR(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xac: // XOR H // XOR IXh // XOR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yh, 4); ~~~~~~~~~~~ else ~~~~ XOR(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xad: // XOR L // XOR IXl // XOR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yl, 4); ~~~~~~~~~~~ else ~~~~ XOR(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xae: // XOR (HL) // XOR (IX+d) // XOR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ XOR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaf: // XOR A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= ff= fr= fb= 0; ~~~~~~~~~~~~~~~~~ fa= 256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb0: // OR B ~~~~~~~~~~~~~~~~~~ OR(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb1: // OR C ~~~~~~~~~~~~~~~~~~ OR(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb2: // OR D ~~~~~~~~~~~~~~~~~~ OR(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb3: // OR E ~~~~~~~~~~~~~~~~~~ OR(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb4: // OR H // OR IXh // OR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yh, 4); ~~~~~~~~~~ else ~~~~ OR(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb5: // OR L // OR IXl // OR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yl, 4); ~~~~~~~~~~ else ~~~~ OR(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb6: // OR (HL) // OR (IX+d) // OR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ OR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb7: // OR A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= 256 ~~~~~~~ | (ff= fr= a); ~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb8: // CP B ~~~~~~~~~~~~~~~~~~ CP(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb9: // CP C ~~~~~~~~~~~~~~~~~~ CP(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xba: // CP D ~~~~~~~~~~~~~~~~~~ CP(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbb: // CP E ~~~~~~~~~~~~~~~~~~ CP(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbc: // CP H // CP IXh // CP IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yh, 4); ~~~~~~~~~~ else ~~~~ CP(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbd: // CP L // CP IXl // CP IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yl, 4); ~~~~~~~~~~ else ~~~~ CP(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbe: // CP (HL) // CP (IX+d) // CP (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ w= mem[l|h<<8], ~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ w= mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else ~~~~ w= mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbf: // CP A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= 0; ~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ ff= a&40; ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc9: // RET ~~~~~~~~~~~~~~~~~ RET(10); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc0: // RET NZ ~~~~~~~~~~~~~~~~~~~~ RETCI(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc8: // RET Z ~~~~~~~~~~~~~~~~~~~ RETC(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd0: // RET NC ~~~~~~~~~~~~~~~~~~~~ RETC(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd8: // RET C ~~~~~~~~~~~~~~~~~~~ RETCI(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe0: // RET PO ~~~~~~~~~~~~~~~~~~~~ RETC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe8: // RET PE ~~~~~~~~~~~~~~~~~~~~ RETCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf0: // RET P ~~~~~~~~~~~~~~~~~~~ RETC(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf8: // RET M ~~~~~~~~~~~~~~~~~~~ RETCI(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc1: // POP BC ~~~~~~~~~~~~~~~~~~~~ POP(b, c); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd1: // POP DE ~~~~~~~~~~~~~~~~~~~~ POP(d, e); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe1: // POP HL // POP IX // POP IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ POP(h, l); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ POP(yh, yl); ~~~~~~~~~~~~ else ~~~~ POP(xh, xl); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf1: // POP AF ~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ setf(mem[sp++]); ~~~~~~~~~~~~~~~~ a= mem[sp++]; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc5: // PUSH BC ~~~~~~~~~~~~~~~~~~~~~ PUSH(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd5: // PUSH DE ~~~~~~~~~~~~~~~~~~~~~ PUSH(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe5: // PUSH HL // PUSH IX // PUSH IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ PUSH(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ PUSH(yh, yl); ~~~~~~~~~~~~~ else ~~~~ PUSH(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf5: // PUSH AF ~~~~~~~~~~~~~~~~~~~~~ PUSH(a, f()); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc3: // JP nn ~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc2: // JP NZ ~~~~~~~~~~~~~~~~~~~ JPCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xca: // JP Z ~~~~~~~~~~~~~~~~~~ JPC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd2: // JP NC ~~~~~~~~~~~~~~~~~~~ JPC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xda: // JP C ~~~~~~~~~~~~~~~~~~ JPCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe2: // JP PO ~~~~~~~~~~~~~~~~~~~ JPC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xea: // JP PE ~~~~~~~~~~~~~~~~~~~ JPCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf2: // JP P ~~~~~~~~~~~~~~~~~~ JPC(ff&128); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfa: // JP M ~~~~~~~~~~~~~~~~~~ JPCI(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcd: // CALL nn ~~~~~~~~~~~~~~~~~~~~~ st+= 17; ~~~~~~~~ t= pc+2; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mem[--sp]= t>>8; ~~~~~~~~~~~~~~~~ mem[--sp]= t; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc4: // CALL NZ ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fr); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcc: // CALL Z ~~~~~~~~~~~~~~~~~~~~ CALLC(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd4: // CALL NC ~~~~~~~~~~~~~~~~~~~~~ CALLC(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdc: // CALL C ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&256); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe4: // CALL PO ~~~~~~~~~~~~~~~~~~~~~ CALLC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xec: // CALL PE ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf4: // CALL P ~~~~~~~~~~~~~~~~~~~~ CALLC(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfc: // CALL M ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&128); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc6: // ADD A,n ~~~~~~~~~~~~~~~~~~~~~ ADD(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xce: // ADC A,n ~~~~~~~~~~~~~~~~~~~~~ ADC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd6: // SUB n ~~~~~~~~~~~~~~~~~~~ SUB(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xde: // SBC A,n ~~~~~~~~~~~~~~~~~~~~~ SBC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe6: // AND n ~~~~~~~~~~~~~~~~~~~ AND(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xee: // XOR A,n ~~~~~~~~~~~~~~~~~~~~~ XOR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf6: // OR n ~~~~~~~~~~~~~~~~~~ OR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfe: // CP A,n ~~~~~~~~~~~~~~~~~~~~ w= mem[pc++]; ~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc7: // RST 0x00 ~~~~~~~~~~~~~~~~~~~~~~ RST(0); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcf: // RST 0x08 ~~~~~~~~~~~~~~~~~~~~~~ RST(8); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd7: // RST 0x10 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x10); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdf: // RST 0x18 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x18); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe7: // RST 0x20 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x20); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xef: // RST 0x28 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x28); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf7: // RST 0x30 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x30); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xff: // RST 0x38 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x38); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd3: // OUT (n),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ out(mp= mem[pc++] | a<<8, a); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= mp&65280 ~~~~~~~~~~~~ | ++mp; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdb: // IN A,(n) ~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ a= in(mp= mem[pc++] | a<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf3: // DI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 0; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfb: // EI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 1; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xeb: // EX DE,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= d; ~~~~~ d= h; ~~~~~ h= t; ~~~~~ t= e; ~~~~~ e= l; ~~~~~ l= t; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd9: // EXX ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = b; ~~~~~~ b = b_; ~~~~~~~ b_= t; ~~~~~~ t = c; ~~~~~~ c = c_; ~~~~~~~ c_= t; ~~~~~~ t = d; ~~~~~~ d = d_; ~~~~~~~ d_= t; ~~~~~~ t = e; ~~~~~~ e = e_; ~~~~~~~ e_= t; ~~~~~~ t = h; ~~~~~~ h = h_; ~~~~~~~ h_= t; ~~~~~~ t = l; ~~~~~~ l = l_; ~~~~~~~ l_= t; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe3: // EX (SP),HL // EX (SP),IX // EX (SP),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ EXSPI(h, l); ~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ EXSPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ EXSPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe9: // JP (HL) ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ pc= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ pc= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ pc= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf9: // LD SP,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ sp= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ sp= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ sp= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdd: // OP DD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= iy= 0; ~~~~~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xfd: // OP FD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= 0; ~~~~~~ iy= 1; ~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xcb: // OP CB ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ if( ih ) ~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(b); break; // RLC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(c); break; // RLC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(d); break; // RLC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(e); break; // RLC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(h); break; // RLC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(l); break; // RLC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: st+= 7; // RLC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RLC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x07: RLC(a); break; // RLC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(b); break; // RRC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(c); break; // RRC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(d); break; // RRC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(e); break; // RRC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(h); break; // RRC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(l); break; // RRC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: st+= 7; // RRC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RRC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x0f: RRC(a); break; // RRC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(b); break; // RL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(c); break; // RL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(d); break; // RL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(e); break; // RL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(h); break; // RL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(l); break; // RL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: st+= 7; // RL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RL(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x17: RL(a); break; // RL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(b); break; // RR B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(c); break; // RR C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(d); break; // RR D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(e); break; // RR E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(h); break; // RR H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(l); break; // RR L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: st+= 7; // RR (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RR(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x1f: RR(a); break; // RR A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(b); break; // SLA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(c); break; // SLA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(d); break; // SLA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(e); break; // SLA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(h); break; // SLA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(l); break; // SLA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: st+= 7; // SLA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x27: SLA(a); break; // SLA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(b); break; // SRA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(c); break; // SRA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(d); break; // SRA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(e); break; // SRA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(h); break; // SRA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(l); break; // SRA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: st+= 7; // SRA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x2f: SRA(a); break; // SRA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(b); break; // SLL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(c); break; // SLL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(d); break; // SLL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(e); break; // SLL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(h); break; // SLL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(l); break; // SLL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: st+= 7; // SLL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x37: SLL(a); break; // SLL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(b); break; // SRL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(c); break; // SRL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(d); break; // SRL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(e); break; // SRL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(h); break; // SRL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(l); break; // SRL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: st+= 7; // SRL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x3f: SRL(a); break; // SRL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: BIT(1, b); break; // BIT 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: BIT(1, c); break; // BIT 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: BIT(1, d); break; // BIT 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x43: BIT(1, e); break; // BIT 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: BIT(1, h); break; // BIT 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x45: BIT(1, l); break; // BIT 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x46: BITHL(1); break; // BIT 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x47: BIT(1, a); break; // BIT 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: BIT(2, b); break; // BIT 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: BIT(2, c); break; // BIT 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4a: BIT(2, d); break; // BIT 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4b: BIT(2, e); break; // BIT 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: BIT(2, h); break; // BIT 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4d: BIT(2, l); break; // BIT 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4e: BITHL(2); break; // BIT 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4f: BIT(2, a); break; // BIT 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: BIT(4, b); break; // BIT 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: BIT(4, c); break; // BIT 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: BIT(4, d); break; // BIT 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x53: BIT(4, e); break; // BIT 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: BIT(4, h); break; // BIT 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x55: BIT(4, l); break; // BIT 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x56: BITHL(4); break; // BIT 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x57: BIT(4, a); break; // BIT 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: BIT(8, b); break; // BIT 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: BIT(8, c); break; // BIT 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: BIT(8, d); break; // BIT 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5b: BIT(8, e); break; // BIT 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: BIT(8, h); break; // BIT 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5d: BIT(8, l); break; // BIT 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5e: BITHL(8); break; // BIT 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5f: BIT(8, a); break; // BIT 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: BIT(16, b); break; // BIT 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: BIT(16, c); break; // BIT 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: BIT(16, d); break; // BIT 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x63: BIT(16, e); break; // BIT 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: BIT(16, h); break; // BIT 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x65: BIT(16, l); break; // BIT 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x66: BITHL(16); break; // BIT 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x67: BIT(16, a); break; // BIT 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: BIT(32, b); break; // BIT 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: BIT(32, c); break; // BIT 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6a: BIT(32, d); break; // BIT 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6b: BIT(32, e); break; // BIT 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: BIT(32, h); break; // BIT 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6d: BIT(32, l); break; // BIT 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6e: BITHL(32); break; // BIT 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6f: BIT(32, a); break; // BIT 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: BIT(64, b); break; // BIT 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: BIT(64, c); break; // BIT 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: BIT(64, d); break; // BIT 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x73: BIT(64, e); break; // BIT 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: BIT(64, h); break; // BIT 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x75: BIT(64, l); break; // BIT 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x76: BITHL(64); break; // BIT 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: BIT(64, a); break; // BIT 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: BIT(128, b); break; // BIT 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: BIT(128, c); break; // BIT 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7a: BIT(128, d); break; // BIT 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7b: BIT(128, e); break; // BIT 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: BIT(128, h); break; // BIT 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7d: BIT(128, l); break; // BIT 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7e: BITHL(128); break; // BIT 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7f: BIT(128, a); break; // BIT 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x80: RES(254, b); break; // RES 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, c); break; // RES 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, d); break; // RES 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, e); break; // RES 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, h); break; // RES 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, l); break; // RES 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RESHL(254); break; // RES 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, a); break; // RES 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, b); break; // RES 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, c); break; // RES 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, d); break; // RES 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, e); break; // RES 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, h); break; // RES 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, l); break; // RES 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RESHL(253); break; // RES 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, a); break; // RES 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, b); break; // RES 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, c); break; // RES 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, d); break; // RES 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, e); break; // RES 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, h); break; // RES 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, l); break; // RES 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RESHL(251); break; // RES 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, a); break; // RES 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, b); break; // RES 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, c); break; // RES 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, d); break; // RES 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, e); break; // RES 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, h); break; // RES 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, l); break; // RES 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RESHL(247); break; // RES 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, a); break; // RES 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, b); break; // RES 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, c); break; // RES 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, d); break; // RES 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, e); break; // RES 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, h); break; // RES 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, l); break; // RES 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RESHL(239); break; // RES 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, a); break; // RES 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, b); break; // RES 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, c); break; // RES 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, d); break; // RES 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, e); break; // RES 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, h); break; // RES 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, l); break; // RES 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RESHL(223); break; // RES 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, a); break; // RES 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, b); break; // RES 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, c); break; // RES 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, d); break; // RES 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, e); break; // RES 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, h); break; // RES 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, l); break; // RES 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RESHL(191); break; // RES 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, a); break; // RES 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, b); break; // RES 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, c); break; // RES 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, d); break; // RES 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, e); break; // RES 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, h); break; // RES 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, l); break; // RES 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RESHL(127); break; // RES 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, a); break; // RES 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, b); break; // SET 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, c); break; // SET 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, d); break; // SET 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, e); break; // SET 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, h); break; // SET 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, l); break; // SET 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SETHL(1); break; // SET 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, a); break; // SET 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, b); break; // SET 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, c); break; // SET 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, d); break; // SET 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, e); break; // SET 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, h); break; // SET 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, l); break; // SET 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SETHL(2); break; // SET 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, a); break; // SET 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, b); break; // SET 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, c); break; // SET 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, d); break; // SET 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, e); break; // SET 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, h); break; // SET 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, l); break; // SET 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SETHL(4); break; // SET 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, a); break; // SET 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, b); break; // SET 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, c); break; // SET 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, d); break; // SET 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, e); break; // SET 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, h); break; // SET 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, l); break; // SET 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SETHL(8); break; // SET 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, a); break; // SET 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, b); break; // SET 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, c); break; // SET 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, d); break; // SET 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, e); break; // SET 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, h); break; // SET 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, l); break; // SET 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SETHL(16); break; // SET 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, a); break; // SET 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, b); break; // SET 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, c); break; // SET 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, d); break; // SET 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, e); break; // SET 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, h); break; // SET 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, l); break; // SET 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SETHL(32); break; // SET 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, a); break; // SET 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, b); break; // SET 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, c); break; // SET 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, d); break; // SET 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, e); break; // SET 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, h); break; // SET 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, l); break; // SET 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SETHL(64); break; // SET 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, a); break; // SET 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, b); break; // SET 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, c); break; // SET 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, d); break; // SET 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, e); break; // SET 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, h); break; // SET 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, l); break; // SET 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SETHL(128); break; // SET 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, a); break; // SET 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ else{ ~~~~~ st+= 11; ~~~~~~~~ if( iy ) ~~~~~~~~ t= mem[mp= ((mem[pc++]^128)-128+(yl|yh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ t= mem[mp= ((mem[pc++]^128)-128+(xl|xh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(t); mem[mp]= b= t; break; // LD B,RLC (IX+d) // LD B,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(t); mem[mp]= c= t; break; // LD C,RLC (IX+d) // LD C,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(t); mem[mp]= d= t; break; // LD D,RLC (IX+d) // LD D,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(t); mem[mp]= e= t; break; // LD E,RLC (IX+d) // LD E,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(t); mem[mp]= h= t; break; // LD H,RLC (IX+d) // LD H,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(t); mem[mp]= l= t; break; // LD L,RLC (IX+d) // LD L,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: RLC(t); mem[mp]= t; break; // RLC (IX+d) // RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x07: RLC(t); mem[mp]= a= t; break; // LD A,RLC (IX+d) // LD A,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(t); mem[mp]= b= t; break; // LD B,RRC (IX+d) // LD B,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(t); mem[mp]= c= t; break; // LD C,RRC (IX+d) // LD C,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(t); mem[mp]= d= t; break; // LD D,RRC (IX+d) // LD D,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(t); mem[mp]= e= t; break; // LD E,RRC (IX+d) // LD E,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(t); mem[mp]= h= t; break; // LD H,RRC (IX+d) // LD H,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(t); mem[mp]= l= t; break; // LD L,RRC (IX+d) // LD L,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: RRC(t); mem[mp]= t; break; // RRC (IX+d) // RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0f: RRC(t); mem[mp]= a= t; break; // LD A,RRC (IX+d) // LD A,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(t); mem[mp]= b= t; break; // LD B,RL (IX+d) // LD B,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(t); mem[mp]= c= t; break; // LD C,RL (IX+d) // LD C,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(t); mem[mp]= d= t; break; // LD D,RL (IX+d) // LD D,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(t); mem[mp]= e= t; break; // LD E,RL (IX+d) // LD E,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(t); mem[mp]= h= t; break; // LD H,RL (IX+d) // LD H,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(t); mem[mp]= l= t; break; // LD L,RL (IX+d) // LD L,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: RL(t); mem[mp]= t; break; // RL (IX+d) // RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x17: RL(t); mem[mp]= a= t; break; // LD A,RL (IX+d) // LD A,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(t); mem[mp]= b= t; break; // LD B,RR (IX+d) // LD B,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(t); mem[mp]= c= t; break; // LD C,RR (IX+d) // LD C,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(t); mem[mp]= d= t; break; // LD D,RR (IX+d) // LD D,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(t); mem[mp]= e= t; break; // LD E,RR (IX+d) // LD E,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(t); mem[mp]= h= t; break; // LD H,RR (IX+d) // LD H,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(t); mem[mp]= l= t; break; // LD L,RR (IX+d) // LD L,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: RR(t); mem[mp]= t; break; // RR (IX+d) // RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1f: RR(t); mem[mp]= a= t; break; // LD A,RR (IX+d) // LD A,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(t); mem[mp]= b= t; break; // LD B,SLA (IX+d) // LD B,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(t); mem[mp]= c= t; break; // LD C,SLA (IX+d) // LD C,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(t); mem[mp]= d= t; break; // LD D,SLA (IX+d) // LD D,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(t); mem[mp]= e= t; break; // LD E,SLA (IX+d) // LD E,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(t); mem[mp]= h= t; break; // LD H,SLA (IX+d) // LD H,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(t); mem[mp]= l= t; break; // LD L,SLA (IX+d) // LD L,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: SLA(t); mem[mp]= t; break; // SLA (IX+d) // SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x27: SLA(t); mem[mp]= a= t; break; // LD A,SLA (IX+d) // LD A,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(t); mem[mp]= b= t; break; // LD B,SRA (IX+d) // LD B,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(t); mem[mp]= c= t; break; // LD C,SRA (IX+d) // LD C,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(t); mem[mp]= d= t; break; // LD D,SRA (IX+d) // LD D,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(t); mem[mp]= e= t; break; // LD E,SRA (IX+d) // LD E,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(t); mem[mp]= h= t; break; // LD H,SRA (IX+d) // LD H,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(t); mem[mp]= l= t; break; // LD L,SRA (IX+d) // LD L,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: SRA(t); mem[mp]= t; break; // SRA (IX+d) // SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2f: SRA(t); mem[mp]= a= t; break; // LD A,SRA (IX+d) // LD A,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(t); mem[mp]= b= t; break; // LD B,SLL (IX+d) // LD B,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(t); mem[mp]= c= t; break; // LD C,SLL (IX+d) // LD C,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(t); mem[mp]= d= t; break; // LD D,SLL (IX+d) // LD D,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(t); mem[mp]= e= t; break; // LD E,SLL (IX+d) // LD E,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(t); mem[mp]= h= t; break; // LD H,SLL (IX+d) // LD H,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(t); mem[mp]= l= t; break; // LD L,SLL (IX+d) // LD L,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: SLL(t); mem[mp]= t; break; // SLL (IX+d) // SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x37: SLL(t); mem[mp]= a= t; break; // LD A,SLL (IX+d) // LD A,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(t); mem[mp]= b= t; break; // LD B,SRL (IX+d) // LD B,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(t); mem[mp]= c= t; break; // LD C,SRL (IX+d) // LD C,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(t); mem[mp]= d= t; break; // LD D,SRL (IX+d) // LD D,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(t); mem[mp]= e= t; break; // LD E,SRL (IX+d) // LD E,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(t); mem[mp]= h= t; break; // LD H,SRL (IX+d) // LD H,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(t); mem[mp]= l= t; break; // LD L,SRL (IX+d) // LD L,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: SRL(t); mem[mp]= t; break; // SRL (IX+d) // SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3f: SRL(t); mem[mp]= a= t; break; // LD A,SRL (IX+d) // LD A,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: case 0x41: case 0x42: case 0x43: // BIT 0,(IX+d) // BIT 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: case 0x45: case 0x46: case 0x47: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(1); break; ~~~~~~~~~~~~~~~ case 0x48: case 0x49: case 0x4a: case 0x4b: // BIT 1,(IX+d) // BIT 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: case 0x4d: case 0x4e: case 0x4f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(2); break; ~~~~~~~~~~~~~~~ case 0x50: case 0x51: case 0x52: case 0x53: // BIT 2,(IX+d) // BIT 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: case 0x55: case 0x56: case 0x57: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(4); break; ~~~~~~~~~~~~~~~ case 0x58: case 0x59: case 0x5a: case 0x5b: // BIT 3,(IX+d) // BIT 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: case 0x5d: case 0x5e: case 0x5f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(8); break; ~~~~~~~~~~~~~~~ case 0x60: case 0x61: case 0x62: case 0x63: // BIT 4,(IX+d) // BIT 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: case 0x65: case 0x66: case 0x67: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(16); break; ~~~~~~~~~~~~~~~~ case 0x68: case 0x69: case 0x6a: case 0x6b: // BIT 5,(IX+d) // BIT 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: case 0x6d: case 0x6e: case 0x6f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(32); break; ~~~~~~~~~~~~~~~~ case 0x70: case 0x71: case 0x72: case 0x73: // BIT 6,(IX+d) // BIT 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: case 0x75: case 0x76: case 0x77: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(64); break; ~~~~~~~~~~~~~~~~ case 0x78: case 0x79: case 0x7a: case 0x7b: // BIT 7,(IX+d) // BIT 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: case 0x7d: case 0x7e: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(128); break; ~~~~~~~~~~~~~~~~~ case 0x80: RES(254, t); mem[mp]= b= t; break; // LD B,RES 0,(IX+d) // LD B,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, t); mem[mp]= c= t; break; // LD C,RES 0,(IX+d) // LD C,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, t); mem[mp]= d= t; break; // LD D,RES 0,(IX+d) // LD D,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, t); mem[mp]= e= t; break; // LD E,RES 0,(IX+d) // LD E,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, t); mem[mp]= h= t; break; // LD H,RES 0,(IX+d) // LD H,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, t); mem[mp]= l= t; break; // LD L,RES 0,(IX+d) // LD L,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RES(254, t); mem[mp]= t; break; // RES 0,(IX+d) // RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, t); mem[mp]= a= t; break; // LD A,RES 0,(IX+d) // LD A,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, t); mem[mp]= b= t; break; // LD B,RES 1,(IX+d) // LD B,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, t); mem[mp]= c= t; break; // LD C,RES 1,(IX+d) // LD C,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, t); mem[mp]= d= t; break; // LD D,RES 1,(IX+d) // LD D,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, t); mem[mp]= e= t; break; // LD E,RES 1,(IX+d) // LD E,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, t); mem[mp]= h= t; break; // LD H,RES 1,(IX+d) // LD H,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, t); mem[mp]= l= t; break; // LD L,RES 1,(IX+d) // LD L,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RES(253, t); mem[mp]= t; break; // RES 1,(IX+d) // RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, t); mem[mp]= a= t; break; // LD A,RES 1,(IX+d) // LD A,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, t); mem[mp]= b= t; break; // LD B,RES 2,(IX+d) // LD B,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, t); mem[mp]= c= t; break; // LD C,RES 2,(IX+d) // LD C,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, t); mem[mp]= d= t; break; // LD D,RES 2,(IX+d) // LD D,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, t); mem[mp]= e= t; break; // LD E,RES 2,(IX+d) // LD E,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, t); mem[mp]= h= t; break; // LD H,RES 2,(IX+d) // LD H,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, t); mem[mp]= l= t; break; // LD L,RES 2,(IX+d) // LD L,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RES(251, t); mem[mp]= t; break; // RES 2,(IX+d) // RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, t); mem[mp]= a= t; break; // LD A,RES 2,(IX+d) // LD A,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, t); mem[mp]= b= t; break; // LD B,RES 3,(IX+d) // LD B,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, t); mem[mp]= c= t; break; // LD C,RES 3,(IX+d) // LD C,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, t); mem[mp]= d= t; break; // LD D,RES 3,(IX+d) // LD D,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, t); mem[mp]= e= t; break; // LD E,RES 3,(IX+d) // LD E,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, t); mem[mp]= h= t; break; // LD H,RES 3,(IX+d) // LD H,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, t); mem[mp]= l= t; break; // LD L,RES 3,(IX+d) // LD L,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RES(247, t); mem[mp]= t; break; // RES 3,(IX+d) // RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, t); mem[mp]= a= t; break; // LD A,RES 3,(IX+d) // LD A,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, t); mem[mp]= b= t; break; // LD B,RES 4,(IX+d) // LD B,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, t); mem[mp]= c= t; break; // LD C,RES 4,(IX+d) // LD C,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, t); mem[mp]= d= t; break; // LD D,RES 4,(IX+d) // LD D,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, t); mem[mp]= e= t; break; // LD E,RES 4,(IX+d) // LD E,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, t); mem[mp]= h= t; break; // LD H,RES 4,(IX+d) // LD H,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, t); mem[mp]= l= t; break; // LD L,RES 4,(IX+d) // LD L,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RES(239, t); mem[mp]= t; break; // RES 4,(IX+d) // RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, t); mem[mp]= a= t; break; // LD A,RES 4,(IX+d) // LD A,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, t); mem[mp]= b= t; break; // LD B,RES 5,(IX+d) // LD B,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, t); mem[mp]= c= t; break; // LD C,RES 5,(IX+d) // LD C,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, t); mem[mp]= d= t; break; // LD D,RES 5,(IX+d) // LD D,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, t); mem[mp]= e= t; break; // LD E,RES 5,(IX+d) // LD E,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, t); mem[mp]= h= t; break; // LD H,RES 5,(IX+d) // LD H,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, t); mem[mp]= l= t; break; // LD L,RES 5,(IX+d) // LD L,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RES(223, t); mem[mp]= t; break; // RES 5,(IX+d) // RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, t); mem[mp]= a= t; break; // LD A,RES 5,(IX+d) // LD A,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, t); mem[mp]= b= t; break; // LD B,RES 6,(IX+d) // LD B,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, t); mem[mp]= c= t; break; // LD C,RES 6,(IX+d) // LD C,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, t); mem[mp]= d= t; break; // LD D,RES 6,(IX+d) // LD D,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, t); mem[mp]= e= t; break; // LD E,RES 6,(IX+d) // LD E,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, t); mem[mp]= h= t; break; // LD H,RES 6,(IX+d) // LD H,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, t); mem[mp]= l= t; break; // LD L,RES 6,(IX+d) // LD L,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RES(191, t); mem[mp]= t; break; // RES 6,(IX+d) // RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, t); mem[mp]= a= t; break; // LD A,RES 6,(IX+d) // LD A,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, t); mem[mp]= b= t; break; // LD B,RES 7,(IX+d) // LD B,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, t); mem[mp]= c= t; break; // LD C,RES 7,(IX+d) // LD C,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, t); mem[mp]= d= t; break; // LD D,RES 7,(IX+d) // LD D,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, t); mem[mp]= e= t; break; // LD E,RES 7,(IX+d) // LD E,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, t); mem[mp]= h= t; break; // LD H,RES 7,(IX+d) // LD H,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, t); mem[mp]= l= t; break; // LD L,RES 7,(IX+d) // LD L,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RES(127, t); mem[mp]= t; break; // RES 7,(IX+d) // RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, t); mem[mp]= a= t; break; // LD A,RES 7,(IX+d) // LD A,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, t); mem[mp]= b= t; break; // LD B,SET 0,(IX+d) // LD B,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, t); mem[mp]= c= t; break; // LD C,SET 0,(IX+d) // LD C,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, t); mem[mp]= d= t; break; // LD D,SET 0,(IX+d) // LD D,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, t); mem[mp]= e= t; break; // LD E,SET 0,(IX+d) // LD E,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, t); mem[mp]= h= t; break; // LD H,SET 0,(IX+d) // LD H,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, t); mem[mp]= l= t; break; // LD L,SET 0,(IX+d) // LD L,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SET(1, t); mem[mp]= t; break; // SET 0,(IX+d) // SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, t); mem[mp]= a= t; break; // LD A,SET 0,(IX+d) // LD A,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, t); mem[mp]= b= t; break; // LD B,SET 1,(IX+d) // LD B,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, t); mem[mp]= c= t; break; // LD C,SET 1,(IX+d) // LD C,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, t); mem[mp]= d= t; break; // LD D,SET 1,(IX+d) // LD D,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, t); mem[mp]= e= t; break; // LD E,SET 1,(IX+d) // LD E,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, t); mem[mp]= h= t; break; // LD H,SET 1,(IX+d) // LD H,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, t); mem[mp]= l= t; break; // LD L,SET 1,(IX+d) // LD L,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SET(2, t); mem[mp]= t; break; // SET 1,(IX+d) // SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, t); mem[mp]= a= t; break; // LD A,SET 1,(IX+d) // LD A,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, t); mem[mp]= b= t; break; // LD B,SET 2,(IX+d) // LD B,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, t); mem[mp]= c= t; break; // LD C,SET 2,(IX+d) // LD C,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, t); mem[mp]= d= t; break; // LD D,SET 2,(IX+d) // LD D,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, t); mem[mp]= e= t; break; // LD E,SET 2,(IX+d) // LD E,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, t); mem[mp]= h= t; break; // LD H,SET 2,(IX+d) // LD H,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, t); mem[mp]= l= t; break; // LD L,SET 2,(IX+d) // LD L,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SET(4, t); mem[mp]= t; break; // SET 2,(IX+d) // SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, t); mem[mp]= a= t; break; // LD A,SET 2,(IX+d) // LD A,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, t); mem[mp]= b= t; break; // LD B,SET 3,(IX+d) // LD B,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, t); mem[mp]= c= t; break; // LD C,SET 3,(IX+d) // LD C,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, t); mem[mp]= d= t; break; // LD D,SET 3,(IX+d) // LD D,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, t); mem[mp]= e= t; break; // LD E,SET 3,(IX+d) // LD E,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, t); mem[mp]= h= t; break; // LD H,SET 3,(IX+d) // LD H,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, t); mem[mp]= l= t; break; // LD L,SET 3,(IX+d) // LD L,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SET(8, t); mem[mp]= t; break; // SET 3,(IX+d) // SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, t); mem[mp]= a= t; break; // LD A,SET 3,(IX+d) // LD A,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, t); mem[mp]= b= t; break; // LD B,SET 4,(IX+d) // LD B,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, t); mem[mp]= c= t; break; // LD C,SET 4,(IX+d) // LD C,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, t); mem[mp]= d= t; break; // LD D,SET 4,(IX+d) // LD D,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, t); mem[mp]= e= t; break; // LD E,SET 4,(IX+d) // LD E,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, t); mem[mp]= h= t; break; // LD H,SET 4,(IX+d) // LD H,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, t); mem[mp]= l= t; break; // LD L,SET 4,(IX+d) // LD L,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SET(16, t); mem[mp]= t; break; // SET 4,(IX+d) // SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, t); mem[mp]= a= t; break; // LD A,SET 4,(IX+d) // LD A,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, t); mem[mp]= b= t; break; // LD B,SET 5,(IX+d) // LD B,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, t); mem[mp]= c= t; break; // LD C,SET 5,(IX+d) // LD C,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, t); mem[mp]= d= t; break; // LD D,SET 5,(IX+d) // LD D,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, t); mem[mp]= e= t; break; // LD E,SET 5,(IX+d) // LD E,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, t); mem[mp]= h= t; break; // LD H,SET 5,(IX+d) // LD H,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, t); mem[mp]= l= t; break; // LD L,SET 5,(IX+d) // LD L,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SET(32, t); mem[mp]= t; break; // SET 5,(IX+d) // SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, t); mem[mp]= a= t; break; // LD A,SET 5,(IX+d) // LD A,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, t); mem[mp]= b= t; break; // LD B,SET 6,(IX+d) // LD B,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, t); mem[mp]= c= t; break; // LD C,SET 6,(IX+d) // LD C,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, t); mem[mp]= d= t; break; // LD D,SET 6,(IX+d) // LD D,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, t); mem[mp]= e= t; break; // LD E,SET 6,(IX+d) // LD E,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, t); mem[mp]= h= t; break; // LD H,SET 6,(IX+d) // LD H,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, t); mem[mp]= l= t; break; // LD L,SET 6,(IX+d) // LD L,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SET(64, t); mem[mp]= t; break; // SET 6,(IX+d) // SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, t); mem[mp]= a= t; break; // LD A,SET 6,(IX+d) // LD A,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, t); mem[mp]= b= t; break; // LD B,SET 7,(IX+d) // LD B,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, t); mem[mp]= c= t; break; // LD C,SET 7,(IX+d) // LD C,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, t); mem[mp]= d= t; break; // LD D,SET 7,(IX+d) // LD D,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, t); mem[mp]= e= t; break; // LD E,SET 7,(IX+d) // LD E,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, t); mem[mp]= h= t; break; // LD H,SET 7,(IX+d) // LD H,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, t); mem[mp]= l= t; break; // LD L,SET 7,(IX+d) // LD L,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SET(128, t); mem[mp]= t; break; // SET 7,(IX+d) // SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, t); mem[mp]= a= t; break; // LD A,SET 7,(IX+d) // LD A,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ } ~ ih=1;break; ~~~~~~~~~~~ case 0xed: // OP ED ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: case 0x01: case 0x02: case 0x03: // NOP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: case 0x05: case 0x06: case 0x07: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: case 0x09: case 0x0a: case 0x0b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: case 0x0d: case 0x0e: case 0x0f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: case 0x11: case 0x12: case 0x13: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: case 0x15: case 0x16: case 0x17: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: case 0x19: case 0x1a: case 0x1b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: case 0x1d: case 0x1e: case 0x1f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: case 0x21: case 0x22: case 0x23: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: case 0x25: case 0x26: case 0x27: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: case 0x29: case 0x2a: case 0x2b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: case 0x2d: case 0x2e: case 0x2f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: case 0x31: case 0x32: case 0x33: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: case 0x35: case 0x36: case 0x37: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: case 0x39: case 0x3a: case 0x3b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: case 0x3d: case 0x3e: case 0x3f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~ case 0x80: case 0x81: case 0x82: case 0x83: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: case 0x85: case 0x86: case 0x87: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: case 0x89: case 0x8a: case 0x8b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: case 0x8d: case 0x8e: case 0x8f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: case 0x91: case 0x92: case 0x93: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: case 0x95: case 0x96: case 0x97: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: case 0x99: case 0x9a: case 0x9b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: case 0x9d: case 0x9e: case 0x9f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: case 0xa5: case 0xa6: case 0xa7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: case 0xad: case 0xae: case 0xaf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: case 0xb5: case 0xb6: case 0xb7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: case 0xbd: case 0xbe: case 0xbf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: case 0xc1: case 0xc2: case 0xc3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: case 0xc5: case 0xc6: case 0xc7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: case 0xc9: case 0xca: case 0xcb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: case 0xcd: case 0xce: case 0xcf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: case 0xd1: case 0xd2: case 0xd3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: case 0xd5: case 0xd6: case 0xd7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: case 0xd9: case 0xda: case 0xdb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: case 0xdd: case 0xde: case 0xdf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: case 0xe1: case 0xe2: case 0xe3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: case 0xe5: case 0xe6: case 0xe7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: case 0xe9: case 0xea: case 0xeb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: case 0xed: case 0xee: case 0xef: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: case 0xf1: case 0xf2: case 0xf3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: case 0xf5: case 0xf6: case 0xf7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: case 0xf9: case 0xfa: case 0xfb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: case 0xfd: case 0xfe: case 0xff: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 8; break; ~~~~~~~~~~~~~~ case 0x40: INR(b); break; // IN B,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: INR(c); break; // IN C,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: INR(d); break; // IN D,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: INR(e); break; // IN E,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: INR(h); break; // IN H,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: INR(l); break; // IN L,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: INR(t); break; // IN X,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: INR(a); break; // IN A,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: OUTR(b); break; // OUT (C),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: OUTR(c); break; // OUT (C),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: OUTR(d); break; // OUT (C),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: OUTR(e); break; // OUT (C),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: OUTR(h); break; // OUT (C),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: OUTR(l); break; // OUT (C),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: OUTR(0); break; // OUT (C),X ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: OUTR(a); break; // OUT (C),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: SBCHLRR(b, c); break; // SBC HL,BC ~~~~~~~~~~~~~~~~~~~~ ticks.c:2613:22: note: in expansion of macro 'SBCHLRR' case 0x42: SBCHLRR(b, c); break; // SBC HL,BC ^~~~~~~ ticks.c:366:20: warning: suggest parentheses around '-' inside '<<' [-Wparentheses] v= l-b+(h-a<<8)-(ff>>8&1),\ ~^~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= ~a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ #define ADCHLRR(a, b) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 15, \ ~~~~~~~~~~~~~~~~~~~~~~~ v= l+b+(h+a<<8)+(ff>>8&1),\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ FILE * ft; ~~~~~~~~~~ unsigned char * tapbuf; ~~~~~~~~~~~~~~~~~~~~~~~ int v ~~~~~~~~~ , wavpos= 0 ~~~~~~~~~~~ , wavlen= 0 ~~~~~~~~~~~ , mues ~~~~~~ ; ~ unsigned short ~~~~~~~~~~~~~~ pc= 0 ~~~~~ , sp= 0 ~~~~~~~ , mp= 0 ~~~~~~~ , t= 0 ~~~~~~ , u= 0 ~~~~~~ , ff= 0 ~~~~~~~ , ff_= 0 ~~~~~~~~ , fa= 0 ~~~~~~~ , fa_= 0 ~~~~~~~~ , fb= 0 ~~~~~~~ , fb_= 0 ~~~~~~~~ , fr= 0 ~~~~~~~ , fr_= 0 ~~~~~~~~ ; ~ long long ~~~~~~~~~ st= 0 ~~~~~ , sttap ~~~~~~~ , stint ~~~~~~~ , counter= 1e8 ~~~~~~~~~~~~~~ ; ~ unsigned char ~~~~~~~~~~~~~ a= 0 ~~~~ , b= 0 ~~~~~~ , c= 0 ~~~~~~ , d= 0 ~~~~~~ , e= 0 ~~~~~~ , h= 0 ~~~~~~ , l= 0 ~~~~~~ , a_= 0 ~~~~~~~ , b_= 0 ~~~~~~~ , c_= 0 ~~~~~~~ , d_= 0 ~~~~~~~ , e_= 0 ~~~~~~~ , h_= 0 ~~~~~~~ , l_= 0 ~~~~~~~ , xl= 0 ~~~~~~~ , xh= 0 ~~~~~~~ , yl= 0 ~~~~~~~ , yh= 0 ~~~~~~~ , i= 0 ~~~~~~ , r= 0 ~~~~~~ , r7= 0 ~~~~~~~ , ih= 1 ~~~~~~~ , iy= 0 ~~~~~~~ , iff= 0 ~~~~~~~~ , im= 0 ~~~~~~~ , w= 0 ~~~~~~ , ear= 255 ~~~~~~~~~~ , halted= 0 ~~~~~~~~~~~ ; ~ long tapcycles(void){ ~~~~~~~~~~~~~~~~~~~~~ mues= 1; ~~~~~~~~ wavpos!=0x20000 && (ear^= 64); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavpos>0x1f000 ) ~~~~~~~~~~~~~~~~~~~~ fseek( ft, wavpos-0x20000, SEEK_CUR ), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen-= wavpos, ~~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while( (tapbuf[++wavpos]^ear<<1)&0x80 && wavpos<0x20000 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mues+= 81; // correct value must be 79.365, adjusted to simulate contention in Alkatraz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavlen<=wavpos ) ~~~~~~~~~~~~~~~~~~~~ return 0; ~~~~~~~~~ else ~~~~ return mues; ~~~~~~~~~~~~ } ~ int in(int port){ ~~~~~~~~~~~~~~~~~ return port&1 ? 255 : ear; ~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void out(int port, int value){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ return; ~~~~~~~ } ~ int f(void){ ~~~~~~~~~~~~ return ff & 168 ~~~~~~~~~~~~~~~~ | ff >> 8 & 1 ~~~~~~~~~~~~~ | !fr << 6 ~~~~~~~~~~ | fb >> 8 & 2 ~~~~~~~~~~~~~ | (fr ^ fa ^ fb ^ fb >> 8) & 16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | (fa & -256 ~~~~~~~~~~~~ ? 154020 >> ((fr ^ fr >> 4) & 15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ((fr ^ fa) & (fr ^ fb)) >> 5) & 4; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void setf(int a){ ~~~~~~~~~~~~~~~~~ fr= ~a & 64; ~~~~~~~~~~~~ ff= a|= a<<8; ~~~~~~~~~~~~~ fa= 255 & (fb= a & -129 | (a&4)<<5); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ int main (int argc, char **argv){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unsigned char * mem= (unsigned char *) malloc (0x10000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int size= 0, start= 0, end= 0, intr= 0, tap= 0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char * output= NULL; ~~~~~~~~~~~~~~~~~~~~ FILE * fh; ~~~~~~~~~~ tapbuf= (unsigned char *) malloc (0x20000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( argc==1 ) ~~~~~~~~~~~~~ printf("Ticks v0.14c beta, a silent Z80 emulator by Antonio Villena, 10 Jan 2013\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" ticks [-pc X] [-start X] [-end X] [-counter X] [-output ]\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" File between 1 and 65536 bytes with Z80 machine code\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -tape emulates ZX tape in port $FE from a .WAV file\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -pc X X in hexadecimal is the initial PC value\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -start X X in hexadecimal is the PC condition to start the counter\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -end X X in hexadecimal is the PC condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -counter X X in decimal is another condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -int X X in decimal are number of cycles for periodic interrupts\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -output dumps the RAM content to a 64K file\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" Default values for -pc, -start and -end are 0000 if ommited. When the program "), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("exits, it'll show the number of cycles between start and end trigger in decimal\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(0); ~~~~~~~~ while (argc > 1){ ~~~~~~~~~~~~~~~~~ if( argv[1][0] == '-' && argv[2] ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch (argc--, argv++[1][1]){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 'p': ~~~~~~~~~ pc= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 's': ~~~~~~~~~ start= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'e': ~~~~~~~~~ end= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'i': ~~~~~~~~~ intr= strtol(argv[1], NULL, 10); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'c': ~~~~~~~~~ sscanf(argv[1], "%llu", &counter); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ counter<0 && (counter= 9e18); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'o': ~~~~~~~~~ output= argv[1]; ~~~~~~~~~~~~~~~~ break; ~~~~~~ case 't': ~~~~~~~~~ ft= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !ft ) ~~~~~~~~~ printf("\nTape file not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memcpy(&wavlen, tapbuf+4, 4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen+= 8; ~~~~~~~~~~~ if( *(int*) tapbuf != 0x46464952 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid WAV header\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+16) != 16 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid subchunk size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+20) != 0x10001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid number of channels or compression (only Mono and PCM allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+24) != 44100 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid sample rate (only 44100Hz allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+32) != 0x80001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid align or bits per sample (only 8-bits samples allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+40)+44 != wavlen ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid header size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ wavpos= 44; ~~~~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ printf("\nWrong Argument: %s\n", argv[0]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ } ~ else{ ~~~~~ fh= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fh ) ~~~~~~~~~ printf("\nFile not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fseek(fh, 0, SEEK_END); ~~~~~~~~~~~~~~~~~~~~~~~ size= ftell(fh); ~~~~~~~~~~~~~~~~ rewind(fh); ~~~~~~~~~~~ if( size>65536 && size!=65574 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nIncorrect length: %d\n", size), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ else if( !strcasecmp(strchr(argv[1], '.'), ".sna" ) && size==49179 ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILE *fk= fopen("48.rom", "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fk ) ~~~~~~~~~ printf("\nZX Spectrum ROM file not found: 48.rom\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(mem, 1, 16384, fk); ~~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fk); ~~~~~~~~~~~ fread(&i, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ ff_= ff; ~~~~~~~~ fr_= fr; ~~~~~~~~ fa_= fa; ~~~~~~~~ fb_= fb; ~~~~~~~~ fread(&a_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&e, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~ iff>>= 2; ~~~~~~~~~ fread(&r, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ r7= r; ~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ fread(&a, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(mem+0x4000, 1, 0xc000, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RET(0); ~~~~~~~ } ~ else if( size==65574 ) ~~~~~~~~~~~~~~~~~~~~~~ fread(mem, 1, 65536, fh), ~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ u= w, ~~~~~ fread(&a, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&pc, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&i, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&r, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ r7= r, ~~~~~~ fread(&e, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ setf(w), ~~~~~~~~ ff_= ff, ~~~~~~~~ fr_= fr, ~~~~~~~~ fa_= fa, ~~~~~~~~ fb_= fb, ~~~~~~~~ setf(u), ~~~~~~~~ fread(&a_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&mp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ else ~~~~ fread(mem, 1, size, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ } ~ ++argv; ~~~~~~~ --argc; ~~~~~~~ } ~ if( size==65574 ){ ~~~~~~~~~~~~~~~~~~ fread(&wavpos, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~ ear= wavpos<<6 | 191; ~~~~~~~~~~~~~~~~~~~~~ wavpos>>= 1; ~~~~~~~~~~~~ if( wavpos && ft ) ~~~~~~~~~~~~~~~~~~ fseek(ft, wavlen-wavpos, SEEK_SET), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen= wavpos, ~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&sttap, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ tap= sttap; ~~~~~~~~~~~ } ~ else ~~~~ sttap= tap= tapcycles(); ~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fh); ~~~~~~~~~~~ if( !size ) ~~~~~~~~~~~ printf("File not specified or zero length\n"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= intr; ~~~~~~~~~~~~ do{ ~~~ if( pc==start ) ~~~~~~~~~~~~~~~ st= 0, ~~~~~~ stint= intr, ~~~~~~~~~~~~ sttap= tap; ~~~~~~~~~~~ if( intr && st>stint && ih ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= st+intr; ~~~~~~~~~~~~~~~ if( iff ){ ~~~~~~~~~~ halted && (pc++, halted= 0); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ iff= 0; ~~~~~~~ mem[--sp]= pc>>8; ~~~~~~~~~~~~~~~~~ mem[--sp]= pc; ~~~~~~~~~~~~~~ r++; ~~~~ switch( im ){ ~~~~~~~~~~~~~ case 1: ~~~~~~~ st++; ~~~~~ case 0: ~~~~~~~ pc= 56; ~~~~~~~ st+= 12; ~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ pc= mem[t= 255 | i << 8]; ~~~~~~~~~~~~~~~~~~~~~~~~~ pc|= mem[++t] << 8; ~~~~~~~~~~~~~~~~~~~ st+= 19; ~~~~~~~~ } ~ } ~ } ~ if( tap && st>sttap ) ~~~~~~~~~~~~~~~~~~~~~ sttap= st+( tap= tapcycles() ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ r++; ~~~~ // printf("pc=%04X, [pc]=%02X, bc=%04X, de=%04X, hl=%04X, af=%04X, ix=%04X, iy=%04X\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // pc, mem[pc], c|b<<8, e|d<<8, l|h<<8, f()|a<<8, xl|xh<<8, yl|yh<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: // NOP ~~~~~~~~~~~~~~~~~ case 0x40: // LD B,B ~~~~~~~~~~~~~~~~~~~~ case 0x49: // LD C,C ~~~~~~~~~~~~~~~~~~~~ case 0x52: // LD D,D ~~~~~~~~~~~~~~~~~~~~ case 0x5b: // LD E,E ~~~~~~~~~~~~~~~~~~~~ case 0x64: // LD H,H ~~~~~~~~~~~~~~~~~~~~ case 0x6d: // LD L,L ~~~~~~~~~~~~~~~~~~~~ case 0x7f: // LD A,A ~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x76: // HALT ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ halted= 1; ~~~~~~~~~~ pc--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x01: // LD BC,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(b, c); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x11: // LD DE,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(d, e); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x21: // LD HL,nn // LD IX,nn // LD IY,nn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRIM(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRIM(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ LDRRIM(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x31: // LD SP,nn ~~~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ sp= mem[pc++]; ~~~~~~~~~~~~~~ sp|= mem[pc++]<<8; ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x02: // LD (BC),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x12: // LD (DE),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0a: // LD A,(BC) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1a: // LD A,(DE) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x22: // LD (nn),HL // LD (nn),IX // LD (nn),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPNNRR(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPNNRR(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDPNNRR(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x32: // LD (nn),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ t= mem[pc++]; ~~~~~~~~~~~~~ mem[t|= mem[pc++]<<8]= a; ~~~~~~~~~~~~~~~~~~~~~~~~~ mp= t+1 & 255 ~~~~~~~~~~~~~ | a<<8; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2a: // LD HL,(nn) // LD IX,(nn) // LD IY,(nn) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRPNN(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRPNN(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDRRPNN(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3a: // LD A,(nn) ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ mp= mem[pc++]; ~~~~~~~~~~~~~~ a= mem[mp|= mem[pc++]<<8]; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x03: // INC BC ~~~~~~~~~~~~~~~~~~~~ INCW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x13: // INC DE ~~~~~~~~~~~~~~~~~~~~ INCW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x23: // INC HL // INC IX // INC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INCW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ INCW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x33: // INC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0b: // DEC BC ~~~~~~~~~~~~~~~~~~~~ DECW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1b: // DEC DE ~~~~~~~~~~~~~~~~~~~~ DECW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2b: // DEC HL // DEC IX // DEC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DECW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ DECW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3b: // DEC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x04: // INC B ~~~~~~~~~~~~~~~~~~~ INC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x0c: // INC C ~~~~~~~~~~~~~~~~~~~ INC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x14: // INC D ~~~~~~~~~~~~~~~~~~~ INC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1c: // INC E ~~~~~~~~~~~~~~~~~~~ INC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x24: // INC H // INC IXh // INC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yh); ~~~~~~~~ else ~~~~ INC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2c: // INC L // INC IXl // INC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yl); ~~~~~~~~ else ~~~~ INC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x34: // INC (HL) // INC (IX+d) // INC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ INCPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3c: // INC A ~~~~~~~~~~~~~~~~~~~ INC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x05: // DEC B ~~~~~~~~~~~~~~~~~~~ DEC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0d: // DEC C ~~~~~~~~~~~~~~~~~~~ DEC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x15: // DEC D ~~~~~~~~~~~~~~~~~~~ DEC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1d: // DEC E ~~~~~~~~~~~~~~~~~~~ DEC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x25: // DEC H // DEC IXh // DEC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yh); ~~~~~~~~ else ~~~~ DEC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2d: // DEC L // DEC IXl // DEC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yl); ~~~~~~~~ else ~~~~ DEC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x35: // DEC (HL) // DEC (IX+d) // DEC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=-1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ DECPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3d: // DEC A ~~~~~~~~~~~~~~~~~~~ DEC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x06: // LD B,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(b); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0e: // LD C,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(c); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x16: // LD D,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(d); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1e: // LD E,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(e); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x26: // LD H,n // LD IXh,n // LD IYh,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(h); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yh); ~~~~~~~~~~ else ~~~~ LDRIM(xh); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2e: // LD L,n // LD IXl,n // LD IYl,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(l); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yl); ~~~~~~~~~~ else ~~~~ LDRIM(xl); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x36: // LD (HL),n // LD (IX+d),n // LD (IY+d),n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 10, ~~~~~~~~ mem[l|h<<8]= mem[pc++]; ~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPIN(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ LDPIN(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3e: // LD A,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(a); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x07: // RLCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a*257>>7; ~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0f: // RRCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a>>1 ~~~~~~~~~~ | ((a&1)+1^1)<<7; ~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x17: // RLA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a<<1 ~~~~~~~~~~ | ff>>8 & 1; ~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb & 128 ~~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1f: // RRA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= (a*513 | ff&256)>>1; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x09: // ADD HL,BC // ADD IX,BC // ADD IY,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, b, c); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x19: // ADD HL,DE // ADD IX,DE // ADD IY,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, d, e); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x29: // ADD HL,HL // ADD IX,IX // ADD IY,IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, h, l); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, yh, yl); ~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, xh, xl); ~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x39: // ADD HL,SP // ADD IX,SP // ADD IY,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDISP(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDISP(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ ADDISP(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x18: // JR ~~~~~~~~~~~~~~~~ st+= 12; ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x20: // JR NZ,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x28: // JR Z,s8 ~~~~~~~~~~~~~~~~~~~~~ JRC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x30: // JR NC,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x38: // JR C,s8 ~~~~~~~~~~~~~~~~~~~~~ JRCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x08: // EX AF,AF' ~~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = a_; ~~~~~~~~~ a_ = a; ~~~~~~~~ a = t; ~~~~~~~~ t = ff_; ~~~~~~~~~~ ff_= ff; ~~~~~~~~~ ff = t; ~~~~~~~~ t = fr_; ~~~~~~~~~~ fr_= fr; ~~~~~~~~~ fr = t; ~~~~~~~~ t = fa_; ~~~~~~~~~~ fa_= fa; ~~~~~~~~~ fa = t; ~~~~~~~~ t = fb_; ~~~~~~~~~~ fb_= fb; ~~~~~~~~~ fb = t; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x10: // DJNZ ~~~~~~~~~~~~~~~~~~ if( --b ) ~~~~~~~~~ st+= 13, ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ st+= 8, ~~~~~~~ pc++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x27: // DAA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= (fr^fa^fb^fb>>8) & 16; ~~~~~~~~~~~~~~~~~~~~~~~~~ u= 0; ~~~~~ (a | ff&256)>153 && (u= 352); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (a&15 | t)>9 && (u+= 6); ~~~~~~~~~~~~~~~~~~~~~~~~ fa= a|256; ~~~~~~~~~~ if( fb&512 ) ~~~~~~~~~~~~ a-= u, ~~~~~~ fb= ~u; ~~~~~~~ else ~~~~ a+= fb= u; ~~~~~~~~~~ ff= (fr= a) ~~~~~~~~~~~ | u&256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2f: // CPL ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ff= ff &-41 ~~~~~~~~~~~~~~~~ | (a^=255)& 40; ~~~~~~~~~~~~~~~ fb|= -129; ~~~~~~~~~~ fa= fa & -17 ~~~~~~~~~~~~~ | ~fr & 16; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x37: // SCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fr^fa) & 16; ~~~~~~~~~~~~~~~ ff= 256 ~~~~~~~ | ff &128 ~~~~~~~~~~ | a & 40; ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3f: // CCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~~~~~~~ | (ff>>4^fr^fa) & 16; ~~~~~~~~~~~~~~~~~~~~~ ff= ~ff & 256 ~~~~~~~~~~~~~ | ff & 128 ~~~~~~~~~~~ | a & 40; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x41: // LD B,C ~~~~~~~~~~~~~~~~~~~~ LDRR(b, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x42: // LD B,D ~~~~~~~~~~~~~~~~~~~~ LDRR(b, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x43: // LD B,E ~~~~~~~~~~~~~~~~~~~~ LDRR(b, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x44: // LD B,H // LD B,IXh // LD B,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x45: // LD B,L // LD B,IXl // LD B,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x46: // LD B,(HL) // LD B,(IX+d) // LD B,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x47: // LD B,A ~~~~~~~~~~~~~~~~~~~~ LDRR(b, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x48: // LD C,B ~~~~~~~~~~~~~~~~~~~~ LDRR(c, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4a: // LD C,D ~~~~~~~~~~~~~~~~~~~~ LDRR(c, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4b: // LD C,E ~~~~~~~~~~~~~~~~~~~~ LDRR(c, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4c: // LD C,H // LD C,IXh // LD C,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4d: // LD C,L // LD C,IXl // LD C,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4e: // LD C,(HL) // LD C,(IX+d) // LD C,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4f: // LD C,A ~~~~~~~~~~~~~~~~~~~~ LDRR(c, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x50: // LD D,B ~~~~~~~~~~~~~~~~~~~~ LDRR(d, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x51: // LD D,C ~~~~~~~~~~~~~~~~~~~~ LDRR(d, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x53: // LD D,E ~~~~~~~~~~~~~~~~~~~~ LDRR(d, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x54: // LD D,H // LD D,IXh // LD D,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x55: // LD D,L // LD D,IXl // LD D,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x56: // LD D,(HL) // LD D,(IX+d) // LD D,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x57: // LD D,A ~~~~~~~~~~~~~~~~~~~~ LDRR(d, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x58: // LD E,B ~~~~~~~~~~~~~~~~~~~~ LDRR(e, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x59: // LD E,C ~~~~~~~~~~~~~~~~~~~~ LDRR(e, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5a: // LD E,D ~~~~~~~~~~~~~~~~~~~~ LDRR(e, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5c: // LD E,H // LD E,IXh // LD E,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5d: // LD E,L // LD E,IXl // LD E,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5e: // LD E,(HL) // LD E,(IX+d) // LD E,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5f: // LD E,A ~~~~~~~~~~~~~~~~~~~~ LDRR(e, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x60: // LD H,B // LD IXh,B // LD IYh,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x61: // LD H,C // LD IXh,C // LD IYh,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x62: // LD H,D // LD IXh,D // LD IYh,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x63: // LD H,E // LD IXh,E // LD IYh,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x65: // LD H,L // LD IXh,IXl // LD IYh,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, yl, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, xl, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x66: // LD H,(HL) // LD H,(IX+d) // LD H,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x67: // LD H,A // LD IXh,A // LD IYh,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x68: // LD L,B // LD IXl,B // LD IYl,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x69: // LD L,C // LD IXl,C // LD IYl,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6a: // LD L,D // LD IXl,D // LD IYl,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6b: // LD L,E // LD IXl,E // LD IYl,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6c: // LD L,H // LD IXl,IXh // LD IYl,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, yh, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, xh, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6e: // LD L,(HL) // LD L,(IX+d) // LD L,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6f: // LD L,A // LD IXl,A // LD IYl,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x70: // LD (HL),B // LD (IX+d),B // LD (IY+d),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x71: // LD (HL),C // LD (IX+d),C // LD (IY+d),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x72: // LD (HL),D // LD (IX+d),D // LD (IY+d),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x73: // LD (HL),E // LD (IX+d),E // LD (IY+d),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x74: // LD (HL),H // LD (IX+d),H // LD (IY+d),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x75: // LD (HL),L // LD (IX+d),L // LD (IY+d),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x77: // LD (HL),A // LD (IX+d),A // LD (IY+d),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x78: // LD A,B ~~~~~~~~~~~~~~~~~~~~ LDRR(a, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x79: // LD A,C ~~~~~~~~~~~~~~~~~~~~ LDRR(a, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7a: // LD A,D ~~~~~~~~~~~~~~~~~~~~ LDRR(a, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7b: // LD A,E ~~~~~~~~~~~~~~~~~~~~ LDRR(a, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7c: // LD A,H // LD A,IXh // LD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7d: // LD A,L // LD A,IXl // LD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7e: // LD A,(HL) // LD A,(IX+d) // LD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x80: // ADD A,B ~~~~~~~~~~~~~~~~~~~~~ ADD(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x81: // ADD A,C ~~~~~~~~~~~~~~~~~~~~~ ADD(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x82: // ADD A,D ~~~~~~~~~~~~~~~~~~~~~ ADD(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x83: // ADD A,E ~~~~~~~~~~~~~~~~~~~~~ ADD(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x84: // ADD A,H // ADD A,IXh // ADD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yh, 4); ~~~~~~~~~~~ else ~~~~ ADD(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x85: // ADD A,L // ADD A,IXl // ADD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yl, 4); ~~~~~~~~~~~ else ~~~~ ADD(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x86: // ADD A,(HL) // ADD A,(IX+d) // ADD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADD(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x87: // ADD A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x88: // ADC A,B ~~~~~~~~~~~~~~~~~~~~~ ADC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x89: // ADC A,C ~~~~~~~~~~~~~~~~~~~~~ ADC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8a: // ADC A,D ~~~~~~~~~~~~~~~~~~~~~ ADC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8b: // ADC A,E ~~~~~~~~~~~~~~~~~~~~~ ADC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8c: // ADC A,H // ADC A,IXh // ADC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yh, 4); ~~~~~~~~~~~ else ~~~~ ADC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8d: // ADC A,L // ADC A,IXl // ADC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yl, 4); ~~~~~~~~~~~ else ~~~~ ADC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8e: // ADC A,(HL) // ADC A,(IX+d) // ADC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8f: // ADC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)+(ff>>8&1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x90: // SUB B ~~~~~~~~~~~~~~~~~~~ SUB(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x91: // SUB C ~~~~~~~~~~~~~~~~~~~ SUB(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x92: // SUB D ~~~~~~~~~~~~~~~~~~~ SUB(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x93: // SUB E ~~~~~~~~~~~~~~~~~~~ SUB(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x94: // SUB H // SUB IXh // SUB IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yh, 4); ~~~~~~~~~~~ else ~~~~ SUB(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x95: // SUB L // SUB IXl // SUB IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yl, 4); ~~~~~~~~~~~ else ~~~~ SUB(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x96: // SUB (HL) // SUB (IX+d) // SUB (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SUB(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x97: // SUB A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= ff= 0; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x98: // SBC A,B ~~~~~~~~~~~~~~~~~~~~~ SBC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x99: // SBC A,C ~~~~~~~~~~~~~~~~~~~~~ SBC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9a: // SBC A,D ~~~~~~~~~~~~~~~~~~~~~ SBC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9b: // SBC A,E ~~~~~~~~~~~~~~~~~~~~~ SBC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9c: // SBC A,H // SBC A,IXh // SBC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yh, 4); ~~~~~~~~~~~ else ~~~~ SBC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9d: // SBC A,L // SBC A,IXl // SBC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yl, 4); ~~~~~~~~~~~ else ~~~~ SBC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9e: // SBC A,(HL) // SBC A,(IX+d) // SBC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SBC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9f: // SBC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= (ff= (ff&256)/-256); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa0: // AND B ~~~~~~~~~~~~~~~~~~~ AND(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa1: // AND C ~~~~~~~~~~~~~~~~~~~ AND(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa2: // AND D ~~~~~~~~~~~~~~~~~~~ AND(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa3: // AND E ~~~~~~~~~~~~~~~~~~~ AND(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa4: // AND H // AND IXh // AND IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yh, 4); ~~~~~~~~~~~ else ~~~~ AND(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa5: // AND L // AND IXl // AND IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yl, 4); ~~~~~~~~~~~ else ~~~~ AND(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa6: // AND (HL) // AND (IX+d) // AND (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ AND(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa7: // AND A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= ~(ff= fr= a); ~~~~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa8: // XOR B ~~~~~~~~~~~~~~~~~~~ XOR(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa9: // XOR C ~~~~~~~~~~~~~~~~~~~ XOR(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaa: // XOR D ~~~~~~~~~~~~~~~~~~~ XOR(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xab: // XOR E ~~~~~~~~~~~~~~~~~~~ XOR(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xac: // XOR H // XOR IXh // XOR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yh, 4); ~~~~~~~~~~~ else ~~~~ XOR(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xad: // XOR L // XOR IXl // XOR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yl, 4); ~~~~~~~~~~~ else ~~~~ XOR(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xae: // XOR (HL) // XOR (IX+d) // XOR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ XOR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaf: // XOR A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= ff= fr= fb= 0; ~~~~~~~~~~~~~~~~~ fa= 256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb0: // OR B ~~~~~~~~~~~~~~~~~~ OR(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb1: // OR C ~~~~~~~~~~~~~~~~~~ OR(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb2: // OR D ~~~~~~~~~~~~~~~~~~ OR(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb3: // OR E ~~~~~~~~~~~~~~~~~~ OR(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb4: // OR H // OR IXh // OR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yh, 4); ~~~~~~~~~~ else ~~~~ OR(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb5: // OR L // OR IXl // OR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yl, 4); ~~~~~~~~~~ else ~~~~ OR(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb6: // OR (HL) // OR (IX+d) // OR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ OR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb7: // OR A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= 256 ~~~~~~~ | (ff= fr= a); ~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb8: // CP B ~~~~~~~~~~~~~~~~~~ CP(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb9: // CP C ~~~~~~~~~~~~~~~~~~ CP(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xba: // CP D ~~~~~~~~~~~~~~~~~~ CP(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbb: // CP E ~~~~~~~~~~~~~~~~~~ CP(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbc: // CP H // CP IXh // CP IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yh, 4); ~~~~~~~~~~ else ~~~~ CP(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbd: // CP L // CP IXl // CP IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yl, 4); ~~~~~~~~~~ else ~~~~ CP(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbe: // CP (HL) // CP (IX+d) // CP (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ w= mem[l|h<<8], ~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ w= mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else ~~~~ w= mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbf: // CP A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= 0; ~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ ff= a&40; ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc9: // RET ~~~~~~~~~~~~~~~~~ RET(10); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc0: // RET NZ ~~~~~~~~~~~~~~~~~~~~ RETCI(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc8: // RET Z ~~~~~~~~~~~~~~~~~~~ RETC(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd0: // RET NC ~~~~~~~~~~~~~~~~~~~~ RETC(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd8: // RET C ~~~~~~~~~~~~~~~~~~~ RETCI(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe0: // RET PO ~~~~~~~~~~~~~~~~~~~~ RETC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe8: // RET PE ~~~~~~~~~~~~~~~~~~~~ RETCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf0: // RET P ~~~~~~~~~~~~~~~~~~~ RETC(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf8: // RET M ~~~~~~~~~~~~~~~~~~~ RETCI(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc1: // POP BC ~~~~~~~~~~~~~~~~~~~~ POP(b, c); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd1: // POP DE ~~~~~~~~~~~~~~~~~~~~ POP(d, e); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe1: // POP HL // POP IX // POP IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ POP(h, l); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ POP(yh, yl); ~~~~~~~~~~~~ else ~~~~ POP(xh, xl); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf1: // POP AF ~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ setf(mem[sp++]); ~~~~~~~~~~~~~~~~ a= mem[sp++]; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc5: // PUSH BC ~~~~~~~~~~~~~~~~~~~~~ PUSH(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd5: // PUSH DE ~~~~~~~~~~~~~~~~~~~~~ PUSH(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe5: // PUSH HL // PUSH IX // PUSH IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ PUSH(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ PUSH(yh, yl); ~~~~~~~~~~~~~ else ~~~~ PUSH(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf5: // PUSH AF ~~~~~~~~~~~~~~~~~~~~~ PUSH(a, f()); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc3: // JP nn ~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc2: // JP NZ ~~~~~~~~~~~~~~~~~~~ JPCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xca: // JP Z ~~~~~~~~~~~~~~~~~~ JPC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd2: // JP NC ~~~~~~~~~~~~~~~~~~~ JPC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xda: // JP C ~~~~~~~~~~~~~~~~~~ JPCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe2: // JP PO ~~~~~~~~~~~~~~~~~~~ JPC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xea: // JP PE ~~~~~~~~~~~~~~~~~~~ JPCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf2: // JP P ~~~~~~~~~~~~~~~~~~ JPC(ff&128); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfa: // JP M ~~~~~~~~~~~~~~~~~~ JPCI(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcd: // CALL nn ~~~~~~~~~~~~~~~~~~~~~ st+= 17; ~~~~~~~~ t= pc+2; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mem[--sp]= t>>8; ~~~~~~~~~~~~~~~~ mem[--sp]= t; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc4: // CALL NZ ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fr); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcc: // CALL Z ~~~~~~~~~~~~~~~~~~~~ CALLC(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd4: // CALL NC ~~~~~~~~~~~~~~~~~~~~~ CALLC(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdc: // CALL C ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&256); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe4: // CALL PO ~~~~~~~~~~~~~~~~~~~~~ CALLC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xec: // CALL PE ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf4: // CALL P ~~~~~~~~~~~~~~~~~~~~ CALLC(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfc: // CALL M ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&128); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc6: // ADD A,n ~~~~~~~~~~~~~~~~~~~~~ ADD(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xce: // ADC A,n ~~~~~~~~~~~~~~~~~~~~~ ADC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd6: // SUB n ~~~~~~~~~~~~~~~~~~~ SUB(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xde: // SBC A,n ~~~~~~~~~~~~~~~~~~~~~ SBC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe6: // AND n ~~~~~~~~~~~~~~~~~~~ AND(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xee: // XOR A,n ~~~~~~~~~~~~~~~~~~~~~ XOR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf6: // OR n ~~~~~~~~~~~~~~~~~~ OR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfe: // CP A,n ~~~~~~~~~~~~~~~~~~~~ w= mem[pc++]; ~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc7: // RST 0x00 ~~~~~~~~~~~~~~~~~~~~~~ RST(0); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcf: // RST 0x08 ~~~~~~~~~~~~~~~~~~~~~~ RST(8); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd7: // RST 0x10 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x10); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdf: // RST 0x18 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x18); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe7: // RST 0x20 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x20); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xef: // RST 0x28 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x28); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf7: // RST 0x30 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x30); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xff: // RST 0x38 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x38); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd3: // OUT (n),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ out(mp= mem[pc++] | a<<8, a); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= mp&65280 ~~~~~~~~~~~~ | ++mp; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdb: // IN A,(n) ~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ a= in(mp= mem[pc++] | a<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf3: // DI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 0; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfb: // EI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 1; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xeb: // EX DE,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= d; ~~~~~ d= h; ~~~~~ h= t; ~~~~~ t= e; ~~~~~ e= l; ~~~~~ l= t; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd9: // EXX ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = b; ~~~~~~ b = b_; ~~~~~~~ b_= t; ~~~~~~ t = c; ~~~~~~ c = c_; ~~~~~~~ c_= t; ~~~~~~ t = d; ~~~~~~ d = d_; ~~~~~~~ d_= t; ~~~~~~ t = e; ~~~~~~ e = e_; ~~~~~~~ e_= t; ~~~~~~ t = h; ~~~~~~ h = h_; ~~~~~~~ h_= t; ~~~~~~ t = l; ~~~~~~ l = l_; ~~~~~~~ l_= t; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe3: // EX (SP),HL // EX (SP),IX // EX (SP),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ EXSPI(h, l); ~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ EXSPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ EXSPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe9: // JP (HL) ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ pc= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ pc= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ pc= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf9: // LD SP,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ sp= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ sp= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ sp= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdd: // OP DD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= iy= 0; ~~~~~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xfd: // OP FD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= 0; ~~~~~~ iy= 1; ~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xcb: // OP CB ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ if( ih ) ~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(b); break; // RLC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(c); break; // RLC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(d); break; // RLC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(e); break; // RLC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(h); break; // RLC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(l); break; // RLC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: st+= 7; // RLC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RLC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x07: RLC(a); break; // RLC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(b); break; // RRC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(c); break; // RRC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(d); break; // RRC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(e); break; // RRC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(h); break; // RRC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(l); break; // RRC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: st+= 7; // RRC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RRC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x0f: RRC(a); break; // RRC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(b); break; // RL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(c); break; // RL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(d); break; // RL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(e); break; // RL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(h); break; // RL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(l); break; // RL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: st+= 7; // RL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RL(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x17: RL(a); break; // RL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(b); break; // RR B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(c); break; // RR C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(d); break; // RR D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(e); break; // RR E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(h); break; // RR H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(l); break; // RR L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: st+= 7; // RR (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RR(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x1f: RR(a); break; // RR A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(b); break; // SLA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(c); break; // SLA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(d); break; // SLA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(e); break; // SLA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(h); break; // SLA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(l); break; // SLA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: st+= 7; // SLA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x27: SLA(a); break; // SLA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(b); break; // SRA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(c); break; // SRA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(d); break; // SRA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(e); break; // SRA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(h); break; // SRA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(l); break; // SRA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: st+= 7; // SRA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x2f: SRA(a); break; // SRA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(b); break; // SLL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(c); break; // SLL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(d); break; // SLL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(e); break; // SLL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(h); break; // SLL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(l); break; // SLL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: st+= 7; // SLL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x37: SLL(a); break; // SLL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(b); break; // SRL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(c); break; // SRL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(d); break; // SRL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(e); break; // SRL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(h); break; // SRL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(l); break; // SRL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: st+= 7; // SRL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x3f: SRL(a); break; // SRL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: BIT(1, b); break; // BIT 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: BIT(1, c); break; // BIT 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: BIT(1, d); break; // BIT 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x43: BIT(1, e); break; // BIT 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: BIT(1, h); break; // BIT 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x45: BIT(1, l); break; // BIT 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x46: BITHL(1); break; // BIT 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x47: BIT(1, a); break; // BIT 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: BIT(2, b); break; // BIT 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: BIT(2, c); break; // BIT 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4a: BIT(2, d); break; // BIT 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4b: BIT(2, e); break; // BIT 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: BIT(2, h); break; // BIT 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4d: BIT(2, l); break; // BIT 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4e: BITHL(2); break; // BIT 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4f: BIT(2, a); break; // BIT 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: BIT(4, b); break; // BIT 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: BIT(4, c); break; // BIT 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: BIT(4, d); break; // BIT 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x53: BIT(4, e); break; // BIT 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: BIT(4, h); break; // BIT 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x55: BIT(4, l); break; // BIT 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x56: BITHL(4); break; // BIT 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x57: BIT(4, a); break; // BIT 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: BIT(8, b); break; // BIT 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: BIT(8, c); break; // BIT 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: BIT(8, d); break; // BIT 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5b: BIT(8, e); break; // BIT 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: BIT(8, h); break; // BIT 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5d: BIT(8, l); break; // BIT 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5e: BITHL(8); break; // BIT 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5f: BIT(8, a); break; // BIT 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: BIT(16, b); break; // BIT 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: BIT(16, c); break; // BIT 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: BIT(16, d); break; // BIT 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x63: BIT(16, e); break; // BIT 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: BIT(16, h); break; // BIT 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x65: BIT(16, l); break; // BIT 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x66: BITHL(16); break; // BIT 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x67: BIT(16, a); break; // BIT 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: BIT(32, b); break; // BIT 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: BIT(32, c); break; // BIT 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6a: BIT(32, d); break; // BIT 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6b: BIT(32, e); break; // BIT 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: BIT(32, h); break; // BIT 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6d: BIT(32, l); break; // BIT 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6e: BITHL(32); break; // BIT 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6f: BIT(32, a); break; // BIT 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: BIT(64, b); break; // BIT 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: BIT(64, c); break; // BIT 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: BIT(64, d); break; // BIT 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x73: BIT(64, e); break; // BIT 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: BIT(64, h); break; // BIT 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x75: BIT(64, l); break; // BIT 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x76: BITHL(64); break; // BIT 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: BIT(64, a); break; // BIT 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: BIT(128, b); break; // BIT 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: BIT(128, c); break; // BIT 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7a: BIT(128, d); break; // BIT 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7b: BIT(128, e); break; // BIT 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: BIT(128, h); break; // BIT 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7d: BIT(128, l); break; // BIT 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7e: BITHL(128); break; // BIT 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7f: BIT(128, a); break; // BIT 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x80: RES(254, b); break; // RES 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, c); break; // RES 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, d); break; // RES 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, e); break; // RES 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, h); break; // RES 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, l); break; // RES 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RESHL(254); break; // RES 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, a); break; // RES 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, b); break; // RES 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, c); break; // RES 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, d); break; // RES 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, e); break; // RES 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, h); break; // RES 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, l); break; // RES 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RESHL(253); break; // RES 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, a); break; // RES 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, b); break; // RES 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, c); break; // RES 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, d); break; // RES 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, e); break; // RES 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, h); break; // RES 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, l); break; // RES 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RESHL(251); break; // RES 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, a); break; // RES 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, b); break; // RES 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, c); break; // RES 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, d); break; // RES 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, e); break; // RES 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, h); break; // RES 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, l); break; // RES 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RESHL(247); break; // RES 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, a); break; // RES 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, b); break; // RES 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, c); break; // RES 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, d); break; // RES 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, e); break; // RES 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, h); break; // RES 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, l); break; // RES 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RESHL(239); break; // RES 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, a); break; // RES 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, b); break; // RES 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, c); break; // RES 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, d); break; // RES 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, e); break; // RES 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, h); break; // RES 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, l); break; // RES 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RESHL(223); break; // RES 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, a); break; // RES 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, b); break; // RES 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, c); break; // RES 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, d); break; // RES 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, e); break; // RES 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, h); break; // RES 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, l); break; // RES 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RESHL(191); break; // RES 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, a); break; // RES 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, b); break; // RES 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, c); break; // RES 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, d); break; // RES 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, e); break; // RES 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, h); break; // RES 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, l); break; // RES 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RESHL(127); break; // RES 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, a); break; // RES 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, b); break; // SET 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, c); break; // SET 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, d); break; // SET 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, e); break; // SET 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, h); break; // SET 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, l); break; // SET 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SETHL(1); break; // SET 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, a); break; // SET 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, b); break; // SET 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, c); break; // SET 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, d); break; // SET 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, e); break; // SET 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, h); break; // SET 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, l); break; // SET 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SETHL(2); break; // SET 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, a); break; // SET 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, b); break; // SET 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, c); break; // SET 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, d); break; // SET 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, e); break; // SET 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, h); break; // SET 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, l); break; // SET 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SETHL(4); break; // SET 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, a); break; // SET 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, b); break; // SET 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, c); break; // SET 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, d); break; // SET 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, e); break; // SET 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, h); break; // SET 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, l); break; // SET 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SETHL(8); break; // SET 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, a); break; // SET 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, b); break; // SET 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, c); break; // SET 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, d); break; // SET 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, e); break; // SET 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, h); break; // SET 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, l); break; // SET 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SETHL(16); break; // SET 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, a); break; // SET 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, b); break; // SET 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, c); break; // SET 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, d); break; // SET 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, e); break; // SET 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, h); break; // SET 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, l); break; // SET 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SETHL(32); break; // SET 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, a); break; // SET 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, b); break; // SET 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, c); break; // SET 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, d); break; // SET 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, e); break; // SET 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, h); break; // SET 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, l); break; // SET 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SETHL(64); break; // SET 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, a); break; // SET 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, b); break; // SET 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, c); break; // SET 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, d); break; // SET 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, e); break; // SET 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, h); break; // SET 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, l); break; // SET 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SETHL(128); break; // SET 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, a); break; // SET 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ else{ ~~~~~ st+= 11; ~~~~~~~~ if( iy ) ~~~~~~~~ t= mem[mp= ((mem[pc++]^128)-128+(yl|yh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ t= mem[mp= ((mem[pc++]^128)-128+(xl|xh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(t); mem[mp]= b= t; break; // LD B,RLC (IX+d) // LD B,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(t); mem[mp]= c= t; break; // LD C,RLC (IX+d) // LD C,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(t); mem[mp]= d= t; break; // LD D,RLC (IX+d) // LD D,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(t); mem[mp]= e= t; break; // LD E,RLC (IX+d) // LD E,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(t); mem[mp]= h= t; break; // LD H,RLC (IX+d) // LD H,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(t); mem[mp]= l= t; break; // LD L,RLC (IX+d) // LD L,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: RLC(t); mem[mp]= t; break; // RLC (IX+d) // RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x07: RLC(t); mem[mp]= a= t; break; // LD A,RLC (IX+d) // LD A,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(t); mem[mp]= b= t; break; // LD B,RRC (IX+d) // LD B,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(t); mem[mp]= c= t; break; // LD C,RRC (IX+d) // LD C,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(t); mem[mp]= d= t; break; // LD D,RRC (IX+d) // LD D,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(t); mem[mp]= e= t; break; // LD E,RRC (IX+d) // LD E,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(t); mem[mp]= h= t; break; // LD H,RRC (IX+d) // LD H,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(t); mem[mp]= l= t; break; // LD L,RRC (IX+d) // LD L,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: RRC(t); mem[mp]= t; break; // RRC (IX+d) // RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0f: RRC(t); mem[mp]= a= t; break; // LD A,RRC (IX+d) // LD A,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(t); mem[mp]= b= t; break; // LD B,RL (IX+d) // LD B,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(t); mem[mp]= c= t; break; // LD C,RL (IX+d) // LD C,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(t); mem[mp]= d= t; break; // LD D,RL (IX+d) // LD D,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(t); mem[mp]= e= t; break; // LD E,RL (IX+d) // LD E,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(t); mem[mp]= h= t; break; // LD H,RL (IX+d) // LD H,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(t); mem[mp]= l= t; break; // LD L,RL (IX+d) // LD L,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: RL(t); mem[mp]= t; break; // RL (IX+d) // RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x17: RL(t); mem[mp]= a= t; break; // LD A,RL (IX+d) // LD A,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(t); mem[mp]= b= t; break; // LD B,RR (IX+d) // LD B,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(t); mem[mp]= c= t; break; // LD C,RR (IX+d) // LD C,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(t); mem[mp]= d= t; break; // LD D,RR (IX+d) // LD D,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(t); mem[mp]= e= t; break; // LD E,RR (IX+d) // LD E,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(t); mem[mp]= h= t; break; // LD H,RR (IX+d) // LD H,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(t); mem[mp]= l= t; break; // LD L,RR (IX+d) // LD L,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: RR(t); mem[mp]= t; break; // RR (IX+d) // RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1f: RR(t); mem[mp]= a= t; break; // LD A,RR (IX+d) // LD A,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(t); mem[mp]= b= t; break; // LD B,SLA (IX+d) // LD B,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(t); mem[mp]= c= t; break; // LD C,SLA (IX+d) // LD C,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(t); mem[mp]= d= t; break; // LD D,SLA (IX+d) // LD D,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(t); mem[mp]= e= t; break; // LD E,SLA (IX+d) // LD E,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(t); mem[mp]= h= t; break; // LD H,SLA (IX+d) // LD H,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(t); mem[mp]= l= t; break; // LD L,SLA (IX+d) // LD L,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: SLA(t); mem[mp]= t; break; // SLA (IX+d) // SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x27: SLA(t); mem[mp]= a= t; break; // LD A,SLA (IX+d) // LD A,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(t); mem[mp]= b= t; break; // LD B,SRA (IX+d) // LD B,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(t); mem[mp]= c= t; break; // LD C,SRA (IX+d) // LD C,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(t); mem[mp]= d= t; break; // LD D,SRA (IX+d) // LD D,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(t); mem[mp]= e= t; break; // LD E,SRA (IX+d) // LD E,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(t); mem[mp]= h= t; break; // LD H,SRA (IX+d) // LD H,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(t); mem[mp]= l= t; break; // LD L,SRA (IX+d) // LD L,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: SRA(t); mem[mp]= t; break; // SRA (IX+d) // SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2f: SRA(t); mem[mp]= a= t; break; // LD A,SRA (IX+d) // LD A,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(t); mem[mp]= b= t; break; // LD B,SLL (IX+d) // LD B,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(t); mem[mp]= c= t; break; // LD C,SLL (IX+d) // LD C,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(t); mem[mp]= d= t; break; // LD D,SLL (IX+d) // LD D,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(t); mem[mp]= e= t; break; // LD E,SLL (IX+d) // LD E,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(t); mem[mp]= h= t; break; // LD H,SLL (IX+d) // LD H,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(t); mem[mp]= l= t; break; // LD L,SLL (IX+d) // LD L,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: SLL(t); mem[mp]= t; break; // SLL (IX+d) // SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x37: SLL(t); mem[mp]= a= t; break; // LD A,SLL (IX+d) // LD A,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(t); mem[mp]= b= t; break; // LD B,SRL (IX+d) // LD B,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(t); mem[mp]= c= t; break; // LD C,SRL (IX+d) // LD C,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(t); mem[mp]= d= t; break; // LD D,SRL (IX+d) // LD D,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(t); mem[mp]= e= t; break; // LD E,SRL (IX+d) // LD E,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(t); mem[mp]= h= t; break; // LD H,SRL (IX+d) // LD H,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(t); mem[mp]= l= t; break; // LD L,SRL (IX+d) // LD L,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: SRL(t); mem[mp]= t; break; // SRL (IX+d) // SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3f: SRL(t); mem[mp]= a= t; break; // LD A,SRL (IX+d) // LD A,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: case 0x41: case 0x42: case 0x43: // BIT 0,(IX+d) // BIT 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: case 0x45: case 0x46: case 0x47: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(1); break; ~~~~~~~~~~~~~~~ case 0x48: case 0x49: case 0x4a: case 0x4b: // BIT 1,(IX+d) // BIT 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: case 0x4d: case 0x4e: case 0x4f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(2); break; ~~~~~~~~~~~~~~~ case 0x50: case 0x51: case 0x52: case 0x53: // BIT 2,(IX+d) // BIT 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: case 0x55: case 0x56: case 0x57: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(4); break; ~~~~~~~~~~~~~~~ case 0x58: case 0x59: case 0x5a: case 0x5b: // BIT 3,(IX+d) // BIT 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: case 0x5d: case 0x5e: case 0x5f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(8); break; ~~~~~~~~~~~~~~~ case 0x60: case 0x61: case 0x62: case 0x63: // BIT 4,(IX+d) // BIT 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: case 0x65: case 0x66: case 0x67: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(16); break; ~~~~~~~~~~~~~~~~ case 0x68: case 0x69: case 0x6a: case 0x6b: // BIT 5,(IX+d) // BIT 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: case 0x6d: case 0x6e: case 0x6f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(32); break; ~~~~~~~~~~~~~~~~ case 0x70: case 0x71: case 0x72: case 0x73: // BIT 6,(IX+d) // BIT 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: case 0x75: case 0x76: case 0x77: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(64); break; ~~~~~~~~~~~~~~~~ case 0x78: case 0x79: case 0x7a: case 0x7b: // BIT 7,(IX+d) // BIT 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: case 0x7d: case 0x7e: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(128); break; ~~~~~~~~~~~~~~~~~ case 0x80: RES(254, t); mem[mp]= b= t; break; // LD B,RES 0,(IX+d) // LD B,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, t); mem[mp]= c= t; break; // LD C,RES 0,(IX+d) // LD C,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, t); mem[mp]= d= t; break; // LD D,RES 0,(IX+d) // LD D,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, t); mem[mp]= e= t; break; // LD E,RES 0,(IX+d) // LD E,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, t); mem[mp]= h= t; break; // LD H,RES 0,(IX+d) // LD H,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, t); mem[mp]= l= t; break; // LD L,RES 0,(IX+d) // LD L,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RES(254, t); mem[mp]= t; break; // RES 0,(IX+d) // RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, t); mem[mp]= a= t; break; // LD A,RES 0,(IX+d) // LD A,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, t); mem[mp]= b= t; break; // LD B,RES 1,(IX+d) // LD B,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, t); mem[mp]= c= t; break; // LD C,RES 1,(IX+d) // LD C,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, t); mem[mp]= d= t; break; // LD D,RES 1,(IX+d) // LD D,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, t); mem[mp]= e= t; break; // LD E,RES 1,(IX+d) // LD E,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, t); mem[mp]= h= t; break; // LD H,RES 1,(IX+d) // LD H,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, t); mem[mp]= l= t; break; // LD L,RES 1,(IX+d) // LD L,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RES(253, t); mem[mp]= t; break; // RES 1,(IX+d) // RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, t); mem[mp]= a= t; break; // LD A,RES 1,(IX+d) // LD A,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, t); mem[mp]= b= t; break; // LD B,RES 2,(IX+d) // LD B,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, t); mem[mp]= c= t; break; // LD C,RES 2,(IX+d) // LD C,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, t); mem[mp]= d= t; break; // LD D,RES 2,(IX+d) // LD D,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, t); mem[mp]= e= t; break; // LD E,RES 2,(IX+d) // LD E,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, t); mem[mp]= h= t; break; // LD H,RES 2,(IX+d) // LD H,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, t); mem[mp]= l= t; break; // LD L,RES 2,(IX+d) // LD L,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RES(251, t); mem[mp]= t; break; // RES 2,(IX+d) // RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, t); mem[mp]= a= t; break; // LD A,RES 2,(IX+d) // LD A,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, t); mem[mp]= b= t; break; // LD B,RES 3,(IX+d) // LD B,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, t); mem[mp]= c= t; break; // LD C,RES 3,(IX+d) // LD C,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, t); mem[mp]= d= t; break; // LD D,RES 3,(IX+d) // LD D,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, t); mem[mp]= e= t; break; // LD E,RES 3,(IX+d) // LD E,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, t); mem[mp]= h= t; break; // LD H,RES 3,(IX+d) // LD H,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, t); mem[mp]= l= t; break; // LD L,RES 3,(IX+d) // LD L,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RES(247, t); mem[mp]= t; break; // RES 3,(IX+d) // RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, t); mem[mp]= a= t; break; // LD A,RES 3,(IX+d) // LD A,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, t); mem[mp]= b= t; break; // LD B,RES 4,(IX+d) // LD B,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, t); mem[mp]= c= t; break; // LD C,RES 4,(IX+d) // LD C,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, t); mem[mp]= d= t; break; // LD D,RES 4,(IX+d) // LD D,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, t); mem[mp]= e= t; break; // LD E,RES 4,(IX+d) // LD E,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, t); mem[mp]= h= t; break; // LD H,RES 4,(IX+d) // LD H,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, t); mem[mp]= l= t; break; // LD L,RES 4,(IX+d) // LD L,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RES(239, t); mem[mp]= t; break; // RES 4,(IX+d) // RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, t); mem[mp]= a= t; break; // LD A,RES 4,(IX+d) // LD A,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, t); mem[mp]= b= t; break; // LD B,RES 5,(IX+d) // LD B,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, t); mem[mp]= c= t; break; // LD C,RES 5,(IX+d) // LD C,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, t); mem[mp]= d= t; break; // LD D,RES 5,(IX+d) // LD D,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, t); mem[mp]= e= t; break; // LD E,RES 5,(IX+d) // LD E,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, t); mem[mp]= h= t; break; // LD H,RES 5,(IX+d) // LD H,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, t); mem[mp]= l= t; break; // LD L,RES 5,(IX+d) // LD L,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RES(223, t); mem[mp]= t; break; // RES 5,(IX+d) // RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, t); mem[mp]= a= t; break; // LD A,RES 5,(IX+d) // LD A,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, t); mem[mp]= b= t; break; // LD B,RES 6,(IX+d) // LD B,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, t); mem[mp]= c= t; break; // LD C,RES 6,(IX+d) // LD C,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, t); mem[mp]= d= t; break; // LD D,RES 6,(IX+d) // LD D,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, t); mem[mp]= e= t; break; // LD E,RES 6,(IX+d) // LD E,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, t); mem[mp]= h= t; break; // LD H,RES 6,(IX+d) // LD H,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, t); mem[mp]= l= t; break; // LD L,RES 6,(IX+d) // LD L,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RES(191, t); mem[mp]= t; break; // RES 6,(IX+d) // RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, t); mem[mp]= a= t; break; // LD A,RES 6,(IX+d) // LD A,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, t); mem[mp]= b= t; break; // LD B,RES 7,(IX+d) // LD B,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, t); mem[mp]= c= t; break; // LD C,RES 7,(IX+d) // LD C,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, t); mem[mp]= d= t; break; // LD D,RES 7,(IX+d) // LD D,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, t); mem[mp]= e= t; break; // LD E,RES 7,(IX+d) // LD E,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, t); mem[mp]= h= t; break; // LD H,RES 7,(IX+d) // LD H,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, t); mem[mp]= l= t; break; // LD L,RES 7,(IX+d) // LD L,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RES(127, t); mem[mp]= t; break; // RES 7,(IX+d) // RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, t); mem[mp]= a= t; break; // LD A,RES 7,(IX+d) // LD A,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, t); mem[mp]= b= t; break; // LD B,SET 0,(IX+d) // LD B,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, t); mem[mp]= c= t; break; // LD C,SET 0,(IX+d) // LD C,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, t); mem[mp]= d= t; break; // LD D,SET 0,(IX+d) // LD D,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, t); mem[mp]= e= t; break; // LD E,SET 0,(IX+d) // LD E,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, t); mem[mp]= h= t; break; // LD H,SET 0,(IX+d) // LD H,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, t); mem[mp]= l= t; break; // LD L,SET 0,(IX+d) // LD L,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SET(1, t); mem[mp]= t; break; // SET 0,(IX+d) // SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, t); mem[mp]= a= t; break; // LD A,SET 0,(IX+d) // LD A,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, t); mem[mp]= b= t; break; // LD B,SET 1,(IX+d) // LD B,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, t); mem[mp]= c= t; break; // LD C,SET 1,(IX+d) // LD C,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, t); mem[mp]= d= t; break; // LD D,SET 1,(IX+d) // LD D,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, t); mem[mp]= e= t; break; // LD E,SET 1,(IX+d) // LD E,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, t); mem[mp]= h= t; break; // LD H,SET 1,(IX+d) // LD H,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, t); mem[mp]= l= t; break; // LD L,SET 1,(IX+d) // LD L,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SET(2, t); mem[mp]= t; break; // SET 1,(IX+d) // SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, t); mem[mp]= a= t; break; // LD A,SET 1,(IX+d) // LD A,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, t); mem[mp]= b= t; break; // LD B,SET 2,(IX+d) // LD B,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, t); mem[mp]= c= t; break; // LD C,SET 2,(IX+d) // LD C,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, t); mem[mp]= d= t; break; // LD D,SET 2,(IX+d) // LD D,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, t); mem[mp]= e= t; break; // LD E,SET 2,(IX+d) // LD E,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, t); mem[mp]= h= t; break; // LD H,SET 2,(IX+d) // LD H,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, t); mem[mp]= l= t; break; // LD L,SET 2,(IX+d) // LD L,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SET(4, t); mem[mp]= t; break; // SET 2,(IX+d) // SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, t); mem[mp]= a= t; break; // LD A,SET 2,(IX+d) // LD A,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, t); mem[mp]= b= t; break; // LD B,SET 3,(IX+d) // LD B,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, t); mem[mp]= c= t; break; // LD C,SET 3,(IX+d) // LD C,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, t); mem[mp]= d= t; break; // LD D,SET 3,(IX+d) // LD D,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, t); mem[mp]= e= t; break; // LD E,SET 3,(IX+d) // LD E,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, t); mem[mp]= h= t; break; // LD H,SET 3,(IX+d) // LD H,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, t); mem[mp]= l= t; break; // LD L,SET 3,(IX+d) // LD L,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SET(8, t); mem[mp]= t; break; // SET 3,(IX+d) // SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, t); mem[mp]= a= t; break; // LD A,SET 3,(IX+d) // LD A,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, t); mem[mp]= b= t; break; // LD B,SET 4,(IX+d) // LD B,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, t); mem[mp]= c= t; break; // LD C,SET 4,(IX+d) // LD C,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, t); mem[mp]= d= t; break; // LD D,SET 4,(IX+d) // LD D,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, t); mem[mp]= e= t; break; // LD E,SET 4,(IX+d) // LD E,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, t); mem[mp]= h= t; break; // LD H,SET 4,(IX+d) // LD H,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, t); mem[mp]= l= t; break; // LD L,SET 4,(IX+d) // LD L,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SET(16, t); mem[mp]= t; break; // SET 4,(IX+d) // SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, t); mem[mp]= a= t; break; // LD A,SET 4,(IX+d) // LD A,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, t); mem[mp]= b= t; break; // LD B,SET 5,(IX+d) // LD B,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, t); mem[mp]= c= t; break; // LD C,SET 5,(IX+d) // LD C,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, t); mem[mp]= d= t; break; // LD D,SET 5,(IX+d) // LD D,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, t); mem[mp]= e= t; break; // LD E,SET 5,(IX+d) // LD E,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, t); mem[mp]= h= t; break; // LD H,SET 5,(IX+d) // LD H,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, t); mem[mp]= l= t; break; // LD L,SET 5,(IX+d) // LD L,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SET(32, t); mem[mp]= t; break; // SET 5,(IX+d) // SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, t); mem[mp]= a= t; break; // LD A,SET 5,(IX+d) // LD A,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, t); mem[mp]= b= t; break; // LD B,SET 6,(IX+d) // LD B,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, t); mem[mp]= c= t; break; // LD C,SET 6,(IX+d) // LD C,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, t); mem[mp]= d= t; break; // LD D,SET 6,(IX+d) // LD D,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, t); mem[mp]= e= t; break; // LD E,SET 6,(IX+d) // LD E,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, t); mem[mp]= h= t; break; // LD H,SET 6,(IX+d) // LD H,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, t); mem[mp]= l= t; break; // LD L,SET 6,(IX+d) // LD L,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SET(64, t); mem[mp]= t; break; // SET 6,(IX+d) // SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, t); mem[mp]= a= t; break; // LD A,SET 6,(IX+d) // LD A,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, t); mem[mp]= b= t; break; // LD B,SET 7,(IX+d) // LD B,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, t); mem[mp]= c= t; break; // LD C,SET 7,(IX+d) // LD C,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, t); mem[mp]= d= t; break; // LD D,SET 7,(IX+d) // LD D,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, t); mem[mp]= e= t; break; // LD E,SET 7,(IX+d) // LD E,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, t); mem[mp]= h= t; break; // LD H,SET 7,(IX+d) // LD H,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, t); mem[mp]= l= t; break; // LD L,SET 7,(IX+d) // LD L,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SET(128, t); mem[mp]= t; break; // SET 7,(IX+d) // SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, t); mem[mp]= a= t; break; // LD A,SET 7,(IX+d) // LD A,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ } ~ ih=1;break; ~~~~~~~~~~~ case 0xed: // OP ED ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: case 0x01: case 0x02: case 0x03: // NOP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: case 0x05: case 0x06: case 0x07: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: case 0x09: case 0x0a: case 0x0b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: case 0x0d: case 0x0e: case 0x0f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: case 0x11: case 0x12: case 0x13: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: case 0x15: case 0x16: case 0x17: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: case 0x19: case 0x1a: case 0x1b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: case 0x1d: case 0x1e: case 0x1f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: case 0x21: case 0x22: case 0x23: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: case 0x25: case 0x26: case 0x27: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: case 0x29: case 0x2a: case 0x2b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: case 0x2d: case 0x2e: case 0x2f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: case 0x31: case 0x32: case 0x33: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: case 0x35: case 0x36: case 0x37: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: case 0x39: case 0x3a: case 0x3b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: case 0x3d: case 0x3e: case 0x3f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~ case 0x80: case 0x81: case 0x82: case 0x83: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: case 0x85: case 0x86: case 0x87: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: case 0x89: case 0x8a: case 0x8b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: case 0x8d: case 0x8e: case 0x8f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: case 0x91: case 0x92: case 0x93: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: case 0x95: case 0x96: case 0x97: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: case 0x99: case 0x9a: case 0x9b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: case 0x9d: case 0x9e: case 0x9f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: case 0xa5: case 0xa6: case 0xa7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: case 0xad: case 0xae: case 0xaf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: case 0xb5: case 0xb6: case 0xb7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: case 0xbd: case 0xbe: case 0xbf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: case 0xc1: case 0xc2: case 0xc3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: case 0xc5: case 0xc6: case 0xc7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: case 0xc9: case 0xca: case 0xcb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: case 0xcd: case 0xce: case 0xcf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: case 0xd1: case 0xd2: case 0xd3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: case 0xd5: case 0xd6: case 0xd7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: case 0xd9: case 0xda: case 0xdb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: case 0xdd: case 0xde: case 0xdf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: case 0xe1: case 0xe2: case 0xe3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: case 0xe5: case 0xe6: case 0xe7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: case 0xe9: case 0xea: case 0xeb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: case 0xed: case 0xee: case 0xef: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: case 0xf1: case 0xf2: case 0xf3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: case 0xf5: case 0xf6: case 0xf7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: case 0xf9: case 0xfa: case 0xfb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: case 0xfd: case 0xfe: case 0xff: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 8; break; ~~~~~~~~~~~~~~ case 0x40: INR(b); break; // IN B,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: INR(c); break; // IN C,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: INR(d); break; // IN D,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: INR(e); break; // IN E,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: INR(h); break; // IN H,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: INR(l); break; // IN L,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: INR(t); break; // IN X,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: INR(a); break; // IN A,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: OUTR(b); break; // OUT (C),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: OUTR(c); break; // OUT (C),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: OUTR(d); break; // OUT (C),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: OUTR(e); break; // OUT (C),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: OUTR(h); break; // OUT (C),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: OUTR(l); break; // OUT (C),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: OUTR(0); break; // OUT (C),X ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: OUTR(a); break; // OUT (C),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: SBCHLRR(b, c); break; // SBC HL,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: SBCHLRR(d, e); break; // SBC HL,DE ~~~~~~~~~~~~~~~~~~~~ ticks.c:2614:22: note: in expansion of macro 'SBCHLRR' case 0x52: SBCHLRR(d, e); break; // SBC HL,DE ^~~~~~~ ticks.c:366:20: warning: suggest parentheses around '-' inside '<<' [-Wparentheses] v= l-b+(h-a<<8)-(ff>>8&1),\ ~^~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= ~a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ #define ADCHLRR(a, b) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 15, \ ~~~~~~~~~~~~~~~~~~~~~~~ v= l+b+(h+a<<8)+(ff>>8&1),\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ FILE * ft; ~~~~~~~~~~ unsigned char * tapbuf; ~~~~~~~~~~~~~~~~~~~~~~~ int v ~~~~~~~~~ , wavpos= 0 ~~~~~~~~~~~ , wavlen= 0 ~~~~~~~~~~~ , mues ~~~~~~ ; ~ unsigned short ~~~~~~~~~~~~~~ pc= 0 ~~~~~ , sp= 0 ~~~~~~~ , mp= 0 ~~~~~~~ , t= 0 ~~~~~~ , u= 0 ~~~~~~ , ff= 0 ~~~~~~~ , ff_= 0 ~~~~~~~~ , fa= 0 ~~~~~~~ , fa_= 0 ~~~~~~~~ , fb= 0 ~~~~~~~ , fb_= 0 ~~~~~~~~ , fr= 0 ~~~~~~~ , fr_= 0 ~~~~~~~~ ; ~ long long ~~~~~~~~~ st= 0 ~~~~~ , sttap ~~~~~~~ , stint ~~~~~~~ , counter= 1e8 ~~~~~~~~~~~~~~ ; ~ unsigned char ~~~~~~~~~~~~~ a= 0 ~~~~ , b= 0 ~~~~~~ , c= 0 ~~~~~~ , d= 0 ~~~~~~ , e= 0 ~~~~~~ , h= 0 ~~~~~~ , l= 0 ~~~~~~ , a_= 0 ~~~~~~~ , b_= 0 ~~~~~~~ , c_= 0 ~~~~~~~ , d_= 0 ~~~~~~~ , e_= 0 ~~~~~~~ , h_= 0 ~~~~~~~ , l_= 0 ~~~~~~~ , xl= 0 ~~~~~~~ , xh= 0 ~~~~~~~ , yl= 0 ~~~~~~~ , yh= 0 ~~~~~~~ , i= 0 ~~~~~~ , r= 0 ~~~~~~ , r7= 0 ~~~~~~~ , ih= 1 ~~~~~~~ , iy= 0 ~~~~~~~ , iff= 0 ~~~~~~~~ , im= 0 ~~~~~~~ , w= 0 ~~~~~~ , ear= 255 ~~~~~~~~~~ , halted= 0 ~~~~~~~~~~~ ; ~ long tapcycles(void){ ~~~~~~~~~~~~~~~~~~~~~ mues= 1; ~~~~~~~~ wavpos!=0x20000 && (ear^= 64); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavpos>0x1f000 ) ~~~~~~~~~~~~~~~~~~~~ fseek( ft, wavpos-0x20000, SEEK_CUR ), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen-= wavpos, ~~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while( (tapbuf[++wavpos]^ear<<1)&0x80 && wavpos<0x20000 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mues+= 81; // correct value must be 79.365, adjusted to simulate contention in Alkatraz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavlen<=wavpos ) ~~~~~~~~~~~~~~~~~~~~ return 0; ~~~~~~~~~ else ~~~~ return mues; ~~~~~~~~~~~~ } ~ int in(int port){ ~~~~~~~~~~~~~~~~~ return port&1 ? 255 : ear; ~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void out(int port, int value){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ return; ~~~~~~~ } ~ int f(void){ ~~~~~~~~~~~~ return ff & 168 ~~~~~~~~~~~~~~~~ | ff >> 8 & 1 ~~~~~~~~~~~~~ | !fr << 6 ~~~~~~~~~~ | fb >> 8 & 2 ~~~~~~~~~~~~~ | (fr ^ fa ^ fb ^ fb >> 8) & 16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | (fa & -256 ~~~~~~~~~~~~ ? 154020 >> ((fr ^ fr >> 4) & 15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ((fr ^ fa) & (fr ^ fb)) >> 5) & 4; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void setf(int a){ ~~~~~~~~~~~~~~~~~ fr= ~a & 64; ~~~~~~~~~~~~ ff= a|= a<<8; ~~~~~~~~~~~~~ fa= 255 & (fb= a & -129 | (a&4)<<5); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ int main (int argc, char **argv){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unsigned char * mem= (unsigned char *) malloc (0x10000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int size= 0, start= 0, end= 0, intr= 0, tap= 0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char * output= NULL; ~~~~~~~~~~~~~~~~~~~~ FILE * fh; ~~~~~~~~~~ tapbuf= (unsigned char *) malloc (0x20000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( argc==1 ) ~~~~~~~~~~~~~ printf("Ticks v0.14c beta, a silent Z80 emulator by Antonio Villena, 10 Jan 2013\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" ticks [-pc X] [-start X] [-end X] [-counter X] [-output ]\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" File between 1 and 65536 bytes with Z80 machine code\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -tape emulates ZX tape in port $FE from a .WAV file\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -pc X X in hexadecimal is the initial PC value\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -start X X in hexadecimal is the PC condition to start the counter\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -end X X in hexadecimal is the PC condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -counter X X in decimal is another condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -int X X in decimal are number of cycles for periodic interrupts\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -output dumps the RAM content to a 64K file\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" Default values for -pc, -start and -end are 0000 if ommited. When the program "), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("exits, it'll show the number of cycles between start and end trigger in decimal\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(0); ~~~~~~~~ while (argc > 1){ ~~~~~~~~~~~~~~~~~ if( argv[1][0] == '-' && argv[2] ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch (argc--, argv++[1][1]){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 'p': ~~~~~~~~~ pc= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 's': ~~~~~~~~~ start= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'e': ~~~~~~~~~ end= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'i': ~~~~~~~~~ intr= strtol(argv[1], NULL, 10); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'c': ~~~~~~~~~ sscanf(argv[1], "%llu", &counter); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ counter<0 && (counter= 9e18); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'o': ~~~~~~~~~ output= argv[1]; ~~~~~~~~~~~~~~~~ break; ~~~~~~ case 't': ~~~~~~~~~ ft= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !ft ) ~~~~~~~~~ printf("\nTape file not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memcpy(&wavlen, tapbuf+4, 4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen+= 8; ~~~~~~~~~~~ if( *(int*) tapbuf != 0x46464952 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid WAV header\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+16) != 16 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid subchunk size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+20) != 0x10001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid number of channels or compression (only Mono and PCM allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+24) != 44100 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid sample rate (only 44100Hz allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+32) != 0x80001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid align or bits per sample (only 8-bits samples allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+40)+44 != wavlen ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid header size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ wavpos= 44; ~~~~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ printf("\nWrong Argument: %s\n", argv[0]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ } ~ else{ ~~~~~ fh= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fh ) ~~~~~~~~~ printf("\nFile not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fseek(fh, 0, SEEK_END); ~~~~~~~~~~~~~~~~~~~~~~~ size= ftell(fh); ~~~~~~~~~~~~~~~~ rewind(fh); ~~~~~~~~~~~ if( size>65536 && size!=65574 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nIncorrect length: %d\n", size), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ else if( !strcasecmp(strchr(argv[1], '.'), ".sna" ) && size==49179 ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILE *fk= fopen("48.rom", "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fk ) ~~~~~~~~~ printf("\nZX Spectrum ROM file not found: 48.rom\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(mem, 1, 16384, fk); ~~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fk); ~~~~~~~~~~~ fread(&i, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ ff_= ff; ~~~~~~~~ fr_= fr; ~~~~~~~~ fa_= fa; ~~~~~~~~ fb_= fb; ~~~~~~~~ fread(&a_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&e, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~ iff>>= 2; ~~~~~~~~~ fread(&r, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ r7= r; ~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ fread(&a, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(mem+0x4000, 1, 0xc000, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RET(0); ~~~~~~~ } ~ else if( size==65574 ) ~~~~~~~~~~~~~~~~~~~~~~ fread(mem, 1, 65536, fh), ~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ u= w, ~~~~~ fread(&a, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&pc, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&i, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&r, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ r7= r, ~~~~~~ fread(&e, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ setf(w), ~~~~~~~~ ff_= ff, ~~~~~~~~ fr_= fr, ~~~~~~~~ fa_= fa, ~~~~~~~~ fb_= fb, ~~~~~~~~ setf(u), ~~~~~~~~ fread(&a_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&mp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ else ~~~~ fread(mem, 1, size, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ } ~ ++argv; ~~~~~~~ --argc; ~~~~~~~ } ~ if( size==65574 ){ ~~~~~~~~~~~~~~~~~~ fread(&wavpos, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~ ear= wavpos<<6 | 191; ~~~~~~~~~~~~~~~~~~~~~ wavpos>>= 1; ~~~~~~~~~~~~ if( wavpos && ft ) ~~~~~~~~~~~~~~~~~~ fseek(ft, wavlen-wavpos, SEEK_SET), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen= wavpos, ~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&sttap, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ tap= sttap; ~~~~~~~~~~~ } ~ else ~~~~ sttap= tap= tapcycles(); ~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fh); ~~~~~~~~~~~ if( !size ) ~~~~~~~~~~~ printf("File not specified or zero length\n"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= intr; ~~~~~~~~~~~~ do{ ~~~ if( pc==start ) ~~~~~~~~~~~~~~~ st= 0, ~~~~~~ stint= intr, ~~~~~~~~~~~~ sttap= tap; ~~~~~~~~~~~ if( intr && st>stint && ih ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= st+intr; ~~~~~~~~~~~~~~~ if( iff ){ ~~~~~~~~~~ halted && (pc++, halted= 0); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ iff= 0; ~~~~~~~ mem[--sp]= pc>>8; ~~~~~~~~~~~~~~~~~ mem[--sp]= pc; ~~~~~~~~~~~~~~ r++; ~~~~ switch( im ){ ~~~~~~~~~~~~~ case 1: ~~~~~~~ st++; ~~~~~ case 0: ~~~~~~~ pc= 56; ~~~~~~~ st+= 12; ~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ pc= mem[t= 255 | i << 8]; ~~~~~~~~~~~~~~~~~~~~~~~~~ pc|= mem[++t] << 8; ~~~~~~~~~~~~~~~~~~~ st+= 19; ~~~~~~~~ } ~ } ~ } ~ if( tap && st>sttap ) ~~~~~~~~~~~~~~~~~~~~~ sttap= st+( tap= tapcycles() ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ r++; ~~~~ // printf("pc=%04X, [pc]=%02X, bc=%04X, de=%04X, hl=%04X, af=%04X, ix=%04X, iy=%04X\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // pc, mem[pc], c|b<<8, e|d<<8, l|h<<8, f()|a<<8, xl|xh<<8, yl|yh<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: // NOP ~~~~~~~~~~~~~~~~~ case 0x40: // LD B,B ~~~~~~~~~~~~~~~~~~~~ case 0x49: // LD C,C ~~~~~~~~~~~~~~~~~~~~ case 0x52: // LD D,D ~~~~~~~~~~~~~~~~~~~~ case 0x5b: // LD E,E ~~~~~~~~~~~~~~~~~~~~ case 0x64: // LD H,H ~~~~~~~~~~~~~~~~~~~~ case 0x6d: // LD L,L ~~~~~~~~~~~~~~~~~~~~ case 0x7f: // LD A,A ~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x76: // HALT ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ halted= 1; ~~~~~~~~~~ pc--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x01: // LD BC,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(b, c); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x11: // LD DE,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(d, e); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x21: // LD HL,nn // LD IX,nn // LD IY,nn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRIM(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRIM(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ LDRRIM(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x31: // LD SP,nn ~~~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ sp= mem[pc++]; ~~~~~~~~~~~~~~ sp|= mem[pc++]<<8; ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x02: // LD (BC),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x12: // LD (DE),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0a: // LD A,(BC) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1a: // LD A,(DE) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x22: // LD (nn),HL // LD (nn),IX // LD (nn),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPNNRR(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPNNRR(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDPNNRR(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x32: // LD (nn),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ t= mem[pc++]; ~~~~~~~~~~~~~ mem[t|= mem[pc++]<<8]= a; ~~~~~~~~~~~~~~~~~~~~~~~~~ mp= t+1 & 255 ~~~~~~~~~~~~~ | a<<8; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2a: // LD HL,(nn) // LD IX,(nn) // LD IY,(nn) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRPNN(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRPNN(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDRRPNN(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3a: // LD A,(nn) ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ mp= mem[pc++]; ~~~~~~~~~~~~~~ a= mem[mp|= mem[pc++]<<8]; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x03: // INC BC ~~~~~~~~~~~~~~~~~~~~ INCW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x13: // INC DE ~~~~~~~~~~~~~~~~~~~~ INCW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x23: // INC HL // INC IX // INC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INCW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ INCW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x33: // INC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0b: // DEC BC ~~~~~~~~~~~~~~~~~~~~ DECW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1b: // DEC DE ~~~~~~~~~~~~~~~~~~~~ DECW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2b: // DEC HL // DEC IX // DEC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DECW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ DECW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3b: // DEC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x04: // INC B ~~~~~~~~~~~~~~~~~~~ INC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x0c: // INC C ~~~~~~~~~~~~~~~~~~~ INC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x14: // INC D ~~~~~~~~~~~~~~~~~~~ INC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1c: // INC E ~~~~~~~~~~~~~~~~~~~ INC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x24: // INC H // INC IXh // INC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yh); ~~~~~~~~ else ~~~~ INC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2c: // INC L // INC IXl // INC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yl); ~~~~~~~~ else ~~~~ INC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x34: // INC (HL) // INC (IX+d) // INC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ INCPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3c: // INC A ~~~~~~~~~~~~~~~~~~~ INC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x05: // DEC B ~~~~~~~~~~~~~~~~~~~ DEC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0d: // DEC C ~~~~~~~~~~~~~~~~~~~ DEC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x15: // DEC D ~~~~~~~~~~~~~~~~~~~ DEC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1d: // DEC E ~~~~~~~~~~~~~~~~~~~ DEC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x25: // DEC H // DEC IXh // DEC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yh); ~~~~~~~~ else ~~~~ DEC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2d: // DEC L // DEC IXl // DEC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yl); ~~~~~~~~ else ~~~~ DEC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x35: // DEC (HL) // DEC (IX+d) // DEC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=-1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ DECPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3d: // DEC A ~~~~~~~~~~~~~~~~~~~ DEC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x06: // LD B,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(b); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0e: // LD C,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(c); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x16: // LD D,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(d); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1e: // LD E,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(e); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x26: // LD H,n // LD IXh,n // LD IYh,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(h); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yh); ~~~~~~~~~~ else ~~~~ LDRIM(xh); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2e: // LD L,n // LD IXl,n // LD IYl,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(l); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yl); ~~~~~~~~~~ else ~~~~ LDRIM(xl); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x36: // LD (HL),n // LD (IX+d),n // LD (IY+d),n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 10, ~~~~~~~~ mem[l|h<<8]= mem[pc++]; ~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPIN(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ LDPIN(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3e: // LD A,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(a); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x07: // RLCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a*257>>7; ~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0f: // RRCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a>>1 ~~~~~~~~~~ | ((a&1)+1^1)<<7; ~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x17: // RLA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a<<1 ~~~~~~~~~~ | ff>>8 & 1; ~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb & 128 ~~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1f: // RRA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= (a*513 | ff&256)>>1; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x09: // ADD HL,BC // ADD IX,BC // ADD IY,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, b, c); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x19: // ADD HL,DE // ADD IX,DE // ADD IY,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, d, e); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x29: // ADD HL,HL // ADD IX,IX // ADD IY,IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, h, l); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, yh, yl); ~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, xh, xl); ~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x39: // ADD HL,SP // ADD IX,SP // ADD IY,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDISP(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDISP(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ ADDISP(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x18: // JR ~~~~~~~~~~~~~~~~ st+= 12; ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x20: // JR NZ,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x28: // JR Z,s8 ~~~~~~~~~~~~~~~~~~~~~ JRC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x30: // JR NC,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x38: // JR C,s8 ~~~~~~~~~~~~~~~~~~~~~ JRCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x08: // EX AF,AF' ~~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = a_; ~~~~~~~~~ a_ = a; ~~~~~~~~ a = t; ~~~~~~~~ t = ff_; ~~~~~~~~~~ ff_= ff; ~~~~~~~~~ ff = t; ~~~~~~~~ t = fr_; ~~~~~~~~~~ fr_= fr; ~~~~~~~~~ fr = t; ~~~~~~~~ t = fa_; ~~~~~~~~~~ fa_= fa; ~~~~~~~~~ fa = t; ~~~~~~~~ t = fb_; ~~~~~~~~~~ fb_= fb; ~~~~~~~~~ fb = t; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x10: // DJNZ ~~~~~~~~~~~~~~~~~~ if( --b ) ~~~~~~~~~ st+= 13, ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ st+= 8, ~~~~~~~ pc++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x27: // DAA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= (fr^fa^fb^fb>>8) & 16; ~~~~~~~~~~~~~~~~~~~~~~~~~ u= 0; ~~~~~ (a | ff&256)>153 && (u= 352); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (a&15 | t)>9 && (u+= 6); ~~~~~~~~~~~~~~~~~~~~~~~~ fa= a|256; ~~~~~~~~~~ if( fb&512 ) ~~~~~~~~~~~~ a-= u, ~~~~~~ fb= ~u; ~~~~~~~ else ~~~~ a+= fb= u; ~~~~~~~~~~ ff= (fr= a) ~~~~~~~~~~~ | u&256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2f: // CPL ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ff= ff &-41 ~~~~~~~~~~~~~~~~ | (a^=255)& 40; ~~~~~~~~~~~~~~~ fb|= -129; ~~~~~~~~~~ fa= fa & -17 ~~~~~~~~~~~~~ | ~fr & 16; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x37: // SCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fr^fa) & 16; ~~~~~~~~~~~~~~~ ff= 256 ~~~~~~~ | ff &128 ~~~~~~~~~~ | a & 40; ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3f: // CCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~~~~~~~ | (ff>>4^fr^fa) & 16; ~~~~~~~~~~~~~~~~~~~~~ ff= ~ff & 256 ~~~~~~~~~~~~~ | ff & 128 ~~~~~~~~~~~ | a & 40; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x41: // LD B,C ~~~~~~~~~~~~~~~~~~~~ LDRR(b, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x42: // LD B,D ~~~~~~~~~~~~~~~~~~~~ LDRR(b, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x43: // LD B,E ~~~~~~~~~~~~~~~~~~~~ LDRR(b, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x44: // LD B,H // LD B,IXh // LD B,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x45: // LD B,L // LD B,IXl // LD B,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x46: // LD B,(HL) // LD B,(IX+d) // LD B,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x47: // LD B,A ~~~~~~~~~~~~~~~~~~~~ LDRR(b, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x48: // LD C,B ~~~~~~~~~~~~~~~~~~~~ LDRR(c, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4a: // LD C,D ~~~~~~~~~~~~~~~~~~~~ LDRR(c, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4b: // LD C,E ~~~~~~~~~~~~~~~~~~~~ LDRR(c, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4c: // LD C,H // LD C,IXh // LD C,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4d: // LD C,L // LD C,IXl // LD C,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4e: // LD C,(HL) // LD C,(IX+d) // LD C,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4f: // LD C,A ~~~~~~~~~~~~~~~~~~~~ LDRR(c, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x50: // LD D,B ~~~~~~~~~~~~~~~~~~~~ LDRR(d, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x51: // LD D,C ~~~~~~~~~~~~~~~~~~~~ LDRR(d, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x53: // LD D,E ~~~~~~~~~~~~~~~~~~~~ LDRR(d, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x54: // LD D,H // LD D,IXh // LD D,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x55: // LD D,L // LD D,IXl // LD D,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x56: // LD D,(HL) // LD D,(IX+d) // LD D,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x57: // LD D,A ~~~~~~~~~~~~~~~~~~~~ LDRR(d, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x58: // LD E,B ~~~~~~~~~~~~~~~~~~~~ LDRR(e, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x59: // LD E,C ~~~~~~~~~~~~~~~~~~~~ LDRR(e, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5a: // LD E,D ~~~~~~~~~~~~~~~~~~~~ LDRR(e, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5c: // LD E,H // LD E,IXh // LD E,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5d: // LD E,L // LD E,IXl // LD E,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5e: // LD E,(HL) // LD E,(IX+d) // LD E,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5f: // LD E,A ~~~~~~~~~~~~~~~~~~~~ LDRR(e, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x60: // LD H,B // LD IXh,B // LD IYh,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x61: // LD H,C // LD IXh,C // LD IYh,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x62: // LD H,D // LD IXh,D // LD IYh,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x63: // LD H,E // LD IXh,E // LD IYh,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x65: // LD H,L // LD IXh,IXl // LD IYh,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, yl, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, xl, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x66: // LD H,(HL) // LD H,(IX+d) // LD H,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x67: // LD H,A // LD IXh,A // LD IYh,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x68: // LD L,B // LD IXl,B // LD IYl,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x69: // LD L,C // LD IXl,C // LD IYl,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6a: // LD L,D // LD IXl,D // LD IYl,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6b: // LD L,E // LD IXl,E // LD IYl,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6c: // LD L,H // LD IXl,IXh // LD IYl,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, yh, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, xh, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6e: // LD L,(HL) // LD L,(IX+d) // LD L,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6f: // LD L,A // LD IXl,A // LD IYl,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x70: // LD (HL),B // LD (IX+d),B // LD (IY+d),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x71: // LD (HL),C // LD (IX+d),C // LD (IY+d),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x72: // LD (HL),D // LD (IX+d),D // LD (IY+d),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x73: // LD (HL),E // LD (IX+d),E // LD (IY+d),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x74: // LD (HL),H // LD (IX+d),H // LD (IY+d),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x75: // LD (HL),L // LD (IX+d),L // LD (IY+d),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x77: // LD (HL),A // LD (IX+d),A // LD (IY+d),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x78: // LD A,B ~~~~~~~~~~~~~~~~~~~~ LDRR(a, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x79: // LD A,C ~~~~~~~~~~~~~~~~~~~~ LDRR(a, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7a: // LD A,D ~~~~~~~~~~~~~~~~~~~~ LDRR(a, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7b: // LD A,E ~~~~~~~~~~~~~~~~~~~~ LDRR(a, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7c: // LD A,H // LD A,IXh // LD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7d: // LD A,L // LD A,IXl // LD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7e: // LD A,(HL) // LD A,(IX+d) // LD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x80: // ADD A,B ~~~~~~~~~~~~~~~~~~~~~ ADD(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x81: // ADD A,C ~~~~~~~~~~~~~~~~~~~~~ ADD(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x82: // ADD A,D ~~~~~~~~~~~~~~~~~~~~~ ADD(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x83: // ADD A,E ~~~~~~~~~~~~~~~~~~~~~ ADD(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x84: // ADD A,H // ADD A,IXh // ADD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yh, 4); ~~~~~~~~~~~ else ~~~~ ADD(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x85: // ADD A,L // ADD A,IXl // ADD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yl, 4); ~~~~~~~~~~~ else ~~~~ ADD(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x86: // ADD A,(HL) // ADD A,(IX+d) // ADD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADD(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x87: // ADD A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x88: // ADC A,B ~~~~~~~~~~~~~~~~~~~~~ ADC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x89: // ADC A,C ~~~~~~~~~~~~~~~~~~~~~ ADC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8a: // ADC A,D ~~~~~~~~~~~~~~~~~~~~~ ADC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8b: // ADC A,E ~~~~~~~~~~~~~~~~~~~~~ ADC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8c: // ADC A,H // ADC A,IXh // ADC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yh, 4); ~~~~~~~~~~~ else ~~~~ ADC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8d: // ADC A,L // ADC A,IXl // ADC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yl, 4); ~~~~~~~~~~~ else ~~~~ ADC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8e: // ADC A,(HL) // ADC A,(IX+d) // ADC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8f: // ADC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)+(ff>>8&1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x90: // SUB B ~~~~~~~~~~~~~~~~~~~ SUB(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x91: // SUB C ~~~~~~~~~~~~~~~~~~~ SUB(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x92: // SUB D ~~~~~~~~~~~~~~~~~~~ SUB(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x93: // SUB E ~~~~~~~~~~~~~~~~~~~ SUB(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x94: // SUB H // SUB IXh // SUB IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yh, 4); ~~~~~~~~~~~ else ~~~~ SUB(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x95: // SUB L // SUB IXl // SUB IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yl, 4); ~~~~~~~~~~~ else ~~~~ SUB(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x96: // SUB (HL) // SUB (IX+d) // SUB (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SUB(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x97: // SUB A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= ff= 0; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x98: // SBC A,B ~~~~~~~~~~~~~~~~~~~~~ SBC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x99: // SBC A,C ~~~~~~~~~~~~~~~~~~~~~ SBC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9a: // SBC A,D ~~~~~~~~~~~~~~~~~~~~~ SBC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9b: // SBC A,E ~~~~~~~~~~~~~~~~~~~~~ SBC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9c: // SBC A,H // SBC A,IXh // SBC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yh, 4); ~~~~~~~~~~~ else ~~~~ SBC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9d: // SBC A,L // SBC A,IXl // SBC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yl, 4); ~~~~~~~~~~~ else ~~~~ SBC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9e: // SBC A,(HL) // SBC A,(IX+d) // SBC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SBC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9f: // SBC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= (ff= (ff&256)/-256); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa0: // AND B ~~~~~~~~~~~~~~~~~~~ AND(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa1: // AND C ~~~~~~~~~~~~~~~~~~~ AND(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa2: // AND D ~~~~~~~~~~~~~~~~~~~ AND(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa3: // AND E ~~~~~~~~~~~~~~~~~~~ AND(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa4: // AND H // AND IXh // AND IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yh, 4); ~~~~~~~~~~~ else ~~~~ AND(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa5: // AND L // AND IXl // AND IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yl, 4); ~~~~~~~~~~~ else ~~~~ AND(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa6: // AND (HL) // AND (IX+d) // AND (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ AND(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa7: // AND A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= ~(ff= fr= a); ~~~~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa8: // XOR B ~~~~~~~~~~~~~~~~~~~ XOR(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa9: // XOR C ~~~~~~~~~~~~~~~~~~~ XOR(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaa: // XOR D ~~~~~~~~~~~~~~~~~~~ XOR(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xab: // XOR E ~~~~~~~~~~~~~~~~~~~ XOR(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xac: // XOR H // XOR IXh // XOR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yh, 4); ~~~~~~~~~~~ else ~~~~ XOR(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xad: // XOR L // XOR IXl // XOR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yl, 4); ~~~~~~~~~~~ else ~~~~ XOR(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xae: // XOR (HL) // XOR (IX+d) // XOR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ XOR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaf: // XOR A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= ff= fr= fb= 0; ~~~~~~~~~~~~~~~~~ fa= 256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb0: // OR B ~~~~~~~~~~~~~~~~~~ OR(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb1: // OR C ~~~~~~~~~~~~~~~~~~ OR(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb2: // OR D ~~~~~~~~~~~~~~~~~~ OR(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb3: // OR E ~~~~~~~~~~~~~~~~~~ OR(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb4: // OR H // OR IXh // OR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yh, 4); ~~~~~~~~~~ else ~~~~ OR(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb5: // OR L // OR IXl // OR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yl, 4); ~~~~~~~~~~ else ~~~~ OR(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb6: // OR (HL) // OR (IX+d) // OR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ OR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb7: // OR A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= 256 ~~~~~~~ | (ff= fr= a); ~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb8: // CP B ~~~~~~~~~~~~~~~~~~ CP(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb9: // CP C ~~~~~~~~~~~~~~~~~~ CP(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xba: // CP D ~~~~~~~~~~~~~~~~~~ CP(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbb: // CP E ~~~~~~~~~~~~~~~~~~ CP(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbc: // CP H // CP IXh // CP IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yh, 4); ~~~~~~~~~~ else ~~~~ CP(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbd: // CP L // CP IXl // CP IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yl, 4); ~~~~~~~~~~ else ~~~~ CP(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbe: // CP (HL) // CP (IX+d) // CP (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ w= mem[l|h<<8], ~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ w= mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else ~~~~ w= mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbf: // CP A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= 0; ~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ ff= a&40; ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc9: // RET ~~~~~~~~~~~~~~~~~ RET(10); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc0: // RET NZ ~~~~~~~~~~~~~~~~~~~~ RETCI(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc8: // RET Z ~~~~~~~~~~~~~~~~~~~ RETC(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd0: // RET NC ~~~~~~~~~~~~~~~~~~~~ RETC(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd8: // RET C ~~~~~~~~~~~~~~~~~~~ RETCI(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe0: // RET PO ~~~~~~~~~~~~~~~~~~~~ RETC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe8: // RET PE ~~~~~~~~~~~~~~~~~~~~ RETCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf0: // RET P ~~~~~~~~~~~~~~~~~~~ RETC(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf8: // RET M ~~~~~~~~~~~~~~~~~~~ RETCI(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc1: // POP BC ~~~~~~~~~~~~~~~~~~~~ POP(b, c); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd1: // POP DE ~~~~~~~~~~~~~~~~~~~~ POP(d, e); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe1: // POP HL // POP IX // POP IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ POP(h, l); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ POP(yh, yl); ~~~~~~~~~~~~ else ~~~~ POP(xh, xl); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf1: // POP AF ~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ setf(mem[sp++]); ~~~~~~~~~~~~~~~~ a= mem[sp++]; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc5: // PUSH BC ~~~~~~~~~~~~~~~~~~~~~ PUSH(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd5: // PUSH DE ~~~~~~~~~~~~~~~~~~~~~ PUSH(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe5: // PUSH HL // PUSH IX // PUSH IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ PUSH(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ PUSH(yh, yl); ~~~~~~~~~~~~~ else ~~~~ PUSH(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf5: // PUSH AF ~~~~~~~~~~~~~~~~~~~~~ PUSH(a, f()); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc3: // JP nn ~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc2: // JP NZ ~~~~~~~~~~~~~~~~~~~ JPCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xca: // JP Z ~~~~~~~~~~~~~~~~~~ JPC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd2: // JP NC ~~~~~~~~~~~~~~~~~~~ JPC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xda: // JP C ~~~~~~~~~~~~~~~~~~ JPCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe2: // JP PO ~~~~~~~~~~~~~~~~~~~ JPC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xea: // JP PE ~~~~~~~~~~~~~~~~~~~ JPCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf2: // JP P ~~~~~~~~~~~~~~~~~~ JPC(ff&128); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfa: // JP M ~~~~~~~~~~~~~~~~~~ JPCI(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcd: // CALL nn ~~~~~~~~~~~~~~~~~~~~~ st+= 17; ~~~~~~~~ t= pc+2; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mem[--sp]= t>>8; ~~~~~~~~~~~~~~~~ mem[--sp]= t; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc4: // CALL NZ ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fr); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcc: // CALL Z ~~~~~~~~~~~~~~~~~~~~ CALLC(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd4: // CALL NC ~~~~~~~~~~~~~~~~~~~~~ CALLC(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdc: // CALL C ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&256); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe4: // CALL PO ~~~~~~~~~~~~~~~~~~~~~ CALLC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xec: // CALL PE ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf4: // CALL P ~~~~~~~~~~~~~~~~~~~~ CALLC(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfc: // CALL M ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&128); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc6: // ADD A,n ~~~~~~~~~~~~~~~~~~~~~ ADD(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xce: // ADC A,n ~~~~~~~~~~~~~~~~~~~~~ ADC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd6: // SUB n ~~~~~~~~~~~~~~~~~~~ SUB(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xde: // SBC A,n ~~~~~~~~~~~~~~~~~~~~~ SBC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe6: // AND n ~~~~~~~~~~~~~~~~~~~ AND(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xee: // XOR A,n ~~~~~~~~~~~~~~~~~~~~~ XOR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf6: // OR n ~~~~~~~~~~~~~~~~~~ OR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfe: // CP A,n ~~~~~~~~~~~~~~~~~~~~ w= mem[pc++]; ~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc7: // RST 0x00 ~~~~~~~~~~~~~~~~~~~~~~ RST(0); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcf: // RST 0x08 ~~~~~~~~~~~~~~~~~~~~~~ RST(8); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd7: // RST 0x10 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x10); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdf: // RST 0x18 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x18); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe7: // RST 0x20 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x20); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xef: // RST 0x28 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x28); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf7: // RST 0x30 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x30); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xff: // RST 0x38 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x38); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd3: // OUT (n),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ out(mp= mem[pc++] | a<<8, a); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= mp&65280 ~~~~~~~~~~~~ | ++mp; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdb: // IN A,(n) ~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ a= in(mp= mem[pc++] | a<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf3: // DI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 0; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfb: // EI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 1; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xeb: // EX DE,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= d; ~~~~~ d= h; ~~~~~ h= t; ~~~~~ t= e; ~~~~~ e= l; ~~~~~ l= t; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd9: // EXX ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = b; ~~~~~~ b = b_; ~~~~~~~ b_= t; ~~~~~~ t = c; ~~~~~~ c = c_; ~~~~~~~ c_= t; ~~~~~~ t = d; ~~~~~~ d = d_; ~~~~~~~ d_= t; ~~~~~~ t = e; ~~~~~~ e = e_; ~~~~~~~ e_= t; ~~~~~~ t = h; ~~~~~~ h = h_; ~~~~~~~ h_= t; ~~~~~~ t = l; ~~~~~~ l = l_; ~~~~~~~ l_= t; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe3: // EX (SP),HL // EX (SP),IX // EX (SP),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ EXSPI(h, l); ~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ EXSPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ EXSPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe9: // JP (HL) ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ pc= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ pc= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ pc= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf9: // LD SP,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ sp= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ sp= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ sp= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdd: // OP DD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= iy= 0; ~~~~~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xfd: // OP FD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= 0; ~~~~~~ iy= 1; ~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xcb: // OP CB ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ if( ih ) ~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(b); break; // RLC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(c); break; // RLC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(d); break; // RLC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(e); break; // RLC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(h); break; // RLC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(l); break; // RLC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: st+= 7; // RLC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RLC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x07: RLC(a); break; // RLC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(b); break; // RRC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(c); break; // RRC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(d); break; // RRC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(e); break; // RRC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(h); break; // RRC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(l); break; // RRC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: st+= 7; // RRC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RRC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x0f: RRC(a); break; // RRC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(b); break; // RL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(c); break; // RL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(d); break; // RL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(e); break; // RL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(h); break; // RL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(l); break; // RL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: st+= 7; // RL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RL(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x17: RL(a); break; // RL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(b); break; // RR B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(c); break; // RR C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(d); break; // RR D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(e); break; // RR E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(h); break; // RR H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(l); break; // RR L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: st+= 7; // RR (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RR(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x1f: RR(a); break; // RR A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(b); break; // SLA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(c); break; // SLA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(d); break; // SLA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(e); break; // SLA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(h); break; // SLA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(l); break; // SLA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: st+= 7; // SLA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x27: SLA(a); break; // SLA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(b); break; // SRA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(c); break; // SRA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(d); break; // SRA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(e); break; // SRA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(h); break; // SRA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(l); break; // SRA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: st+= 7; // SRA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x2f: SRA(a); break; // SRA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(b); break; // SLL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(c); break; // SLL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(d); break; // SLL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(e); break; // SLL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(h); break; // SLL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(l); break; // SLL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: st+= 7; // SLL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x37: SLL(a); break; // SLL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(b); break; // SRL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(c); break; // SRL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(d); break; // SRL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(e); break; // SRL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(h); break; // SRL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(l); break; // SRL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: st+= 7; // SRL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x3f: SRL(a); break; // SRL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: BIT(1, b); break; // BIT 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: BIT(1, c); break; // BIT 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: BIT(1, d); break; // BIT 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x43: BIT(1, e); break; // BIT 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: BIT(1, h); break; // BIT 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x45: BIT(1, l); break; // BIT 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x46: BITHL(1); break; // BIT 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x47: BIT(1, a); break; // BIT 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: BIT(2, b); break; // BIT 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: BIT(2, c); break; // BIT 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4a: BIT(2, d); break; // BIT 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4b: BIT(2, e); break; // BIT 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: BIT(2, h); break; // BIT 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4d: BIT(2, l); break; // BIT 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4e: BITHL(2); break; // BIT 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4f: BIT(2, a); break; // BIT 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: BIT(4, b); break; // BIT 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: BIT(4, c); break; // BIT 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: BIT(4, d); break; // BIT 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x53: BIT(4, e); break; // BIT 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: BIT(4, h); break; // BIT 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x55: BIT(4, l); break; // BIT 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x56: BITHL(4); break; // BIT 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x57: BIT(4, a); break; // BIT 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: BIT(8, b); break; // BIT 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: BIT(8, c); break; // BIT 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: BIT(8, d); break; // BIT 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5b: BIT(8, e); break; // BIT 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: BIT(8, h); break; // BIT 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5d: BIT(8, l); break; // BIT 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5e: BITHL(8); break; // BIT 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5f: BIT(8, a); break; // BIT 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: BIT(16, b); break; // BIT 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: BIT(16, c); break; // BIT 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: BIT(16, d); break; // BIT 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x63: BIT(16, e); break; // BIT 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: BIT(16, h); break; // BIT 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x65: BIT(16, l); break; // BIT 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x66: BITHL(16); break; // BIT 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x67: BIT(16, a); break; // BIT 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: BIT(32, b); break; // BIT 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: BIT(32, c); break; // BIT 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6a: BIT(32, d); break; // BIT 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6b: BIT(32, e); break; // BIT 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: BIT(32, h); break; // BIT 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6d: BIT(32, l); break; // BIT 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6e: BITHL(32); break; // BIT 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6f: BIT(32, a); break; // BIT 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: BIT(64, b); break; // BIT 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: BIT(64, c); break; // BIT 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: BIT(64, d); break; // BIT 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x73: BIT(64, e); break; // BIT 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: BIT(64, h); break; // BIT 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x75: BIT(64, l); break; // BIT 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x76: BITHL(64); break; // BIT 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: BIT(64, a); break; // BIT 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: BIT(128, b); break; // BIT 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: BIT(128, c); break; // BIT 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7a: BIT(128, d); break; // BIT 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7b: BIT(128, e); break; // BIT 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: BIT(128, h); break; // BIT 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7d: BIT(128, l); break; // BIT 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7e: BITHL(128); break; // BIT 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7f: BIT(128, a); break; // BIT 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x80: RES(254, b); break; // RES 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, c); break; // RES 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, d); break; // RES 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, e); break; // RES 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, h); break; // RES 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, l); break; // RES 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RESHL(254); break; // RES 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, a); break; // RES 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, b); break; // RES 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, c); break; // RES 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, d); break; // RES 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, e); break; // RES 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, h); break; // RES 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, l); break; // RES 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RESHL(253); break; // RES 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, a); break; // RES 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, b); break; // RES 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, c); break; // RES 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, d); break; // RES 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, e); break; // RES 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, h); break; // RES 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, l); break; // RES 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RESHL(251); break; // RES 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, a); break; // RES 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, b); break; // RES 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, c); break; // RES 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, d); break; // RES 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, e); break; // RES 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, h); break; // RES 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, l); break; // RES 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RESHL(247); break; // RES 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, a); break; // RES 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, b); break; // RES 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, c); break; // RES 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, d); break; // RES 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, e); break; // RES 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, h); break; // RES 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, l); break; // RES 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RESHL(239); break; // RES 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, a); break; // RES 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, b); break; // RES 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, c); break; // RES 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, d); break; // RES 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, e); break; // RES 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, h); break; // RES 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, l); break; // RES 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RESHL(223); break; // RES 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, a); break; // RES 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, b); break; // RES 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, c); break; // RES 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, d); break; // RES 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, e); break; // RES 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, h); break; // RES 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, l); break; // RES 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RESHL(191); break; // RES 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, a); break; // RES 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, b); break; // RES 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, c); break; // RES 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, d); break; // RES 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, e); break; // RES 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, h); break; // RES 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, l); break; // RES 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RESHL(127); break; // RES 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, a); break; // RES 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, b); break; // SET 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, c); break; // SET 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, d); break; // SET 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, e); break; // SET 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, h); break; // SET 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, l); break; // SET 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SETHL(1); break; // SET 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, a); break; // SET 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, b); break; // SET 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, c); break; // SET 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, d); break; // SET 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, e); break; // SET 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, h); break; // SET 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, l); break; // SET 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SETHL(2); break; // SET 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, a); break; // SET 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, b); break; // SET 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, c); break; // SET 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, d); break; // SET 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, e); break; // SET 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, h); break; // SET 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, l); break; // SET 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SETHL(4); break; // SET 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, a); break; // SET 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, b); break; // SET 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, c); break; // SET 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, d); break; // SET 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, e); break; // SET 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, h); break; // SET 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, l); break; // SET 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SETHL(8); break; // SET 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, a); break; // SET 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, b); break; // SET 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, c); break; // SET 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, d); break; // SET 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, e); break; // SET 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, h); break; // SET 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, l); break; // SET 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SETHL(16); break; // SET 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, a); break; // SET 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, b); break; // SET 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, c); break; // SET 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, d); break; // SET 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, e); break; // SET 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, h); break; // SET 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, l); break; // SET 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SETHL(32); break; // SET 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, a); break; // SET 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, b); break; // SET 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, c); break; // SET 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, d); break; // SET 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, e); break; // SET 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, h); break; // SET 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, l); break; // SET 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SETHL(64); break; // SET 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, a); break; // SET 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, b); break; // SET 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, c); break; // SET 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, d); break; // SET 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, e); break; // SET 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, h); break; // SET 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, l); break; // SET 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SETHL(128); break; // SET 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, a); break; // SET 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ else{ ~~~~~ st+= 11; ~~~~~~~~ if( iy ) ~~~~~~~~ t= mem[mp= ((mem[pc++]^128)-128+(yl|yh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ t= mem[mp= ((mem[pc++]^128)-128+(xl|xh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(t); mem[mp]= b= t; break; // LD B,RLC (IX+d) // LD B,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(t); mem[mp]= c= t; break; // LD C,RLC (IX+d) // LD C,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(t); mem[mp]= d= t; break; // LD D,RLC (IX+d) // LD D,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(t); mem[mp]= e= t; break; // LD E,RLC (IX+d) // LD E,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(t); mem[mp]= h= t; break; // LD H,RLC (IX+d) // LD H,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(t); mem[mp]= l= t; break; // LD L,RLC (IX+d) // LD L,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: RLC(t); mem[mp]= t; break; // RLC (IX+d) // RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x07: RLC(t); mem[mp]= a= t; break; // LD A,RLC (IX+d) // LD A,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(t); mem[mp]= b= t; break; // LD B,RRC (IX+d) // LD B,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(t); mem[mp]= c= t; break; // LD C,RRC (IX+d) // LD C,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(t); mem[mp]= d= t; break; // LD D,RRC (IX+d) // LD D,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(t); mem[mp]= e= t; break; // LD E,RRC (IX+d) // LD E,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(t); mem[mp]= h= t; break; // LD H,RRC (IX+d) // LD H,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(t); mem[mp]= l= t; break; // LD L,RRC (IX+d) // LD L,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: RRC(t); mem[mp]= t; break; // RRC (IX+d) // RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0f: RRC(t); mem[mp]= a= t; break; // LD A,RRC (IX+d) // LD A,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(t); mem[mp]= b= t; break; // LD B,RL (IX+d) // LD B,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(t); mem[mp]= c= t; break; // LD C,RL (IX+d) // LD C,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(t); mem[mp]= d= t; break; // LD D,RL (IX+d) // LD D,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(t); mem[mp]= e= t; break; // LD E,RL (IX+d) // LD E,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(t); mem[mp]= h= t; break; // LD H,RL (IX+d) // LD H,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(t); mem[mp]= l= t; break; // LD L,RL (IX+d) // LD L,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: RL(t); mem[mp]= t; break; // RL (IX+d) // RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x17: RL(t); mem[mp]= a= t; break; // LD A,RL (IX+d) // LD A,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(t); mem[mp]= b= t; break; // LD B,RR (IX+d) // LD B,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(t); mem[mp]= c= t; break; // LD C,RR (IX+d) // LD C,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(t); mem[mp]= d= t; break; // LD D,RR (IX+d) // LD D,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(t); mem[mp]= e= t; break; // LD E,RR (IX+d) // LD E,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(t); mem[mp]= h= t; break; // LD H,RR (IX+d) // LD H,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(t); mem[mp]= l= t; break; // LD L,RR (IX+d) // LD L,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: RR(t); mem[mp]= t; break; // RR (IX+d) // RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1f: RR(t); mem[mp]= a= t; break; // LD A,RR (IX+d) // LD A,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(t); mem[mp]= b= t; break; // LD B,SLA (IX+d) // LD B,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(t); mem[mp]= c= t; break; // LD C,SLA (IX+d) // LD C,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(t); mem[mp]= d= t; break; // LD D,SLA (IX+d) // LD D,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(t); mem[mp]= e= t; break; // LD E,SLA (IX+d) // LD E,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(t); mem[mp]= h= t; break; // LD H,SLA (IX+d) // LD H,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(t); mem[mp]= l= t; break; // LD L,SLA (IX+d) // LD L,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: SLA(t); mem[mp]= t; break; // SLA (IX+d) // SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x27: SLA(t); mem[mp]= a= t; break; // LD A,SLA (IX+d) // LD A,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(t); mem[mp]= b= t; break; // LD B,SRA (IX+d) // LD B,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(t); mem[mp]= c= t; break; // LD C,SRA (IX+d) // LD C,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(t); mem[mp]= d= t; break; // LD D,SRA (IX+d) // LD D,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(t); mem[mp]= e= t; break; // LD E,SRA (IX+d) // LD E,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(t); mem[mp]= h= t; break; // LD H,SRA (IX+d) // LD H,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(t); mem[mp]= l= t; break; // LD L,SRA (IX+d) // LD L,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: SRA(t); mem[mp]= t; break; // SRA (IX+d) // SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2f: SRA(t); mem[mp]= a= t; break; // LD A,SRA (IX+d) // LD A,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(t); mem[mp]= b= t; break; // LD B,SLL (IX+d) // LD B,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(t); mem[mp]= c= t; break; // LD C,SLL (IX+d) // LD C,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(t); mem[mp]= d= t; break; // LD D,SLL (IX+d) // LD D,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(t); mem[mp]= e= t; break; // LD E,SLL (IX+d) // LD E,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(t); mem[mp]= h= t; break; // LD H,SLL (IX+d) // LD H,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(t); mem[mp]= l= t; break; // LD L,SLL (IX+d) // LD L,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: SLL(t); mem[mp]= t; break; // SLL (IX+d) // SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x37: SLL(t); mem[mp]= a= t; break; // LD A,SLL (IX+d) // LD A,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(t); mem[mp]= b= t; break; // LD B,SRL (IX+d) // LD B,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(t); mem[mp]= c= t; break; // LD C,SRL (IX+d) // LD C,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(t); mem[mp]= d= t; break; // LD D,SRL (IX+d) // LD D,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(t); mem[mp]= e= t; break; // LD E,SRL (IX+d) // LD E,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(t); mem[mp]= h= t; break; // LD H,SRL (IX+d) // LD H,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(t); mem[mp]= l= t; break; // LD L,SRL (IX+d) // LD L,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: SRL(t); mem[mp]= t; break; // SRL (IX+d) // SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3f: SRL(t); mem[mp]= a= t; break; // LD A,SRL (IX+d) // LD A,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: case 0x41: case 0x42: case 0x43: // BIT 0,(IX+d) // BIT 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: case 0x45: case 0x46: case 0x47: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(1); break; ~~~~~~~~~~~~~~~ case 0x48: case 0x49: case 0x4a: case 0x4b: // BIT 1,(IX+d) // BIT 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: case 0x4d: case 0x4e: case 0x4f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(2); break; ~~~~~~~~~~~~~~~ case 0x50: case 0x51: case 0x52: case 0x53: // BIT 2,(IX+d) // BIT 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: case 0x55: case 0x56: case 0x57: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(4); break; ~~~~~~~~~~~~~~~ case 0x58: case 0x59: case 0x5a: case 0x5b: // BIT 3,(IX+d) // BIT 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: case 0x5d: case 0x5e: case 0x5f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(8); break; ~~~~~~~~~~~~~~~ case 0x60: case 0x61: case 0x62: case 0x63: // BIT 4,(IX+d) // BIT 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: case 0x65: case 0x66: case 0x67: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(16); break; ~~~~~~~~~~~~~~~~ case 0x68: case 0x69: case 0x6a: case 0x6b: // BIT 5,(IX+d) // BIT 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: case 0x6d: case 0x6e: case 0x6f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(32); break; ~~~~~~~~~~~~~~~~ case 0x70: case 0x71: case 0x72: case 0x73: // BIT 6,(IX+d) // BIT 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: case 0x75: case 0x76: case 0x77: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(64); break; ~~~~~~~~~~~~~~~~ case 0x78: case 0x79: case 0x7a: case 0x7b: // BIT 7,(IX+d) // BIT 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: case 0x7d: case 0x7e: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(128); break; ~~~~~~~~~~~~~~~~~ case 0x80: RES(254, t); mem[mp]= b= t; break; // LD B,RES 0,(IX+d) // LD B,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, t); mem[mp]= c= t; break; // LD C,RES 0,(IX+d) // LD C,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, t); mem[mp]= d= t; break; // LD D,RES 0,(IX+d) // LD D,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, t); mem[mp]= e= t; break; // LD E,RES 0,(IX+d) // LD E,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, t); mem[mp]= h= t; break; // LD H,RES 0,(IX+d) // LD H,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, t); mem[mp]= l= t; break; // LD L,RES 0,(IX+d) // LD L,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RES(254, t); mem[mp]= t; break; // RES 0,(IX+d) // RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, t); mem[mp]= a= t; break; // LD A,RES 0,(IX+d) // LD A,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, t); mem[mp]= b= t; break; // LD B,RES 1,(IX+d) // LD B,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, t); mem[mp]= c= t; break; // LD C,RES 1,(IX+d) // LD C,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, t); mem[mp]= d= t; break; // LD D,RES 1,(IX+d) // LD D,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, t); mem[mp]= e= t; break; // LD E,RES 1,(IX+d) // LD E,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, t); mem[mp]= h= t; break; // LD H,RES 1,(IX+d) // LD H,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, t); mem[mp]= l= t; break; // LD L,RES 1,(IX+d) // LD L,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RES(253, t); mem[mp]= t; break; // RES 1,(IX+d) // RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, t); mem[mp]= a= t; break; // LD A,RES 1,(IX+d) // LD A,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, t); mem[mp]= b= t; break; // LD B,RES 2,(IX+d) // LD B,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, t); mem[mp]= c= t; break; // LD C,RES 2,(IX+d) // LD C,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, t); mem[mp]= d= t; break; // LD D,RES 2,(IX+d) // LD D,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, t); mem[mp]= e= t; break; // LD E,RES 2,(IX+d) // LD E,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, t); mem[mp]= h= t; break; // LD H,RES 2,(IX+d) // LD H,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, t); mem[mp]= l= t; break; // LD L,RES 2,(IX+d) // LD L,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RES(251, t); mem[mp]= t; break; // RES 2,(IX+d) // RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, t); mem[mp]= a= t; break; // LD A,RES 2,(IX+d) // LD A,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, t); mem[mp]= b= t; break; // LD B,RES 3,(IX+d) // LD B,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, t); mem[mp]= c= t; break; // LD C,RES 3,(IX+d) // LD C,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, t); mem[mp]= d= t; break; // LD D,RES 3,(IX+d) // LD D,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, t); mem[mp]= e= t; break; // LD E,RES 3,(IX+d) // LD E,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, t); mem[mp]= h= t; break; // LD H,RES 3,(IX+d) // LD H,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, t); mem[mp]= l= t; break; // LD L,RES 3,(IX+d) // LD L,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RES(247, t); mem[mp]= t; break; // RES 3,(IX+d) // RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, t); mem[mp]= a= t; break; // LD A,RES 3,(IX+d) // LD A,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, t); mem[mp]= b= t; break; // LD B,RES 4,(IX+d) // LD B,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, t); mem[mp]= c= t; break; // LD C,RES 4,(IX+d) // LD C,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, t); mem[mp]= d= t; break; // LD D,RES 4,(IX+d) // LD D,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, t); mem[mp]= e= t; break; // LD E,RES 4,(IX+d) // LD E,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, t); mem[mp]= h= t; break; // LD H,RES 4,(IX+d) // LD H,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, t); mem[mp]= l= t; break; // LD L,RES 4,(IX+d) // LD L,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RES(239, t); mem[mp]= t; break; // RES 4,(IX+d) // RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, t); mem[mp]= a= t; break; // LD A,RES 4,(IX+d) // LD A,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, t); mem[mp]= b= t; break; // LD B,RES 5,(IX+d) // LD B,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, t); mem[mp]= c= t; break; // LD C,RES 5,(IX+d) // LD C,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, t); mem[mp]= d= t; break; // LD D,RES 5,(IX+d) // LD D,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, t); mem[mp]= e= t; break; // LD E,RES 5,(IX+d) // LD E,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, t); mem[mp]= h= t; break; // LD H,RES 5,(IX+d) // LD H,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, t); mem[mp]= l= t; break; // LD L,RES 5,(IX+d) // LD L,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RES(223, t); mem[mp]= t; break; // RES 5,(IX+d) // RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, t); mem[mp]= a= t; break; // LD A,RES 5,(IX+d) // LD A,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, t); mem[mp]= b= t; break; // LD B,RES 6,(IX+d) // LD B,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, t); mem[mp]= c= t; break; // LD C,RES 6,(IX+d) // LD C,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, t); mem[mp]= d= t; break; // LD D,RES 6,(IX+d) // LD D,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, t); mem[mp]= e= t; break; // LD E,RES 6,(IX+d) // LD E,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, t); mem[mp]= h= t; break; // LD H,RES 6,(IX+d) // LD H,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, t); mem[mp]= l= t; break; // LD L,RES 6,(IX+d) // LD L,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RES(191, t); mem[mp]= t; break; // RES 6,(IX+d) // RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, t); mem[mp]= a= t; break; // LD A,RES 6,(IX+d) // LD A,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, t); mem[mp]= b= t; break; // LD B,RES 7,(IX+d) // LD B,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, t); mem[mp]= c= t; break; // LD C,RES 7,(IX+d) // LD C,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, t); mem[mp]= d= t; break; // LD D,RES 7,(IX+d) // LD D,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, t); mem[mp]= e= t; break; // LD E,RES 7,(IX+d) // LD E,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, t); mem[mp]= h= t; break; // LD H,RES 7,(IX+d) // LD H,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, t); mem[mp]= l= t; break; // LD L,RES 7,(IX+d) // LD L,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RES(127, t); mem[mp]= t; break; // RES 7,(IX+d) // RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, t); mem[mp]= a= t; break; // LD A,RES 7,(IX+d) // LD A,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, t); mem[mp]= b= t; break; // LD B,SET 0,(IX+d) // LD B,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, t); mem[mp]= c= t; break; // LD C,SET 0,(IX+d) // LD C,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, t); mem[mp]= d= t; break; // LD D,SET 0,(IX+d) // LD D,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, t); mem[mp]= e= t; break; // LD E,SET 0,(IX+d) // LD E,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, t); mem[mp]= h= t; break; // LD H,SET 0,(IX+d) // LD H,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, t); mem[mp]= l= t; break; // LD L,SET 0,(IX+d) // LD L,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SET(1, t); mem[mp]= t; break; // SET 0,(IX+d) // SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, t); mem[mp]= a= t; break; // LD A,SET 0,(IX+d) // LD A,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, t); mem[mp]= b= t; break; // LD B,SET 1,(IX+d) // LD B,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, t); mem[mp]= c= t; break; // LD C,SET 1,(IX+d) // LD C,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, t); mem[mp]= d= t; break; // LD D,SET 1,(IX+d) // LD D,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, t); mem[mp]= e= t; break; // LD E,SET 1,(IX+d) // LD E,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, t); mem[mp]= h= t; break; // LD H,SET 1,(IX+d) // LD H,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, t); mem[mp]= l= t; break; // LD L,SET 1,(IX+d) // LD L,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SET(2, t); mem[mp]= t; break; // SET 1,(IX+d) // SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, t); mem[mp]= a= t; break; // LD A,SET 1,(IX+d) // LD A,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, t); mem[mp]= b= t; break; // LD B,SET 2,(IX+d) // LD B,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, t); mem[mp]= c= t; break; // LD C,SET 2,(IX+d) // LD C,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, t); mem[mp]= d= t; break; // LD D,SET 2,(IX+d) // LD D,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, t); mem[mp]= e= t; break; // LD E,SET 2,(IX+d) // LD E,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, t); mem[mp]= h= t; break; // LD H,SET 2,(IX+d) // LD H,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, t); mem[mp]= l= t; break; // LD L,SET 2,(IX+d) // LD L,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SET(4, t); mem[mp]= t; break; // SET 2,(IX+d) // SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, t); mem[mp]= a= t; break; // LD A,SET 2,(IX+d) // LD A,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, t); mem[mp]= b= t; break; // LD B,SET 3,(IX+d) // LD B,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, t); mem[mp]= c= t; break; // LD C,SET 3,(IX+d) // LD C,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, t); mem[mp]= d= t; break; // LD D,SET 3,(IX+d) // LD D,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, t); mem[mp]= e= t; break; // LD E,SET 3,(IX+d) // LD E,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, t); mem[mp]= h= t; break; // LD H,SET 3,(IX+d) // LD H,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, t); mem[mp]= l= t; break; // LD L,SET 3,(IX+d) // LD L,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SET(8, t); mem[mp]= t; break; // SET 3,(IX+d) // SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, t); mem[mp]= a= t; break; // LD A,SET 3,(IX+d) // LD A,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, t); mem[mp]= b= t; break; // LD B,SET 4,(IX+d) // LD B,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, t); mem[mp]= c= t; break; // LD C,SET 4,(IX+d) // LD C,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, t); mem[mp]= d= t; break; // LD D,SET 4,(IX+d) // LD D,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, t); mem[mp]= e= t; break; // LD E,SET 4,(IX+d) // LD E,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, t); mem[mp]= h= t; break; // LD H,SET 4,(IX+d) // LD H,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, t); mem[mp]= l= t; break; // LD L,SET 4,(IX+d) // LD L,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SET(16, t); mem[mp]= t; break; // SET 4,(IX+d) // SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, t); mem[mp]= a= t; break; // LD A,SET 4,(IX+d) // LD A,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, t); mem[mp]= b= t; break; // LD B,SET 5,(IX+d) // LD B,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, t); mem[mp]= c= t; break; // LD C,SET 5,(IX+d) // LD C,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, t); mem[mp]= d= t; break; // LD D,SET 5,(IX+d) // LD D,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, t); mem[mp]= e= t; break; // LD E,SET 5,(IX+d) // LD E,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, t); mem[mp]= h= t; break; // LD H,SET 5,(IX+d) // LD H,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, t); mem[mp]= l= t; break; // LD L,SET 5,(IX+d) // LD L,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SET(32, t); mem[mp]= t; break; // SET 5,(IX+d) // SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, t); mem[mp]= a= t; break; // LD A,SET 5,(IX+d) // LD A,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, t); mem[mp]= b= t; break; // LD B,SET 6,(IX+d) // LD B,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, t); mem[mp]= c= t; break; // LD C,SET 6,(IX+d) // LD C,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, t); mem[mp]= d= t; break; // LD D,SET 6,(IX+d) // LD D,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, t); mem[mp]= e= t; break; // LD E,SET 6,(IX+d) // LD E,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, t); mem[mp]= h= t; break; // LD H,SET 6,(IX+d) // LD H,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, t); mem[mp]= l= t; break; // LD L,SET 6,(IX+d) // LD L,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SET(64, t); mem[mp]= t; break; // SET 6,(IX+d) // SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, t); mem[mp]= a= t; break; // LD A,SET 6,(IX+d) // LD A,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, t); mem[mp]= b= t; break; // LD B,SET 7,(IX+d) // LD B,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, t); mem[mp]= c= t; break; // LD C,SET 7,(IX+d) // LD C,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, t); mem[mp]= d= t; break; // LD D,SET 7,(IX+d) // LD D,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, t); mem[mp]= e= t; break; // LD E,SET 7,(IX+d) // LD E,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, t); mem[mp]= h= t; break; // LD H,SET 7,(IX+d) // LD H,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, t); mem[mp]= l= t; break; // LD L,SET 7,(IX+d) // LD L,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SET(128, t); mem[mp]= t; break; // SET 7,(IX+d) // SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, t); mem[mp]= a= t; break; // LD A,SET 7,(IX+d) // LD A,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ } ~ ih=1;break; ~~~~~~~~~~~ case 0xed: // OP ED ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: case 0x01: case 0x02: case 0x03: // NOP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: case 0x05: case 0x06: case 0x07: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: case 0x09: case 0x0a: case 0x0b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: case 0x0d: case 0x0e: case 0x0f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: case 0x11: case 0x12: case 0x13: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: case 0x15: case 0x16: case 0x17: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: case 0x19: case 0x1a: case 0x1b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: case 0x1d: case 0x1e: case 0x1f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: case 0x21: case 0x22: case 0x23: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: case 0x25: case 0x26: case 0x27: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: case 0x29: case 0x2a: case 0x2b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: case 0x2d: case 0x2e: case 0x2f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: case 0x31: case 0x32: case 0x33: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: case 0x35: case 0x36: case 0x37: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: case 0x39: case 0x3a: case 0x3b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: case 0x3d: case 0x3e: case 0x3f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~ case 0x80: case 0x81: case 0x82: case 0x83: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: case 0x85: case 0x86: case 0x87: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: case 0x89: case 0x8a: case 0x8b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: case 0x8d: case 0x8e: case 0x8f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: case 0x91: case 0x92: case 0x93: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: case 0x95: case 0x96: case 0x97: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: case 0x99: case 0x9a: case 0x9b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: case 0x9d: case 0x9e: case 0x9f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: case 0xa5: case 0xa6: case 0xa7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: case 0xad: case 0xae: case 0xaf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: case 0xb5: case 0xb6: case 0xb7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: case 0xbd: case 0xbe: case 0xbf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: case 0xc1: case 0xc2: case 0xc3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: case 0xc5: case 0xc6: case 0xc7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: case 0xc9: case 0xca: case 0xcb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: case 0xcd: case 0xce: case 0xcf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: case 0xd1: case 0xd2: case 0xd3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: case 0xd5: case 0xd6: case 0xd7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: case 0xd9: case 0xda: case 0xdb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: case 0xdd: case 0xde: case 0xdf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: case 0xe1: case 0xe2: case 0xe3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: case 0xe5: case 0xe6: case 0xe7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: case 0xe9: case 0xea: case 0xeb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: case 0xed: case 0xee: case 0xef: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: case 0xf1: case 0xf2: case 0xf3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: case 0xf5: case 0xf6: case 0xf7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: case 0xf9: case 0xfa: case 0xfb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: case 0xfd: case 0xfe: case 0xff: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 8; break; ~~~~~~~~~~~~~~ case 0x40: INR(b); break; // IN B,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: INR(c); break; // IN C,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: INR(d); break; // IN D,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: INR(e); break; // IN E,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: INR(h); break; // IN H,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: INR(l); break; // IN L,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: INR(t); break; // IN X,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: INR(a); break; // IN A,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: OUTR(b); break; // OUT (C),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: OUTR(c); break; // OUT (C),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: OUTR(d); break; // OUT (C),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: OUTR(e); break; // OUT (C),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: OUTR(h); break; // OUT (C),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: OUTR(l); break; // OUT (C),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: OUTR(0); break; // OUT (C),X ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: OUTR(a); break; // OUT (C),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: SBCHLRR(b, c); break; // SBC HL,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: SBCHLRR(d, e); break; // SBC HL,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: SBCHLRR(h, l); break; // SBC HL,HL ~~~~~~~~~~~~~~~~~~~~ ticks.c:2615:22: note: in expansion of macro 'SBCHLRR' case 0x62: SBCHLRR(h, l); break; // SBC HL,HL ^~~~~~~ ticks.c:377:20: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] v= l+b+(h+a<<8)+(ff>>8&1),\ ~^~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ FILE * ft; ~~~~~~~~~~ unsigned char * tapbuf; ~~~~~~~~~~~~~~~~~~~~~~~ int v ~~~~~~~~~ , wavpos= 0 ~~~~~~~~~~~ , wavlen= 0 ~~~~~~~~~~~ , mues ~~~~~~ ; ~ unsigned short ~~~~~~~~~~~~~~ pc= 0 ~~~~~ , sp= 0 ~~~~~~~ , mp= 0 ~~~~~~~ , t= 0 ~~~~~~ , u= 0 ~~~~~~ , ff= 0 ~~~~~~~ , ff_= 0 ~~~~~~~~ , fa= 0 ~~~~~~~ , fa_= 0 ~~~~~~~~ , fb= 0 ~~~~~~~ , fb_= 0 ~~~~~~~~ , fr= 0 ~~~~~~~ , fr_= 0 ~~~~~~~~ ; ~ long long ~~~~~~~~~ st= 0 ~~~~~ , sttap ~~~~~~~ , stint ~~~~~~~ , counter= 1e8 ~~~~~~~~~~~~~~ ; ~ unsigned char ~~~~~~~~~~~~~ a= 0 ~~~~ , b= 0 ~~~~~~ , c= 0 ~~~~~~ , d= 0 ~~~~~~ , e= 0 ~~~~~~ , h= 0 ~~~~~~ , l= 0 ~~~~~~ , a_= 0 ~~~~~~~ , b_= 0 ~~~~~~~ , c_= 0 ~~~~~~~ , d_= 0 ~~~~~~~ , e_= 0 ~~~~~~~ , h_= 0 ~~~~~~~ , l_= 0 ~~~~~~~ , xl= 0 ~~~~~~~ , xh= 0 ~~~~~~~ , yl= 0 ~~~~~~~ , yh= 0 ~~~~~~~ , i= 0 ~~~~~~ , r= 0 ~~~~~~ , r7= 0 ~~~~~~~ , ih= 1 ~~~~~~~ , iy= 0 ~~~~~~~ , iff= 0 ~~~~~~~~ , im= 0 ~~~~~~~ , w= 0 ~~~~~~ , ear= 255 ~~~~~~~~~~ , halted= 0 ~~~~~~~~~~~ ; ~ long tapcycles(void){ ~~~~~~~~~~~~~~~~~~~~~ mues= 1; ~~~~~~~~ wavpos!=0x20000 && (ear^= 64); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavpos>0x1f000 ) ~~~~~~~~~~~~~~~~~~~~ fseek( ft, wavpos-0x20000, SEEK_CUR ), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen-= wavpos, ~~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while( (tapbuf[++wavpos]^ear<<1)&0x80 && wavpos<0x20000 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mues+= 81; // correct value must be 79.365, adjusted to simulate contention in Alkatraz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavlen<=wavpos ) ~~~~~~~~~~~~~~~~~~~~ return 0; ~~~~~~~~~ else ~~~~ return mues; ~~~~~~~~~~~~ } ~ int in(int port){ ~~~~~~~~~~~~~~~~~ return port&1 ? 255 : ear; ~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void out(int port, int value){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ return; ~~~~~~~ } ~ int f(void){ ~~~~~~~~~~~~ return ff & 168 ~~~~~~~~~~~~~~~~ | ff >> 8 & 1 ~~~~~~~~~~~~~ | !fr << 6 ~~~~~~~~~~ | fb >> 8 & 2 ~~~~~~~~~~~~~ | (fr ^ fa ^ fb ^ fb >> 8) & 16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | (fa & -256 ~~~~~~~~~~~~ ? 154020 >> ((fr ^ fr >> 4) & 15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ((fr ^ fa) & (fr ^ fb)) >> 5) & 4; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void setf(int a){ ~~~~~~~~~~~~~~~~~ fr= ~a & 64; ~~~~~~~~~~~~ ff= a|= a<<8; ~~~~~~~~~~~~~ fa= 255 & (fb= a & -129 | (a&4)<<5); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ int main (int argc, char **argv){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unsigned char * mem= (unsigned char *) malloc (0x10000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int size= 0, start= 0, end= 0, intr= 0, tap= 0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char * output= NULL; ~~~~~~~~~~~~~~~~~~~~ FILE * fh; ~~~~~~~~~~ tapbuf= (unsigned char *) malloc (0x20000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( argc==1 ) ~~~~~~~~~~~~~ printf("Ticks v0.14c beta, a silent Z80 emulator by Antonio Villena, 10 Jan 2013\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" ticks [-pc X] [-start X] [-end X] [-counter X] [-output ]\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" File between 1 and 65536 bytes with Z80 machine code\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -tape emulates ZX tape in port $FE from a .WAV file\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -pc X X in hexadecimal is the initial PC value\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -start X X in hexadecimal is the PC condition to start the counter\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -end X X in hexadecimal is the PC condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -counter X X in decimal is another condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -int X X in decimal are number of cycles for periodic interrupts\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -output dumps the RAM content to a 64K file\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" Default values for -pc, -start and -end are 0000 if ommited. When the program "), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("exits, it'll show the number of cycles between start and end trigger in decimal\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(0); ~~~~~~~~ while (argc > 1){ ~~~~~~~~~~~~~~~~~ if( argv[1][0] == '-' && argv[2] ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch (argc--, argv++[1][1]){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 'p': ~~~~~~~~~ pc= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 's': ~~~~~~~~~ start= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'e': ~~~~~~~~~ end= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'i': ~~~~~~~~~ intr= strtol(argv[1], NULL, 10); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'c': ~~~~~~~~~ sscanf(argv[1], "%llu", &counter); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ counter<0 && (counter= 9e18); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'o': ~~~~~~~~~ output= argv[1]; ~~~~~~~~~~~~~~~~ break; ~~~~~~ case 't': ~~~~~~~~~ ft= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !ft ) ~~~~~~~~~ printf("\nTape file not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memcpy(&wavlen, tapbuf+4, 4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen+= 8; ~~~~~~~~~~~ if( *(int*) tapbuf != 0x46464952 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid WAV header\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+16) != 16 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid subchunk size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+20) != 0x10001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid number of channels or compression (only Mono and PCM allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+24) != 44100 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid sample rate (only 44100Hz allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+32) != 0x80001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid align or bits per sample (only 8-bits samples allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+40)+44 != wavlen ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid header size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ wavpos= 44; ~~~~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ printf("\nWrong Argument: %s\n", argv[0]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ } ~ else{ ~~~~~ fh= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fh ) ~~~~~~~~~ printf("\nFile not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fseek(fh, 0, SEEK_END); ~~~~~~~~~~~~~~~~~~~~~~~ size= ftell(fh); ~~~~~~~~~~~~~~~~ rewind(fh); ~~~~~~~~~~~ if( size>65536 && size!=65574 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nIncorrect length: %d\n", size), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ else if( !strcasecmp(strchr(argv[1], '.'), ".sna" ) && size==49179 ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILE *fk= fopen("48.rom", "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fk ) ~~~~~~~~~ printf("\nZX Spectrum ROM file not found: 48.rom\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(mem, 1, 16384, fk); ~~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fk); ~~~~~~~~~~~ fread(&i, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ ff_= ff; ~~~~~~~~ fr_= fr; ~~~~~~~~ fa_= fa; ~~~~~~~~ fb_= fb; ~~~~~~~~ fread(&a_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&e, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~ iff>>= 2; ~~~~~~~~~ fread(&r, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ r7= r; ~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ fread(&a, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(mem+0x4000, 1, 0xc000, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RET(0); ~~~~~~~ } ~ else if( size==65574 ) ~~~~~~~~~~~~~~~~~~~~~~ fread(mem, 1, 65536, fh), ~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ u= w, ~~~~~ fread(&a, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&pc, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&i, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&r, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ r7= r, ~~~~~~ fread(&e, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ setf(w), ~~~~~~~~ ff_= ff, ~~~~~~~~ fr_= fr, ~~~~~~~~ fa_= fa, ~~~~~~~~ fb_= fb, ~~~~~~~~ setf(u), ~~~~~~~~ fread(&a_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&mp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ else ~~~~ fread(mem, 1, size, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ } ~ ++argv; ~~~~~~~ --argc; ~~~~~~~ } ~ if( size==65574 ){ ~~~~~~~~~~~~~~~~~~ fread(&wavpos, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~ ear= wavpos<<6 | 191; ~~~~~~~~~~~~~~~~~~~~~ wavpos>>= 1; ~~~~~~~~~~~~ if( wavpos && ft ) ~~~~~~~~~~~~~~~~~~ fseek(ft, wavlen-wavpos, SEEK_SET), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen= wavpos, ~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&sttap, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ tap= sttap; ~~~~~~~~~~~ } ~ else ~~~~ sttap= tap= tapcycles(); ~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fh); ~~~~~~~~~~~ if( !size ) ~~~~~~~~~~~ printf("File not specified or zero length\n"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= intr; ~~~~~~~~~~~~ do{ ~~~ if( pc==start ) ~~~~~~~~~~~~~~~ st= 0, ~~~~~~ stint= intr, ~~~~~~~~~~~~ sttap= tap; ~~~~~~~~~~~ if( intr && st>stint && ih ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= st+intr; ~~~~~~~~~~~~~~~ if( iff ){ ~~~~~~~~~~ halted && (pc++, halted= 0); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ iff= 0; ~~~~~~~ mem[--sp]= pc>>8; ~~~~~~~~~~~~~~~~~ mem[--sp]= pc; ~~~~~~~~~~~~~~ r++; ~~~~ switch( im ){ ~~~~~~~~~~~~~ case 1: ~~~~~~~ st++; ~~~~~ case 0: ~~~~~~~ pc= 56; ~~~~~~~ st+= 12; ~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ pc= mem[t= 255 | i << 8]; ~~~~~~~~~~~~~~~~~~~~~~~~~ pc|= mem[++t] << 8; ~~~~~~~~~~~~~~~~~~~ st+= 19; ~~~~~~~~ } ~ } ~ } ~ if( tap && st>sttap ) ~~~~~~~~~~~~~~~~~~~~~ sttap= st+( tap= tapcycles() ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ r++; ~~~~ // printf("pc=%04X, [pc]=%02X, bc=%04X, de=%04X, hl=%04X, af=%04X, ix=%04X, iy=%04X\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // pc, mem[pc], c|b<<8, e|d<<8, l|h<<8, f()|a<<8, xl|xh<<8, yl|yh<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: // NOP ~~~~~~~~~~~~~~~~~ case 0x40: // LD B,B ~~~~~~~~~~~~~~~~~~~~ case 0x49: // LD C,C ~~~~~~~~~~~~~~~~~~~~ case 0x52: // LD D,D ~~~~~~~~~~~~~~~~~~~~ case 0x5b: // LD E,E ~~~~~~~~~~~~~~~~~~~~ case 0x64: // LD H,H ~~~~~~~~~~~~~~~~~~~~ case 0x6d: // LD L,L ~~~~~~~~~~~~~~~~~~~~ case 0x7f: // LD A,A ~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x76: // HALT ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ halted= 1; ~~~~~~~~~~ pc--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x01: // LD BC,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(b, c); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x11: // LD DE,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(d, e); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x21: // LD HL,nn // LD IX,nn // LD IY,nn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRIM(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRIM(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ LDRRIM(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x31: // LD SP,nn ~~~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ sp= mem[pc++]; ~~~~~~~~~~~~~~ sp|= mem[pc++]<<8; ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x02: // LD (BC),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x12: // LD (DE),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0a: // LD A,(BC) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1a: // LD A,(DE) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x22: // LD (nn),HL // LD (nn),IX // LD (nn),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPNNRR(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPNNRR(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDPNNRR(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x32: // LD (nn),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ t= mem[pc++]; ~~~~~~~~~~~~~ mem[t|= mem[pc++]<<8]= a; ~~~~~~~~~~~~~~~~~~~~~~~~~ mp= t+1 & 255 ~~~~~~~~~~~~~ | a<<8; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2a: // LD HL,(nn) // LD IX,(nn) // LD IY,(nn) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRPNN(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRPNN(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDRRPNN(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3a: // LD A,(nn) ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ mp= mem[pc++]; ~~~~~~~~~~~~~~ a= mem[mp|= mem[pc++]<<8]; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x03: // INC BC ~~~~~~~~~~~~~~~~~~~~ INCW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x13: // INC DE ~~~~~~~~~~~~~~~~~~~~ INCW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x23: // INC HL // INC IX // INC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INCW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ INCW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x33: // INC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0b: // DEC BC ~~~~~~~~~~~~~~~~~~~~ DECW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1b: // DEC DE ~~~~~~~~~~~~~~~~~~~~ DECW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2b: // DEC HL // DEC IX // DEC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DECW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ DECW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3b: // DEC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x04: // INC B ~~~~~~~~~~~~~~~~~~~ INC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x0c: // INC C ~~~~~~~~~~~~~~~~~~~ INC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x14: // INC D ~~~~~~~~~~~~~~~~~~~ INC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1c: // INC E ~~~~~~~~~~~~~~~~~~~ INC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x24: // INC H // INC IXh // INC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yh); ~~~~~~~~ else ~~~~ INC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2c: // INC L // INC IXl // INC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yl); ~~~~~~~~ else ~~~~ INC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x34: // INC (HL) // INC (IX+d) // INC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ INCPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3c: // INC A ~~~~~~~~~~~~~~~~~~~ INC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x05: // DEC B ~~~~~~~~~~~~~~~~~~~ DEC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0d: // DEC C ~~~~~~~~~~~~~~~~~~~ DEC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x15: // DEC D ~~~~~~~~~~~~~~~~~~~ DEC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1d: // DEC E ~~~~~~~~~~~~~~~~~~~ DEC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x25: // DEC H // DEC IXh // DEC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yh); ~~~~~~~~ else ~~~~ DEC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2d: // DEC L // DEC IXl // DEC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yl); ~~~~~~~~ else ~~~~ DEC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x35: // DEC (HL) // DEC (IX+d) // DEC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=-1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ DECPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3d: // DEC A ~~~~~~~~~~~~~~~~~~~ DEC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x06: // LD B,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(b); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0e: // LD C,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(c); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x16: // LD D,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(d); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1e: // LD E,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(e); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x26: // LD H,n // LD IXh,n // LD IYh,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(h); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yh); ~~~~~~~~~~ else ~~~~ LDRIM(xh); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2e: // LD L,n // LD IXl,n // LD IYl,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(l); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yl); ~~~~~~~~~~ else ~~~~ LDRIM(xl); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x36: // LD (HL),n // LD (IX+d),n // LD (IY+d),n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 10, ~~~~~~~~ mem[l|h<<8]= mem[pc++]; ~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPIN(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ LDPIN(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3e: // LD A,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(a); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x07: // RLCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a*257>>7; ~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0f: // RRCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a>>1 ~~~~~~~~~~ | ((a&1)+1^1)<<7; ~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x17: // RLA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a<<1 ~~~~~~~~~~ | ff>>8 & 1; ~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb & 128 ~~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1f: // RRA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= (a*513 | ff&256)>>1; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x09: // ADD HL,BC // ADD IX,BC // ADD IY,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, b, c); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x19: // ADD HL,DE // ADD IX,DE // ADD IY,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, d, e); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x29: // ADD HL,HL // ADD IX,IX // ADD IY,IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, h, l); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, yh, yl); ~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, xh, xl); ~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x39: // ADD HL,SP // ADD IX,SP // ADD IY,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDISP(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDISP(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ ADDISP(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x18: // JR ~~~~~~~~~~~~~~~~ st+= 12; ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x20: // JR NZ,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x28: // JR Z,s8 ~~~~~~~~~~~~~~~~~~~~~ JRC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x30: // JR NC,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x38: // JR C,s8 ~~~~~~~~~~~~~~~~~~~~~ JRCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x08: // EX AF,AF' ~~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = a_; ~~~~~~~~~ a_ = a; ~~~~~~~~ a = t; ~~~~~~~~ t = ff_; ~~~~~~~~~~ ff_= ff; ~~~~~~~~~ ff = t; ~~~~~~~~ t = fr_; ~~~~~~~~~~ fr_= fr; ~~~~~~~~~ fr = t; ~~~~~~~~ t = fa_; ~~~~~~~~~~ fa_= fa; ~~~~~~~~~ fa = t; ~~~~~~~~ t = fb_; ~~~~~~~~~~ fb_= fb; ~~~~~~~~~ fb = t; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x10: // DJNZ ~~~~~~~~~~~~~~~~~~ if( --b ) ~~~~~~~~~ st+= 13, ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ st+= 8, ~~~~~~~ pc++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x27: // DAA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= (fr^fa^fb^fb>>8) & 16; ~~~~~~~~~~~~~~~~~~~~~~~~~ u= 0; ~~~~~ (a | ff&256)>153 && (u= 352); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (a&15 | t)>9 && (u+= 6); ~~~~~~~~~~~~~~~~~~~~~~~~ fa= a|256; ~~~~~~~~~~ if( fb&512 ) ~~~~~~~~~~~~ a-= u, ~~~~~~ fb= ~u; ~~~~~~~ else ~~~~ a+= fb= u; ~~~~~~~~~~ ff= (fr= a) ~~~~~~~~~~~ | u&256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2f: // CPL ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ff= ff &-41 ~~~~~~~~~~~~~~~~ | (a^=255)& 40; ~~~~~~~~~~~~~~~ fb|= -129; ~~~~~~~~~~ fa= fa & -17 ~~~~~~~~~~~~~ | ~fr & 16; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x37: // SCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fr^fa) & 16; ~~~~~~~~~~~~~~~ ff= 256 ~~~~~~~ | ff &128 ~~~~~~~~~~ | a & 40; ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3f: // CCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~~~~~~~ | (ff>>4^fr^fa) & 16; ~~~~~~~~~~~~~~~~~~~~~ ff= ~ff & 256 ~~~~~~~~~~~~~ | ff & 128 ~~~~~~~~~~~ | a & 40; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x41: // LD B,C ~~~~~~~~~~~~~~~~~~~~ LDRR(b, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x42: // LD B,D ~~~~~~~~~~~~~~~~~~~~ LDRR(b, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x43: // LD B,E ~~~~~~~~~~~~~~~~~~~~ LDRR(b, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x44: // LD B,H // LD B,IXh // LD B,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x45: // LD B,L // LD B,IXl // LD B,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x46: // LD B,(HL) // LD B,(IX+d) // LD B,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x47: // LD B,A ~~~~~~~~~~~~~~~~~~~~ LDRR(b, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x48: // LD C,B ~~~~~~~~~~~~~~~~~~~~ LDRR(c, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4a: // LD C,D ~~~~~~~~~~~~~~~~~~~~ LDRR(c, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4b: // LD C,E ~~~~~~~~~~~~~~~~~~~~ LDRR(c, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4c: // LD C,H // LD C,IXh // LD C,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4d: // LD C,L // LD C,IXl // LD C,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4e: // LD C,(HL) // LD C,(IX+d) // LD C,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4f: // LD C,A ~~~~~~~~~~~~~~~~~~~~ LDRR(c, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x50: // LD D,B ~~~~~~~~~~~~~~~~~~~~ LDRR(d, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x51: // LD D,C ~~~~~~~~~~~~~~~~~~~~ LDRR(d, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x53: // LD D,E ~~~~~~~~~~~~~~~~~~~~ LDRR(d, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x54: // LD D,H // LD D,IXh // LD D,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x55: // LD D,L // LD D,IXl // LD D,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x56: // LD D,(HL) // LD D,(IX+d) // LD D,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x57: // LD D,A ~~~~~~~~~~~~~~~~~~~~ LDRR(d, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x58: // LD E,B ~~~~~~~~~~~~~~~~~~~~ LDRR(e, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x59: // LD E,C ~~~~~~~~~~~~~~~~~~~~ LDRR(e, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5a: // LD E,D ~~~~~~~~~~~~~~~~~~~~ LDRR(e, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5c: // LD E,H // LD E,IXh // LD E,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5d: // LD E,L // LD E,IXl // LD E,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5e: // LD E,(HL) // LD E,(IX+d) // LD E,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5f: // LD E,A ~~~~~~~~~~~~~~~~~~~~ LDRR(e, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x60: // LD H,B // LD IXh,B // LD IYh,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x61: // LD H,C // LD IXh,C // LD IYh,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x62: // LD H,D // LD IXh,D // LD IYh,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x63: // LD H,E // LD IXh,E // LD IYh,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x65: // LD H,L // LD IXh,IXl // LD IYh,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, yl, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, xl, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x66: // LD H,(HL) // LD H,(IX+d) // LD H,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x67: // LD H,A // LD IXh,A // LD IYh,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x68: // LD L,B // LD IXl,B // LD IYl,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x69: // LD L,C // LD IXl,C // LD IYl,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6a: // LD L,D // LD IXl,D // LD IYl,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6b: // LD L,E // LD IXl,E // LD IYl,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6c: // LD L,H // LD IXl,IXh // LD IYl,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, yh, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, xh, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6e: // LD L,(HL) // LD L,(IX+d) // LD L,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6f: // LD L,A // LD IXl,A // LD IYl,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x70: // LD (HL),B // LD (IX+d),B // LD (IY+d),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x71: // LD (HL),C // LD (IX+d),C // LD (IY+d),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x72: // LD (HL),D // LD (IX+d),D // LD (IY+d),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x73: // LD (HL),E // LD (IX+d),E // LD (IY+d),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x74: // LD (HL),H // LD (IX+d),H // LD (IY+d),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x75: // LD (HL),L // LD (IX+d),L // LD (IY+d),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x77: // LD (HL),A // LD (IX+d),A // LD (IY+d),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x78: // LD A,B ~~~~~~~~~~~~~~~~~~~~ LDRR(a, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x79: // LD A,C ~~~~~~~~~~~~~~~~~~~~ LDRR(a, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7a: // LD A,D ~~~~~~~~~~~~~~~~~~~~ LDRR(a, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7b: // LD A,E ~~~~~~~~~~~~~~~~~~~~ LDRR(a, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7c: // LD A,H // LD A,IXh // LD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7d: // LD A,L // LD A,IXl // LD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7e: // LD A,(HL) // LD A,(IX+d) // LD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x80: // ADD A,B ~~~~~~~~~~~~~~~~~~~~~ ADD(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x81: // ADD A,C ~~~~~~~~~~~~~~~~~~~~~ ADD(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x82: // ADD A,D ~~~~~~~~~~~~~~~~~~~~~ ADD(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x83: // ADD A,E ~~~~~~~~~~~~~~~~~~~~~ ADD(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x84: // ADD A,H // ADD A,IXh // ADD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yh, 4); ~~~~~~~~~~~ else ~~~~ ADD(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x85: // ADD A,L // ADD A,IXl // ADD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yl, 4); ~~~~~~~~~~~ else ~~~~ ADD(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x86: // ADD A,(HL) // ADD A,(IX+d) // ADD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADD(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x87: // ADD A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x88: // ADC A,B ~~~~~~~~~~~~~~~~~~~~~ ADC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x89: // ADC A,C ~~~~~~~~~~~~~~~~~~~~~ ADC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8a: // ADC A,D ~~~~~~~~~~~~~~~~~~~~~ ADC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8b: // ADC A,E ~~~~~~~~~~~~~~~~~~~~~ ADC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8c: // ADC A,H // ADC A,IXh // ADC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yh, 4); ~~~~~~~~~~~ else ~~~~ ADC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8d: // ADC A,L // ADC A,IXl // ADC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yl, 4); ~~~~~~~~~~~ else ~~~~ ADC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8e: // ADC A,(HL) // ADC A,(IX+d) // ADC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8f: // ADC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)+(ff>>8&1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x90: // SUB B ~~~~~~~~~~~~~~~~~~~ SUB(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x91: // SUB C ~~~~~~~~~~~~~~~~~~~ SUB(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x92: // SUB D ~~~~~~~~~~~~~~~~~~~ SUB(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x93: // SUB E ~~~~~~~~~~~~~~~~~~~ SUB(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x94: // SUB H // SUB IXh // SUB IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yh, 4); ~~~~~~~~~~~ else ~~~~ SUB(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x95: // SUB L // SUB IXl // SUB IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yl, 4); ~~~~~~~~~~~ else ~~~~ SUB(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x96: // SUB (HL) // SUB (IX+d) // SUB (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SUB(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x97: // SUB A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= ff= 0; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x98: // SBC A,B ~~~~~~~~~~~~~~~~~~~~~ SBC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x99: // SBC A,C ~~~~~~~~~~~~~~~~~~~~~ SBC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9a: // SBC A,D ~~~~~~~~~~~~~~~~~~~~~ SBC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9b: // SBC A,E ~~~~~~~~~~~~~~~~~~~~~ SBC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9c: // SBC A,H // SBC A,IXh // SBC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yh, 4); ~~~~~~~~~~~ else ~~~~ SBC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9d: // SBC A,L // SBC A,IXl // SBC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yl, 4); ~~~~~~~~~~~ else ~~~~ SBC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9e: // SBC A,(HL) // SBC A,(IX+d) // SBC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SBC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9f: // SBC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= (ff= (ff&256)/-256); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa0: // AND B ~~~~~~~~~~~~~~~~~~~ AND(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa1: // AND C ~~~~~~~~~~~~~~~~~~~ AND(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa2: // AND D ~~~~~~~~~~~~~~~~~~~ AND(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa3: // AND E ~~~~~~~~~~~~~~~~~~~ AND(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa4: // AND H // AND IXh // AND IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yh, 4); ~~~~~~~~~~~ else ~~~~ AND(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa5: // AND L // AND IXl // AND IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yl, 4); ~~~~~~~~~~~ else ~~~~ AND(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa6: // AND (HL) // AND (IX+d) // AND (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ AND(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa7: // AND A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= ~(ff= fr= a); ~~~~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa8: // XOR B ~~~~~~~~~~~~~~~~~~~ XOR(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa9: // XOR C ~~~~~~~~~~~~~~~~~~~ XOR(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaa: // XOR D ~~~~~~~~~~~~~~~~~~~ XOR(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xab: // XOR E ~~~~~~~~~~~~~~~~~~~ XOR(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xac: // XOR H // XOR IXh // XOR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yh, 4); ~~~~~~~~~~~ else ~~~~ XOR(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xad: // XOR L // XOR IXl // XOR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yl, 4); ~~~~~~~~~~~ else ~~~~ XOR(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xae: // XOR (HL) // XOR (IX+d) // XOR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ XOR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaf: // XOR A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= ff= fr= fb= 0; ~~~~~~~~~~~~~~~~~ fa= 256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb0: // OR B ~~~~~~~~~~~~~~~~~~ OR(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb1: // OR C ~~~~~~~~~~~~~~~~~~ OR(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb2: // OR D ~~~~~~~~~~~~~~~~~~ OR(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb3: // OR E ~~~~~~~~~~~~~~~~~~ OR(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb4: // OR H // OR IXh // OR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yh, 4); ~~~~~~~~~~ else ~~~~ OR(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb5: // OR L // OR IXl // OR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yl, 4); ~~~~~~~~~~ else ~~~~ OR(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb6: // OR (HL) // OR (IX+d) // OR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ OR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb7: // OR A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= 256 ~~~~~~~ | (ff= fr= a); ~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb8: // CP B ~~~~~~~~~~~~~~~~~~ CP(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb9: // CP C ~~~~~~~~~~~~~~~~~~ CP(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xba: // CP D ~~~~~~~~~~~~~~~~~~ CP(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbb: // CP E ~~~~~~~~~~~~~~~~~~ CP(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbc: // CP H // CP IXh // CP IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yh, 4); ~~~~~~~~~~ else ~~~~ CP(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbd: // CP L // CP IXl // CP IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yl, 4); ~~~~~~~~~~ else ~~~~ CP(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbe: // CP (HL) // CP (IX+d) // CP (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ w= mem[l|h<<8], ~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ w= mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else ~~~~ w= mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbf: // CP A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= 0; ~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ ff= a&40; ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc9: // RET ~~~~~~~~~~~~~~~~~ RET(10); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc0: // RET NZ ~~~~~~~~~~~~~~~~~~~~ RETCI(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc8: // RET Z ~~~~~~~~~~~~~~~~~~~ RETC(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd0: // RET NC ~~~~~~~~~~~~~~~~~~~~ RETC(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd8: // RET C ~~~~~~~~~~~~~~~~~~~ RETCI(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe0: // RET PO ~~~~~~~~~~~~~~~~~~~~ RETC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe8: // RET PE ~~~~~~~~~~~~~~~~~~~~ RETCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf0: // RET P ~~~~~~~~~~~~~~~~~~~ RETC(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf8: // RET M ~~~~~~~~~~~~~~~~~~~ RETCI(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc1: // POP BC ~~~~~~~~~~~~~~~~~~~~ POP(b, c); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd1: // POP DE ~~~~~~~~~~~~~~~~~~~~ POP(d, e); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe1: // POP HL // POP IX // POP IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ POP(h, l); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ POP(yh, yl); ~~~~~~~~~~~~ else ~~~~ POP(xh, xl); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf1: // POP AF ~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ setf(mem[sp++]); ~~~~~~~~~~~~~~~~ a= mem[sp++]; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc5: // PUSH BC ~~~~~~~~~~~~~~~~~~~~~ PUSH(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd5: // PUSH DE ~~~~~~~~~~~~~~~~~~~~~ PUSH(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe5: // PUSH HL // PUSH IX // PUSH IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ PUSH(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ PUSH(yh, yl); ~~~~~~~~~~~~~ else ~~~~ PUSH(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf5: // PUSH AF ~~~~~~~~~~~~~~~~~~~~~ PUSH(a, f()); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc3: // JP nn ~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc2: // JP NZ ~~~~~~~~~~~~~~~~~~~ JPCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xca: // JP Z ~~~~~~~~~~~~~~~~~~ JPC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd2: // JP NC ~~~~~~~~~~~~~~~~~~~ JPC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xda: // JP C ~~~~~~~~~~~~~~~~~~ JPCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe2: // JP PO ~~~~~~~~~~~~~~~~~~~ JPC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xea: // JP PE ~~~~~~~~~~~~~~~~~~~ JPCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf2: // JP P ~~~~~~~~~~~~~~~~~~ JPC(ff&128); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfa: // JP M ~~~~~~~~~~~~~~~~~~ JPCI(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcd: // CALL nn ~~~~~~~~~~~~~~~~~~~~~ st+= 17; ~~~~~~~~ t= pc+2; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mem[--sp]= t>>8; ~~~~~~~~~~~~~~~~ mem[--sp]= t; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc4: // CALL NZ ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fr); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcc: // CALL Z ~~~~~~~~~~~~~~~~~~~~ CALLC(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd4: // CALL NC ~~~~~~~~~~~~~~~~~~~~~ CALLC(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdc: // CALL C ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&256); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe4: // CALL PO ~~~~~~~~~~~~~~~~~~~~~ CALLC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xec: // CALL PE ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf4: // CALL P ~~~~~~~~~~~~~~~~~~~~ CALLC(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfc: // CALL M ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&128); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc6: // ADD A,n ~~~~~~~~~~~~~~~~~~~~~ ADD(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xce: // ADC A,n ~~~~~~~~~~~~~~~~~~~~~ ADC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd6: // SUB n ~~~~~~~~~~~~~~~~~~~ SUB(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xde: // SBC A,n ~~~~~~~~~~~~~~~~~~~~~ SBC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe6: // AND n ~~~~~~~~~~~~~~~~~~~ AND(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xee: // XOR A,n ~~~~~~~~~~~~~~~~~~~~~ XOR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf6: // OR n ~~~~~~~~~~~~~~~~~~ OR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfe: // CP A,n ~~~~~~~~~~~~~~~~~~~~ w= mem[pc++]; ~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc7: // RST 0x00 ~~~~~~~~~~~~~~~~~~~~~~ RST(0); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcf: // RST 0x08 ~~~~~~~~~~~~~~~~~~~~~~ RST(8); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd7: // RST 0x10 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x10); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdf: // RST 0x18 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x18); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe7: // RST 0x20 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x20); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xef: // RST 0x28 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x28); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf7: // RST 0x30 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x30); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xff: // RST 0x38 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x38); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd3: // OUT (n),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ out(mp= mem[pc++] | a<<8, a); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= mp&65280 ~~~~~~~~~~~~ | ++mp; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdb: // IN A,(n) ~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ a= in(mp= mem[pc++] | a<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf3: // DI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 0; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfb: // EI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 1; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xeb: // EX DE,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= d; ~~~~~ d= h; ~~~~~ h= t; ~~~~~ t= e; ~~~~~ e= l; ~~~~~ l= t; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd9: // EXX ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = b; ~~~~~~ b = b_; ~~~~~~~ b_= t; ~~~~~~ t = c; ~~~~~~ c = c_; ~~~~~~~ c_= t; ~~~~~~ t = d; ~~~~~~ d = d_; ~~~~~~~ d_= t; ~~~~~~ t = e; ~~~~~~ e = e_; ~~~~~~~ e_= t; ~~~~~~ t = h; ~~~~~~ h = h_; ~~~~~~~ h_= t; ~~~~~~ t = l; ~~~~~~ l = l_; ~~~~~~~ l_= t; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe3: // EX (SP),HL // EX (SP),IX // EX (SP),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ EXSPI(h, l); ~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ EXSPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ EXSPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe9: // JP (HL) ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ pc= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ pc= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ pc= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf9: // LD SP,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ sp= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ sp= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ sp= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdd: // OP DD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= iy= 0; ~~~~~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xfd: // OP FD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= 0; ~~~~~~ iy= 1; ~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xcb: // OP CB ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ if( ih ) ~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(b); break; // RLC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(c); break; // RLC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(d); break; // RLC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(e); break; // RLC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(h); break; // RLC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(l); break; // RLC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: st+= 7; // RLC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RLC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x07: RLC(a); break; // RLC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(b); break; // RRC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(c); break; // RRC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(d); break; // RRC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(e); break; // RRC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(h); break; // RRC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(l); break; // RRC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: st+= 7; // RRC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RRC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x0f: RRC(a); break; // RRC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(b); break; // RL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(c); break; // RL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(d); break; // RL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(e); break; // RL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(h); break; // RL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(l); break; // RL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: st+= 7; // RL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RL(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x17: RL(a); break; // RL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(b); break; // RR B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(c); break; // RR C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(d); break; // RR D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(e); break; // RR E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(h); break; // RR H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(l); break; // RR L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: st+= 7; // RR (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RR(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x1f: RR(a); break; // RR A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(b); break; // SLA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(c); break; // SLA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(d); break; // SLA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(e); break; // SLA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(h); break; // SLA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(l); break; // SLA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: st+= 7; // SLA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x27: SLA(a); break; // SLA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(b); break; // SRA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(c); break; // SRA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(d); break; // SRA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(e); break; // SRA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(h); break; // SRA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(l); break; // SRA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: st+= 7; // SRA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x2f: SRA(a); break; // SRA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(b); break; // SLL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(c); break; // SLL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(d); break; // SLL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(e); break; // SLL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(h); break; // SLL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(l); break; // SLL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: st+= 7; // SLL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x37: SLL(a); break; // SLL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(b); break; // SRL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(c); break; // SRL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(d); break; // SRL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(e); break; // SRL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(h); break; // SRL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(l); break; // SRL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: st+= 7; // SRL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x3f: SRL(a); break; // SRL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: BIT(1, b); break; // BIT 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: BIT(1, c); break; // BIT 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: BIT(1, d); break; // BIT 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x43: BIT(1, e); break; // BIT 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: BIT(1, h); break; // BIT 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x45: BIT(1, l); break; // BIT 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x46: BITHL(1); break; // BIT 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x47: BIT(1, a); break; // BIT 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: BIT(2, b); break; // BIT 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: BIT(2, c); break; // BIT 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4a: BIT(2, d); break; // BIT 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4b: BIT(2, e); break; // BIT 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: BIT(2, h); break; // BIT 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4d: BIT(2, l); break; // BIT 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4e: BITHL(2); break; // BIT 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4f: BIT(2, a); break; // BIT 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: BIT(4, b); break; // BIT 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: BIT(4, c); break; // BIT 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: BIT(4, d); break; // BIT 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x53: BIT(4, e); break; // BIT 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: BIT(4, h); break; // BIT 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x55: BIT(4, l); break; // BIT 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x56: BITHL(4); break; // BIT 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x57: BIT(4, a); break; // BIT 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: BIT(8, b); break; // BIT 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: BIT(8, c); break; // BIT 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: BIT(8, d); break; // BIT 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5b: BIT(8, e); break; // BIT 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: BIT(8, h); break; // BIT 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5d: BIT(8, l); break; // BIT 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5e: BITHL(8); break; // BIT 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5f: BIT(8, a); break; // BIT 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: BIT(16, b); break; // BIT 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: BIT(16, c); break; // BIT 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: BIT(16, d); break; // BIT 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x63: BIT(16, e); break; // BIT 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: BIT(16, h); break; // BIT 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x65: BIT(16, l); break; // BIT 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x66: BITHL(16); break; // BIT 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x67: BIT(16, a); break; // BIT 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: BIT(32, b); break; // BIT 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: BIT(32, c); break; // BIT 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6a: BIT(32, d); break; // BIT 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6b: BIT(32, e); break; // BIT 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: BIT(32, h); break; // BIT 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6d: BIT(32, l); break; // BIT 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6e: BITHL(32); break; // BIT 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6f: BIT(32, a); break; // BIT 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: BIT(64, b); break; // BIT 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: BIT(64, c); break; // BIT 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: BIT(64, d); break; // BIT 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x73: BIT(64, e); break; // BIT 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: BIT(64, h); break; // BIT 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x75: BIT(64, l); break; // BIT 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x76: BITHL(64); break; // BIT 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: BIT(64, a); break; // BIT 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: BIT(128, b); break; // BIT 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: BIT(128, c); break; // BIT 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7a: BIT(128, d); break; // BIT 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7b: BIT(128, e); break; // BIT 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: BIT(128, h); break; // BIT 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7d: BIT(128, l); break; // BIT 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7e: BITHL(128); break; // BIT 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7f: BIT(128, a); break; // BIT 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x80: RES(254, b); break; // RES 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, c); break; // RES 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, d); break; // RES 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, e); break; // RES 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, h); break; // RES 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, l); break; // RES 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RESHL(254); break; // RES 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, a); break; // RES 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, b); break; // RES 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, c); break; // RES 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, d); break; // RES 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, e); break; // RES 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, h); break; // RES 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, l); break; // RES 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RESHL(253); break; // RES 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, a); break; // RES 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, b); break; // RES 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, c); break; // RES 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, d); break; // RES 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, e); break; // RES 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, h); break; // RES 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, l); break; // RES 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RESHL(251); break; // RES 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, a); break; // RES 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, b); break; // RES 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, c); break; // RES 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, d); break; // RES 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, e); break; // RES 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, h); break; // RES 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, l); break; // RES 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RESHL(247); break; // RES 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, a); break; // RES 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, b); break; // RES 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, c); break; // RES 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, d); break; // RES 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, e); break; // RES 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, h); break; // RES 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, l); break; // RES 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RESHL(239); break; // RES 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, a); break; // RES 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, b); break; // RES 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, c); break; // RES 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, d); break; // RES 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, e); break; // RES 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, h); break; // RES 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, l); break; // RES 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RESHL(223); break; // RES 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, a); break; // RES 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, b); break; // RES 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, c); break; // RES 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, d); break; // RES 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, e); break; // RES 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, h); break; // RES 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, l); break; // RES 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RESHL(191); break; // RES 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, a); break; // RES 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, b); break; // RES 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, c); break; // RES 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, d); break; // RES 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, e); break; // RES 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, h); break; // RES 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, l); break; // RES 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RESHL(127); break; // RES 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, a); break; // RES 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, b); break; // SET 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, c); break; // SET 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, d); break; // SET 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, e); break; // SET 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, h); break; // SET 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, l); break; // SET 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SETHL(1); break; // SET 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, a); break; // SET 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, b); break; // SET 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, c); break; // SET 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, d); break; // SET 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, e); break; // SET 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, h); break; // SET 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, l); break; // SET 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SETHL(2); break; // SET 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, a); break; // SET 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, b); break; // SET 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, c); break; // SET 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, d); break; // SET 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, e); break; // SET 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, h); break; // SET 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, l); break; // SET 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SETHL(4); break; // SET 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, a); break; // SET 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, b); break; // SET 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, c); break; // SET 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, d); break; // SET 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, e); break; // SET 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, h); break; // SET 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, l); break; // SET 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SETHL(8); break; // SET 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, a); break; // SET 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, b); break; // SET 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, c); break; // SET 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, d); break; // SET 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, e); break; // SET 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, h); break; // SET 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, l); break; // SET 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SETHL(16); break; // SET 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, a); break; // SET 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, b); break; // SET 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, c); break; // SET 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, d); break; // SET 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, e); break; // SET 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, h); break; // SET 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, l); break; // SET 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SETHL(32); break; // SET 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, a); break; // SET 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, b); break; // SET 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, c); break; // SET 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, d); break; // SET 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, e); break; // SET 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, h); break; // SET 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, l); break; // SET 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SETHL(64); break; // SET 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, a); break; // SET 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, b); break; // SET 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, c); break; // SET 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, d); break; // SET 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, e); break; // SET 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, h); break; // SET 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, l); break; // SET 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SETHL(128); break; // SET 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, a); break; // SET 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ else{ ~~~~~ st+= 11; ~~~~~~~~ if( iy ) ~~~~~~~~ t= mem[mp= ((mem[pc++]^128)-128+(yl|yh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ t= mem[mp= ((mem[pc++]^128)-128+(xl|xh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(t); mem[mp]= b= t; break; // LD B,RLC (IX+d) // LD B,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(t); mem[mp]= c= t; break; // LD C,RLC (IX+d) // LD C,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(t); mem[mp]= d= t; break; // LD D,RLC (IX+d) // LD D,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(t); mem[mp]= e= t; break; // LD E,RLC (IX+d) // LD E,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(t); mem[mp]= h= t; break; // LD H,RLC (IX+d) // LD H,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(t); mem[mp]= l= t; break; // LD L,RLC (IX+d) // LD L,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: RLC(t); mem[mp]= t; break; // RLC (IX+d) // RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x07: RLC(t); mem[mp]= a= t; break; // LD A,RLC (IX+d) // LD A,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(t); mem[mp]= b= t; break; // LD B,RRC (IX+d) // LD B,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(t); mem[mp]= c= t; break; // LD C,RRC (IX+d) // LD C,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(t); mem[mp]= d= t; break; // LD D,RRC (IX+d) // LD D,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(t); mem[mp]= e= t; break; // LD E,RRC (IX+d) // LD E,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(t); mem[mp]= h= t; break; // LD H,RRC (IX+d) // LD H,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(t); mem[mp]= l= t; break; // LD L,RRC (IX+d) // LD L,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: RRC(t); mem[mp]= t; break; // RRC (IX+d) // RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0f: RRC(t); mem[mp]= a= t; break; // LD A,RRC (IX+d) // LD A,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(t); mem[mp]= b= t; break; // LD B,RL (IX+d) // LD B,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(t); mem[mp]= c= t; break; // LD C,RL (IX+d) // LD C,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(t); mem[mp]= d= t; break; // LD D,RL (IX+d) // LD D,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(t); mem[mp]= e= t; break; // LD E,RL (IX+d) // LD E,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(t); mem[mp]= h= t; break; // LD H,RL (IX+d) // LD H,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(t); mem[mp]= l= t; break; // LD L,RL (IX+d) // LD L,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: RL(t); mem[mp]= t; break; // RL (IX+d) // RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x17: RL(t); mem[mp]= a= t; break; // LD A,RL (IX+d) // LD A,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(t); mem[mp]= b= t; break; // LD B,RR (IX+d) // LD B,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(t); mem[mp]= c= t; break; // LD C,RR (IX+d) // LD C,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(t); mem[mp]= d= t; break; // LD D,RR (IX+d) // LD D,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(t); mem[mp]= e= t; break; // LD E,RR (IX+d) // LD E,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(t); mem[mp]= h= t; break; // LD H,RR (IX+d) // LD H,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(t); mem[mp]= l= t; break; // LD L,RR (IX+d) // LD L,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: RR(t); mem[mp]= t; break; // RR (IX+d) // RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1f: RR(t); mem[mp]= a= t; break; // LD A,RR (IX+d) // LD A,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(t); mem[mp]= b= t; break; // LD B,SLA (IX+d) // LD B,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(t); mem[mp]= c= t; break; // LD C,SLA (IX+d) // LD C,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(t); mem[mp]= d= t; break; // LD D,SLA (IX+d) // LD D,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(t); mem[mp]= e= t; break; // LD E,SLA (IX+d) // LD E,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(t); mem[mp]= h= t; break; // LD H,SLA (IX+d) // LD H,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(t); mem[mp]= l= t; break; // LD L,SLA (IX+d) // LD L,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: SLA(t); mem[mp]= t; break; // SLA (IX+d) // SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x27: SLA(t); mem[mp]= a= t; break; // LD A,SLA (IX+d) // LD A,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(t); mem[mp]= b= t; break; // LD B,SRA (IX+d) // LD B,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(t); mem[mp]= c= t; break; // LD C,SRA (IX+d) // LD C,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(t); mem[mp]= d= t; break; // LD D,SRA (IX+d) // LD D,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(t); mem[mp]= e= t; break; // LD E,SRA (IX+d) // LD E,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(t); mem[mp]= h= t; break; // LD H,SRA (IX+d) // LD H,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(t); mem[mp]= l= t; break; // LD L,SRA (IX+d) // LD L,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: SRA(t); mem[mp]= t; break; // SRA (IX+d) // SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2f: SRA(t); mem[mp]= a= t; break; // LD A,SRA (IX+d) // LD A,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(t); mem[mp]= b= t; break; // LD B,SLL (IX+d) // LD B,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(t); mem[mp]= c= t; break; // LD C,SLL (IX+d) // LD C,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(t); mem[mp]= d= t; break; // LD D,SLL (IX+d) // LD D,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(t); mem[mp]= e= t; break; // LD E,SLL (IX+d) // LD E,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(t); mem[mp]= h= t; break; // LD H,SLL (IX+d) // LD H,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(t); mem[mp]= l= t; break; // LD L,SLL (IX+d) // LD L,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: SLL(t); mem[mp]= t; break; // SLL (IX+d) // SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x37: SLL(t); mem[mp]= a= t; break; // LD A,SLL (IX+d) // LD A,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(t); mem[mp]= b= t; break; // LD B,SRL (IX+d) // LD B,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(t); mem[mp]= c= t; break; // LD C,SRL (IX+d) // LD C,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(t); mem[mp]= d= t; break; // LD D,SRL (IX+d) // LD D,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(t); mem[mp]= e= t; break; // LD E,SRL (IX+d) // LD E,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(t); mem[mp]= h= t; break; // LD H,SRL (IX+d) // LD H,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(t); mem[mp]= l= t; break; // LD L,SRL (IX+d) // LD L,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: SRL(t); mem[mp]= t; break; // SRL (IX+d) // SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3f: SRL(t); mem[mp]= a= t; break; // LD A,SRL (IX+d) // LD A,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: case 0x41: case 0x42: case 0x43: // BIT 0,(IX+d) // BIT 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: case 0x45: case 0x46: case 0x47: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(1); break; ~~~~~~~~~~~~~~~ case 0x48: case 0x49: case 0x4a: case 0x4b: // BIT 1,(IX+d) // BIT 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: case 0x4d: case 0x4e: case 0x4f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(2); break; ~~~~~~~~~~~~~~~ case 0x50: case 0x51: case 0x52: case 0x53: // BIT 2,(IX+d) // BIT 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: case 0x55: case 0x56: case 0x57: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(4); break; ~~~~~~~~~~~~~~~ case 0x58: case 0x59: case 0x5a: case 0x5b: // BIT 3,(IX+d) // BIT 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: case 0x5d: case 0x5e: case 0x5f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(8); break; ~~~~~~~~~~~~~~~ case 0x60: case 0x61: case 0x62: case 0x63: // BIT 4,(IX+d) // BIT 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: case 0x65: case 0x66: case 0x67: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(16); break; ~~~~~~~~~~~~~~~~ case 0x68: case 0x69: case 0x6a: case 0x6b: // BIT 5,(IX+d) // BIT 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: case 0x6d: case 0x6e: case 0x6f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(32); break; ~~~~~~~~~~~~~~~~ case 0x70: case 0x71: case 0x72: case 0x73: // BIT 6,(IX+d) // BIT 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: case 0x75: case 0x76: case 0x77: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(64); break; ~~~~~~~~~~~~~~~~ case 0x78: case 0x79: case 0x7a: case 0x7b: // BIT 7,(IX+d) // BIT 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: case 0x7d: case 0x7e: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(128); break; ~~~~~~~~~~~~~~~~~ case 0x80: RES(254, t); mem[mp]= b= t; break; // LD B,RES 0,(IX+d) // LD B,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, t); mem[mp]= c= t; break; // LD C,RES 0,(IX+d) // LD C,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, t); mem[mp]= d= t; break; // LD D,RES 0,(IX+d) // LD D,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, t); mem[mp]= e= t; break; // LD E,RES 0,(IX+d) // LD E,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, t); mem[mp]= h= t; break; // LD H,RES 0,(IX+d) // LD H,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, t); mem[mp]= l= t; break; // LD L,RES 0,(IX+d) // LD L,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RES(254, t); mem[mp]= t; break; // RES 0,(IX+d) // RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, t); mem[mp]= a= t; break; // LD A,RES 0,(IX+d) // LD A,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, t); mem[mp]= b= t; break; // LD B,RES 1,(IX+d) // LD B,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, t); mem[mp]= c= t; break; // LD C,RES 1,(IX+d) // LD C,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, t); mem[mp]= d= t; break; // LD D,RES 1,(IX+d) // LD D,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, t); mem[mp]= e= t; break; // LD E,RES 1,(IX+d) // LD E,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, t); mem[mp]= h= t; break; // LD H,RES 1,(IX+d) // LD H,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, t); mem[mp]= l= t; break; // LD L,RES 1,(IX+d) // LD L,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RES(253, t); mem[mp]= t; break; // RES 1,(IX+d) // RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, t); mem[mp]= a= t; break; // LD A,RES 1,(IX+d) // LD A,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, t); mem[mp]= b= t; break; // LD B,RES 2,(IX+d) // LD B,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, t); mem[mp]= c= t; break; // LD C,RES 2,(IX+d) // LD C,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, t); mem[mp]= d= t; break; // LD D,RES 2,(IX+d) // LD D,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, t); mem[mp]= e= t; break; // LD E,RES 2,(IX+d) // LD E,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, t); mem[mp]= h= t; break; // LD H,RES 2,(IX+d) // LD H,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, t); mem[mp]= l= t; break; // LD L,RES 2,(IX+d) // LD L,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RES(251, t); mem[mp]= t; break; // RES 2,(IX+d) // RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, t); mem[mp]= a= t; break; // LD A,RES 2,(IX+d) // LD A,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, t); mem[mp]= b= t; break; // LD B,RES 3,(IX+d) // LD B,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, t); mem[mp]= c= t; break; // LD C,RES 3,(IX+d) // LD C,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, t); mem[mp]= d= t; break; // LD D,RES 3,(IX+d) // LD D,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, t); mem[mp]= e= t; break; // LD E,RES 3,(IX+d) // LD E,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, t); mem[mp]= h= t; break; // LD H,RES 3,(IX+d) // LD H,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, t); mem[mp]= l= t; break; // LD L,RES 3,(IX+d) // LD L,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RES(247, t); mem[mp]= t; break; // RES 3,(IX+d) // RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, t); mem[mp]= a= t; break; // LD A,RES 3,(IX+d) // LD A,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, t); mem[mp]= b= t; break; // LD B,RES 4,(IX+d) // LD B,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, t); mem[mp]= c= t; break; // LD C,RES 4,(IX+d) // LD C,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, t); mem[mp]= d= t; break; // LD D,RES 4,(IX+d) // LD D,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, t); mem[mp]= e= t; break; // LD E,RES 4,(IX+d) // LD E,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, t); mem[mp]= h= t; break; // LD H,RES 4,(IX+d) // LD H,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, t); mem[mp]= l= t; break; // LD L,RES 4,(IX+d) // LD L,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RES(239, t); mem[mp]= t; break; // RES 4,(IX+d) // RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, t); mem[mp]= a= t; break; // LD A,RES 4,(IX+d) // LD A,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, t); mem[mp]= b= t; break; // LD B,RES 5,(IX+d) // LD B,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, t); mem[mp]= c= t; break; // LD C,RES 5,(IX+d) // LD C,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, t); mem[mp]= d= t; break; // LD D,RES 5,(IX+d) // LD D,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, t); mem[mp]= e= t; break; // LD E,RES 5,(IX+d) // LD E,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, t); mem[mp]= h= t; break; // LD H,RES 5,(IX+d) // LD H,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, t); mem[mp]= l= t; break; // LD L,RES 5,(IX+d) // LD L,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RES(223, t); mem[mp]= t; break; // RES 5,(IX+d) // RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, t); mem[mp]= a= t; break; // LD A,RES 5,(IX+d) // LD A,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, t); mem[mp]= b= t; break; // LD B,RES 6,(IX+d) // LD B,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, t); mem[mp]= c= t; break; // LD C,RES 6,(IX+d) // LD C,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, t); mem[mp]= d= t; break; // LD D,RES 6,(IX+d) // LD D,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, t); mem[mp]= e= t; break; // LD E,RES 6,(IX+d) // LD E,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, t); mem[mp]= h= t; break; // LD H,RES 6,(IX+d) // LD H,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, t); mem[mp]= l= t; break; // LD L,RES 6,(IX+d) // LD L,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RES(191, t); mem[mp]= t; break; // RES 6,(IX+d) // RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, t); mem[mp]= a= t; break; // LD A,RES 6,(IX+d) // LD A,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, t); mem[mp]= b= t; break; // LD B,RES 7,(IX+d) // LD B,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, t); mem[mp]= c= t; break; // LD C,RES 7,(IX+d) // LD C,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, t); mem[mp]= d= t; break; // LD D,RES 7,(IX+d) // LD D,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, t); mem[mp]= e= t; break; // LD E,RES 7,(IX+d) // LD E,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, t); mem[mp]= h= t; break; // LD H,RES 7,(IX+d) // LD H,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, t); mem[mp]= l= t; break; // LD L,RES 7,(IX+d) // LD L,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RES(127, t); mem[mp]= t; break; // RES 7,(IX+d) // RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, t); mem[mp]= a= t; break; // LD A,RES 7,(IX+d) // LD A,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, t); mem[mp]= b= t; break; // LD B,SET 0,(IX+d) // LD B,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, t); mem[mp]= c= t; break; // LD C,SET 0,(IX+d) // LD C,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, t); mem[mp]= d= t; break; // LD D,SET 0,(IX+d) // LD D,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, t); mem[mp]= e= t; break; // LD E,SET 0,(IX+d) // LD E,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, t); mem[mp]= h= t; break; // LD H,SET 0,(IX+d) // LD H,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, t); mem[mp]= l= t; break; // LD L,SET 0,(IX+d) // LD L,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SET(1, t); mem[mp]= t; break; // SET 0,(IX+d) // SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, t); mem[mp]= a= t; break; // LD A,SET 0,(IX+d) // LD A,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, t); mem[mp]= b= t; break; // LD B,SET 1,(IX+d) // LD B,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, t); mem[mp]= c= t; break; // LD C,SET 1,(IX+d) // LD C,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, t); mem[mp]= d= t; break; // LD D,SET 1,(IX+d) // LD D,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, t); mem[mp]= e= t; break; // LD E,SET 1,(IX+d) // LD E,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, t); mem[mp]= h= t; break; // LD H,SET 1,(IX+d) // LD H,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, t); mem[mp]= l= t; break; // LD L,SET 1,(IX+d) // LD L,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SET(2, t); mem[mp]= t; break; // SET 1,(IX+d) // SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, t); mem[mp]= a= t; break; // LD A,SET 1,(IX+d) // LD A,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, t); mem[mp]= b= t; break; // LD B,SET 2,(IX+d) // LD B,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, t); mem[mp]= c= t; break; // LD C,SET 2,(IX+d) // LD C,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, t); mem[mp]= d= t; break; // LD D,SET 2,(IX+d) // LD D,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, t); mem[mp]= e= t; break; // LD E,SET 2,(IX+d) // LD E,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, t); mem[mp]= h= t; break; // LD H,SET 2,(IX+d) // LD H,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, t); mem[mp]= l= t; break; // LD L,SET 2,(IX+d) // LD L,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SET(4, t); mem[mp]= t; break; // SET 2,(IX+d) // SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, t); mem[mp]= a= t; break; // LD A,SET 2,(IX+d) // LD A,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, t); mem[mp]= b= t; break; // LD B,SET 3,(IX+d) // LD B,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, t); mem[mp]= c= t; break; // LD C,SET 3,(IX+d) // LD C,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, t); mem[mp]= d= t; break; // LD D,SET 3,(IX+d) // LD D,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, t); mem[mp]= e= t; break; // LD E,SET 3,(IX+d) // LD E,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, t); mem[mp]= h= t; break; // LD H,SET 3,(IX+d) // LD H,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, t); mem[mp]= l= t; break; // LD L,SET 3,(IX+d) // LD L,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SET(8, t); mem[mp]= t; break; // SET 3,(IX+d) // SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, t); mem[mp]= a= t; break; // LD A,SET 3,(IX+d) // LD A,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, t); mem[mp]= b= t; break; // LD B,SET 4,(IX+d) // LD B,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, t); mem[mp]= c= t; break; // LD C,SET 4,(IX+d) // LD C,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, t); mem[mp]= d= t; break; // LD D,SET 4,(IX+d) // LD D,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, t); mem[mp]= e= t; break; // LD E,SET 4,(IX+d) // LD E,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, t); mem[mp]= h= t; break; // LD H,SET 4,(IX+d) // LD H,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, t); mem[mp]= l= t; break; // LD L,SET 4,(IX+d) // LD L,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SET(16, t); mem[mp]= t; break; // SET 4,(IX+d) // SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, t); mem[mp]= a= t; break; // LD A,SET 4,(IX+d) // LD A,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, t); mem[mp]= b= t; break; // LD B,SET 5,(IX+d) // LD B,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, t); mem[mp]= c= t; break; // LD C,SET 5,(IX+d) // LD C,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, t); mem[mp]= d= t; break; // LD D,SET 5,(IX+d) // LD D,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, t); mem[mp]= e= t; break; // LD E,SET 5,(IX+d) // LD E,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, t); mem[mp]= h= t; break; // LD H,SET 5,(IX+d) // LD H,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, t); mem[mp]= l= t; break; // LD L,SET 5,(IX+d) // LD L,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SET(32, t); mem[mp]= t; break; // SET 5,(IX+d) // SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, t); mem[mp]= a= t; break; // LD A,SET 5,(IX+d) // LD A,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, t); mem[mp]= b= t; break; // LD B,SET 6,(IX+d) // LD B,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, t); mem[mp]= c= t; break; // LD C,SET 6,(IX+d) // LD C,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, t); mem[mp]= d= t; break; // LD D,SET 6,(IX+d) // LD D,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, t); mem[mp]= e= t; break; // LD E,SET 6,(IX+d) // LD E,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, t); mem[mp]= h= t; break; // LD H,SET 6,(IX+d) // LD H,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, t); mem[mp]= l= t; break; // LD L,SET 6,(IX+d) // LD L,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SET(64, t); mem[mp]= t; break; // SET 6,(IX+d) // SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, t); mem[mp]= a= t; break; // LD A,SET 6,(IX+d) // LD A,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, t); mem[mp]= b= t; break; // LD B,SET 7,(IX+d) // LD B,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, t); mem[mp]= c= t; break; // LD C,SET 7,(IX+d) // LD C,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, t); mem[mp]= d= t; break; // LD D,SET 7,(IX+d) // LD D,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, t); mem[mp]= e= t; break; // LD E,SET 7,(IX+d) // LD E,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, t); mem[mp]= h= t; break; // LD H,SET 7,(IX+d) // LD H,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, t); mem[mp]= l= t; break; // LD L,SET 7,(IX+d) // LD L,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SET(128, t); mem[mp]= t; break; // SET 7,(IX+d) // SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, t); mem[mp]= a= t; break; // LD A,SET 7,(IX+d) // LD A,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ } ~ ih=1;break; ~~~~~~~~~~~ case 0xed: // OP ED ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: case 0x01: case 0x02: case 0x03: // NOP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: case 0x05: case 0x06: case 0x07: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: case 0x09: case 0x0a: case 0x0b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: case 0x0d: case 0x0e: case 0x0f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: case 0x11: case 0x12: case 0x13: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: case 0x15: case 0x16: case 0x17: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: case 0x19: case 0x1a: case 0x1b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: case 0x1d: case 0x1e: case 0x1f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: case 0x21: case 0x22: case 0x23: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: case 0x25: case 0x26: case 0x27: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: case 0x29: case 0x2a: case 0x2b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: case 0x2d: case 0x2e: case 0x2f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: case 0x31: case 0x32: case 0x33: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: case 0x35: case 0x36: case 0x37: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: case 0x39: case 0x3a: case 0x3b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: case 0x3d: case 0x3e: case 0x3f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~ case 0x80: case 0x81: case 0x82: case 0x83: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: case 0x85: case 0x86: case 0x87: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: case 0x89: case 0x8a: case 0x8b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: case 0x8d: case 0x8e: case 0x8f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: case 0x91: case 0x92: case 0x93: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: case 0x95: case 0x96: case 0x97: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: case 0x99: case 0x9a: case 0x9b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: case 0x9d: case 0x9e: case 0x9f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: case 0xa5: case 0xa6: case 0xa7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: case 0xad: case 0xae: case 0xaf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: case 0xb5: case 0xb6: case 0xb7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: case 0xbd: case 0xbe: case 0xbf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: case 0xc1: case 0xc2: case 0xc3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: case 0xc5: case 0xc6: case 0xc7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: case 0xc9: case 0xca: case 0xcb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: case 0xcd: case 0xce: case 0xcf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: case 0xd1: case 0xd2: case 0xd3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: case 0xd5: case 0xd6: case 0xd7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: case 0xd9: case 0xda: case 0xdb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: case 0xdd: case 0xde: case 0xdf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: case 0xe1: case 0xe2: case 0xe3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: case 0xe5: case 0xe6: case 0xe7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: case 0xe9: case 0xea: case 0xeb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: case 0xed: case 0xee: case 0xef: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: case 0xf1: case 0xf2: case 0xf3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: case 0xf5: case 0xf6: case 0xf7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: case 0xf9: case 0xfa: case 0xfb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: case 0xfd: case 0xfe: case 0xff: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 8; break; ~~~~~~~~~~~~~~ case 0x40: INR(b); break; // IN B,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: INR(c); break; // IN C,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: INR(d); break; // IN D,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: INR(e); break; // IN E,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: INR(h); break; // IN H,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: INR(l); break; // IN L,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: INR(t); break; // IN X,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: INR(a); break; // IN A,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: OUTR(b); break; // OUT (C),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: OUTR(c); break; // OUT (C),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: OUTR(d); break; // OUT (C),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: OUTR(e); break; // OUT (C),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: OUTR(h); break; // OUT (C),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: OUTR(l); break; // OUT (C),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: OUTR(0); break; // OUT (C),X ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: OUTR(a); break; // OUT (C),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: SBCHLRR(b, c); break; // SBC HL,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: SBCHLRR(d, e); break; // SBC HL,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: SBCHLRR(h, l); break; // SBC HL,HL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: st+= 15; // SBC HL,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v= (mp= l|h<<8)-sp-(ff>>8&1); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ff= v>>8; ~~~~~~~~~ fa= h; ~~~~~~ fb= ~sp>>8; ~~~~~~~~~~~ h= ff; ~~~~~~ l= v; ~~~~~ fr= h | l<<8; break; ~~~~~~~~~~~~~~~~~~~~ case 0x4a: ADCHLRR(b, c); break; // ADC HL,BC ~~~~~~~~~~~~~~~~~~~~ ticks.c:2625:22: note: in expansion of macro 'ADCHLRR' case 0x4a: ADCHLRR(b, c); break; // ADC HL,BC ^~~~~~~ ticks.c:377:20: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] v= l+b+(h+a<<8)+(ff>>8&1),\ ~^~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ FILE * ft; ~~~~~~~~~~ unsigned char * tapbuf; ~~~~~~~~~~~~~~~~~~~~~~~ int v ~~~~~~~~~ , wavpos= 0 ~~~~~~~~~~~ , wavlen= 0 ~~~~~~~~~~~ , mues ~~~~~~ ; ~ unsigned short ~~~~~~~~~~~~~~ pc= 0 ~~~~~ , sp= 0 ~~~~~~~ , mp= 0 ~~~~~~~ , t= 0 ~~~~~~ , u= 0 ~~~~~~ , ff= 0 ~~~~~~~ , ff_= 0 ~~~~~~~~ , fa= 0 ~~~~~~~ , fa_= 0 ~~~~~~~~ , fb= 0 ~~~~~~~ , fb_= 0 ~~~~~~~~ , fr= 0 ~~~~~~~ , fr_= 0 ~~~~~~~~ ; ~ long long ~~~~~~~~~ st= 0 ~~~~~ , sttap ~~~~~~~ , stint ~~~~~~~ , counter= 1e8 ~~~~~~~~~~~~~~ ; ~ unsigned char ~~~~~~~~~~~~~ a= 0 ~~~~ , b= 0 ~~~~~~ , c= 0 ~~~~~~ , d= 0 ~~~~~~ , e= 0 ~~~~~~ , h= 0 ~~~~~~ , l= 0 ~~~~~~ , a_= 0 ~~~~~~~ , b_= 0 ~~~~~~~ , c_= 0 ~~~~~~~ , d_= 0 ~~~~~~~ , e_= 0 ~~~~~~~ , h_= 0 ~~~~~~~ , l_= 0 ~~~~~~~ , xl= 0 ~~~~~~~ , xh= 0 ~~~~~~~ , yl= 0 ~~~~~~~ , yh= 0 ~~~~~~~ , i= 0 ~~~~~~ , r= 0 ~~~~~~ , r7= 0 ~~~~~~~ , ih= 1 ~~~~~~~ , iy= 0 ~~~~~~~ , iff= 0 ~~~~~~~~ , im= 0 ~~~~~~~ , w= 0 ~~~~~~ , ear= 255 ~~~~~~~~~~ , halted= 0 ~~~~~~~~~~~ ; ~ long tapcycles(void){ ~~~~~~~~~~~~~~~~~~~~~ mues= 1; ~~~~~~~~ wavpos!=0x20000 && (ear^= 64); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavpos>0x1f000 ) ~~~~~~~~~~~~~~~~~~~~ fseek( ft, wavpos-0x20000, SEEK_CUR ), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen-= wavpos, ~~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while( (tapbuf[++wavpos]^ear<<1)&0x80 && wavpos<0x20000 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mues+= 81; // correct value must be 79.365, adjusted to simulate contention in Alkatraz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavlen<=wavpos ) ~~~~~~~~~~~~~~~~~~~~ return 0; ~~~~~~~~~ else ~~~~ return mues; ~~~~~~~~~~~~ } ~ int in(int port){ ~~~~~~~~~~~~~~~~~ return port&1 ? 255 : ear; ~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void out(int port, int value){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ return; ~~~~~~~ } ~ int f(void){ ~~~~~~~~~~~~ return ff & 168 ~~~~~~~~~~~~~~~~ | ff >> 8 & 1 ~~~~~~~~~~~~~ | !fr << 6 ~~~~~~~~~~ | fb >> 8 & 2 ~~~~~~~~~~~~~ | (fr ^ fa ^ fb ^ fb >> 8) & 16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | (fa & -256 ~~~~~~~~~~~~ ? 154020 >> ((fr ^ fr >> 4) & 15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ((fr ^ fa) & (fr ^ fb)) >> 5) & 4; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void setf(int a){ ~~~~~~~~~~~~~~~~~ fr= ~a & 64; ~~~~~~~~~~~~ ff= a|= a<<8; ~~~~~~~~~~~~~ fa= 255 & (fb= a & -129 | (a&4)<<5); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ int main (int argc, char **argv){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unsigned char * mem= (unsigned char *) malloc (0x10000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int size= 0, start= 0, end= 0, intr= 0, tap= 0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char * output= NULL; ~~~~~~~~~~~~~~~~~~~~ FILE * fh; ~~~~~~~~~~ tapbuf= (unsigned char *) malloc (0x20000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( argc==1 ) ~~~~~~~~~~~~~ printf("Ticks v0.14c beta, a silent Z80 emulator by Antonio Villena, 10 Jan 2013\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" ticks [-pc X] [-start X] [-end X] [-counter X] [-output ]\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" File between 1 and 65536 bytes with Z80 machine code\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -tape emulates ZX tape in port $FE from a .WAV file\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -pc X X in hexadecimal is the initial PC value\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -start X X in hexadecimal is the PC condition to start the counter\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -end X X in hexadecimal is the PC condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -counter X X in decimal is another condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -int X X in decimal are number of cycles for periodic interrupts\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -output dumps the RAM content to a 64K file\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" Default values for -pc, -start and -end are 0000 if ommited. When the program "), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("exits, it'll show the number of cycles between start and end trigger in decimal\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(0); ~~~~~~~~ while (argc > 1){ ~~~~~~~~~~~~~~~~~ if( argv[1][0] == '-' && argv[2] ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch (argc--, argv++[1][1]){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 'p': ~~~~~~~~~ pc= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 's': ~~~~~~~~~ start= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'e': ~~~~~~~~~ end= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'i': ~~~~~~~~~ intr= strtol(argv[1], NULL, 10); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'c': ~~~~~~~~~ sscanf(argv[1], "%llu", &counter); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ counter<0 && (counter= 9e18); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'o': ~~~~~~~~~ output= argv[1]; ~~~~~~~~~~~~~~~~ break; ~~~~~~ case 't': ~~~~~~~~~ ft= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !ft ) ~~~~~~~~~ printf("\nTape file not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memcpy(&wavlen, tapbuf+4, 4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen+= 8; ~~~~~~~~~~~ if( *(int*) tapbuf != 0x46464952 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid WAV header\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+16) != 16 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid subchunk size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+20) != 0x10001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid number of channels or compression (only Mono and PCM allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+24) != 44100 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid sample rate (only 44100Hz allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+32) != 0x80001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid align or bits per sample (only 8-bits samples allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+40)+44 != wavlen ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid header size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ wavpos= 44; ~~~~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ printf("\nWrong Argument: %s\n", argv[0]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ } ~ else{ ~~~~~ fh= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fh ) ~~~~~~~~~ printf("\nFile not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fseek(fh, 0, SEEK_END); ~~~~~~~~~~~~~~~~~~~~~~~ size= ftell(fh); ~~~~~~~~~~~~~~~~ rewind(fh); ~~~~~~~~~~~ if( size>65536 && size!=65574 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nIncorrect length: %d\n", size), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ else if( !strcasecmp(strchr(argv[1], '.'), ".sna" ) && size==49179 ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILE *fk= fopen("48.rom", "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fk ) ~~~~~~~~~ printf("\nZX Spectrum ROM file not found: 48.rom\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(mem, 1, 16384, fk); ~~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fk); ~~~~~~~~~~~ fread(&i, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ ff_= ff; ~~~~~~~~ fr_= fr; ~~~~~~~~ fa_= fa; ~~~~~~~~ fb_= fb; ~~~~~~~~ fread(&a_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&e, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~ iff>>= 2; ~~~~~~~~~ fread(&r, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ r7= r; ~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ fread(&a, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(mem+0x4000, 1, 0xc000, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RET(0); ~~~~~~~ } ~ else if( size==65574 ) ~~~~~~~~~~~~~~~~~~~~~~ fread(mem, 1, 65536, fh), ~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ u= w, ~~~~~ fread(&a, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&pc, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&i, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&r, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ r7= r, ~~~~~~ fread(&e, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ setf(w), ~~~~~~~~ ff_= ff, ~~~~~~~~ fr_= fr, ~~~~~~~~ fa_= fa, ~~~~~~~~ fb_= fb, ~~~~~~~~ setf(u), ~~~~~~~~ fread(&a_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&mp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ else ~~~~ fread(mem, 1, size, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ } ~ ++argv; ~~~~~~~ --argc; ~~~~~~~ } ~ if( size==65574 ){ ~~~~~~~~~~~~~~~~~~ fread(&wavpos, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~ ear= wavpos<<6 | 191; ~~~~~~~~~~~~~~~~~~~~~ wavpos>>= 1; ~~~~~~~~~~~~ if( wavpos && ft ) ~~~~~~~~~~~~~~~~~~ fseek(ft, wavlen-wavpos, SEEK_SET), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen= wavpos, ~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&sttap, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ tap= sttap; ~~~~~~~~~~~ } ~ else ~~~~ sttap= tap= tapcycles(); ~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fh); ~~~~~~~~~~~ if( !size ) ~~~~~~~~~~~ printf("File not specified or zero length\n"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= intr; ~~~~~~~~~~~~ do{ ~~~ if( pc==start ) ~~~~~~~~~~~~~~~ st= 0, ~~~~~~ stint= intr, ~~~~~~~~~~~~ sttap= tap; ~~~~~~~~~~~ if( intr && st>stint && ih ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= st+intr; ~~~~~~~~~~~~~~~ if( iff ){ ~~~~~~~~~~ halted && (pc++, halted= 0); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ iff= 0; ~~~~~~~ mem[--sp]= pc>>8; ~~~~~~~~~~~~~~~~~ mem[--sp]= pc; ~~~~~~~~~~~~~~ r++; ~~~~ switch( im ){ ~~~~~~~~~~~~~ case 1: ~~~~~~~ st++; ~~~~~ case 0: ~~~~~~~ pc= 56; ~~~~~~~ st+= 12; ~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ pc= mem[t= 255 | i << 8]; ~~~~~~~~~~~~~~~~~~~~~~~~~ pc|= mem[++t] << 8; ~~~~~~~~~~~~~~~~~~~ st+= 19; ~~~~~~~~ } ~ } ~ } ~ if( tap && st>sttap ) ~~~~~~~~~~~~~~~~~~~~~ sttap= st+( tap= tapcycles() ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ r++; ~~~~ // printf("pc=%04X, [pc]=%02X, bc=%04X, de=%04X, hl=%04X, af=%04X, ix=%04X, iy=%04X\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // pc, mem[pc], c|b<<8, e|d<<8, l|h<<8, f()|a<<8, xl|xh<<8, yl|yh<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: // NOP ~~~~~~~~~~~~~~~~~ case 0x40: // LD B,B ~~~~~~~~~~~~~~~~~~~~ case 0x49: // LD C,C ~~~~~~~~~~~~~~~~~~~~ case 0x52: // LD D,D ~~~~~~~~~~~~~~~~~~~~ case 0x5b: // LD E,E ~~~~~~~~~~~~~~~~~~~~ case 0x64: // LD H,H ~~~~~~~~~~~~~~~~~~~~ case 0x6d: // LD L,L ~~~~~~~~~~~~~~~~~~~~ case 0x7f: // LD A,A ~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x76: // HALT ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ halted= 1; ~~~~~~~~~~ pc--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x01: // LD BC,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(b, c); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x11: // LD DE,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(d, e); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x21: // LD HL,nn // LD IX,nn // LD IY,nn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRIM(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRIM(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ LDRRIM(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x31: // LD SP,nn ~~~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ sp= mem[pc++]; ~~~~~~~~~~~~~~ sp|= mem[pc++]<<8; ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x02: // LD (BC),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x12: // LD (DE),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0a: // LD A,(BC) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1a: // LD A,(DE) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x22: // LD (nn),HL // LD (nn),IX // LD (nn),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPNNRR(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPNNRR(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDPNNRR(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x32: // LD (nn),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ t= mem[pc++]; ~~~~~~~~~~~~~ mem[t|= mem[pc++]<<8]= a; ~~~~~~~~~~~~~~~~~~~~~~~~~ mp= t+1 & 255 ~~~~~~~~~~~~~ | a<<8; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2a: // LD HL,(nn) // LD IX,(nn) // LD IY,(nn) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRPNN(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRPNN(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDRRPNN(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3a: // LD A,(nn) ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ mp= mem[pc++]; ~~~~~~~~~~~~~~ a= mem[mp|= mem[pc++]<<8]; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x03: // INC BC ~~~~~~~~~~~~~~~~~~~~ INCW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x13: // INC DE ~~~~~~~~~~~~~~~~~~~~ INCW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x23: // INC HL // INC IX // INC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INCW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ INCW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x33: // INC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0b: // DEC BC ~~~~~~~~~~~~~~~~~~~~ DECW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1b: // DEC DE ~~~~~~~~~~~~~~~~~~~~ DECW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2b: // DEC HL // DEC IX // DEC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DECW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ DECW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3b: // DEC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x04: // INC B ~~~~~~~~~~~~~~~~~~~ INC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x0c: // INC C ~~~~~~~~~~~~~~~~~~~ INC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x14: // INC D ~~~~~~~~~~~~~~~~~~~ INC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1c: // INC E ~~~~~~~~~~~~~~~~~~~ INC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x24: // INC H // INC IXh // INC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yh); ~~~~~~~~ else ~~~~ INC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2c: // INC L // INC IXl // INC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yl); ~~~~~~~~ else ~~~~ INC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x34: // INC (HL) // INC (IX+d) // INC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ INCPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3c: // INC A ~~~~~~~~~~~~~~~~~~~ INC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x05: // DEC B ~~~~~~~~~~~~~~~~~~~ DEC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0d: // DEC C ~~~~~~~~~~~~~~~~~~~ DEC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x15: // DEC D ~~~~~~~~~~~~~~~~~~~ DEC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1d: // DEC E ~~~~~~~~~~~~~~~~~~~ DEC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x25: // DEC H // DEC IXh // DEC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yh); ~~~~~~~~ else ~~~~ DEC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2d: // DEC L // DEC IXl // DEC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yl); ~~~~~~~~ else ~~~~ DEC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x35: // DEC (HL) // DEC (IX+d) // DEC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=-1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ DECPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3d: // DEC A ~~~~~~~~~~~~~~~~~~~ DEC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x06: // LD B,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(b); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0e: // LD C,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(c); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x16: // LD D,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(d); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1e: // LD E,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(e); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x26: // LD H,n // LD IXh,n // LD IYh,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(h); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yh); ~~~~~~~~~~ else ~~~~ LDRIM(xh); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2e: // LD L,n // LD IXl,n // LD IYl,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(l); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yl); ~~~~~~~~~~ else ~~~~ LDRIM(xl); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x36: // LD (HL),n // LD (IX+d),n // LD (IY+d),n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 10, ~~~~~~~~ mem[l|h<<8]= mem[pc++]; ~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPIN(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ LDPIN(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3e: // LD A,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(a); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x07: // RLCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a*257>>7; ~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0f: // RRCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a>>1 ~~~~~~~~~~ | ((a&1)+1^1)<<7; ~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x17: // RLA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a<<1 ~~~~~~~~~~ | ff>>8 & 1; ~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb & 128 ~~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1f: // RRA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= (a*513 | ff&256)>>1; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x09: // ADD HL,BC // ADD IX,BC // ADD IY,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, b, c); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x19: // ADD HL,DE // ADD IX,DE // ADD IY,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, d, e); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x29: // ADD HL,HL // ADD IX,IX // ADD IY,IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, h, l); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, yh, yl); ~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, xh, xl); ~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x39: // ADD HL,SP // ADD IX,SP // ADD IY,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDISP(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDISP(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ ADDISP(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x18: // JR ~~~~~~~~~~~~~~~~ st+= 12; ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x20: // JR NZ,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x28: // JR Z,s8 ~~~~~~~~~~~~~~~~~~~~~ JRC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x30: // JR NC,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x38: // JR C,s8 ~~~~~~~~~~~~~~~~~~~~~ JRCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x08: // EX AF,AF' ~~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = a_; ~~~~~~~~~ a_ = a; ~~~~~~~~ a = t; ~~~~~~~~ t = ff_; ~~~~~~~~~~ ff_= ff; ~~~~~~~~~ ff = t; ~~~~~~~~ t = fr_; ~~~~~~~~~~ fr_= fr; ~~~~~~~~~ fr = t; ~~~~~~~~ t = fa_; ~~~~~~~~~~ fa_= fa; ~~~~~~~~~ fa = t; ~~~~~~~~ t = fb_; ~~~~~~~~~~ fb_= fb; ~~~~~~~~~ fb = t; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x10: // DJNZ ~~~~~~~~~~~~~~~~~~ if( --b ) ~~~~~~~~~ st+= 13, ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ st+= 8, ~~~~~~~ pc++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x27: // DAA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= (fr^fa^fb^fb>>8) & 16; ~~~~~~~~~~~~~~~~~~~~~~~~~ u= 0; ~~~~~ (a | ff&256)>153 && (u= 352); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (a&15 | t)>9 && (u+= 6); ~~~~~~~~~~~~~~~~~~~~~~~~ fa= a|256; ~~~~~~~~~~ if( fb&512 ) ~~~~~~~~~~~~ a-= u, ~~~~~~ fb= ~u; ~~~~~~~ else ~~~~ a+= fb= u; ~~~~~~~~~~ ff= (fr= a) ~~~~~~~~~~~ | u&256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2f: // CPL ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ff= ff &-41 ~~~~~~~~~~~~~~~~ | (a^=255)& 40; ~~~~~~~~~~~~~~~ fb|= -129; ~~~~~~~~~~ fa= fa & -17 ~~~~~~~~~~~~~ | ~fr & 16; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x37: // SCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fr^fa) & 16; ~~~~~~~~~~~~~~~ ff= 256 ~~~~~~~ | ff &128 ~~~~~~~~~~ | a & 40; ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3f: // CCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~~~~~~~ | (ff>>4^fr^fa) & 16; ~~~~~~~~~~~~~~~~~~~~~ ff= ~ff & 256 ~~~~~~~~~~~~~ | ff & 128 ~~~~~~~~~~~ | a & 40; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x41: // LD B,C ~~~~~~~~~~~~~~~~~~~~ LDRR(b, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x42: // LD B,D ~~~~~~~~~~~~~~~~~~~~ LDRR(b, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x43: // LD B,E ~~~~~~~~~~~~~~~~~~~~ LDRR(b, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x44: // LD B,H // LD B,IXh // LD B,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x45: // LD B,L // LD B,IXl // LD B,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x46: // LD B,(HL) // LD B,(IX+d) // LD B,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x47: // LD B,A ~~~~~~~~~~~~~~~~~~~~ LDRR(b, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x48: // LD C,B ~~~~~~~~~~~~~~~~~~~~ LDRR(c, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4a: // LD C,D ~~~~~~~~~~~~~~~~~~~~ LDRR(c, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4b: // LD C,E ~~~~~~~~~~~~~~~~~~~~ LDRR(c, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4c: // LD C,H // LD C,IXh // LD C,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4d: // LD C,L // LD C,IXl // LD C,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4e: // LD C,(HL) // LD C,(IX+d) // LD C,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4f: // LD C,A ~~~~~~~~~~~~~~~~~~~~ LDRR(c, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x50: // LD D,B ~~~~~~~~~~~~~~~~~~~~ LDRR(d, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x51: // LD D,C ~~~~~~~~~~~~~~~~~~~~ LDRR(d, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x53: // LD D,E ~~~~~~~~~~~~~~~~~~~~ LDRR(d, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x54: // LD D,H // LD D,IXh // LD D,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x55: // LD D,L // LD D,IXl // LD D,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x56: // LD D,(HL) // LD D,(IX+d) // LD D,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x57: // LD D,A ~~~~~~~~~~~~~~~~~~~~ LDRR(d, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x58: // LD E,B ~~~~~~~~~~~~~~~~~~~~ LDRR(e, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x59: // LD E,C ~~~~~~~~~~~~~~~~~~~~ LDRR(e, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5a: // LD E,D ~~~~~~~~~~~~~~~~~~~~ LDRR(e, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5c: // LD E,H // LD E,IXh // LD E,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5d: // LD E,L // LD E,IXl // LD E,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5e: // LD E,(HL) // LD E,(IX+d) // LD E,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5f: // LD E,A ~~~~~~~~~~~~~~~~~~~~ LDRR(e, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x60: // LD H,B // LD IXh,B // LD IYh,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x61: // LD H,C // LD IXh,C // LD IYh,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x62: // LD H,D // LD IXh,D // LD IYh,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x63: // LD H,E // LD IXh,E // LD IYh,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x65: // LD H,L // LD IXh,IXl // LD IYh,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, yl, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, xl, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x66: // LD H,(HL) // LD H,(IX+d) // LD H,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x67: // LD H,A // LD IXh,A // LD IYh,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x68: // LD L,B // LD IXl,B // LD IYl,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x69: // LD L,C // LD IXl,C // LD IYl,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6a: // LD L,D // LD IXl,D // LD IYl,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6b: // LD L,E // LD IXl,E // LD IYl,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6c: // LD L,H // LD IXl,IXh // LD IYl,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, yh, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, xh, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6e: // LD L,(HL) // LD L,(IX+d) // LD L,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6f: // LD L,A // LD IXl,A // LD IYl,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x70: // LD (HL),B // LD (IX+d),B // LD (IY+d),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x71: // LD (HL),C // LD (IX+d),C // LD (IY+d),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x72: // LD (HL),D // LD (IX+d),D // LD (IY+d),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x73: // LD (HL),E // LD (IX+d),E // LD (IY+d),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x74: // LD (HL),H // LD (IX+d),H // LD (IY+d),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x75: // LD (HL),L // LD (IX+d),L // LD (IY+d),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x77: // LD (HL),A // LD (IX+d),A // LD (IY+d),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x78: // LD A,B ~~~~~~~~~~~~~~~~~~~~ LDRR(a, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x79: // LD A,C ~~~~~~~~~~~~~~~~~~~~ LDRR(a, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7a: // LD A,D ~~~~~~~~~~~~~~~~~~~~ LDRR(a, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7b: // LD A,E ~~~~~~~~~~~~~~~~~~~~ LDRR(a, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7c: // LD A,H // LD A,IXh // LD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7d: // LD A,L // LD A,IXl // LD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7e: // LD A,(HL) // LD A,(IX+d) // LD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x80: // ADD A,B ~~~~~~~~~~~~~~~~~~~~~ ADD(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x81: // ADD A,C ~~~~~~~~~~~~~~~~~~~~~ ADD(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x82: // ADD A,D ~~~~~~~~~~~~~~~~~~~~~ ADD(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x83: // ADD A,E ~~~~~~~~~~~~~~~~~~~~~ ADD(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x84: // ADD A,H // ADD A,IXh // ADD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yh, 4); ~~~~~~~~~~~ else ~~~~ ADD(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x85: // ADD A,L // ADD A,IXl // ADD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yl, 4); ~~~~~~~~~~~ else ~~~~ ADD(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x86: // ADD A,(HL) // ADD A,(IX+d) // ADD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADD(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x87: // ADD A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x88: // ADC A,B ~~~~~~~~~~~~~~~~~~~~~ ADC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x89: // ADC A,C ~~~~~~~~~~~~~~~~~~~~~ ADC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8a: // ADC A,D ~~~~~~~~~~~~~~~~~~~~~ ADC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8b: // ADC A,E ~~~~~~~~~~~~~~~~~~~~~ ADC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8c: // ADC A,H // ADC A,IXh // ADC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yh, 4); ~~~~~~~~~~~ else ~~~~ ADC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8d: // ADC A,L // ADC A,IXl // ADC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yl, 4); ~~~~~~~~~~~ else ~~~~ ADC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8e: // ADC A,(HL) // ADC A,(IX+d) // ADC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8f: // ADC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)+(ff>>8&1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x90: // SUB B ~~~~~~~~~~~~~~~~~~~ SUB(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x91: // SUB C ~~~~~~~~~~~~~~~~~~~ SUB(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x92: // SUB D ~~~~~~~~~~~~~~~~~~~ SUB(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x93: // SUB E ~~~~~~~~~~~~~~~~~~~ SUB(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x94: // SUB H // SUB IXh // SUB IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yh, 4); ~~~~~~~~~~~ else ~~~~ SUB(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x95: // SUB L // SUB IXl // SUB IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yl, 4); ~~~~~~~~~~~ else ~~~~ SUB(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x96: // SUB (HL) // SUB (IX+d) // SUB (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SUB(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x97: // SUB A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= ff= 0; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x98: // SBC A,B ~~~~~~~~~~~~~~~~~~~~~ SBC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x99: // SBC A,C ~~~~~~~~~~~~~~~~~~~~~ SBC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9a: // SBC A,D ~~~~~~~~~~~~~~~~~~~~~ SBC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9b: // SBC A,E ~~~~~~~~~~~~~~~~~~~~~ SBC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9c: // SBC A,H // SBC A,IXh // SBC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yh, 4); ~~~~~~~~~~~ else ~~~~ SBC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9d: // SBC A,L // SBC A,IXl // SBC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yl, 4); ~~~~~~~~~~~ else ~~~~ SBC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9e: // SBC A,(HL) // SBC A,(IX+d) // SBC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SBC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9f: // SBC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= (ff= (ff&256)/-256); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa0: // AND B ~~~~~~~~~~~~~~~~~~~ AND(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa1: // AND C ~~~~~~~~~~~~~~~~~~~ AND(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa2: // AND D ~~~~~~~~~~~~~~~~~~~ AND(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa3: // AND E ~~~~~~~~~~~~~~~~~~~ AND(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa4: // AND H // AND IXh // AND IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yh, 4); ~~~~~~~~~~~ else ~~~~ AND(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa5: // AND L // AND IXl // AND IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yl, 4); ~~~~~~~~~~~ else ~~~~ AND(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa6: // AND (HL) // AND (IX+d) // AND (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ AND(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa7: // AND A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= ~(ff= fr= a); ~~~~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa8: // XOR B ~~~~~~~~~~~~~~~~~~~ XOR(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa9: // XOR C ~~~~~~~~~~~~~~~~~~~ XOR(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaa: // XOR D ~~~~~~~~~~~~~~~~~~~ XOR(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xab: // XOR E ~~~~~~~~~~~~~~~~~~~ XOR(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xac: // XOR H // XOR IXh // XOR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yh, 4); ~~~~~~~~~~~ else ~~~~ XOR(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xad: // XOR L // XOR IXl // XOR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yl, 4); ~~~~~~~~~~~ else ~~~~ XOR(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xae: // XOR (HL) // XOR (IX+d) // XOR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ XOR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaf: // XOR A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= ff= fr= fb= 0; ~~~~~~~~~~~~~~~~~ fa= 256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb0: // OR B ~~~~~~~~~~~~~~~~~~ OR(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb1: // OR C ~~~~~~~~~~~~~~~~~~ OR(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb2: // OR D ~~~~~~~~~~~~~~~~~~ OR(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb3: // OR E ~~~~~~~~~~~~~~~~~~ OR(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb4: // OR H // OR IXh // OR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yh, 4); ~~~~~~~~~~ else ~~~~ OR(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb5: // OR L // OR IXl // OR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yl, 4); ~~~~~~~~~~ else ~~~~ OR(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb6: // OR (HL) // OR (IX+d) // OR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ OR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb7: // OR A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= 256 ~~~~~~~ | (ff= fr= a); ~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb8: // CP B ~~~~~~~~~~~~~~~~~~ CP(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb9: // CP C ~~~~~~~~~~~~~~~~~~ CP(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xba: // CP D ~~~~~~~~~~~~~~~~~~ CP(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbb: // CP E ~~~~~~~~~~~~~~~~~~ CP(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbc: // CP H // CP IXh // CP IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yh, 4); ~~~~~~~~~~ else ~~~~ CP(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbd: // CP L // CP IXl // CP IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yl, 4); ~~~~~~~~~~ else ~~~~ CP(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbe: // CP (HL) // CP (IX+d) // CP (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ w= mem[l|h<<8], ~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ w= mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else ~~~~ w= mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbf: // CP A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= 0; ~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ ff= a&40; ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc9: // RET ~~~~~~~~~~~~~~~~~ RET(10); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc0: // RET NZ ~~~~~~~~~~~~~~~~~~~~ RETCI(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc8: // RET Z ~~~~~~~~~~~~~~~~~~~ RETC(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd0: // RET NC ~~~~~~~~~~~~~~~~~~~~ RETC(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd8: // RET C ~~~~~~~~~~~~~~~~~~~ RETCI(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe0: // RET PO ~~~~~~~~~~~~~~~~~~~~ RETC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe8: // RET PE ~~~~~~~~~~~~~~~~~~~~ RETCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf0: // RET P ~~~~~~~~~~~~~~~~~~~ RETC(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf8: // RET M ~~~~~~~~~~~~~~~~~~~ RETCI(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc1: // POP BC ~~~~~~~~~~~~~~~~~~~~ POP(b, c); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd1: // POP DE ~~~~~~~~~~~~~~~~~~~~ POP(d, e); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe1: // POP HL // POP IX // POP IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ POP(h, l); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ POP(yh, yl); ~~~~~~~~~~~~ else ~~~~ POP(xh, xl); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf1: // POP AF ~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ setf(mem[sp++]); ~~~~~~~~~~~~~~~~ a= mem[sp++]; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc5: // PUSH BC ~~~~~~~~~~~~~~~~~~~~~ PUSH(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd5: // PUSH DE ~~~~~~~~~~~~~~~~~~~~~ PUSH(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe5: // PUSH HL // PUSH IX // PUSH IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ PUSH(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ PUSH(yh, yl); ~~~~~~~~~~~~~ else ~~~~ PUSH(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf5: // PUSH AF ~~~~~~~~~~~~~~~~~~~~~ PUSH(a, f()); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc3: // JP nn ~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc2: // JP NZ ~~~~~~~~~~~~~~~~~~~ JPCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xca: // JP Z ~~~~~~~~~~~~~~~~~~ JPC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd2: // JP NC ~~~~~~~~~~~~~~~~~~~ JPC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xda: // JP C ~~~~~~~~~~~~~~~~~~ JPCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe2: // JP PO ~~~~~~~~~~~~~~~~~~~ JPC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xea: // JP PE ~~~~~~~~~~~~~~~~~~~ JPCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf2: // JP P ~~~~~~~~~~~~~~~~~~ JPC(ff&128); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfa: // JP M ~~~~~~~~~~~~~~~~~~ JPCI(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcd: // CALL nn ~~~~~~~~~~~~~~~~~~~~~ st+= 17; ~~~~~~~~ t= pc+2; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mem[--sp]= t>>8; ~~~~~~~~~~~~~~~~ mem[--sp]= t; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc4: // CALL NZ ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fr); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcc: // CALL Z ~~~~~~~~~~~~~~~~~~~~ CALLC(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd4: // CALL NC ~~~~~~~~~~~~~~~~~~~~~ CALLC(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdc: // CALL C ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&256); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe4: // CALL PO ~~~~~~~~~~~~~~~~~~~~~ CALLC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xec: // CALL PE ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf4: // CALL P ~~~~~~~~~~~~~~~~~~~~ CALLC(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfc: // CALL M ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&128); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc6: // ADD A,n ~~~~~~~~~~~~~~~~~~~~~ ADD(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xce: // ADC A,n ~~~~~~~~~~~~~~~~~~~~~ ADC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd6: // SUB n ~~~~~~~~~~~~~~~~~~~ SUB(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xde: // SBC A,n ~~~~~~~~~~~~~~~~~~~~~ SBC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe6: // AND n ~~~~~~~~~~~~~~~~~~~ AND(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xee: // XOR A,n ~~~~~~~~~~~~~~~~~~~~~ XOR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf6: // OR n ~~~~~~~~~~~~~~~~~~ OR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfe: // CP A,n ~~~~~~~~~~~~~~~~~~~~ w= mem[pc++]; ~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc7: // RST 0x00 ~~~~~~~~~~~~~~~~~~~~~~ RST(0); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcf: // RST 0x08 ~~~~~~~~~~~~~~~~~~~~~~ RST(8); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd7: // RST 0x10 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x10); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdf: // RST 0x18 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x18); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe7: // RST 0x20 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x20); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xef: // RST 0x28 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x28); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf7: // RST 0x30 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x30); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xff: // RST 0x38 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x38); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd3: // OUT (n),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ out(mp= mem[pc++] | a<<8, a); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= mp&65280 ~~~~~~~~~~~~ | ++mp; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdb: // IN A,(n) ~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ a= in(mp= mem[pc++] | a<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf3: // DI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 0; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfb: // EI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 1; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xeb: // EX DE,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= d; ~~~~~ d= h; ~~~~~ h= t; ~~~~~ t= e; ~~~~~ e= l; ~~~~~ l= t; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd9: // EXX ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = b; ~~~~~~ b = b_; ~~~~~~~ b_= t; ~~~~~~ t = c; ~~~~~~ c = c_; ~~~~~~~ c_= t; ~~~~~~ t = d; ~~~~~~ d = d_; ~~~~~~~ d_= t; ~~~~~~ t = e; ~~~~~~ e = e_; ~~~~~~~ e_= t; ~~~~~~ t = h; ~~~~~~ h = h_; ~~~~~~~ h_= t; ~~~~~~ t = l; ~~~~~~ l = l_; ~~~~~~~ l_= t; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe3: // EX (SP),HL // EX (SP),IX // EX (SP),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ EXSPI(h, l); ~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ EXSPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ EXSPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe9: // JP (HL) ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ pc= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ pc= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ pc= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf9: // LD SP,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ sp= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ sp= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ sp= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdd: // OP DD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= iy= 0; ~~~~~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xfd: // OP FD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= 0; ~~~~~~ iy= 1; ~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xcb: // OP CB ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ if( ih ) ~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(b); break; // RLC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(c); break; // RLC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(d); break; // RLC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(e); break; // RLC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(h); break; // RLC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(l); break; // RLC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: st+= 7; // RLC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RLC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x07: RLC(a); break; // RLC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(b); break; // RRC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(c); break; // RRC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(d); break; // RRC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(e); break; // RRC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(h); break; // RRC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(l); break; // RRC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: st+= 7; // RRC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RRC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x0f: RRC(a); break; // RRC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(b); break; // RL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(c); break; // RL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(d); break; // RL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(e); break; // RL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(h); break; // RL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(l); break; // RL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: st+= 7; // RL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RL(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x17: RL(a); break; // RL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(b); break; // RR B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(c); break; // RR C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(d); break; // RR D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(e); break; // RR E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(h); break; // RR H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(l); break; // RR L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: st+= 7; // RR (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RR(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x1f: RR(a); break; // RR A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(b); break; // SLA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(c); break; // SLA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(d); break; // SLA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(e); break; // SLA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(h); break; // SLA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(l); break; // SLA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: st+= 7; // SLA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x27: SLA(a); break; // SLA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(b); break; // SRA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(c); break; // SRA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(d); break; // SRA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(e); break; // SRA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(h); break; // SRA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(l); break; // SRA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: st+= 7; // SRA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x2f: SRA(a); break; // SRA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(b); break; // SLL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(c); break; // SLL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(d); break; // SLL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(e); break; // SLL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(h); break; // SLL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(l); break; // SLL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: st+= 7; // SLL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x37: SLL(a); break; // SLL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(b); break; // SRL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(c); break; // SRL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(d); break; // SRL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(e); break; // SRL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(h); break; // SRL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(l); break; // SRL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: st+= 7; // SRL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x3f: SRL(a); break; // SRL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: BIT(1, b); break; // BIT 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: BIT(1, c); break; // BIT 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: BIT(1, d); break; // BIT 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x43: BIT(1, e); break; // BIT 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: BIT(1, h); break; // BIT 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x45: BIT(1, l); break; // BIT 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x46: BITHL(1); break; // BIT 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x47: BIT(1, a); break; // BIT 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: BIT(2, b); break; // BIT 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: BIT(2, c); break; // BIT 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4a: BIT(2, d); break; // BIT 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4b: BIT(2, e); break; // BIT 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: BIT(2, h); break; // BIT 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4d: BIT(2, l); break; // BIT 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4e: BITHL(2); break; // BIT 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4f: BIT(2, a); break; // BIT 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: BIT(4, b); break; // BIT 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: BIT(4, c); break; // BIT 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: BIT(4, d); break; // BIT 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x53: BIT(4, e); break; // BIT 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: BIT(4, h); break; // BIT 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x55: BIT(4, l); break; // BIT 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x56: BITHL(4); break; // BIT 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x57: BIT(4, a); break; // BIT 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: BIT(8, b); break; // BIT 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: BIT(8, c); break; // BIT 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: BIT(8, d); break; // BIT 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5b: BIT(8, e); break; // BIT 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: BIT(8, h); break; // BIT 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5d: BIT(8, l); break; // BIT 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5e: BITHL(8); break; // BIT 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5f: BIT(8, a); break; // BIT 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: BIT(16, b); break; // BIT 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: BIT(16, c); break; // BIT 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: BIT(16, d); break; // BIT 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x63: BIT(16, e); break; // BIT 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: BIT(16, h); break; // BIT 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x65: BIT(16, l); break; // BIT 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x66: BITHL(16); break; // BIT 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x67: BIT(16, a); break; // BIT 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: BIT(32, b); break; // BIT 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: BIT(32, c); break; // BIT 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6a: BIT(32, d); break; // BIT 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6b: BIT(32, e); break; // BIT 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: BIT(32, h); break; // BIT 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6d: BIT(32, l); break; // BIT 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6e: BITHL(32); break; // BIT 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6f: BIT(32, a); break; // BIT 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: BIT(64, b); break; // BIT 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: BIT(64, c); break; // BIT 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: BIT(64, d); break; // BIT 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x73: BIT(64, e); break; // BIT 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: BIT(64, h); break; // BIT 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x75: BIT(64, l); break; // BIT 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x76: BITHL(64); break; // BIT 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: BIT(64, a); break; // BIT 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: BIT(128, b); break; // BIT 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: BIT(128, c); break; // BIT 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7a: BIT(128, d); break; // BIT 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7b: BIT(128, e); break; // BIT 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: BIT(128, h); break; // BIT 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7d: BIT(128, l); break; // BIT 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7e: BITHL(128); break; // BIT 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7f: BIT(128, a); break; // BIT 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x80: RES(254, b); break; // RES 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, c); break; // RES 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, d); break; // RES 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, e); break; // RES 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, h); break; // RES 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, l); break; // RES 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RESHL(254); break; // RES 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, a); break; // RES 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, b); break; // RES 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, c); break; // RES 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, d); break; // RES 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, e); break; // RES 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, h); break; // RES 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, l); break; // RES 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RESHL(253); break; // RES 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, a); break; // RES 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, b); break; // RES 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, c); break; // RES 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, d); break; // RES 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, e); break; // RES 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, h); break; // RES 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, l); break; // RES 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RESHL(251); break; // RES 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, a); break; // RES 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, b); break; // RES 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, c); break; // RES 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, d); break; // RES 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, e); break; // RES 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, h); break; // RES 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, l); break; // RES 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RESHL(247); break; // RES 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, a); break; // RES 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, b); break; // RES 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, c); break; // RES 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, d); break; // RES 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, e); break; // RES 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, h); break; // RES 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, l); break; // RES 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RESHL(239); break; // RES 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, a); break; // RES 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, b); break; // RES 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, c); break; // RES 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, d); break; // RES 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, e); break; // RES 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, h); break; // RES 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, l); break; // RES 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RESHL(223); break; // RES 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, a); break; // RES 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, b); break; // RES 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, c); break; // RES 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, d); break; // RES 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, e); break; // RES 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, h); break; // RES 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, l); break; // RES 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RESHL(191); break; // RES 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, a); break; // RES 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, b); break; // RES 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, c); break; // RES 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, d); break; // RES 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, e); break; // RES 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, h); break; // RES 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, l); break; // RES 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RESHL(127); break; // RES 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, a); break; // RES 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, b); break; // SET 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, c); break; // SET 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, d); break; // SET 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, e); break; // SET 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, h); break; // SET 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, l); break; // SET 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SETHL(1); break; // SET 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, a); break; // SET 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, b); break; // SET 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, c); break; // SET 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, d); break; // SET 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, e); break; // SET 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, h); break; // SET 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, l); break; // SET 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SETHL(2); break; // SET 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, a); break; // SET 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, b); break; // SET 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, c); break; // SET 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, d); break; // SET 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, e); break; // SET 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, h); break; // SET 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, l); break; // SET 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SETHL(4); break; // SET 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, a); break; // SET 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, b); break; // SET 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, c); break; // SET 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, d); break; // SET 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, e); break; // SET 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, h); break; // SET 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, l); break; // SET 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SETHL(8); break; // SET 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, a); break; // SET 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, b); break; // SET 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, c); break; // SET 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, d); break; // SET 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, e); break; // SET 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, h); break; // SET 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, l); break; // SET 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SETHL(16); break; // SET 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, a); break; // SET 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, b); break; // SET 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, c); break; // SET 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, d); break; // SET 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, e); break; // SET 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, h); break; // SET 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, l); break; // SET 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SETHL(32); break; // SET 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, a); break; // SET 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, b); break; // SET 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, c); break; // SET 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, d); break; // SET 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, e); break; // SET 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, h); break; // SET 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, l); break; // SET 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SETHL(64); break; // SET 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, a); break; // SET 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, b); break; // SET 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, c); break; // SET 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, d); break; // SET 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, e); break; // SET 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, h); break; // SET 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, l); break; // SET 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SETHL(128); break; // SET 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, a); break; // SET 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ else{ ~~~~~ st+= 11; ~~~~~~~~ if( iy ) ~~~~~~~~ t= mem[mp= ((mem[pc++]^128)-128+(yl|yh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ t= mem[mp= ((mem[pc++]^128)-128+(xl|xh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(t); mem[mp]= b= t; break; // LD B,RLC (IX+d) // LD B,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(t); mem[mp]= c= t; break; // LD C,RLC (IX+d) // LD C,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(t); mem[mp]= d= t; break; // LD D,RLC (IX+d) // LD D,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(t); mem[mp]= e= t; break; // LD E,RLC (IX+d) // LD E,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(t); mem[mp]= h= t; break; // LD H,RLC (IX+d) // LD H,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(t); mem[mp]= l= t; break; // LD L,RLC (IX+d) // LD L,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: RLC(t); mem[mp]= t; break; // RLC (IX+d) // RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x07: RLC(t); mem[mp]= a= t; break; // LD A,RLC (IX+d) // LD A,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(t); mem[mp]= b= t; break; // LD B,RRC (IX+d) // LD B,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(t); mem[mp]= c= t; break; // LD C,RRC (IX+d) // LD C,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(t); mem[mp]= d= t; break; // LD D,RRC (IX+d) // LD D,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(t); mem[mp]= e= t; break; // LD E,RRC (IX+d) // LD E,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(t); mem[mp]= h= t; break; // LD H,RRC (IX+d) // LD H,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(t); mem[mp]= l= t; break; // LD L,RRC (IX+d) // LD L,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: RRC(t); mem[mp]= t; break; // RRC (IX+d) // RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0f: RRC(t); mem[mp]= a= t; break; // LD A,RRC (IX+d) // LD A,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(t); mem[mp]= b= t; break; // LD B,RL (IX+d) // LD B,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(t); mem[mp]= c= t; break; // LD C,RL (IX+d) // LD C,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(t); mem[mp]= d= t; break; // LD D,RL (IX+d) // LD D,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(t); mem[mp]= e= t; break; // LD E,RL (IX+d) // LD E,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(t); mem[mp]= h= t; break; // LD H,RL (IX+d) // LD H,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(t); mem[mp]= l= t; break; // LD L,RL (IX+d) // LD L,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: RL(t); mem[mp]= t; break; // RL (IX+d) // RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x17: RL(t); mem[mp]= a= t; break; // LD A,RL (IX+d) // LD A,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(t); mem[mp]= b= t; break; // LD B,RR (IX+d) // LD B,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(t); mem[mp]= c= t; break; // LD C,RR (IX+d) // LD C,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(t); mem[mp]= d= t; break; // LD D,RR (IX+d) // LD D,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(t); mem[mp]= e= t; break; // LD E,RR (IX+d) // LD E,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(t); mem[mp]= h= t; break; // LD H,RR (IX+d) // LD H,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(t); mem[mp]= l= t; break; // LD L,RR (IX+d) // LD L,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: RR(t); mem[mp]= t; break; // RR (IX+d) // RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1f: RR(t); mem[mp]= a= t; break; // LD A,RR (IX+d) // LD A,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(t); mem[mp]= b= t; break; // LD B,SLA (IX+d) // LD B,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(t); mem[mp]= c= t; break; // LD C,SLA (IX+d) // LD C,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(t); mem[mp]= d= t; break; // LD D,SLA (IX+d) // LD D,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(t); mem[mp]= e= t; break; // LD E,SLA (IX+d) // LD E,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(t); mem[mp]= h= t; break; // LD H,SLA (IX+d) // LD H,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(t); mem[mp]= l= t; break; // LD L,SLA (IX+d) // LD L,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: SLA(t); mem[mp]= t; break; // SLA (IX+d) // SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x27: SLA(t); mem[mp]= a= t; break; // LD A,SLA (IX+d) // LD A,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(t); mem[mp]= b= t; break; // LD B,SRA (IX+d) // LD B,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(t); mem[mp]= c= t; break; // LD C,SRA (IX+d) // LD C,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(t); mem[mp]= d= t; break; // LD D,SRA (IX+d) // LD D,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(t); mem[mp]= e= t; break; // LD E,SRA (IX+d) // LD E,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(t); mem[mp]= h= t; break; // LD H,SRA (IX+d) // LD H,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(t); mem[mp]= l= t; break; // LD L,SRA (IX+d) // LD L,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: SRA(t); mem[mp]= t; break; // SRA (IX+d) // SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2f: SRA(t); mem[mp]= a= t; break; // LD A,SRA (IX+d) // LD A,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(t); mem[mp]= b= t; break; // LD B,SLL (IX+d) // LD B,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(t); mem[mp]= c= t; break; // LD C,SLL (IX+d) // LD C,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(t); mem[mp]= d= t; break; // LD D,SLL (IX+d) // LD D,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(t); mem[mp]= e= t; break; // LD E,SLL (IX+d) // LD E,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(t); mem[mp]= h= t; break; // LD H,SLL (IX+d) // LD H,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(t); mem[mp]= l= t; break; // LD L,SLL (IX+d) // LD L,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: SLL(t); mem[mp]= t; break; // SLL (IX+d) // SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x37: SLL(t); mem[mp]= a= t; break; // LD A,SLL (IX+d) // LD A,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(t); mem[mp]= b= t; break; // LD B,SRL (IX+d) // LD B,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(t); mem[mp]= c= t; break; // LD C,SRL (IX+d) // LD C,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(t); mem[mp]= d= t; break; // LD D,SRL (IX+d) // LD D,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(t); mem[mp]= e= t; break; // LD E,SRL (IX+d) // LD E,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(t); mem[mp]= h= t; break; // LD H,SRL (IX+d) // LD H,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(t); mem[mp]= l= t; break; // LD L,SRL (IX+d) // LD L,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: SRL(t); mem[mp]= t; break; // SRL (IX+d) // SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3f: SRL(t); mem[mp]= a= t; break; // LD A,SRL (IX+d) // LD A,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: case 0x41: case 0x42: case 0x43: // BIT 0,(IX+d) // BIT 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: case 0x45: case 0x46: case 0x47: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(1); break; ~~~~~~~~~~~~~~~ case 0x48: case 0x49: case 0x4a: case 0x4b: // BIT 1,(IX+d) // BIT 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: case 0x4d: case 0x4e: case 0x4f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(2); break; ~~~~~~~~~~~~~~~ case 0x50: case 0x51: case 0x52: case 0x53: // BIT 2,(IX+d) // BIT 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: case 0x55: case 0x56: case 0x57: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(4); break; ~~~~~~~~~~~~~~~ case 0x58: case 0x59: case 0x5a: case 0x5b: // BIT 3,(IX+d) // BIT 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: case 0x5d: case 0x5e: case 0x5f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(8); break; ~~~~~~~~~~~~~~~ case 0x60: case 0x61: case 0x62: case 0x63: // BIT 4,(IX+d) // BIT 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: case 0x65: case 0x66: case 0x67: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(16); break; ~~~~~~~~~~~~~~~~ case 0x68: case 0x69: case 0x6a: case 0x6b: // BIT 5,(IX+d) // BIT 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: case 0x6d: case 0x6e: case 0x6f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(32); break; ~~~~~~~~~~~~~~~~ case 0x70: case 0x71: case 0x72: case 0x73: // BIT 6,(IX+d) // BIT 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: case 0x75: case 0x76: case 0x77: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(64); break; ~~~~~~~~~~~~~~~~ case 0x78: case 0x79: case 0x7a: case 0x7b: // BIT 7,(IX+d) // BIT 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: case 0x7d: case 0x7e: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(128); break; ~~~~~~~~~~~~~~~~~ case 0x80: RES(254, t); mem[mp]= b= t; break; // LD B,RES 0,(IX+d) // LD B,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, t); mem[mp]= c= t; break; // LD C,RES 0,(IX+d) // LD C,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, t); mem[mp]= d= t; break; // LD D,RES 0,(IX+d) // LD D,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, t); mem[mp]= e= t; break; // LD E,RES 0,(IX+d) // LD E,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, t); mem[mp]= h= t; break; // LD H,RES 0,(IX+d) // LD H,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, t); mem[mp]= l= t; break; // LD L,RES 0,(IX+d) // LD L,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RES(254, t); mem[mp]= t; break; // RES 0,(IX+d) // RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, t); mem[mp]= a= t; break; // LD A,RES 0,(IX+d) // LD A,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, t); mem[mp]= b= t; break; // LD B,RES 1,(IX+d) // LD B,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, t); mem[mp]= c= t; break; // LD C,RES 1,(IX+d) // LD C,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, t); mem[mp]= d= t; break; // LD D,RES 1,(IX+d) // LD D,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, t); mem[mp]= e= t; break; // LD E,RES 1,(IX+d) // LD E,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, t); mem[mp]= h= t; break; // LD H,RES 1,(IX+d) // LD H,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, t); mem[mp]= l= t; break; // LD L,RES 1,(IX+d) // LD L,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RES(253, t); mem[mp]= t; break; // RES 1,(IX+d) // RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, t); mem[mp]= a= t; break; // LD A,RES 1,(IX+d) // LD A,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, t); mem[mp]= b= t; break; // LD B,RES 2,(IX+d) // LD B,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, t); mem[mp]= c= t; break; // LD C,RES 2,(IX+d) // LD C,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, t); mem[mp]= d= t; break; // LD D,RES 2,(IX+d) // LD D,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, t); mem[mp]= e= t; break; // LD E,RES 2,(IX+d) // LD E,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, t); mem[mp]= h= t; break; // LD H,RES 2,(IX+d) // LD H,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, t); mem[mp]= l= t; break; // LD L,RES 2,(IX+d) // LD L,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RES(251, t); mem[mp]= t; break; // RES 2,(IX+d) // RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, t); mem[mp]= a= t; break; // LD A,RES 2,(IX+d) // LD A,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, t); mem[mp]= b= t; break; // LD B,RES 3,(IX+d) // LD B,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, t); mem[mp]= c= t; break; // LD C,RES 3,(IX+d) // LD C,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, t); mem[mp]= d= t; break; // LD D,RES 3,(IX+d) // LD D,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, t); mem[mp]= e= t; break; // LD E,RES 3,(IX+d) // LD E,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, t); mem[mp]= h= t; break; // LD H,RES 3,(IX+d) // LD H,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, t); mem[mp]= l= t; break; // LD L,RES 3,(IX+d) // LD L,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RES(247, t); mem[mp]= t; break; // RES 3,(IX+d) // RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, t); mem[mp]= a= t; break; // LD A,RES 3,(IX+d) // LD A,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, t); mem[mp]= b= t; break; // LD B,RES 4,(IX+d) // LD B,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, t); mem[mp]= c= t; break; // LD C,RES 4,(IX+d) // LD C,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, t); mem[mp]= d= t; break; // LD D,RES 4,(IX+d) // LD D,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, t); mem[mp]= e= t; break; // LD E,RES 4,(IX+d) // LD E,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, t); mem[mp]= h= t; break; // LD H,RES 4,(IX+d) // LD H,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, t); mem[mp]= l= t; break; // LD L,RES 4,(IX+d) // LD L,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RES(239, t); mem[mp]= t; break; // RES 4,(IX+d) // RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, t); mem[mp]= a= t; break; // LD A,RES 4,(IX+d) // LD A,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, t); mem[mp]= b= t; break; // LD B,RES 5,(IX+d) // LD B,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, t); mem[mp]= c= t; break; // LD C,RES 5,(IX+d) // LD C,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, t); mem[mp]= d= t; break; // LD D,RES 5,(IX+d) // LD D,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, t); mem[mp]= e= t; break; // LD E,RES 5,(IX+d) // LD E,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, t); mem[mp]= h= t; break; // LD H,RES 5,(IX+d) // LD H,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, t); mem[mp]= l= t; break; // LD L,RES 5,(IX+d) // LD L,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RES(223, t); mem[mp]= t; break; // RES 5,(IX+d) // RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, t); mem[mp]= a= t; break; // LD A,RES 5,(IX+d) // LD A,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, t); mem[mp]= b= t; break; // LD B,RES 6,(IX+d) // LD B,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, t); mem[mp]= c= t; break; // LD C,RES 6,(IX+d) // LD C,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, t); mem[mp]= d= t; break; // LD D,RES 6,(IX+d) // LD D,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, t); mem[mp]= e= t; break; // LD E,RES 6,(IX+d) // LD E,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, t); mem[mp]= h= t; break; // LD H,RES 6,(IX+d) // LD H,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, t); mem[mp]= l= t; break; // LD L,RES 6,(IX+d) // LD L,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RES(191, t); mem[mp]= t; break; // RES 6,(IX+d) // RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, t); mem[mp]= a= t; break; // LD A,RES 6,(IX+d) // LD A,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, t); mem[mp]= b= t; break; // LD B,RES 7,(IX+d) // LD B,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, t); mem[mp]= c= t; break; // LD C,RES 7,(IX+d) // LD C,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, t); mem[mp]= d= t; break; // LD D,RES 7,(IX+d) // LD D,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, t); mem[mp]= e= t; break; // LD E,RES 7,(IX+d) // LD E,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, t); mem[mp]= h= t; break; // LD H,RES 7,(IX+d) // LD H,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, t); mem[mp]= l= t; break; // LD L,RES 7,(IX+d) // LD L,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RES(127, t); mem[mp]= t; break; // RES 7,(IX+d) // RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, t); mem[mp]= a= t; break; // LD A,RES 7,(IX+d) // LD A,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, t); mem[mp]= b= t; break; // LD B,SET 0,(IX+d) // LD B,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, t); mem[mp]= c= t; break; // LD C,SET 0,(IX+d) // LD C,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, t); mem[mp]= d= t; break; // LD D,SET 0,(IX+d) // LD D,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, t); mem[mp]= e= t; break; // LD E,SET 0,(IX+d) // LD E,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, t); mem[mp]= h= t; break; // LD H,SET 0,(IX+d) // LD H,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, t); mem[mp]= l= t; break; // LD L,SET 0,(IX+d) // LD L,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SET(1, t); mem[mp]= t; break; // SET 0,(IX+d) // SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, t); mem[mp]= a= t; break; // LD A,SET 0,(IX+d) // LD A,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, t); mem[mp]= b= t; break; // LD B,SET 1,(IX+d) // LD B,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, t); mem[mp]= c= t; break; // LD C,SET 1,(IX+d) // LD C,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, t); mem[mp]= d= t; break; // LD D,SET 1,(IX+d) // LD D,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, t); mem[mp]= e= t; break; // LD E,SET 1,(IX+d) // LD E,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, t); mem[mp]= h= t; break; // LD H,SET 1,(IX+d) // LD H,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, t); mem[mp]= l= t; break; // LD L,SET 1,(IX+d) // LD L,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SET(2, t); mem[mp]= t; break; // SET 1,(IX+d) // SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, t); mem[mp]= a= t; break; // LD A,SET 1,(IX+d) // LD A,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, t); mem[mp]= b= t; break; // LD B,SET 2,(IX+d) // LD B,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, t); mem[mp]= c= t; break; // LD C,SET 2,(IX+d) // LD C,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, t); mem[mp]= d= t; break; // LD D,SET 2,(IX+d) // LD D,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, t); mem[mp]= e= t; break; // LD E,SET 2,(IX+d) // LD E,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, t); mem[mp]= h= t; break; // LD H,SET 2,(IX+d) // LD H,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, t); mem[mp]= l= t; break; // LD L,SET 2,(IX+d) // LD L,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SET(4, t); mem[mp]= t; break; // SET 2,(IX+d) // SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, t); mem[mp]= a= t; break; // LD A,SET 2,(IX+d) // LD A,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, t); mem[mp]= b= t; break; // LD B,SET 3,(IX+d) // LD B,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, t); mem[mp]= c= t; break; // LD C,SET 3,(IX+d) // LD C,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, t); mem[mp]= d= t; break; // LD D,SET 3,(IX+d) // LD D,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, t); mem[mp]= e= t; break; // LD E,SET 3,(IX+d) // LD E,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, t); mem[mp]= h= t; break; // LD H,SET 3,(IX+d) // LD H,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, t); mem[mp]= l= t; break; // LD L,SET 3,(IX+d) // LD L,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SET(8, t); mem[mp]= t; break; // SET 3,(IX+d) // SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, t); mem[mp]= a= t; break; // LD A,SET 3,(IX+d) // LD A,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, t); mem[mp]= b= t; break; // LD B,SET 4,(IX+d) // LD B,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, t); mem[mp]= c= t; break; // LD C,SET 4,(IX+d) // LD C,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, t); mem[mp]= d= t; break; // LD D,SET 4,(IX+d) // LD D,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, t); mem[mp]= e= t; break; // LD E,SET 4,(IX+d) // LD E,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, t); mem[mp]= h= t; break; // LD H,SET 4,(IX+d) // LD H,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, t); mem[mp]= l= t; break; // LD L,SET 4,(IX+d) // LD L,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SET(16, t); mem[mp]= t; break; // SET 4,(IX+d) // SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, t); mem[mp]= a= t; break; // LD A,SET 4,(IX+d) // LD A,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, t); mem[mp]= b= t; break; // LD B,SET 5,(IX+d) // LD B,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, t); mem[mp]= c= t; break; // LD C,SET 5,(IX+d) // LD C,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, t); mem[mp]= d= t; break; // LD D,SET 5,(IX+d) // LD D,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, t); mem[mp]= e= t; break; // LD E,SET 5,(IX+d) // LD E,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, t); mem[mp]= h= t; break; // LD H,SET 5,(IX+d) // LD H,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, t); mem[mp]= l= t; break; // LD L,SET 5,(IX+d) // LD L,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SET(32, t); mem[mp]= t; break; // SET 5,(IX+d) // SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, t); mem[mp]= a= t; break; // LD A,SET 5,(IX+d) // LD A,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, t); mem[mp]= b= t; break; // LD B,SET 6,(IX+d) // LD B,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, t); mem[mp]= c= t; break; // LD C,SET 6,(IX+d) // LD C,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, t); mem[mp]= d= t; break; // LD D,SET 6,(IX+d) // LD D,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, t); mem[mp]= e= t; break; // LD E,SET 6,(IX+d) // LD E,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, t); mem[mp]= h= t; break; // LD H,SET 6,(IX+d) // LD H,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, t); mem[mp]= l= t; break; // LD L,SET 6,(IX+d) // LD L,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SET(64, t); mem[mp]= t; break; // SET 6,(IX+d) // SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, t); mem[mp]= a= t; break; // LD A,SET 6,(IX+d) // LD A,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, t); mem[mp]= b= t; break; // LD B,SET 7,(IX+d) // LD B,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, t); mem[mp]= c= t; break; // LD C,SET 7,(IX+d) // LD C,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, t); mem[mp]= d= t; break; // LD D,SET 7,(IX+d) // LD D,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, t); mem[mp]= e= t; break; // LD E,SET 7,(IX+d) // LD E,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, t); mem[mp]= h= t; break; // LD H,SET 7,(IX+d) // LD H,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, t); mem[mp]= l= t; break; // LD L,SET 7,(IX+d) // LD L,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SET(128, t); mem[mp]= t; break; // SET 7,(IX+d) // SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, t); mem[mp]= a= t; break; // LD A,SET 7,(IX+d) // LD A,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ } ~ ih=1;break; ~~~~~~~~~~~ case 0xed: // OP ED ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: case 0x01: case 0x02: case 0x03: // NOP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: case 0x05: case 0x06: case 0x07: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: case 0x09: case 0x0a: case 0x0b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: case 0x0d: case 0x0e: case 0x0f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: case 0x11: case 0x12: case 0x13: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: case 0x15: case 0x16: case 0x17: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: case 0x19: case 0x1a: case 0x1b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: case 0x1d: case 0x1e: case 0x1f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: case 0x21: case 0x22: case 0x23: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: case 0x25: case 0x26: case 0x27: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: case 0x29: case 0x2a: case 0x2b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: case 0x2d: case 0x2e: case 0x2f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: case 0x31: case 0x32: case 0x33: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: case 0x35: case 0x36: case 0x37: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: case 0x39: case 0x3a: case 0x3b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: case 0x3d: case 0x3e: case 0x3f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~ case 0x80: case 0x81: case 0x82: case 0x83: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: case 0x85: case 0x86: case 0x87: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: case 0x89: case 0x8a: case 0x8b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: case 0x8d: case 0x8e: case 0x8f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: case 0x91: case 0x92: case 0x93: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: case 0x95: case 0x96: case 0x97: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: case 0x99: case 0x9a: case 0x9b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: case 0x9d: case 0x9e: case 0x9f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: case 0xa5: case 0xa6: case 0xa7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: case 0xad: case 0xae: case 0xaf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: case 0xb5: case 0xb6: case 0xb7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: case 0xbd: case 0xbe: case 0xbf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: case 0xc1: case 0xc2: case 0xc3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: case 0xc5: case 0xc6: case 0xc7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: case 0xc9: case 0xca: case 0xcb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: case 0xcd: case 0xce: case 0xcf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: case 0xd1: case 0xd2: case 0xd3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: case 0xd5: case 0xd6: case 0xd7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: case 0xd9: case 0xda: case 0xdb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: case 0xdd: case 0xde: case 0xdf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: case 0xe1: case 0xe2: case 0xe3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: case 0xe5: case 0xe6: case 0xe7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: case 0xe9: case 0xea: case 0xeb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: case 0xed: case 0xee: case 0xef: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: case 0xf1: case 0xf2: case 0xf3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: case 0xf5: case 0xf6: case 0xf7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: case 0xf9: case 0xfa: case 0xfb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: case 0xfd: case 0xfe: case 0xff: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 8; break; ~~~~~~~~~~~~~~ case 0x40: INR(b); break; // IN B,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: INR(c); break; // IN C,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: INR(d); break; // IN D,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: INR(e); break; // IN E,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: INR(h); break; // IN H,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: INR(l); break; // IN L,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: INR(t); break; // IN X,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: INR(a); break; // IN A,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: OUTR(b); break; // OUT (C),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: OUTR(c); break; // OUT (C),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: OUTR(d); break; // OUT (C),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: OUTR(e); break; // OUT (C),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: OUTR(h); break; // OUT (C),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: OUTR(l); break; // OUT (C),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: OUTR(0); break; // OUT (C),X ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: OUTR(a); break; // OUT (C),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: SBCHLRR(b, c); break; // SBC HL,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: SBCHLRR(d, e); break; // SBC HL,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: SBCHLRR(h, l); break; // SBC HL,HL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: st+= 15; // SBC HL,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v= (mp= l|h<<8)-sp-(ff>>8&1); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ff= v>>8; ~~~~~~~~~ fa= h; ~~~~~~ fb= ~sp>>8; ~~~~~~~~~~~ h= ff; ~~~~~~ l= v; ~~~~~ fr= h | l<<8; break; ~~~~~~~~~~~~~~~~~~~~ case 0x4a: ADCHLRR(b, c); break; // ADC HL,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: ADCHLRR(d, e); break; // ADC HL,DE ~~~~~~~~~~~~~~~~~~~~ ticks.c:2626:22: note: in expansion of macro 'ADCHLRR' case 0x5a: ADCHLRR(d, e); break; // ADC HL,DE ^~~~~~~ ticks.c:377:20: warning: suggest parentheses around '+' inside '<<' [-Wparentheses] v= l+b+(h+a<<8)+(ff>>8&1),\ ~^~~~~~~~~~~~~~~~~~ mp= l+1+(h<<8), \ ~~~~~~~~~~~~~~~~~~~~~~~ ff= v>>8, \ ~~~~~~~~~~~~~~~~~~~~~~~ fa= h, \ ~~~~~~~~~~~~~~~~~~~~~~~ fb= a, \ ~~~~~~~~~~~~~~~~~~~~~~~ h= ff, \ ~~~~~~~~~~~~~~~~~~~~~~~ l= v, \ ~~~~~~~~~~~~~~~~~~~~~~~ fr= h|l<<8 ~~~~~~~~~~ FILE * ft; ~~~~~~~~~~ unsigned char * tapbuf; ~~~~~~~~~~~~~~~~~~~~~~~ int v ~~~~~~~~~ , wavpos= 0 ~~~~~~~~~~~ , wavlen= 0 ~~~~~~~~~~~ , mues ~~~~~~ ; ~ unsigned short ~~~~~~~~~~~~~~ pc= 0 ~~~~~ , sp= 0 ~~~~~~~ , mp= 0 ~~~~~~~ , t= 0 ~~~~~~ , u= 0 ~~~~~~ , ff= 0 ~~~~~~~ , ff_= 0 ~~~~~~~~ , fa= 0 ~~~~~~~ , fa_= 0 ~~~~~~~~ , fb= 0 ~~~~~~~ , fb_= 0 ~~~~~~~~ , fr= 0 ~~~~~~~ , fr_= 0 ~~~~~~~~ ; ~ long long ~~~~~~~~~ st= 0 ~~~~~ , sttap ~~~~~~~ , stint ~~~~~~~ , counter= 1e8 ~~~~~~~~~~~~~~ ; ~ unsigned char ~~~~~~~~~~~~~ a= 0 ~~~~ , b= 0 ~~~~~~ , c= 0 ~~~~~~ , d= 0 ~~~~~~ , e= 0 ~~~~~~ , h= 0 ~~~~~~ , l= 0 ~~~~~~ , a_= 0 ~~~~~~~ , b_= 0 ~~~~~~~ , c_= 0 ~~~~~~~ , d_= 0 ~~~~~~~ , e_= 0 ~~~~~~~ , h_= 0 ~~~~~~~ , l_= 0 ~~~~~~~ , xl= 0 ~~~~~~~ , xh= 0 ~~~~~~~ , yl= 0 ~~~~~~~ , yh= 0 ~~~~~~~ , i= 0 ~~~~~~ , r= 0 ~~~~~~ , r7= 0 ~~~~~~~ , ih= 1 ~~~~~~~ , iy= 0 ~~~~~~~ , iff= 0 ~~~~~~~~ , im= 0 ~~~~~~~ , w= 0 ~~~~~~ , ear= 255 ~~~~~~~~~~ , halted= 0 ~~~~~~~~~~~ ; ~ long tapcycles(void){ ~~~~~~~~~~~~~~~~~~~~~ mues= 1; ~~~~~~~~ wavpos!=0x20000 && (ear^= 64); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavpos>0x1f000 ) ~~~~~~~~~~~~~~~~~~~~ fseek( ft, wavpos-0x20000, SEEK_CUR ), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen-= wavpos, ~~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ while( (tapbuf[++wavpos]^ear<<1)&0x80 && wavpos<0x20000 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mues+= 81; // correct value must be 79.365, adjusted to simulate contention in Alkatraz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( wavlen<=wavpos ) ~~~~~~~~~~~~~~~~~~~~ return 0; ~~~~~~~~~ else ~~~~ return mues; ~~~~~~~~~~~~ } ~ int in(int port){ ~~~~~~~~~~~~~~~~~ return port&1 ? 255 : ear; ~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void out(int port, int value){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ return; ~~~~~~~ } ~ int f(void){ ~~~~~~~~~~~~ return ff & 168 ~~~~~~~~~~~~~~~~ | ff >> 8 & 1 ~~~~~~~~~~~~~ | !fr << 6 ~~~~~~~~~~ | fb >> 8 & 2 ~~~~~~~~~~~~~ | (fr ^ fa ^ fb ^ fb >> 8) & 16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | (fa & -256 ~~~~~~~~~~~~ ? 154020 >> ((fr ^ fr >> 4) & 15) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ((fr ^ fa) & (fr ^ fb)) >> 5) & 4; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ void setf(int a){ ~~~~~~~~~~~~~~~~~ fr= ~a & 64; ~~~~~~~~~~~~ ff= a|= a<<8; ~~~~~~~~~~~~~ fa= 255 & (fb= a & -129 | (a&4)<<5); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ int main (int argc, char **argv){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ unsigned char * mem= (unsigned char *) malloc (0x10000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ int size= 0, start= 0, end= 0, intr= 0, tap= 0; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ char * output= NULL; ~~~~~~~~~~~~~~~~~~~~ FILE * fh; ~~~~~~~~~~ tapbuf= (unsigned char *) malloc (0x20000); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( argc==1 ) ~~~~~~~~~~~~~ printf("Ticks v0.14c beta, a silent Z80 emulator by Antonio Villena, 10 Jan 2013\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" ticks [-pc X] [-start X] [-end X] [-counter X] [-output ]\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" File between 1 and 65536 bytes with Z80 machine code\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -tape emulates ZX tape in port $FE from a .WAV file\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -pc X X in hexadecimal is the initial PC value\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -start X X in hexadecimal is the PC condition to start the counter\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -end X X in hexadecimal is the PC condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -counter X X in decimal is another condition to exit\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -int X X in decimal are number of cycles for periodic interrupts\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" -output dumps the RAM content to a 64K file\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" Default values for -pc, -start and -end are 0000 if ommited. When the program "), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("exits, it'll show the number of cycles between start and end trigger in decimal\n\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(0); ~~~~~~~~ while (argc > 1){ ~~~~~~~~~~~~~~~~~ if( argv[1][0] == '-' && argv[2] ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch (argc--, argv++[1][1]){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 'p': ~~~~~~~~~ pc= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 's': ~~~~~~~~~ start= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'e': ~~~~~~~~~ end= strtol(argv[1], NULL, 16); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'i': ~~~~~~~~~ intr= strtol(argv[1], NULL, 10); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'c': ~~~~~~~~~ sscanf(argv[1], "%llu", &counter); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ counter<0 && (counter= 9e18); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ break; ~~~~~~ case 'o': ~~~~~~~~~ output= argv[1]; ~~~~~~~~~~~~~~~~ break; ~~~~~~ case 't': ~~~~~~~~~ ft= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !ft ) ~~~~~~~~~ printf("\nTape file not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ memcpy(&wavlen, tapbuf+4, 4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen+= 8; ~~~~~~~~~~~ if( *(int*) tapbuf != 0x46464952 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid WAV header\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+16) != 16 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid subchunk size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+20) != 0x10001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid number of channels or compression (only Mono and PCM allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+24) != 44100 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid sample rate (only 44100Hz allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+32) != 0x80001 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid align or bits per sample (only 8-bits samples allowed)\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ if( *(int*)(tapbuf+40)+44 != wavlen ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nInvalid header size\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ wavpos= 44; ~~~~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ printf("\nWrong Argument: %s\n", argv[0]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ } ~ else{ ~~~~~ fh= fopen(argv[1], "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fh ) ~~~~~~~~~ printf("\nFile not found: %s\n", argv[1]), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fseek(fh, 0, SEEK_END); ~~~~~~~~~~~~~~~~~~~~~~~ size= ftell(fh); ~~~~~~~~~~~~~~~~ rewind(fh); ~~~~~~~~~~~ if( size>65536 && size!=65574 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("\nIncorrect length: %d\n", size), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ else if( !strcasecmp(strchr(argv[1], '.'), ".sna" ) && size==49179 ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FILE *fk= fopen("48.rom", "rb"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( !fk ) ~~~~~~~~~ printf("\nZX Spectrum ROM file not found: 48.rom\n"), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ exit(-1); ~~~~~~~~~ fread(mem, 1, 16384, fk); ~~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fk); ~~~~~~~~~~~ fread(&i, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ ff_= ff; ~~~~~~~~ fr_= fr; ~~~~~~~~ fa_= fa; ~~~~~~~~ fb_= fb; ~~~~~~~~ fread(&a_, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&e, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~ iff>>= 2; ~~~~~~~~~ fread(&r, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ r7= r; ~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ setf(w); ~~~~~~~~ fread(&a, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh); ~~~~~~~~~~~~~~~~~~~~ fread(mem+0x4000, 1, 0xc000, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RET(0); ~~~~~~~ } ~ else if( size==65574 ) ~~~~~~~~~~~~~~~~~~~~~~ fread(mem, 1, 65536, fh), ~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ u= w, ~~~~~ fread(&a, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&b, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&l, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&h, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&pc, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&sp, 2, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&i, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&r, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ r7= r, ~~~~~~ fread(&e, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&d, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ fread(&c_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&b_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&e_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&d_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&l_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&h_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&w, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~ setf(w), ~~~~~~~~ ff_= ff, ~~~~~~~~ fr_= fr, ~~~~~~~~ fa_= fa, ~~~~~~~~ fb_= fb, ~~~~~~~~ setf(u), ~~~~~~~~ fread(&a_, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&yh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xl, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&xh, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&iff, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~~ fread(&im, 1, 1, fh), ~~~~~~~~~~~~~~~~~~~~~ fread(&mp, 2, 1, fh); ~~~~~~~~~~~~~~~~~~~~~ else ~~~~ fread(mem, 1, size, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ } ~ ++argv; ~~~~~~~ --argc; ~~~~~~~ } ~ if( size==65574 ){ ~~~~~~~~~~~~~~~~~~ fread(&wavpos, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~~ ear= wavpos<<6 | 191; ~~~~~~~~~~~~~~~~~~~~~ wavpos>>= 1; ~~~~~~~~~~~~ if( wavpos && ft ) ~~~~~~~~~~~~~~~~~~ fseek(ft, wavlen-wavpos, SEEK_SET), ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ wavlen= wavpos, ~~~~~~~~~~~~~~~ wavpos= 0, ~~~~~~~~~~ fread(tapbuf, 1, 0x20000, ft); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fread(&sttap, 4, 1, fh); ~~~~~~~~~~~~~~~~~~~~~~~~ tap= sttap; ~~~~~~~~~~~ } ~ else ~~~~ sttap= tap= tapcycles(); ~~~~~~~~~~~~~~~~~~~~~~~~ fclose(fh); ~~~~~~~~~~~ if( !size ) ~~~~~~~~~~~ printf("File not specified or zero length\n"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= intr; ~~~~~~~~~~~~ do{ ~~~ if( pc==start ) ~~~~~~~~~~~~~~~ st= 0, ~~~~~~ stint= intr, ~~~~~~~~~~~~ sttap= tap; ~~~~~~~~~~~ if( intr && st>stint && ih ){ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stint= st+intr; ~~~~~~~~~~~~~~~ if( iff ){ ~~~~~~~~~~ halted && (pc++, halted= 0); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ iff= 0; ~~~~~~~ mem[--sp]= pc>>8; ~~~~~~~~~~~~~~~~~ mem[--sp]= pc; ~~~~~~~~~~~~~~ r++; ~~~~ switch( im ){ ~~~~~~~~~~~~~ case 1: ~~~~~~~ st++; ~~~~~ case 0: ~~~~~~~ pc= 56; ~~~~~~~ st+= 12; ~~~~~~~~ break; ~~~~~~ default: ~~~~~~~~ pc= mem[t= 255 | i << 8]; ~~~~~~~~~~~~~~~~~~~~~~~~~ pc|= mem[++t] << 8; ~~~~~~~~~~~~~~~~~~~ st+= 19; ~~~~~~~~ } ~ } ~ } ~ if( tap && st>sttap ) ~~~~~~~~~~~~~~~~~~~~~ sttap= st+( tap= tapcycles() ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ r++; ~~~~ // printf("pc=%04X, [pc]=%02X, bc=%04X, de=%04X, hl=%04X, af=%04X, ix=%04X, iy=%04X\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // pc, mem[pc], c|b<<8, e|d<<8, l|h<<8, f()|a<<8, xl|xh<<8, yl|yh<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: // NOP ~~~~~~~~~~~~~~~~~ case 0x40: // LD B,B ~~~~~~~~~~~~~~~~~~~~ case 0x49: // LD C,C ~~~~~~~~~~~~~~~~~~~~ case 0x52: // LD D,D ~~~~~~~~~~~~~~~~~~~~ case 0x5b: // LD E,E ~~~~~~~~~~~~~~~~~~~~ case 0x64: // LD H,H ~~~~~~~~~~~~~~~~~~~~ case 0x6d: // LD L,L ~~~~~~~~~~~~~~~~~~~~ case 0x7f: // LD A,A ~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x76: // HALT ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ halted= 1; ~~~~~~~~~~ pc--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x01: // LD BC,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(b, c); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x11: // LD DE,nn ~~~~~~~~~~~~~~~~~~~~~~ LDRRIM(d, e); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x21: // LD HL,nn // LD IX,nn // LD IY,nn ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRIM(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRIM(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ LDRRIM(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x31: // LD SP,nn ~~~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ sp= mem[pc++]; ~~~~~~~~~~~~~~ sp|= mem[pc++]<<8; ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x02: // LD (BC),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x12: // LD (DE),A ~~~~~~~~~~~~~~~~~~~~~~~ LDPR(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0a: // LD A,(BC) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(b, c, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1a: // LD A,(DE) ~~~~~~~~~~~~~~~~~~~~~~~ LDRP(d, e, a); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x22: // LD (nn),HL // LD (nn),IX // LD (nn),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPNNRR(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPNNRR(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDPNNRR(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x32: // LD (nn),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ t= mem[pc++]; ~~~~~~~~~~~~~ mem[t|= mem[pc++]<<8]= a; ~~~~~~~~~~~~~~~~~~~~~~~~~ mp= t+1 & 255 ~~~~~~~~~~~~~ | a<<8; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2a: // LD HL,(nn) // LD IX,(nn) // LD IY,(nn) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRRPNN(h, l, 16); ~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRRPNN(yh, yl, 16); ~~~~~~~~~~~~~~~~~~~~ else ~~~~ LDRRPNN(xh, xl, 16); ~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3a: // LD A,(nn) ~~~~~~~~~~~~~~~~~~~~~~~ st+= 13; ~~~~~~~~ mp= mem[pc++]; ~~~~~~~~~~~~~~ a= mem[mp|= mem[pc++]<<8]; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x03: // INC BC ~~~~~~~~~~~~~~~~~~~~ INCW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x13: // INC DE ~~~~~~~~~~~~~~~~~~~~ INCW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x23: // INC HL // INC IX // INC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INCW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ INCW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x33: // INC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0b: // DEC BC ~~~~~~~~~~~~~~~~~~~~ DECW(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1b: // DEC DE ~~~~~~~~~~~~~~~~~~~~ DECW(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2b: // DEC HL // DEC IX // DEC IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DECW(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECW(yh, yl); ~~~~~~~~~~~~~ else ~~~~ DECW(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3b: // DEC SP ~~~~~~~~~~~~~~~~~~~~ st+= 6; ~~~~~~~ sp--; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x04: // INC B ~~~~~~~~~~~~~~~~~~~ INC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ break; ~~~~~~ case 0x0c: // INC C ~~~~~~~~~~~~~~~~~~~ INC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x14: // INC D ~~~~~~~~~~~~~~~~~~~ INC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1c: // INC E ~~~~~~~~~~~~~~~~~~~ INC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x24: // INC H // INC IXh // INC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yh); ~~~~~~~~ else ~~~~ INC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2c: // INC L // INC IXl // INC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ INC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INC(yl); ~~~~~~~~ else ~~~~ INC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x34: // INC (HL) // INC (IX+d) // INC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=+1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ INCPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ INCPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3c: // INC A ~~~~~~~~~~~~~~~~~~~ INC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x05: // DEC B ~~~~~~~~~~~~~~~~~~~ DEC(b); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0d: // DEC C ~~~~~~~~~~~~~~~~~~~ DEC(c); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x15: // DEC D ~~~~~~~~~~~~~~~~~~~ DEC(d); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1d: // DEC E ~~~~~~~~~~~~~~~~~~~ DEC(e); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x25: // DEC H // DEC IXh // DEC IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(h); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yh); ~~~~~~~~ else ~~~~ DEC(xh); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2d: // DEC L // DEC IXl // DEC IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ DEC(l); ~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DEC(yl); ~~~~~~~~ else ~~~~ DEC(xl); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x35: // DEC (HL) // DEC (IX+d) // DEC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 11, ~~~~~~~~ fa= mem[t= l | h<<8], ~~~~~~~~~~~~~~~~~~~~~ ff= ff&256 ~~~~~~~~~~ | (fr= mem[t]= fa+(fb=-1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ DECPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ DECPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3d: // DEC A ~~~~~~~~~~~~~~~~~~~ DEC(a); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x06: // LD B,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(b); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0e: // LD C,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(c); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x16: // LD D,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(d); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1e: // LD E,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(e); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x26: // LD H,n // LD IXh,n // LD IYh,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(h); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yh); ~~~~~~~~~~ else ~~~~ LDRIM(xh); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2e: // LD L,n // LD IXl,n // LD IYl,n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRIM(l); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRIM(yl); ~~~~~~~~~~ else ~~~~ LDRIM(xl); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x36: // LD (HL),n // LD (IX+d),n // LD (IY+d),n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ st+= 10, ~~~~~~~~ mem[l|h<<8]= mem[pc++]; ~~~~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPIN(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ LDPIN(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3e: // LD A,n ~~~~~~~~~~~~~~~~~~~~ LDRIM(a); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x07: // RLCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a*257>>7; ~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x0f: // RRCA ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a>>1 ~~~~~~~~~~ | ((a&1)+1^1)<<7; ~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x17: // RLA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= a<<1 ~~~~~~~~~~ | ff>>8 & 1; ~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb & 128 ~~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x1f: // RRA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= t= (a*513 | ff&256)>>1; ~~~~~~~~~~~~~~~~~~~~~~~~~~ ff= ff&215 ~~~~~~~~~~ | t &296; ~~~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fa^fr) & 16; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x09: // ADD HL,BC // ADD IX,BC // ADD IY,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, b, c); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, b, c); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x19: // ADD HL,DE // ADD IX,DE // ADD IY,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, d, e); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, d, e); ~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x29: // ADD HL,HL // ADD IX,IX // ADD IY,IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDRRRR(h, l, h, l); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDRRRR(yh, yl, yh, yl); ~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADDRRRR(xh, xl, xh, xl); ~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x39: // ADD HL,SP // ADD IX,SP // ADD IY,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADDISP(h, l); ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADDISP(yh, yl); ~~~~~~~~~~~~~~~ else ~~~~ ADDISP(xh, xl); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x18: // JR ~~~~~~~~~~~~~~~~ st+= 12; ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x20: // JR NZ,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x28: // JR Z,s8 ~~~~~~~~~~~~~~~~~~~~~ JRC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x30: // JR NC,s8 ~~~~~~~~~~~~~~~~~~~~~~ JRC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x38: // JR C,s8 ~~~~~~~~~~~~~~~~~~~~~ JRCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x08: // EX AF,AF' ~~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = a_; ~~~~~~~~~ a_ = a; ~~~~~~~~ a = t; ~~~~~~~~ t = ff_; ~~~~~~~~~~ ff_= ff; ~~~~~~~~~ ff = t; ~~~~~~~~ t = fr_; ~~~~~~~~~~ fr_= fr; ~~~~~~~~~ fr = t; ~~~~~~~~ t = fa_; ~~~~~~~~~~ fa_= fa; ~~~~~~~~~ fa = t; ~~~~~~~~ t = fb_; ~~~~~~~~~~ fb_= fb; ~~~~~~~~~ fb = t; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x10: // DJNZ ~~~~~~~~~~~~~~~~~~ if( --b ) ~~~~~~~~~ st+= 13, ~~~~~~~~ mp= pc+= (mem[pc]^128)-127; ~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ st+= 8, ~~~~~~~ pc++; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x27: // DAA ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= (fr^fa^fb^fb>>8) & 16; ~~~~~~~~~~~~~~~~~~~~~~~~~ u= 0; ~~~~~ (a | ff&256)>153 && (u= 352); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (a&15 | t)>9 && (u+= 6); ~~~~~~~~~~~~~~~~~~~~~~~~ fa= a|256; ~~~~~~~~~~ if( fb&512 ) ~~~~~~~~~~~~ a-= u, ~~~~~~ fb= ~u; ~~~~~~~ else ~~~~ a+= fb= u; ~~~~~~~~~~ ff= (fr= a) ~~~~~~~~~~~ | u&256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x2f: // CPL ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ff= ff &-41 ~~~~~~~~~~~~~~~~ | (a^=255)& 40; ~~~~~~~~~~~~~~~ fb|= -129; ~~~~~~~~~~ fa= fa & -17 ~~~~~~~~~~~~~ | ~fr & 16; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x37: // SCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~ | (fr^fa) & 16; ~~~~~~~~~~~~~~~ ff= 256 ~~~~~~~ | ff &128 ~~~~~~~~~~ | a & 40; ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x3f: // CCF ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= fb &128 ~~~~~~~~~~~~~~~~~~~~~~ | (ff>>4^fr^fa) & 16; ~~~~~~~~~~~~~~~~~~~~~ ff= ~ff & 256 ~~~~~~~~~~~~~ | ff & 128 ~~~~~~~~~~~ | a & 40; ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x41: // LD B,C ~~~~~~~~~~~~~~~~~~~~ LDRR(b, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x42: // LD B,D ~~~~~~~~~~~~~~~~~~~~ LDRR(b, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x43: // LD B,E ~~~~~~~~~~~~~~~~~~~~ LDRR(b, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x44: // LD B,H // LD B,IXh // LD B,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x45: // LD B,L // LD B,IXl // LD B,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(b, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(b, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(b, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x46: // LD B,(HL) // LD B,(IX+d) // LD B,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x47: // LD B,A ~~~~~~~~~~~~~~~~~~~~ LDRR(b, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x48: // LD C,B ~~~~~~~~~~~~~~~~~~~~ LDRR(c, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4a: // LD C,D ~~~~~~~~~~~~~~~~~~~~ LDRR(c, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4b: // LD C,E ~~~~~~~~~~~~~~~~~~~~ LDRR(c, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4c: // LD C,H // LD C,IXh // LD C,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4d: // LD C,L // LD C,IXl // LD C,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(c, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(c, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(c, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4e: // LD C,(HL) // LD C,(IX+d) // LD C,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x4f: // LD C,A ~~~~~~~~~~~~~~~~~~~~ LDRR(c, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x50: // LD D,B ~~~~~~~~~~~~~~~~~~~~ LDRR(d, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x51: // LD D,C ~~~~~~~~~~~~~~~~~~~~ LDRR(d, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x53: // LD D,E ~~~~~~~~~~~~~~~~~~~~ LDRR(d, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x54: // LD D,H // LD D,IXh // LD D,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x55: // LD D,L // LD D,IXl // LD D,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(d, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(d, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(d, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x56: // LD D,(HL) // LD D,(IX+d) // LD D,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x57: // LD D,A ~~~~~~~~~~~~~~~~~~~~ LDRR(d, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x58: // LD E,B ~~~~~~~~~~~~~~~~~~~~ LDRR(e, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x59: // LD E,C ~~~~~~~~~~~~~~~~~~~~ LDRR(e, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5a: // LD E,D ~~~~~~~~~~~~~~~~~~~~ LDRR(e, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5c: // LD E,H // LD E,IXh // LD E,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5d: // LD E,L // LD E,IXl // LD E,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(e, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(e, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(e, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5e: // LD E,(HL) // LD E,(IX+d) // LD E,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x5f: // LD E,A ~~~~~~~~~~~~~~~~~~~~ LDRR(e, a, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x60: // LD H,B // LD IXh,B // LD IYh,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x61: // LD H,C // LD IXh,C // LD IYh,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x62: // LD H,D // LD IXh,D // LD IYh,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x63: // LD H,E // LD IXh,E // LD IYh,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x65: // LD H,L // LD IXh,IXl // LD IYh,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, yl, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, xl, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x66: // LD H,(HL) // LD H,(IX+d) // LD H,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x67: // LD H,A // LD IXh,A // LD IYh,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(h, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yh, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xh, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x68: // LD L,B // LD IXl,B // LD IYl,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, b, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, b, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, b, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x69: // LD L,C // LD IXl,C // LD IYl,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, c, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, c, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, c, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6a: // LD L,D // LD IXl,D // LD IYl,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, d, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, d, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, d, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6b: // LD L,E // LD IXl,E // LD IYl,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, e, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, e, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, e, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6c: // LD L,H // LD IXl,IXh // LD IYl,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, yh, 4); ~~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, xh, 4); ~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6e: // LD L,(HL) // LD L,(IX+d) // LD L,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x6f: // LD L,A // LD IXl,A // LD IYl,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(l, a, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(yl, a, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(xl, a, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x70: // LD (HL),B // LD (IX+d),B // LD (IY+d),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, b); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, b); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, b); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x71: // LD (HL),C // LD (IX+d),C // LD (IY+d),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, c); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, c); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, c); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x72: // LD (HL),D // LD (IX+d),D // LD (IY+d),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, d); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, d); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, d); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x73: // LD (HL),E // LD (IX+d),E // LD (IY+d),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, e); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, e); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, e); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x74: // LD (HL),H // LD (IX+d),H // LD (IY+d),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, h); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, h); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, h); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x75: // LD (HL),L // LD (IX+d),L // LD (IY+d),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, l); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, l); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, l); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x77: // LD (HL),A // LD (IX+d),A // LD (IY+d),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDPR(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDPRI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDPRI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x78: // LD A,B ~~~~~~~~~~~~~~~~~~~~ LDRR(a, b, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x79: // LD A,C ~~~~~~~~~~~~~~~~~~~~ LDRR(a, c, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7a: // LD A,D ~~~~~~~~~~~~~~~~~~~~ LDRR(a, d, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7b: // LD A,E ~~~~~~~~~~~~~~~~~~~~ LDRR(a, e, 4); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7c: // LD A,H // LD A,IXh // LD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, h, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yh, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xh, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7d: // LD A,L // LD A,IXl // LD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRR(a, l, 4); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRR(a, yl, 4); ~~~~~~~~~~~~~~~ else ~~~~ LDRR(a, xl, 4); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x7e: // LD A,(HL) // LD A,(IX+d) // LD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ LDRP(h, l, a); ~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ LDRPI(yh, yl, a); ~~~~~~~~~~~~~~~~~ else ~~~~ LDRPI(xh, xl, a); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x80: // ADD A,B ~~~~~~~~~~~~~~~~~~~~~ ADD(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x81: // ADD A,C ~~~~~~~~~~~~~~~~~~~~~ ADD(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x82: // ADD A,D ~~~~~~~~~~~~~~~~~~~~~ ADD(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x83: // ADD A,E ~~~~~~~~~~~~~~~~~~~~~ ADD(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x84: // ADD A,H // ADD A,IXh // ADD A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yh, 4); ~~~~~~~~~~~ else ~~~~ ADD(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x85: // ADD A,L // ADD A,IXl // ADD A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(yl, 4); ~~~~~~~~~~~ else ~~~~ ADD(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x86: // ADD A,(HL) // ADD A,(IX+d) // ADD A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADD(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADD(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADD(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x87: // ADD A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x88: // ADC A,B ~~~~~~~~~~~~~~~~~~~~~ ADC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x89: // ADC A,C ~~~~~~~~~~~~~~~~~~~~~ ADC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8a: // ADC A,D ~~~~~~~~~~~~~~~~~~~~~ ADC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8b: // ADC A,E ~~~~~~~~~~~~~~~~~~~~~ ADC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8c: // ADC A,H // ADC A,IXh // ADC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yh, 4); ~~~~~~~~~~~ else ~~~~ ADC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8d: // ADC A,L // ADC A,IXl // ADC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(yl, 4); ~~~~~~~~~~~ else ~~~~ ADC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8e: // ADC A,(HL) // ADC A,(IX+d) // ADC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ ADC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ ADC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ ADC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x8f: // ADC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= a= (ff= 2*(fa= fb= a)+(ff>>8&1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x90: // SUB B ~~~~~~~~~~~~~~~~~~~ SUB(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x91: // SUB C ~~~~~~~~~~~~~~~~~~~ SUB(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x92: // SUB D ~~~~~~~~~~~~~~~~~~~ SUB(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x93: // SUB E ~~~~~~~~~~~~~~~~~~~ SUB(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x94: // SUB H // SUB IXh // SUB IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yh, 4); ~~~~~~~~~~~ else ~~~~ SUB(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x95: // SUB L // SUB IXl // SUB IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(yl, 4); ~~~~~~~~~~~ else ~~~~ SUB(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x96: // SUB (HL) // SUB (IX+d) // SUB (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SUB(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SUB(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SUB(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x97: // SUB A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= ff= 0; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x98: // SBC A,B ~~~~~~~~~~~~~~~~~~~~~ SBC(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x99: // SBC A,C ~~~~~~~~~~~~~~~~~~~~~ SBC(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9a: // SBC A,D ~~~~~~~~~~~~~~~~~~~~~ SBC(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9b: // SBC A,E ~~~~~~~~~~~~~~~~~~~~~ SBC(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9c: // SBC A,H // SBC A,IXh // SBC A,IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yh, 4); ~~~~~~~~~~~ else ~~~~ SBC(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9d: // SBC A,L // SBC A,IXl // SBC A,IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(yl, 4); ~~~~~~~~~~~ else ~~~~ SBC(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9e: // SBC A,(HL) // SBC A,(IX+d) // SBC A,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ SBC(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ SBC(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ SBC(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0x9f: // SBC A,A ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ fr= a= (ff= (ff&256)/-256); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa0: // AND B ~~~~~~~~~~~~~~~~~~~ AND(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa1: // AND C ~~~~~~~~~~~~~~~~~~~ AND(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa2: // AND D ~~~~~~~~~~~~~~~~~~~ AND(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa3: // AND E ~~~~~~~~~~~~~~~~~~~ AND(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa4: // AND H // AND IXh // AND IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yh, 4); ~~~~~~~~~~~ else ~~~~ AND(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa5: // AND L // AND IXl // AND IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(yl, 4); ~~~~~~~~~~~ else ~~~~ AND(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa6: // AND (HL) // AND (IX+d) // AND (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ AND(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ AND(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ AND(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa7: // AND A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= ~(ff= fr= a); ~~~~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa8: // XOR B ~~~~~~~~~~~~~~~~~~~ XOR(b, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xa9: // XOR C ~~~~~~~~~~~~~~~~~~~ XOR(c, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaa: // XOR D ~~~~~~~~~~~~~~~~~~~ XOR(d, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xab: // XOR E ~~~~~~~~~~~~~~~~~~~ XOR(e, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xac: // XOR H // XOR IXh // XOR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(h, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yh, 4); ~~~~~~~~~~~ else ~~~~ XOR(xh, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xad: // XOR L // XOR IXl // XOR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(l, 4); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(yl, 4); ~~~~~~~~~~~ else ~~~~ XOR(xl, 4); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xae: // XOR (HL) // XOR (IX+d) // XOR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ XOR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ XOR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ XOR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xaf: // XOR A ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ a= ff= fr= fb= 0; ~~~~~~~~~~~~~~~~~ fa= 256; ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb0: // OR B ~~~~~~~~~~~~~~~~~~ OR(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb1: // OR C ~~~~~~~~~~~~~~~~~~ OR(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb2: // OR D ~~~~~~~~~~~~~~~~~~ OR(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb3: // OR E ~~~~~~~~~~~~~~~~~~ OR(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb4: // OR H // OR IXh // OR IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yh, 4); ~~~~~~~~~~ else ~~~~ OR(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb5: // OR L // OR IXl // OR IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(yl, 4); ~~~~~~~~~~ else ~~~~ OR(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb6: // OR (HL) // OR (IX+d) // OR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ OR(mem[l|h<<8], 7); ~~~~~~~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ OR(mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ OR(mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], 7); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb7: // OR A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fa= 256 ~~~~~~~ | (ff= fr= a); ~~~~~~~~~~~~~~ fb= 0; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb8: // CP B ~~~~~~~~~~~~~~~~~~ CP(b, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xb9: // CP C ~~~~~~~~~~~~~~~~~~ CP(c, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xba: // CP D ~~~~~~~~~~~~~~~~~~ CP(d, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbb: // CP E ~~~~~~~~~~~~~~~~~~ CP(e, 4); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbc: // CP H // CP IXh // CP IYh ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(h, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yh, 4); ~~~~~~~~~~ else ~~~~ CP(xh, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbd: // CP L // CP IXl // CP IYl ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ CP(l, 4); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ CP(yl, 4); ~~~~~~~~~~ else ~~~~ CP(xl, 4); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbe: // CP (HL) // CP (IX+d) // CP (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ w= mem[l|h<<8], ~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ w= mem[((mem[pc++]^128)-128+(yl|yh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ else ~~~~ w= mem[((mem[pc++]^128)-128+(xl|xh<<8))&65535], ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xbf: // CP A ~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ fr= 0; ~~~~~~ fb= ~(fa= a); ~~~~~~~~~~~~~ ff= a&40; ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc9: // RET ~~~~~~~~~~~~~~~~~ RET(10); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc0: // RET NZ ~~~~~~~~~~~~~~~~~~~~ RETCI(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc8: // RET Z ~~~~~~~~~~~~~~~~~~~ RETC(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd0: // RET NC ~~~~~~~~~~~~~~~~~~~~ RETC(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd8: // RET C ~~~~~~~~~~~~~~~~~~~ RETCI(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe0: // RET PO ~~~~~~~~~~~~~~~~~~~~ RETC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe8: // RET PE ~~~~~~~~~~~~~~~~~~~~ RETCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf0: // RET P ~~~~~~~~~~~~~~~~~~~ RETC(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf8: // RET M ~~~~~~~~~~~~~~~~~~~ RETCI(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc1: // POP BC ~~~~~~~~~~~~~~~~~~~~ POP(b, c); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd1: // POP DE ~~~~~~~~~~~~~~~~~~~~ POP(d, e); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe1: // POP HL // POP IX // POP IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ POP(h, l); ~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ POP(yh, yl); ~~~~~~~~~~~~ else ~~~~ POP(xh, xl); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf1: // POP AF ~~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ setf(mem[sp++]); ~~~~~~~~~~~~~~~~ a= mem[sp++]; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc5: // PUSH BC ~~~~~~~~~~~~~~~~~~~~~ PUSH(b, c); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd5: // PUSH DE ~~~~~~~~~~~~~~~~~~~~~ PUSH(d, e); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe5: // PUSH HL // PUSH IX // PUSH IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ PUSH(h, l); ~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ PUSH(yh, yl); ~~~~~~~~~~~~~ else ~~~~ PUSH(xh, xl); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf5: // PUSH AF ~~~~~~~~~~~~~~~~~~~~~ PUSH(a, f()); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc3: // JP nn ~~~~~~~~~~~~~~~~~~~ st+= 10; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc2: // JP NZ ~~~~~~~~~~~~~~~~~~~ JPCI(fr); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xca: // JP Z ~~~~~~~~~~~~~~~~~~ JPC(fr); ~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd2: // JP NC ~~~~~~~~~~~~~~~~~~~ JPC(ff&256); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xda: // JP C ~~~~~~~~~~~~~~~~~~ JPCI(ff&256); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe2: // JP PO ~~~~~~~~~~~~~~~~~~~ JPC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xea: // JP PE ~~~~~~~~~~~~~~~~~~~ JPCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf2: // JP P ~~~~~~~~~~~~~~~~~~ JPC(ff&128); ~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfa: // JP M ~~~~~~~~~~~~~~~~~~ JPCI(ff&128); ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcd: // CALL nn ~~~~~~~~~~~~~~~~~~~~~ st+= 17; ~~~~~~~~ t= pc+2; ~~~~~~~~ mp= pc= mem[pc] | mem[pc+1]<<8; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mem[--sp]= t>>8; ~~~~~~~~~~~~~~~~ mem[--sp]= t; ~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc4: // CALL NZ ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fr); ~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcc: // CALL Z ~~~~~~~~~~~~~~~~~~~~ CALLC(fr); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd4: // CALL NC ~~~~~~~~~~~~~~~~~~~~~ CALLC(ff&256); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdc: // CALL C ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&256); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe4: // CALL PO ~~~~~~~~~~~~~~~~~~~~~ CALLC(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xec: // CALL PE ~~~~~~~~~~~~~~~~~~~~~ CALLCI(fa&256?38505>>((fr^fr>>4)&15)&1:(fr^fa)&(fr^fb)&128); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf4: // CALL P ~~~~~~~~~~~~~~~~~~~~ CALLC(ff&128); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfc: // CALL M ~~~~~~~~~~~~~~~~~~~~ CALLCI(ff&128); ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc6: // ADD A,n ~~~~~~~~~~~~~~~~~~~~~ ADD(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xce: // ADC A,n ~~~~~~~~~~~~~~~~~~~~~ ADC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd6: // SUB n ~~~~~~~~~~~~~~~~~~~ SUB(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xde: // SBC A,n ~~~~~~~~~~~~~~~~~~~~~ SBC(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe6: // AND n ~~~~~~~~~~~~~~~~~~~ AND(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xee: // XOR A,n ~~~~~~~~~~~~~~~~~~~~~ XOR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf6: // OR n ~~~~~~~~~~~~~~~~~~ OR(mem[pc++], 7); ~~~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfe: // CP A,n ~~~~~~~~~~~~~~~~~~~~ w= mem[pc++]; ~~~~~~~~~~~~~ CP(w, 7); ~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xc7: // RST 0x00 ~~~~~~~~~~~~~~~~~~~~~~ RST(0); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xcf: // RST 0x08 ~~~~~~~~~~~~~~~~~~~~~~ RST(8); ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd7: // RST 0x10 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x10); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdf: // RST 0x18 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x18); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe7: // RST 0x20 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x20); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xef: // RST 0x28 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x28); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf7: // RST 0x30 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x30); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xff: // RST 0x38 ~~~~~~~~~~~~~~~~~~~~~~ RST(0x38); ~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd3: // OUT (n),A ~~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ out(mp= mem[pc++] | a<<8, a); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mp= mp&65280 ~~~~~~~~~~~~ | ++mp; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdb: // IN A,(n) ~~~~~~~~~~~~~~~~~~~~~~ st+= 11; ~~~~~~~~ a= in(mp= mem[pc++] | a<<8); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf3: // DI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 0; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xfb: // EI ~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ iff= 1; ~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xeb: // EX DE,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t= d; ~~~~~ d= h; ~~~~~ h= t; ~~~~~ t= e; ~~~~~ e= l; ~~~~~ l= t; ~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xd9: // EXX ~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ t = b; ~~~~~~ b = b_; ~~~~~~~ b_= t; ~~~~~~ t = c; ~~~~~~ c = c_; ~~~~~~~ c_= t; ~~~~~~ t = d; ~~~~~~ d = d_; ~~~~~~~ d_= t; ~~~~~~ t = e; ~~~~~~ e = e_; ~~~~~~~ e_= t; ~~~~~~ t = h; ~~~~~~ h = h_; ~~~~~~~ h_= t; ~~~~~~ t = l; ~~~~~~ l = l_; ~~~~~~~ l_= t; ~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe3: // EX (SP),HL // EX (SP),IX // EX (SP),IY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if( ih ) ~~~~~~~~ EXSPI(h, l); ~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ EXSPI(yh, yl); ~~~~~~~~~~~~~~ else ~~~~ EXSPI(xh, xl); ~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xe9: // JP (HL) ~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ pc= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ pc= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ pc= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xf9: // LD SP,HL ~~~~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ if( ih ) ~~~~~~~~ sp= l | h<<8; ~~~~~~~~~~~~~ else if( iy ) ~~~~~~~~~~~~~ sp= yl | yh<<8; ~~~~~~~~~~~~~~~ else ~~~~ sp= xl | xh<<8; ~~~~~~~~~~~~~~~ ih=1;break; ~~~~~~~~~~~ case 0xdd: // OP DD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= iy= 0; ~~~~~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xfd: // OP FD ~~~~~~~~~~~~~~~~~~~ st+= 4; ~~~~~~~ ih= 0; ~~~~~~ iy= 1; ~~~~~~ ih=0;break; ~~~~~~~~~~~ case 0xcb: // OP CB ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ if( ih ) ~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(b); break; // RLC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(c); break; // RLC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(d); break; // RLC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(e); break; // RLC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(h); break; // RLC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(l); break; // RLC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: st+= 7; // RLC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RLC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x07: RLC(a); break; // RLC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(b); break; // RRC B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(c); break; // RRC C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(d); break; // RRC D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(e); break; // RRC E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(h); break; // RRC H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(l); break; // RRC L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: st+= 7; // RRC (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RRC(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x0f: RRC(a); break; // RRC A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(b); break; // RL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(c); break; // RL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(d); break; // RL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(e); break; // RL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(h); break; // RL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(l); break; // RL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: st+= 7; // RL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RL(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x17: RL(a); break; // RL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(b); break; // RR B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(c); break; // RR C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(d); break; // RR D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(e); break; // RR E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(h); break; // RR H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(l); break; // RR L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: st+= 7; // RR (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ RR(u); ~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x1f: RR(a); break; // RR A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(b); break; // SLA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(c); break; // SLA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(d); break; // SLA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(e); break; // SLA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(h); break; // SLA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(l); break; // SLA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: st+= 7; // SLA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x27: SLA(a); break; // SLA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(b); break; // SRA B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(c); break; // SRA C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(d); break; // SRA D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(e); break; // SRA E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(h); break; // SRA H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(l); break; // SRA L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: st+= 7; // SRA (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRA(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x2f: SRA(a); break; // SRA A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(b); break; // SLL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(c); break; // SLL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(d); break; // SLL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(e); break; // SLL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(h); break; // SLL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(l); break; // SLL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: st+= 7; // SLL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SLL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x37: SLL(a); break; // SLL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(b); break; // SRL B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(c); break; // SRL C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(d); break; // SRL D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(e); break; // SRL E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(h); break; // SRL H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(l); break; // SRL L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: st+= 7; // SRL (HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ t= l|h<<8; ~~~~~~~~~~ u= mem[t]; ~~~~~~~~~~ SRL(u); ~~~~~~~ mem[t]= u; break; ~~~~~~~~~~~~~~~~~ case 0x3f: SRL(a); break; // SRL A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: BIT(1, b); break; // BIT 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: BIT(1, c); break; // BIT 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: BIT(1, d); break; // BIT 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x43: BIT(1, e); break; // BIT 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: BIT(1, h); break; // BIT 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x45: BIT(1, l); break; // BIT 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x46: BITHL(1); break; // BIT 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x47: BIT(1, a); break; // BIT 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: BIT(2, b); break; // BIT 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: BIT(2, c); break; // BIT 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4a: BIT(2, d); break; // BIT 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4b: BIT(2, e); break; // BIT 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: BIT(2, h); break; // BIT 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4d: BIT(2, l); break; // BIT 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4e: BITHL(2); break; // BIT 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4f: BIT(2, a); break; // BIT 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: BIT(4, b); break; // BIT 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: BIT(4, c); break; // BIT 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: BIT(4, d); break; // BIT 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x53: BIT(4, e); break; // BIT 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: BIT(4, h); break; // BIT 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x55: BIT(4, l); break; // BIT 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x56: BITHL(4); break; // BIT 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x57: BIT(4, a); break; // BIT 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: BIT(8, b); break; // BIT 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: BIT(8, c); break; // BIT 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: BIT(8, d); break; // BIT 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5b: BIT(8, e); break; // BIT 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: BIT(8, h); break; // BIT 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5d: BIT(8, l); break; // BIT 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5e: BITHL(8); break; // BIT 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5f: BIT(8, a); break; // BIT 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: BIT(16, b); break; // BIT 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: BIT(16, c); break; // BIT 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: BIT(16, d); break; // BIT 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x63: BIT(16, e); break; // BIT 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: BIT(16, h); break; // BIT 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x65: BIT(16, l); break; // BIT 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x66: BITHL(16); break; // BIT 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x67: BIT(16, a); break; // BIT 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: BIT(32, b); break; // BIT 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: BIT(32, c); break; // BIT 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6a: BIT(32, d); break; // BIT 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6b: BIT(32, e); break; // BIT 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: BIT(32, h); break; // BIT 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6d: BIT(32, l); break; // BIT 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6e: BITHL(32); break; // BIT 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6f: BIT(32, a); break; // BIT 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: BIT(64, b); break; // BIT 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: BIT(64, c); break; // BIT 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: BIT(64, d); break; // BIT 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x73: BIT(64, e); break; // BIT 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: BIT(64, h); break; // BIT 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x75: BIT(64, l); break; // BIT 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x76: BITHL(64); break; // BIT 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: BIT(64, a); break; // BIT 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: BIT(128, b); break; // BIT 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: BIT(128, c); break; // BIT 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7a: BIT(128, d); break; // BIT 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7b: BIT(128, e); break; // BIT 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: BIT(128, h); break; // BIT 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7d: BIT(128, l); break; // BIT 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7e: BITHL(128); break; // BIT 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7f: BIT(128, a); break; // BIT 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x80: RES(254, b); break; // RES 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, c); break; // RES 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, d); break; // RES 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, e); break; // RES 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, h); break; // RES 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, l); break; // RES 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RESHL(254); break; // RES 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, a); break; // RES 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, b); break; // RES 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, c); break; // RES 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, d); break; // RES 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, e); break; // RES 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, h); break; // RES 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, l); break; // RES 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RESHL(253); break; // RES 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, a); break; // RES 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, b); break; // RES 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, c); break; // RES 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, d); break; // RES 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, e); break; // RES 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, h); break; // RES 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, l); break; // RES 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RESHL(251); break; // RES 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, a); break; // RES 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, b); break; // RES 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, c); break; // RES 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, d); break; // RES 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, e); break; // RES 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, h); break; // RES 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, l); break; // RES 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RESHL(247); break; // RES 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, a); break; // RES 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, b); break; // RES 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, c); break; // RES 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, d); break; // RES 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, e); break; // RES 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, h); break; // RES 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, l); break; // RES 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RESHL(239); break; // RES 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, a); break; // RES 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, b); break; // RES 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, c); break; // RES 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, d); break; // RES 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, e); break; // RES 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, h); break; // RES 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, l); break; // RES 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RESHL(223); break; // RES 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, a); break; // RES 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, b); break; // RES 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, c); break; // RES 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, d); break; // RES 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, e); break; // RES 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, h); break; // RES 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, l); break; // RES 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RESHL(191); break; // RES 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, a); break; // RES 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, b); break; // RES 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, c); break; // RES 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, d); break; // RES 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, e); break; // RES 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, h); break; // RES 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, l); break; // RES 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RESHL(127); break; // RES 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, a); break; // RES 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, b); break; // SET 0,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, c); break; // SET 0,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, d); break; // SET 0,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, e); break; // SET 0,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, h); break; // SET 0,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, l); break; // SET 0,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SETHL(1); break; // SET 0,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, a); break; // SET 0,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, b); break; // SET 1,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, c); break; // SET 1,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, d); break; // SET 1,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, e); break; // SET 1,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, h); break; // SET 1,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, l); break; // SET 1,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SETHL(2); break; // SET 1,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, a); break; // SET 1,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, b); break; // SET 2,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, c); break; // SET 2,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, d); break; // SET 2,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, e); break; // SET 2,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, h); break; // SET 2,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, l); break; // SET 2,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SETHL(4); break; // SET 2,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, a); break; // SET 2,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, b); break; // SET 3,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, c); break; // SET 3,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, d); break; // SET 3,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, e); break; // SET 3,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, h); break; // SET 3,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, l); break; // SET 3,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SETHL(8); break; // SET 3,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, a); break; // SET 3,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, b); break; // SET 4,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, c); break; // SET 4,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, d); break; // SET 4,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, e); break; // SET 4,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, h); break; // SET 4,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, l); break; // SET 4,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SETHL(16); break; // SET 4,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, a); break; // SET 4,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, b); break; // SET 5,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, c); break; // SET 5,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, d); break; // SET 5,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, e); break; // SET 5,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, h); break; // SET 5,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, l); break; // SET 5,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SETHL(32); break; // SET 5,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, a); break; // SET 5,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, b); break; // SET 6,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, c); break; // SET 6,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, d); break; // SET 6,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, e); break; // SET 6,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, h); break; // SET 6,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, l); break; // SET 6,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SETHL(64); break; // SET 6,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, a); break; // SET 6,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, b); break; // SET 7,B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, c); break; // SET 7,C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, d); break; // SET 7,D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, e); break; // SET 7,E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, h); break; // SET 7,H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, l); break; // SET 7,L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SETHL(128); break; // SET 7,(HL) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, a); break; // SET 7,A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ else{ ~~~~~ st+= 11; ~~~~~~~~ if( iy ) ~~~~~~~~ t= mem[mp= ((mem[pc++]^128)-128+(yl|yh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ else ~~~~ t= mem[mp= ((mem[pc++]^128)-128+(xl|xh<<8))]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: RLC(t); mem[mp]= b= t; break; // LD B,RLC (IX+d) // LD B,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x01: RLC(t); mem[mp]= c= t; break; // LD C,RLC (IX+d) // LD C,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x02: RLC(t); mem[mp]= d= t; break; // LD D,RLC (IX+d) // LD D,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x03: RLC(t); mem[mp]= e= t; break; // LD E,RLC (IX+d) // LD E,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: RLC(t); mem[mp]= h= t; break; // LD H,RLC (IX+d) // LD H,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x05: RLC(t); mem[mp]= l= t; break; // LD L,RLC (IX+d) // LD L,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x06: RLC(t); mem[mp]= t; break; // RLC (IX+d) // RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x07: RLC(t); mem[mp]= a= t; break; // LD A,RLC (IX+d) // LD A,RLC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: RRC(t); mem[mp]= b= t; break; // LD B,RRC (IX+d) // LD B,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x09: RRC(t); mem[mp]= c= t; break; // LD C,RRC (IX+d) // LD C,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0a: RRC(t); mem[mp]= d= t; break; // LD D,RRC (IX+d) // LD D,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0b: RRC(t); mem[mp]= e= t; break; // LD E,RRC (IX+d) // LD E,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: RRC(t); mem[mp]= h= t; break; // LD H,RRC (IX+d) // LD H,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0d: RRC(t); mem[mp]= l= t; break; // LD L,RRC (IX+d) // LD L,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0e: RRC(t); mem[mp]= t; break; // RRC (IX+d) // RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0f: RRC(t); mem[mp]= a= t; break; // LD A,RRC (IX+d) // LD A,RRC (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: RL(t); mem[mp]= b= t; break; // LD B,RL (IX+d) // LD B,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x11: RL(t); mem[mp]= c= t; break; // LD C,RL (IX+d) // LD C,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x12: RL(t); mem[mp]= d= t; break; // LD D,RL (IX+d) // LD D,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x13: RL(t); mem[mp]= e= t; break; // LD E,RL (IX+d) // LD E,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: RL(t); mem[mp]= h= t; break; // LD H,RL (IX+d) // LD H,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x15: RL(t); mem[mp]= l= t; break; // LD L,RL (IX+d) // LD L,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x16: RL(t); mem[mp]= t; break; // RL (IX+d) // RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x17: RL(t); mem[mp]= a= t; break; // LD A,RL (IX+d) // LD A,RL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: RR(t); mem[mp]= b= t; break; // LD B,RR (IX+d) // LD B,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x19: RR(t); mem[mp]= c= t; break; // LD C,RR (IX+d) // LD C,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1a: RR(t); mem[mp]= d= t; break; // LD D,RR (IX+d) // LD D,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1b: RR(t); mem[mp]= e= t; break; // LD E,RR (IX+d) // LD E,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: RR(t); mem[mp]= h= t; break; // LD H,RR (IX+d) // LD H,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1d: RR(t); mem[mp]= l= t; break; // LD L,RR (IX+d) // LD L,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1e: RR(t); mem[mp]= t; break; // RR (IX+d) // RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1f: RR(t); mem[mp]= a= t; break; // LD A,RR (IX+d) // LD A,RR (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: SLA(t); mem[mp]= b= t; break; // LD B,SLA (IX+d) // LD B,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x21: SLA(t); mem[mp]= c= t; break; // LD C,SLA (IX+d) // LD C,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x22: SLA(t); mem[mp]= d= t; break; // LD D,SLA (IX+d) // LD D,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x23: SLA(t); mem[mp]= e= t; break; // LD E,SLA (IX+d) // LD E,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: SLA(t); mem[mp]= h= t; break; // LD H,SLA (IX+d) // LD H,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x25: SLA(t); mem[mp]= l= t; break; // LD L,SLA (IX+d) // LD L,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x26: SLA(t); mem[mp]= t; break; // SLA (IX+d) // SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x27: SLA(t); mem[mp]= a= t; break; // LD A,SLA (IX+d) // LD A,SLA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: SRA(t); mem[mp]= b= t; break; // LD B,SRA (IX+d) // LD B,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x29: SRA(t); mem[mp]= c= t; break; // LD C,SRA (IX+d) // LD C,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2a: SRA(t); mem[mp]= d= t; break; // LD D,SRA (IX+d) // LD D,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2b: SRA(t); mem[mp]= e= t; break; // LD E,SRA (IX+d) // LD E,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: SRA(t); mem[mp]= h= t; break; // LD H,SRA (IX+d) // LD H,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2d: SRA(t); mem[mp]= l= t; break; // LD L,SRA (IX+d) // LD L,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2e: SRA(t); mem[mp]= t; break; // SRA (IX+d) // SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2f: SRA(t); mem[mp]= a= t; break; // LD A,SRA (IX+d) // LD A,SRA (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: SLL(t); mem[mp]= b= t; break; // LD B,SLL (IX+d) // LD B,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x31: SLL(t); mem[mp]= c= t; break; // LD C,SLL (IX+d) // LD C,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x32: SLL(t); mem[mp]= d= t; break; // LD D,SLL (IX+d) // LD D,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x33: SLL(t); mem[mp]= e= t; break; // LD E,SLL (IX+d) // LD E,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: SLL(t); mem[mp]= h= t; break; // LD H,SLL (IX+d) // LD H,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x35: SLL(t); mem[mp]= l= t; break; // LD L,SLL (IX+d) // LD L,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x36: SLL(t); mem[mp]= t; break; // SLL (IX+d) // SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x37: SLL(t); mem[mp]= a= t; break; // LD A,SLL (IX+d) // LD A,SLL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: SRL(t); mem[mp]= b= t; break; // LD B,SRL (IX+d) // LD B,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x39: SRL(t); mem[mp]= c= t; break; // LD C,SRL (IX+d) // LD C,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3a: SRL(t); mem[mp]= d= t; break; // LD D,SRL (IX+d) // LD D,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3b: SRL(t); mem[mp]= e= t; break; // LD E,SRL (IX+d) // LD E,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: SRL(t); mem[mp]= h= t; break; // LD H,SRL (IX+d) // LD H,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3d: SRL(t); mem[mp]= l= t; break; // LD L,SRL (IX+d) // LD L,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3e: SRL(t); mem[mp]= t; break; // SRL (IX+d) // SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3f: SRL(t); mem[mp]= a= t; break; // LD A,SRL (IX+d) // LD A,SRL (IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x40: case 0x41: case 0x42: case 0x43: // BIT 0,(IX+d) // BIT 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x44: case 0x45: case 0x46: case 0x47: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(1); break; ~~~~~~~~~~~~~~~ case 0x48: case 0x49: case 0x4a: case 0x4b: // BIT 1,(IX+d) // BIT 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x4c: case 0x4d: case 0x4e: case 0x4f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(2); break; ~~~~~~~~~~~~~~~ case 0x50: case 0x51: case 0x52: case 0x53: // BIT 2,(IX+d) // BIT 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x54: case 0x55: case 0x56: case 0x57: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(4); break; ~~~~~~~~~~~~~~~ case 0x58: case 0x59: case 0x5a: case 0x5b: // BIT 3,(IX+d) // BIT 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5c: case 0x5d: case 0x5e: case 0x5f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(8); break; ~~~~~~~~~~~~~~~ case 0x60: case 0x61: case 0x62: case 0x63: // BIT 4,(IX+d) // BIT 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x64: case 0x65: case 0x66: case 0x67: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(16); break; ~~~~~~~~~~~~~~~~ case 0x68: case 0x69: case 0x6a: case 0x6b: // BIT 5,(IX+d) // BIT 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6c: case 0x6d: case 0x6e: case 0x6f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(32); break; ~~~~~~~~~~~~~~~~ case 0x70: case 0x71: case 0x72: case 0x73: // BIT 6,(IX+d) // BIT 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x74: case 0x75: case 0x76: case 0x77: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(64); break; ~~~~~~~~~~~~~~~~ case 0x78: case 0x79: case 0x7a: case 0x7b: // BIT 7,(IX+d) // BIT 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x7c: case 0x7d: case 0x7e: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BITI(128); break; ~~~~~~~~~~~~~~~~~ case 0x80: RES(254, t); mem[mp]= b= t; break; // LD B,RES 0,(IX+d) // LD B,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x81: RES(254, t); mem[mp]= c= t; break; // LD C,RES 0,(IX+d) // LD C,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x82: RES(254, t); mem[mp]= d= t; break; // LD D,RES 0,(IX+d) // LD D,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x83: RES(254, t); mem[mp]= e= t; break; // LD E,RES 0,(IX+d) // LD E,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: RES(254, t); mem[mp]= h= t; break; // LD H,RES 0,(IX+d) // LD H,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x85: RES(254, t); mem[mp]= l= t; break; // LD L,RES 0,(IX+d) // LD L,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x86: RES(254, t); mem[mp]= t; break; // RES 0,(IX+d) // RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x87: RES(254, t); mem[mp]= a= t; break; // LD A,RES 0,(IX+d) // LD A,RES 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: RES(253, t); mem[mp]= b= t; break; // LD B,RES 1,(IX+d) // LD B,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x89: RES(253, t); mem[mp]= c= t; break; // LD C,RES 1,(IX+d) // LD C,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8a: RES(253, t); mem[mp]= d= t; break; // LD D,RES 1,(IX+d) // LD D,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8b: RES(253, t); mem[mp]= e= t; break; // LD E,RES 1,(IX+d) // LD E,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: RES(253, t); mem[mp]= h= t; break; // LD H,RES 1,(IX+d) // LD H,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8d: RES(253, t); mem[mp]= l= t; break; // LD L,RES 1,(IX+d) // LD L,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8e: RES(253, t); mem[mp]= t; break; // RES 1,(IX+d) // RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8f: RES(253, t); mem[mp]= a= t; break; // LD A,RES 1,(IX+d) // LD A,RES 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: RES(251, t); mem[mp]= b= t; break; // LD B,RES 2,(IX+d) // LD B,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x91: RES(251, t); mem[mp]= c= t; break; // LD C,RES 2,(IX+d) // LD C,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x92: RES(251, t); mem[mp]= d= t; break; // LD D,RES 2,(IX+d) // LD D,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x93: RES(251, t); mem[mp]= e= t; break; // LD E,RES 2,(IX+d) // LD E,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: RES(251, t); mem[mp]= h= t; break; // LD H,RES 2,(IX+d) // LD H,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x95: RES(251, t); mem[mp]= l= t; break; // LD L,RES 2,(IX+d) // LD L,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x96: RES(251, t); mem[mp]= t; break; // RES 2,(IX+d) // RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x97: RES(251, t); mem[mp]= a= t; break; // LD A,RES 2,(IX+d) // LD A,RES 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: RES(247, t); mem[mp]= b= t; break; // LD B,RES 3,(IX+d) // LD B,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x99: RES(247, t); mem[mp]= c= t; break; // LD C,RES 3,(IX+d) // LD C,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9a: RES(247, t); mem[mp]= d= t; break; // LD D,RES 3,(IX+d) // LD D,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9b: RES(247, t); mem[mp]= e= t; break; // LD E,RES 3,(IX+d) // LD E,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: RES(247, t); mem[mp]= h= t; break; // LD H,RES 3,(IX+d) // LD H,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9d: RES(247, t); mem[mp]= l= t; break; // LD L,RES 3,(IX+d) // LD L,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9e: RES(247, t); mem[mp]= t; break; // RES 3,(IX+d) // RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9f: RES(247, t); mem[mp]= a= t; break; // LD A,RES 3,(IX+d) // LD A,RES 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa0: RES(239, t); mem[mp]= b= t; break; // LD B,RES 4,(IX+d) // LD B,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa1: RES(239, t); mem[mp]= c= t; break; // LD C,RES 4,(IX+d) // LD C,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa2: RES(239, t); mem[mp]= d= t; break; // LD D,RES 4,(IX+d) // LD D,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa3: RES(239, t); mem[mp]= e= t; break; // LD E,RES 4,(IX+d) // LD E,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: RES(239, t); mem[mp]= h= t; break; // LD H,RES 4,(IX+d) // LD H,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa5: RES(239, t); mem[mp]= l= t; break; // LD L,RES 4,(IX+d) // LD L,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa6: RES(239, t); mem[mp]= t; break; // RES 4,(IX+d) // RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa7: RES(239, t); mem[mp]= a= t; break; // LD A,RES 4,(IX+d) // LD A,RES 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa8: RES(223, t); mem[mp]= b= t; break; // LD B,RES 5,(IX+d) // LD B,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa9: RES(223, t); mem[mp]= c= t; break; // LD C,RES 5,(IX+d) // LD C,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaa: RES(223, t); mem[mp]= d= t; break; // LD D,RES 5,(IX+d) // LD D,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xab: RES(223, t); mem[mp]= e= t; break; // LD E,RES 5,(IX+d) // LD E,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: RES(223, t); mem[mp]= h= t; break; // LD H,RES 5,(IX+d) // LD H,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xad: RES(223, t); mem[mp]= l= t; break; // LD L,RES 5,(IX+d) // LD L,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xae: RES(223, t); mem[mp]= t; break; // RES 5,(IX+d) // RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xaf: RES(223, t); mem[mp]= a= t; break; // LD A,RES 5,(IX+d) // LD A,RES 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb0: RES(191, t); mem[mp]= b= t; break; // LD B,RES 6,(IX+d) // LD B,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb1: RES(191, t); mem[mp]= c= t; break; // LD C,RES 6,(IX+d) // LD C,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb2: RES(191, t); mem[mp]= d= t; break; // LD D,RES 6,(IX+d) // LD D,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb3: RES(191, t); mem[mp]= e= t; break; // LD E,RES 6,(IX+d) // LD E,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: RES(191, t); mem[mp]= h= t; break; // LD H,RES 6,(IX+d) // LD H,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb5: RES(191, t); mem[mp]= l= t; break; // LD L,RES 6,(IX+d) // LD L,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb6: RES(191, t); mem[mp]= t; break; // RES 6,(IX+d) // RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb7: RES(191, t); mem[mp]= a= t; break; // LD A,RES 6,(IX+d) // LD A,RES 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb8: RES(127, t); mem[mp]= b= t; break; // LD B,RES 7,(IX+d) // LD B,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb9: RES(127, t); mem[mp]= c= t; break; // LD C,RES 7,(IX+d) // LD C,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xba: RES(127, t); mem[mp]= d= t; break; // LD D,RES 7,(IX+d) // LD D,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbb: RES(127, t); mem[mp]= e= t; break; // LD E,RES 7,(IX+d) // LD E,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: RES(127, t); mem[mp]= h= t; break; // LD H,RES 7,(IX+d) // LD H,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbd: RES(127, t); mem[mp]= l= t; break; // LD L,RES 7,(IX+d) // LD L,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbe: RES(127, t); mem[mp]= t; break; // RES 7,(IX+d) // RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbf: RES(127, t); mem[mp]= a= t; break; // LD A,RES 7,(IX+d) // LD A,RES 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: SET(1, t); mem[mp]= b= t; break; // LD B,SET 0,(IX+d) // LD B,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc1: SET(1, t); mem[mp]= c= t; break; // LD C,SET 0,(IX+d) // LD C,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc2: SET(1, t); mem[mp]= d= t; break; // LD D,SET 0,(IX+d) // LD D,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc3: SET(1, t); mem[mp]= e= t; break; // LD E,SET 0,(IX+d) // LD E,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: SET(1, t); mem[mp]= h= t; break; // LD H,SET 0,(IX+d) // LD H,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc5: SET(1, t); mem[mp]= l= t; break; // LD L,SET 0,(IX+d) // LD L,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc6: SET(1, t); mem[mp]= t; break; // SET 0,(IX+d) // SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc7: SET(1, t); mem[mp]= a= t; break; // LD A,SET 0,(IX+d) // LD A,SET 0,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: SET(2, t); mem[mp]= b= t; break; // LD B,SET 1,(IX+d) // LD B,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc9: SET(2, t); mem[mp]= c= t; break; // LD C,SET 1,(IX+d) // LD C,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xca: SET(2, t); mem[mp]= d= t; break; // LD D,SET 1,(IX+d) // LD D,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcb: SET(2, t); mem[mp]= e= t; break; // LD E,SET 1,(IX+d) // LD E,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: SET(2, t); mem[mp]= h= t; break; // LD H,SET 1,(IX+d) // LD H,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcd: SET(2, t); mem[mp]= l= t; break; // LD L,SET 1,(IX+d) // LD L,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xce: SET(2, t); mem[mp]= t; break; // SET 1,(IX+d) // SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcf: SET(2, t); mem[mp]= a= t; break; // LD A,SET 1,(IX+d) // LD A,SET 1,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: SET(4, t); mem[mp]= b= t; break; // LD B,SET 2,(IX+d) // LD B,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd1: SET(4, t); mem[mp]= c= t; break; // LD C,SET 2,(IX+d) // LD C,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd2: SET(4, t); mem[mp]= d= t; break; // LD D,SET 2,(IX+d) // LD D,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd3: SET(4, t); mem[mp]= e= t; break; // LD E,SET 2,(IX+d) // LD E,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: SET(4, t); mem[mp]= h= t; break; // LD H,SET 2,(IX+d) // LD H,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd5: SET(4, t); mem[mp]= l= t; break; // LD L,SET 2,(IX+d) // LD L,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd6: SET(4, t); mem[mp]= t; break; // SET 2,(IX+d) // SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd7: SET(4, t); mem[mp]= a= t; break; // LD A,SET 2,(IX+d) // LD A,SET 2,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: SET(8, t); mem[mp]= b= t; break; // LD B,SET 3,(IX+d) // LD B,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd9: SET(8, t); mem[mp]= c= t; break; // LD C,SET 3,(IX+d) // LD C,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xda: SET(8, t); mem[mp]= d= t; break; // LD D,SET 3,(IX+d) // LD D,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdb: SET(8, t); mem[mp]= e= t; break; // LD E,SET 3,(IX+d) // LD E,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: SET(8, t); mem[mp]= h= t; break; // LD H,SET 3,(IX+d) // LD H,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdd: SET(8, t); mem[mp]= l= t; break; // LD L,SET 3,(IX+d) // LD L,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xde: SET(8, t); mem[mp]= t; break; // SET 3,(IX+d) // SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdf: SET(8, t); mem[mp]= a= t; break; // LD A,SET 3,(IX+d) // LD A,SET 3,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: SET(16, t); mem[mp]= b= t; break; // LD B,SET 4,(IX+d) // LD B,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe1: SET(16, t); mem[mp]= c= t; break; // LD C,SET 4,(IX+d) // LD C,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe2: SET(16, t); mem[mp]= d= t; break; // LD D,SET 4,(IX+d) // LD D,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe3: SET(16, t); mem[mp]= e= t; break; // LD E,SET 4,(IX+d) // LD E,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: SET(16, t); mem[mp]= h= t; break; // LD H,SET 4,(IX+d) // LD H,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe5: SET(16, t); mem[mp]= l= t; break; // LD L,SET 4,(IX+d) // LD L,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe6: SET(16, t); mem[mp]= t; break; // SET 4,(IX+d) // SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe7: SET(16, t); mem[mp]= a= t; break; // LD A,SET 4,(IX+d) // LD A,SET 4,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: SET(32, t); mem[mp]= b= t; break; // LD B,SET 5,(IX+d) // LD B,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe9: SET(32, t); mem[mp]= c= t; break; // LD C,SET 5,(IX+d) // LD C,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xea: SET(32, t); mem[mp]= d= t; break; // LD D,SET 5,(IX+d) // LD D,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xeb: SET(32, t); mem[mp]= e= t; break; // LD E,SET 5,(IX+d) // LD E,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: SET(32, t); mem[mp]= h= t; break; // LD H,SET 5,(IX+d) // LD H,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xed: SET(32, t); mem[mp]= l= t; break; // LD L,SET 5,(IX+d) // LD L,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xee: SET(32, t); mem[mp]= t; break; // SET 5,(IX+d) // SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xef: SET(32, t); mem[mp]= a= t; break; // LD A,SET 5,(IX+d) // LD A,SET 5,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: SET(64, t); mem[mp]= b= t; break; // LD B,SET 6,(IX+d) // LD B,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf1: SET(64, t); mem[mp]= c= t; break; // LD C,SET 6,(IX+d) // LD C,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf2: SET(64, t); mem[mp]= d= t; break; // LD D,SET 6,(IX+d) // LD D,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf3: SET(64, t); mem[mp]= e= t; break; // LD E,SET 6,(IX+d) // LD E,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: SET(64, t); mem[mp]= h= t; break; // LD H,SET 6,(IX+d) // LD H,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf5: SET(64, t); mem[mp]= l= t; break; // LD L,SET 6,(IX+d) // LD L,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf6: SET(64, t); mem[mp]= t; break; // SET 6,(IX+d) // SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf7: SET(64, t); mem[mp]= a= t; break; // LD A,SET 6,(IX+d) // LD A,SET 6,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: SET(128, t); mem[mp]= b= t; break; // LD B,SET 7,(IX+d) // LD B,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf9: SET(128, t); mem[mp]= c= t; break; // LD C,SET 7,(IX+d) // LD C,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfa: SET(128, t); mem[mp]= d= t; break; // LD D,SET 7,(IX+d) // LD D,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfb: SET(128, t); mem[mp]= e= t; break; // LD E,SET 7,(IX+d) // LD E,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: SET(128, t); mem[mp]= h= t; break; // LD H,SET 7,(IX+d) // LD H,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfd: SET(128, t); mem[mp]= l= t; break; // LD L,SET 7,(IX+d) // LD L,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfe: SET(128, t); mem[mp]= t; break; // SET 7,(IX+d) // SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xff: SET(128, t); mem[mp]= a= t; break; // LD A,SET 7,(IX+d) // LD A,SET 7,(IY+d) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } ~ } ~ ih=1;break; ~~~~~~~~~~~ case 0xed: // OP ED ~~~~~~~~~~~~~~~~~~~ r++; ~~~~ switch( mem[pc++] ){ ~~~~~~~~~~~~~~~~~~~~ case 0x00: case 0x01: case 0x02: case 0x03: // NOP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x04: case 0x05: case 0x06: case 0x07: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x08: case 0x09: case 0x0a: case 0x0b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x0c: case 0x0d: case 0x0e: case 0x0f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x10: case 0x11: case 0x12: case 0x13: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x14: case 0x15: case 0x16: case 0x17: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x18: case 0x19: case 0x1a: case 0x1b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x1c: case 0x1d: case 0x1e: case 0x1f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x20: case 0x21: case 0x22: case 0x23: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x24: case 0x25: case 0x26: case 0x27: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x28: case 0x29: case 0x2a: case 0x2b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x2c: case 0x2d: case 0x2e: case 0x2f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x30: case 0x31: case 0x32: case 0x33: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x34: case 0x35: case 0x36: case 0x37: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x38: case 0x39: case 0x3a: case 0x3b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x3c: case 0x3d: case 0x3e: case 0x3f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x77: case 0x7f: ~~~~~~~~~~~~~~~~~~~~~ case 0x80: case 0x81: case 0x82: case 0x83: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x84: case 0x85: case 0x86: case 0x87: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x88: case 0x89: case 0x8a: case 0x8b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x8c: case 0x8d: case 0x8e: case 0x8f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x90: case 0x91: case 0x92: case 0x93: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x94: case 0x95: case 0x96: case 0x97: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x98: case 0x99: case 0x9a: case 0x9b: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x9c: case 0x9d: case 0x9e: case 0x9f: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xa4: case 0xa5: case 0xa6: case 0xa7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xac: case 0xad: case 0xae: case 0xaf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xb4: case 0xb5: case 0xb6: case 0xb7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xbc: case 0xbd: case 0xbe: case 0xbf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc0: case 0xc1: case 0xc2: case 0xc3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc4: case 0xc5: case 0xc6: case 0xc7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xc8: case 0xc9: case 0xca: case 0xcb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xcc: case 0xcd: case 0xce: case 0xcf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd0: case 0xd1: case 0xd2: case 0xd3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd4: case 0xd5: case 0xd6: case 0xd7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xd8: case 0xd9: case 0xda: case 0xdb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xdc: case 0xdd: case 0xde: case 0xdf: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe0: case 0xe1: case 0xe2: case 0xe3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe4: case 0xe5: case 0xe6: case 0xe7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xe8: case 0xe9: case 0xea: case 0xeb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xec: case 0xed: case 0xee: case 0xef: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf0: case 0xf1: case 0xf2: case 0xf3: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf4: case 0xf5: case 0xf6: case 0xf7: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xf8: case 0xf9: case 0xfa: case 0xfb: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0xfc: case 0xfd: case 0xfe: case 0xff: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ st+= 8; break; ~~~~~~~~~~~~~~ case 0x40: INR(b); break; // IN B,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x48: INR(c); break; // IN C,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x50: INR(d); break; // IN D,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x58: INR(e); break; // IN E,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x60: INR(h); break; // IN H,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x68: INR(l); break; // IN L,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x70: INR(t); break; // IN X,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x78: INR(a); break; // IN A,(C) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x41: OUTR(b); break; // OUT (C),B ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x49: OUTR(c); break; // OUT (C),C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x51: OUTR(d); break; // OUT (C),D ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x59: OUTR(e); break; // OUT (C),E ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x61: OUTR(h); break; // OUT (C),H ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x69: OUTR(l); break; // OUT (C),L ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x71: OUTR(0); break; // OUT (C),X ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x79: OUTR(a); break; // OUT (C),A ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x42: SBCHLRR(b, c); break; // SBC HL,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x52: SBCHLRR(d, e); break; // SBC HL,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x62: SBCHLRR(h, l); break; // SBC HL,HL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x72: st+= 15; // SBC HL,SP ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ v= (mp= l|h<<8)-sp-(ff>>8&1); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ++mp; ~~~~~ ff= v>>8; ~~~~~~~~~ fa= h; ~~~~~~ fb= ~sp>>8; ~~~~~~~~~~~ h= ff; ~~~~~~ l= v; ~~~~~ fr= h | l<<8; break; ~~~~~~~~~~~~~~~~~~~~ case 0x4a: ADCHLRR(b, c); break; // ADC HL,BC ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x5a: ADCHLRR(d, e); break; // ADC HL,DE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ case 0x6a: ADCHLRR(h, l); break; // ADC HL,HL ~~~~~~~~~~~~~~~~~~~~ ticks.c:2627:22: note: in expansion of macro 'ADCHLRR' case 0x6a: ADCHLRR(h, l); break; // ADC HL,HL ^~~~~~~ ticks.c:2668:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&-256 ~~^~~~~ ticks.c:2674:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | (a= (r&127|r7&128)); ~^~~~ ticks.c:2673:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&-256 ~~^~~~~ ticks.c:2680:27: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] a= a &240 ~~^~~~ ticks.c:2682:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&-256 ~~^~~~~ ticks.c:2689:26: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | a&15; ~^~~ ticks.c:2690:27: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] a= a &240 ~~^~~~ ticks.c:2692:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff&-256 ~~^~~~~ ticks.c:2699:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2700:26: warning: value computed is not used [-Wunused-value] ++e || d++; ^~ ticks.c:2701:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2704:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -41 ~~~~~~^~~~~ ticks.c:2706:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | t<<4 & 32; ~~~~~~^~~~~ ticks.c:2712:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2713:26: warning: value computed is not used [-Wunused-value] e-- || d--; ^~ ticks.c:2714:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2717:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -41 ~~~~~~^~~~~ ticks.c:2719:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | t<<4 & 32; ~~~~~~^~~~~ ticks.c:2725:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2726:26: warning: value computed is not used [-Wunused-value] ++e || d++; ^~ ticks.c:2727:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2730:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -41 ~~~~~~^~~~~ ticks.c:2732:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | t<<4 & 32; ~~~~~~^~~~~ ticks.c:2734:26: warning: value computed is not used [-Wunused-value] b|c && ( fa= 128, ^~ ticks.c:2741:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2742:26: warning: value computed is not used [-Wunused-value] e-- || d--; ^~ ticks.c:2743:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2746:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -41 ~~~~~~^~~~~ ticks.c:2748:33: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] | t<<4 & 32; ~~~~~~^~~~~ ticks.c:2750:26: warning: value computed is not used [-Wunused-value] b|c && ( fa= 128, ^~ ticks.c:2757:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2758:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2760:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fr= w & 127 ~~^~~~~ ticks.c:2766:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 ~~~~^~~~~~ ticks.c:2768:34: warning: value computed is not used [-Wunused-value] (w^t^a) & 16 && w--; ^~ ticks.c:2769:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff|= w<<4 & 32 ~~~~~^~~~ ticks.c:2773:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2774:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2776:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fr= w & 127 ~~^~~~~ ticks.c:2782:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 ~~~~^~~~~~ ticks.c:2784:34: warning: value computed is not used [-Wunused-value] (w^t^a) & 16 && w--; ^~ ticks.c:2785:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff|= w<<4 & 32 ~~~~~^~~~ ticks.c:2789:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2790:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2792:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fr= w & 127 ~~^~~~~ ticks.c:2796:26: warning: value computed is not used [-Wunused-value] b|c && ( fa|= 128, ^~ ticks.c:2799:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 ~~~~^~~~~~ ticks.c:2801:34: warning: value computed is not used [-Wunused-value] (w^t^a) & 16 && w--; ^~ ticks.c:2802:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff|= w<<4 & 32 ~~~~~^~~~ ticks.c:2806:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2807:26: warning: value computed is not used [-Wunused-value] c-- || b--; ^~ ticks.c:2809:29: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fr= w & 127 ~~^~~~~ ticks.c:2813:26: warning: value computed is not used [-Wunused-value] b|c && ( fa|= 128, ^~ ticks.c:2816:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff= ff & -256 ~~~~^~~~~~ ticks.c:2818:34: warning: value computed is not used [-Wunused-value] (w^t^a) & 16 && w--; ^~ ticks.c:2819:31: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] ff|= w<<4 & 32 ~~~~~^~~~ ticks.c:2823:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2825:29: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] u= t+(c+1&255); ~^~ ticks.c:2827:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2830:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2835:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2837:29: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses] u= t+(c-1&255); ~^~ ticks.c:2839:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2842:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2847:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2849:29: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses] u= t+(c+1&255); ~^~ ticks.c:2850:26: warning: value computed is not used [-Wunused-value] --b && (st+= 5, mp= --pc, --pc); ^~ ticks.c:2851:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2854:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2859:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2861:29: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses] u= t+(c-1&255); ~^~ ticks.c:2862:26: warning: value computed is not used [-Wunused-value] --b && (st+= 5, mp= --pc, --pc); ^~ ticks.c:2863:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2866:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2874:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2876:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2879:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2887:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2889:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2892:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2900:26: warning: value computed is not used [-Wunused-value] ++l || h++; ^~ ticks.c:2902:24: warning: value computed is not used [-Wunused-value] b && (st+= 5, mp= --pc, --pc); ^~ ticks.c:2903:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2906:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2914:26: warning: value computed is not used [-Wunused-value] l-- || h--; ^~ ticks.c:2916:24: warning: value computed is not used [-Wunused-value] b && (st+= 5, mp= --pc, --pc); ^~ ticks.c:2917:27: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses] fb= u&7^b; ~^~ ticks.c:2920:55: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] fb= (4928640>>((fb^fb>>4)&15)^b)&128 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ ticks.c:2965:12: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] r= (r&127|r7&128), ~^~~~ ticks.c:2989:12: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses] r= (r&127|r7&128); ~^~~~ ticks.c: In function 'tapcycles': ticks.c:454:5: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(tapbuf, 1, 0x20000, ft); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ticks.c: In function 'main': ticks.c:535:11: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(tapbuf, 1, 0x20000, ft); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ticks.c:578:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(mem, 1, 16384, fk); ^~~~~~~~~~~~~~~~~~~~~~~~ ticks.c:580:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&i, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:581:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&l_, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:582:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&h_, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:583:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&e_, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:584:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&d_, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:585:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&c_, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:586:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&b_, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:587:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&w, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:593:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&a_, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:594:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&l, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:595:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&h, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:596:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&e, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:597:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&d, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:598:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&c, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:599:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&b, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:600:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&yl, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:601:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&yh, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:602:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&xl, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:603:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&xh, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:604:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&iff, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~~ ticks.c:606:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&r, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:608:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&w, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:610:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&a, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:611:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&sp, 2, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:612:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&im, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:613:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&w, 1, 1, fh); ^~~~~~~~~~~~~~~~~~~ ticks.c:614:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(mem+0x4000, 1, 0xc000, fh); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ticks.c:618:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(mem, 1, 65536, fh), ^~~~~~~~~~~~~~~~~~~~~~~~ ticks.c:619:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&w, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:621:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&a, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:622:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&c, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:623:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&b, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:624:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&l, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:625:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&h, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:626:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&pc, 2, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:627:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&sp, 2, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:628:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&i, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:629:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&r, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:631:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&e, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:632:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&d, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:633:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&c_, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:634:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&b_, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:635:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&e_, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:636:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&d_, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:637:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&l_, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:638:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&h_, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:639:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&w, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~ ticks.c:646:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&a_, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:647:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&yl, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:648:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&yh, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:649:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&xl, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:650:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&xh, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:651:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&iff, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~~ ticks.c:652:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&im, 1, 1, fh), ^~~~~~~~~~~~~~~~~~~~ ticks.c:653:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&mp, 2, 1, fh); ^~~~~~~~~~~~~~~~~~~~ ticks.c:655:9: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(mem, 1, size, fh); ^~~~~~~~~~~~~~~~~~~~~~~ ticks.c:661:5: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&wavpos, 4, 1, fh); ^~~~~~~~~~~~~~~~~~~~~~~~ ticks.c:668:7: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(tapbuf, 1, 0x20000, ft); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ticks.c:669:5: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result] fread(&sttap, 4, 1, fh); ^~~~~~~~~~~~~~~~~~~~~~~ ticks.c:674:3: warning: 'fh' may be used uninitialized in this function [-Wmaybe-uninitialized] fclose(fh); ^~~~~~~~~~ gcc -o ticks -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -g ticks.o make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/ticks' make -C src/ticks PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/ticks' install ticks /builddir/build/BUILD/z88dk/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/ticks' make -C support/graphics make[1]: Entering directory '/builddir/build/BUILD/z88dk/support/graphics' gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 `xml2-config --cflags` -c -o z80svg.o z80svg.c gcc -o z80svg -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 `xml2-config --cflags` z80svg.o `xml2-config --libs` make[1]: Leaving directory '/builddir/build/BUILD/z88dk/support/graphics' make -C support/graphics PREFIX=`pwd` install make[1]: Entering directory '/builddir/build/BUILD/z88dk/support/graphics' install z80svg /builddir/build/BUILD/z88dk/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/support/graphics' ./config.sh `pwd`/ z88 + unset CFLAGS + export CFLAGS + unset LDFLAGS + export LDFLAGS + make libs cd libsrc ; make make[1]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' --- Building Z80 crt0 Library --- make -C z80_crt0s make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././z80_crt0 @crt0list z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DZ80S183 -x.././z80s183_crt0 @crt0list make clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' rm -f crt0/*.o* crt0/*.sym crt0/*.map rm -f crt0_long/*.o* crt0_long/*.sym crt0_long/*.map rm -f z80_emu/*.o* z80_emu/*.sym z80_emu/*.map rm -f crt0_sdcc/*.o* crt0_sdcc/*.sym crt0_sdcc/*.map make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DZ80S183 -x.././z80iy_crt0 @crt0list make clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' rm -f crt0/*.o* crt0/*.sym crt0/*.map rm -f crt0_long/*.o* crt0_long/*.sym crt0_long/*.map rm -f z80_emu/*.o* z80_emu/*.sym z80_emu/*.map rm -f crt0_sdcc/*.o* crt0_sdcc/*.sym crt0_sdcc/*.map make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z80_crt0s' --- Building Z80 Generic Maths Library --- make -C math/genmath make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/genmath' rm -f -f *.o zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY acos.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY asin.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY atan2.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY atof.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY cosh.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ftoa.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ftoe.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY pow.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY sinh.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY tanh.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././zx81_math -IXIY @zx81list rm -f -f *.o zcc +test -O3 -vn -make-lib -Wn43 acos.c zcc +test -O3 -vn -make-lib -Wn43 asin.c zcc +test -O3 -vn -make-lib -Wn43 atan2.c zcc +test -O3 -vn -make-lib -Wn43 atof.c zcc +test -O3 -vn -make-lib -Wn43 cosh.c zcc +test -O3 -vn -make-lib -Wn43 ftoa.c zcc +test -O3 -vn -make-lib -Wn43 ftoe.c zcc +test -O3 -vn -make-lib -Wn43 pow.c zcc +test -O3 -vn -make-lib -Wn43 sinh.c zcc +test -O3 -vn -make-lib -Wn43 tanh.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././gen_math @genlist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/genmath' --- Building DEBUG Library --- make -C debug make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/debug' zcc +test -O3 -vn -make-lib -Wn43 dump.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././debug @debug.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/debug' --- Building Near Malloc Library --- make -C malloc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/malloc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././malloc @malllist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/malloc' make -C fcntl lgendos make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' ---> Generic Random Access File library <--- cd gen_rnd ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/gen_rnd' zcc +test -O3 -vn -make-lib -Wn43 open.c sccz80:"open.c" L:38 Warning:#36:In function: open() line 6 sccz80:"open.c" L:38 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:41 Warning:#9:Converting pointer to integer without cast sccz80:"open.c" L:64 Warning:#9:Converting pointer to integer without cast sccz80:"open.c" L:77 Warning:#9:Converting pointer to integer without cast sccz80:"open.c" L:92 Warning:#9:Converting pointer to integer without cast sccz80:"open.c" L:99 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 open_z88.c zcc +test -O3 -vn -make-lib -Wn43 close.c sccz80:"close.c" L:26 Warning:#9:Converting pointer to integer without cast sccz80:"close.c" L:30 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 lseek.c sccz80:"lseek.c" L:29 Warning:#9:Converting pointer to integer without cast sccz80:"lseek.c" L:57 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 read.c zcc +test -O3 -vn -make-lib -Wn43 write.c zcc +test -O3 -vn -make-lib -Wn43 readbyte.c sccz80:"readbyte.c" L:44 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 writebyte.c sccz80:"writebyte.c" L:39 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 remove.c sccz80:"remove.c" L:21 Warning:#8:Converting integer to pointer without cast sccz80:"remove.c" L:25 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 rename.c sccz80:"rename.c" L:18 Warning:#8:Converting integer to pointer without cast sccz80:"rename.c" L:22 Warning:#9:Converting pointer to integer without cast sccz80:"rename.c" L:28 Warning:#9:Converting pointer to integer without cast sccz80:"rename.c" L:40 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fdtell.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././gendos @genlist make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/gen_rnd' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C fcntl/dummy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/dummy' ---> Building NDOS library <--- z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././ndos @ndoslist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/dummy' --- Building Abstract Data Types Library --- make -C adt make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/adt' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././adt @adt.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/adt' --- Building Block Memory Allocator Library --- make -C balloc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/balloc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././balloc @balloc.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/balloc' --- Building IM 2 Library --- make -C im2 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/im2' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././im2 @im2.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/im2' --- Building Rectangles Library --- make -C rect make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rect' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././rect @rect.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rect' --- Building Algorithm Library --- make -C algorithm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/algorithm' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././algorithm @alg.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/algorithm' --- Building 3D Library --- make -C lib3d make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/lib3d' zcc +test -O3 -vn -make-lib -Wn43 *.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././lib3d @lib3d.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/lib3d' --- Building X11 emulation Library --- make -C graphics lx11 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics' cd x11 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/x11' zcc +test -DMAKE_LIB -O3 -vn -make-lib -Wn43 *.c sccz80:"XDrawString.c" L:24 Warning:#8:Converting integer to pointer without cast sccz80:"XDrawString.c" L:34 Warning:#36:In function: XDrawString() line 16 sccz80:"XDrawString.c" L:34 Warning:#13:Pointer/pointer type mismatch sccz80:"XDrawString.c" L:34 Warning:#34:Func expects: signed char * sccz80:"XDrawString.c" L:34 Warning:#35:Func gets: signed int sccz80:"XLoadQueryFont.c" L:270 Warning:#9:Converting pointer to integer without cast sccz80:"XLoadQueryFont.c" L:275 Warning:#9:Converting pointer to integer without cast sccz80:"XTextWidth.c" L:24 Warning:#36:In function: XTextWidth() line 8 sccz80:"XTextWidth.c" L:24 Warning:#13:Pointer/pointer type mismatch sccz80:"XTextWidth.c" L:24 Warning:#34:Func expects: signed char * sccz80:"XTextWidth.c" L:24 Warning:#35:Func gets: signed int sccz80:"_xfputc.c" L:33 Warning:#36:In function: _xfputc() line 18 sccz80:"_xfputc.c" L:33 Warning:#13:Pointer/pointer type mismatch sccz80:"_xfputc.c" L:33 Warning:#34:Func expects: struct _XDisplay* sccz80:"_xfputc.c" L:33 Warning:#35:Func gets: signed int Warning at file '/tmp/tmpXXZcemFJ.opt' line 18: symbol 'blackpixel' used as 'BlackPixel' Warning at file '/tmp/tmpXXoy3fev.opt' line 18: symbol 'defaultdepth' used as 'DefaultDepth' Warning at file '/tmp/tmpXXDsRk8j.opt' line 18: symbol 'defaultscreen' used as 'DefaultScreen' Warning at file '/tmp/tmpXXGMPa48.opt' line 18: symbol 'displayheight' used as 'DisplayHeight' Warning at file '/tmp/tmpXXb1ddPX.opt' line 18: symbol 'displaywidth' used as 'DisplayWidth' Warning at file '/tmp/tmpXXKnXgwM.opt' line 18: symbol 'rootwindow' used as 'RootWindow' Warning at file '/tmp/tmpXXDAeFkB.opt' line 18: symbol 'whitepixel' used as 'WhitePixel' Warning at file '/tmp/tmpXXPgQn5R.opt' line 18: symbol 'xchecktypedevent' used as 'XCheckTypedEvent' Warning at file '/tmp/tmpXXOsp6wG.opt' line 18: symbol 'xcheckwindowevent' used as 'XCheckWindowEvent' Warning at file '/tmp/tmpXXXXroZu.opt' line 18: symbol 'xclearwindow' used as 'XClearWindow' Warning at file '/tmp/tmpXXW1O0pj.opt' line 18: symbol 'xclosedisplay' used as 'XCloseDisplay' Warning at file '/tmp/tmpXXJTWGV7.opt' line 18: symbol 'xcreatebitmapfromdata' used as 'XCreateBitmapFromData' Warning at file '/tmp/tmpXX2PEEpW.opt' line 18: symbol 'xcreategc' used as 'XCreateGC' Warning at file '/tmp/tmpXXbB58TK.opt' line 150: symbol 'xcreatesimplewindow' used as 'XCreateSimpleWindow' Warning at file '/tmp/tmpXXcqquoA.opt' line 18: symbol 'xdisplayname' used as 'XDisplayName' Warning at file '/tmp/tmpXXNdRJTp.opt' line 18: symbol 'xdrawline' used as 'XDrawLine' Warning at file '/tmp/tmpXXMP9aef.opt' line 18: symbol 'xdrawpoint' used as 'XDrawPoint' Warning at file '/tmp/tmpXXREnbz4.opt' line 18: symbol 'xdrawrectangle' used as 'XDrawRectangle' sccz80:"xdrawstring.c" L:24 Warning:#8:Converting integer to pointer without cast sccz80:"xdrawstring.c" L:34 Warning:#36:In function: XDrawString() line 16 sccz80:"xdrawstring.c" L:34 Warning:#13:Pointer/pointer type mismatch sccz80:"xdrawstring.c" L:34 Warning:#34:Func expects: signed char * sccz80:"xdrawstring.c" L:34 Warning:#35:Func gets: signed int Warning at file '/tmp/tmpXXijOrST.opt' line 18: symbol 'xdrawstring' used as 'XDrawString' Warning at file '/tmp/tmpXXPctOgJ.opt' line 18: symbol 'xflush' used as 'XFlush' Warning at file '/tmp/tmpXXGS3qDy.opt' line 18: symbol 'xfreegc' used as 'XFreeGC' sccz80:"xloadqueryfont.c" L:270 Warning:#9:Converting pointer to integer without cast sccz80:"xloadqueryfont.c" L:275 Warning:#9:Converting pointer to integer without cast Warning at file '/tmp/tmpXXnnnA0n.opt' line 4825: symbol 'xloadqueryfont' used as 'XLoadQueryFont' Warning at file '/tmp/tmpXXwM6Vcd.opt' line 18: symbol 'xmapwindow' used as 'XMapWindow' Warning at file '/tmp/tmpXXNxbGq2.opt' line 18: symbol 'xnextevent' used as 'XNextEvent' Warning at file '/tmp/tmpXX6pDYER.opt' line 18: symbol 'xopendisplay' used as 'XOpenDisplay' Warning at file '/tmp/tmpXXnVNZHG.opt' line 18: symbol 'xselectinput' used as 'XSelectInput' Warning at file '/tmp/tmpXXsa7ZGv.opt' line 18: symbol 'xsetdashes' used as 'XSetDashes' Warning at file '/tmp/tmpXXXsTTNk.opt' line 18: symbol 'xsetfont' used as 'XSetFont' Warning at file '/tmp/tmpXXuS2lV9.opt' line 18: symbol 'xsetforeground' used as 'XSetForeground' Warning at file '/tmp/tmpXXfVi30Y.opt' line 18: symbol 'xsetlineattributes' used as 'XSetLineAttributes' Warning at file '/tmp/tmpXX627XIM.opt' line 18: symbol 'xsetstandardproperties' used as 'XSetStandardProperties' sccz80:"xtextwidth.c" L:24 Warning:#36:In function: XTextWidth() line 8 sccz80:"xtextwidth.c" L:24 Warning:#13:Pointer/pointer type mismatch sccz80:"xtextwidth.c" L:24 Warning:#34:Func expects: signed char * sccz80:"xtextwidth.c" L:24 Warning:#35:Func gets: signed int Warning at file '/tmp/tmpXXh9EgiA.opt' line 18: symbol 'xtextwidth' used as 'XTextWidth' Warning at file '/tmp/tmpXXW2pbSn.opt' line 18: symbol 'xunloadfont' used as 'XUnloadFont' Errors in source file blackpixel.c: Warning at file '/tmp/tmpXXZcemFJ.opt' line 18: symbol 'blackpixel' used as 'BlackPixel' ^ ---- .BlackPixel Errors in source file defaultdepth.c: Warning at file '/tmp/tmpXXoy3fev.opt' line 18: symbol 'defaultdepth' used as 'DefaultDepth' ^ ---- .DefaultDepth Errors in source file defaultscreen.c: Warning at file '/tmp/tmpXXDsRk8j.opt' line 18: symbol 'defaultscreen' used as 'DefaultScreen' ^ ---- .DefaultScreen Errors in source file displayheight.c: Warning at file '/tmp/tmpXXGMPa48.opt' line 18: symbol 'displayheight' used as 'DisplayHeight' ^ ---- .DisplayHeight Errors in source file displaywidth.c: Warning at file '/tmp/tmpXXb1ddPX.opt' line 18: symbol 'displaywidth' used as 'DisplayWidth' ^ ---- .DisplayWidth Errors in source file rootwindow.c: Warning at file '/tmp/tmpXXKnXgwM.opt' line 18: symbol 'rootwindow' used as 'RootWindow' ^ ---- .RootWindow Errors in source file whitepixel.c: Warning at file '/tmp/tmpXXDAeFkB.opt' line 18: symbol 'whitepixel' used as 'WhitePixel' ^ ---- .WhitePixel Errors in source file xchecktypedevent.c: Warning at file '/tmp/tmpXXPgQn5R.opt' line 18: symbol 'xchecktypedevent' used as 'XCheckTypedEvent' ^ ---- .XCheckTypedEvent Errors in source file xcheckwindowevent.c: Warning at file '/tmp/tmpXXOsp6wG.opt' line 18: symbol 'xcheckwindowevent' used as 'XCheckWindowEvent' ^ ---- .XCheckWindowEvent Errors in source file xclearwindow.c: Warning at file '/tmp/tmpXXXXroZu.opt' line 18: symbol 'xclearwindow' used as 'XClearWindow' ^ ---- .XClearWindow Errors in source file xclosedisplay.c: Warning at file '/tmp/tmpXXW1O0pj.opt' line 18: symbol 'xclosedisplay' used as 'XCloseDisplay' ^ ---- .XCloseDisplay Errors in source file xcreatebitmapfromdata.c: Warning at file '/tmp/tmpXXJTWGV7.opt' line 18: symbol 'xcreatebitmapfromdata' used as 'XCreateBitmapFromData' ^ ---- .XCreateBitmapFromData Errors in source file xcreategc.c: Warning at file '/tmp/tmpXX2PEEpW.opt' line 18: symbol 'xcreategc' used as 'XCreateGC' ^ ---- .XCreateGC Errors in source file xcreatesimplewindow.c: Warning at file '/tmp/tmpXXbB58TK.opt' line 150: symbol 'xcreatesimplewindow' used as 'XCreateSimpleWindow' ^ ---- .XCreateSimpleWindow Errors in source file xdisplayname.c: Warning at file '/tmp/tmpXXcqquoA.opt' line 18: symbol 'xdisplayname' used as 'XDisplayName' ^ ---- .XDisplayName Errors in source file xdrawline.c: Warning at file '/tmp/tmpXXNdRJTp.opt' line 18: symbol 'xdrawline' used as 'XDrawLine' ^ ---- .XDrawLine Errors in source file xdrawpoint.c: Warning at file '/tmp/tmpXXMP9aef.opt' line 18: symbol 'xdrawpoint' used as 'XDrawPoint' ^ ---- .XDrawPoint Errors in source file xdrawrectangle.c: Warning at file '/tmp/tmpXXREnbz4.opt' line 18: symbol 'xdrawrectangle' used as 'XDrawRectangle' ^ ---- .XDrawRectangle Errors in source file xdrawstring.c: Warning at file '/tmp/tmpXXijOrST.opt' line 18: symbol 'xdrawstring' used as 'XDrawString' ^ ---- .XDrawString Errors in source file xflush.c: Warning at file '/tmp/tmpXXPctOgJ.opt' line 18: symbol 'xflush' used as 'XFlush' ^ ---- .XFlush Errors in source file xfreegc.c: Warning at file '/tmp/tmpXXGS3qDy.opt' line 18: symbol 'xfreegc' used as 'XFreeGC' ^ ---- .XFreeGC Errors in source file xloadqueryfont.c: Warning at file '/tmp/tmpXXnnnA0n.opt' line 4825: symbol 'xloadqueryfont' used as 'XLoadQueryFont' ^ ---- .XLoadQueryFont Errors in source file xmapwindow.c: Warning at file '/tmp/tmpXXwM6Vcd.opt' line 18: symbol 'xmapwindow' used as 'XMapWindow' ^ ---- .XMapWindow Errors in source file xnextevent.c: Warning at file '/tmp/tmpXXNxbGq2.opt' line 18: symbol 'xnextevent' used as 'XNextEvent' ^ ---- .XNextEvent Errors in source file xopendisplay.c: Warning at file '/tmp/tmpXX6pDYER.opt' line 18: symbol 'xopendisplay' used as 'XOpenDisplay' ^ ---- .XOpenDisplay Errors in source file xselectinput.c: Warning at file '/tmp/tmpXXnVNZHG.opt' line 18: symbol 'xselectinput' used as 'XSelectInput' ^ ---- .XSelectInput Errors in source file xsetdashes.c: Warning at file '/tmp/tmpXXsa7ZGv.opt' line 18: symbol 'xsetdashes' used as 'XSetDashes' ^ ---- .XSetDashes Errors in source file xsetfont.c: Warning at file '/tmp/tmpXXXsTTNk.opt' line 18: symbol 'xsetfont' used as 'XSetFont' ^ ---- .XSetFont Errors in source file xsetforeground.c: Warning at file '/tmp/tmpXXuS2lV9.opt' line 18: symbol 'xsetforeground' used as 'XSetForeground' ^ ---- .XSetForeground Errors in source file xsetlineattributes.c: Warning at file '/tmp/tmpXXfVi30Y.opt' line 18: symbol 'xsetlineattributes' used as 'XSetLineAttributes' ^ ---- .XSetLineAttributes Errors in source file xsetstandardproperties.c: Warning at file '/tmp/tmpXX627XIM.opt' line 18: symbol 'xsetstandardproperties' used as 'XSetStandardProperties' ^ ---- .XSetStandardProperties Errors in source file xtextwidth.c: Warning at file '/tmp/tmpXXh9EgiA.opt' line 18: symbol 'xtextwidth' used as 'XTextWidth' ^ ---- .XTextWidth Errors in source file xunloadfont.c: Warning at file '/tmp/tmpXXW2pbSn.opt' line 18: symbol 'xunloadfont' used as 'XUnloadFont' ^ ---- .XUnloadFont z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././x11 @x11.lst make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/x11' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics' --- Building Z88 Maths Library --- make -C math/z88math make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/z88math' zcc +zx -O3 -vn -make-lib -Wn43 -math-z88 -D__Z88__ -D__NATIVE_MATH__ cosh.c zcc +zx -O3 -vn -make-lib -Wn43 -math-z88 -D__Z88__ -D__NATIVE_MATH__ sinh.c zcc +zx -O3 -vn -make-lib -Wn43 -math-z88 -D__Z88__ -D__NATIVE_MATH__ tanh.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././z88_math @z88list make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/z88math' --- Building Z88 Custom Library --- make -C z88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z88' cd fdstdio ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/z88/fdstdio' zcc +z88 -O3 -vn -make-lib -Wn43 fchkhdl.c zcc +z88 -O3 -vn -make-lib -Wn43 fdfread.c zcc +z88 -O3 -vn -make-lib -Wn43 fdfwrite.c zcc +z88 -O3 -vn -make-lib -Wn43 fdprintn.c zcc +z88 -O3 -vn -make-lib -Wn43 zfdopen.c zcc +z88 -O3 -vn -make-lib -Wn43 zfdopen_z88.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z88/fdstdio' zcc +z88 -O3 -vn -make-lib -Wn43 DeRegisterInt.c zcc +z88 -O3 -vn -make-lib -Wn43 exec_cli.c zcc +z88 -O3 -vn -make-lib -Wn43 fnexpand.c zcc +z88 -O3 -vn -make-lib -Wn43 getpid.c zcc +z88 -O3 -vn -make-lib -Wn43 nameapp.c zcc +z88 -O3 -vn -make-lib -Wn43 openpopup.c zcc +z88 -O3 -vn -make-lib -Wn43 opentitled.c zcc +z88 -O3 -vn -make-lib -Wn43 openwindow.c zcc +z88 -O3 -vn -make-lib -Wn43 QueryPackage.c zcc +z88 -O3 -vn -make-lib -Wn43 RegisterInt.c zcc +z88 -O3 -vn -make-lib -Wn43 stripdev.c zcc +z88 -O3 -vn -make-lib -Wn43 strippath.c zcc +z88 -O3 -vn -make-lib -Wn43 wcclose.c zcc +z88 -O3 -vn -make-lib -Wn43 wcnext.c zcc +z88 -O3 -vn -make-lib -Wn43 wcopen.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././z88 @z88list make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/z88' --- Building Z88 Library --- make -C fcntl lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd z88 ; make z88_fcntl ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' zcc +z88 -O3 -vn -make-lib -Wn43 close.c zcc +z88 -O3 -vn -make-lib -Wn43 creat.c zcc +z88 -O3 -vn -make-lib -Wn43 lseek.c zcc +z88 -O3 -vn -make-lib -Wn43 open.c zcc +z88 -O3 -vn -make-lib -Wn43 open_z88.c zcc +z88 -O3 -vn -make-lib -Wn43 nropen.c zcc +z88 -O3 -vn -make-lib -Wn43 read.c zcc +z88 -O3 -vn -make-lib -Wn43 write.c zcc +z88 -O3 -vn -make-lib -Wn43 writebyte.c zcc +z88 -O3 -vn -make-lib -Wn43 readbyte.c zcc +z88 -O3 -vn -make-lib -Wn43 stat.c zcc +z88 -O3 -vn -make-lib -Wn43 opendor.c zcc +z88 -O3 -vn -make-lib -Wn43 readdor.c zcc +z88 -O3 -vn -make-lib -Wn43 closedor.c zcc +z88 -O3 -vn -make-lib -Wn43 writedor.c zcc +z88 -O3 -vn -make-lib -Wn43 deletedor.c zcc +z88 -O3 -vn -make-lib -Wn43 sondor.c zcc +z88 -O3 -vn -make-lib -Wn43 brotherdor.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C stdio lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 closeall.c zcc +test -O3 -vn -make-lib -Wn43 fabandon.c zcc +test -O3 -vn -make-lib -Wn43 fchkstd.c zcc +test -O3 -vn -make-lib -Wn43 fdopen.c zcc +test -O3 -vn -make-lib -Wn43 feof.c zcc +test -O3 -vn -make-lib -Wn43 fgetpos.c zcc +test -O3 -vn -make-lib -Wn43 fgets.c zcc +test -O3 -vn -make-lib -Wn43 fgets_cons.c sccz80:"fgets_cons.c" L:17 Warning:#4:Function returns different type to prototype sccz80:"fgets_cons.c" L:17 Warning:#5:Prototype is signed char *fn sccz80:"fgets_cons.c" L:17 Warning:#6:Function is signed int fn zcc +test -O3 -vn -make-lib -Wn43 fopen.c zcc +test -O3 -vn -make-lib -Wn43 fopen_z88.c zcc +test -O3 -vn -make-lib -Wn43 fputs_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen.c zcc +test -O3 -vn -make-lib -Wn43 fseek.c zcc +test -O3 -vn -make-lib -Wn43 ftell.c zcc +test -O3 -vn -make-lib -Wn43 fwrite.c zcc +test -O3 -vn -make-lib -Wn43 printk.c sccz80:"printk.c" L:55 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 printn.c zcc +test -O3 -vn -make-lib -Wn43 puts.c zcc +test -O3 -vn -make-lib -Wn43 ungetc.c zcc +test -O3 -vn -make-lib -Wn43 vfprintf_mini.c Looking for label put_char zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 fabandon.c zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 fchkstd.c zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 fclose.c zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 fputc.c zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 fputs.c zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 ungetc.c zcc +test -DSIMPLIFIED_STDIO -O3 -vn -make-lib -Wn43 vfprintf_mini.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/z88' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C stdlib lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +z88 -O3 -vn -make-lib -Wn43 *.c cd z88 ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' zcc +test -O3 -vn -make-lib -Wn43 fprintf.c zcc +test -O3 -vn -make-lib -Wn43 fscanf.c zcc +test -O3 -vn -make-lib -Wn43 itou.c sccz80:"itou.c" L:27 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 ltoa_any.c zcc +test -O3 -vn -make-lib -Wn43 printf.c zcc +test -O3 -vn -make-lib -Wn43 scanf.c zcc +test -O3 -vn -make-lib -Wn43 sprintf.c zcc +test -O3 -vn -make-lib -Wn43 sscanf.c zcc +test -O3 -vn -make-lib -Wn43 utoi.c zcc +test -O3 -vn -make-lib -Wn43 vfprintf_comp.c zcc +test -O3 -vn -make-lib -Wn43 vfprintf_fp.c zcc +test -O3 -vn -make-lib -Wn43 vfscanf.c sccz80:"vfscanf.c" L:32 Warning:#8:Converting integer to pointer without cast zcc +test -O3 -vn -make-lib -Wn43 vsprintf.c zcc +test -O3 -vn -make-lib -Wn43 vsscanf.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C time lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' zcc +test -O3 -vn -make-lib -Wn43 gmtime.c zcc +test -O3 -vn -make-lib -Wn43 localtime.c zcc +test -O3 -vn -make-lib -Wn43 mktime.c cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' zcc +z88 -O3 -vn -make-lib -Wn43 clock.c zcc +z88 -O3 -vn -make-lib -Wn43 time.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C rs232 lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' zcc +z88 -O3 -vn -make-lib -Wn43 rs232_close.c zcc +z88 -O3 -vn -make-lib -Wn43 rs232_get.c zcc +z88 -O3 -vn -make-lib -Wn43 rs232_init.c zcc +z88 -O3 -vn -make-lib -Wn43 rs232_params.c zcc +z88 -O3 -vn -make-lib -Wn43 rs232_put.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' zcc +test -O3 -vn -make-lib -Wn43 longjmp.c zcc +test -O3 -vn -make-lib -Wn43 setjmp.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' zcc +test -O3 -vn -make-lib -Wn43 assert.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DZ88 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DZ88 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORz88 -x./z88_clib @./z88.lst --- Building Z88 ZSock Library --- make -C net make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/net' zcc +z88 -O3 -vn -make-lib -Wn43 get_networks.c zcc +z88 -O3 -vn -make-lib -Wn43 get_protocols.c zcc +z88 -O3 -vn -make-lib -Wn43 get_services.c zcc +z88 -O3 -vn -make-lib -Wn43 getnetbyname.c zcc +z88 -O3 -vn -make-lib -Wn43 getnetbynumber.c zcc +z88 -O3 -vn -make-lib -Wn43 getprotobyname.c zcc +z88 -O3 -vn -make-lib -Wn43 getprotobynumber.c zcc +z88 -O3 -vn -make-lib -Wn43 getservbyname.c zcc +z88 -O3 -vn -make-lib -Wn43 getservbyport.c zcc +z88 -O3 -vn -make-lib -Wn43 getservprotobyname.c zcc +z88 -O3 -vn -make-lib -Wn43 getservprotobyport.c zcc +z88 -O3 -vn -make-lib -Wn43 getxxbyname.c zcc +z88 -O3 -vn -make-lib -Wn43 getxxbyport.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././net @zsock_list z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././netdev @zsockdev_list make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/net' --- Building Z88 Network Aware Library --- make -C fcntl lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd z88 ; make z88_fcntl ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' make[3]: Nothing to be done for 'z88_fcntl'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C stdio lz88net make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fclose.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fgetc.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fputc_callee.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO freopen_z88.c sccz80:"freopen_z88.c" L:51 Warning:#36:In function: freopen_z88() line 29 sccz80:"freopen_z88.c" L:51 Warning:#12:Converting far ptr to near ptr sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fflush.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fread.c cd zsock ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/zsock' zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO closenet.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fflush_net.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fgetc_net.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO fputc_net.c zcc +z88 -O3 -vn -make-lib -Wn43 -DNET_STDIO opennet.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/zsock' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/z88' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C stdlib lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +z88 -O3 -vn -make-lib -Wn43 *.c cd z88 ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C time lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C rs232 lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DZ88 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DZ88 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORz88 -x./z88net_clib @./z88net.lst --- Building Z88 Far Malloc Library --- make -C farz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/farz88' cd strings ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/farz88/strings' zcc +z88 -O3 -vn -make-lib -Wn43 strdup_far.c sccz80:"strdup_far.c" L:31 Warning:#12:Converting far ptr to near ptr make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/farz88/strings' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x.././farz88 @farz88.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/farz88' --- Building Z88 ANSI Library --- make -C fcntl lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd z88 ; make z88_fcntl ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' make[3]: Nothing to be done for 'z88_fcntl'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C stdio lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/z88' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C stdlib lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +z88 -O3 -vn -make-lib -Wn43 *.c cd z88 ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C time lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C rs232 lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd z88 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/z88' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lz88 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DZ88 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DZ88 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORz88 -x./z88ansi_clib @./z88ansi.lst --- Building Z88 BASIC gfx Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./gfx -DFORz88 @./z88gfx.lst make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./gfxapp -DAPPZ88 -DFORz88 @./z88gfx.lst --- Building TI82 ANSI Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti82 -DPACKEDFONT -x./ti82ansi_clib @./ticansi.lst --- Building TI82 Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti82 -x./ti82_clib @./ticalc.lst --- Building TI83 ANSI Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti83 -DPACKEDFONT -x./ti83ansi_clib @./ticansi.lst --- Building TI83 Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti83 -x./ti83_clib @./ticalc.lst --- Building TI83+ ANSI Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti83p -DPACKEDFONT -x./ti83pansi_clib @./ticansi.lst --- Building TI83+ Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti83p -x./ti83p_clib @./ticalc.lst --- Building TI85 ANSI Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti85 -DPACKEDFONT -x./ti85ansi_clib @./ticansi.lst --- Building TI85 Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti85 -x./ti85_clib @./ticalc.lst --- Building TI86 ANSI Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti86 -DPACKEDFONT -x./ti86ansi_clib @./ticansi.lst --- Building TI86 Library --- make tideps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/ticalc/*.o rm -f -f stdio/ansi/ticalc/*.o rm -f -f games/*.o rm -f -f games/ticalc/*.o rm -f -f graphics/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lticalc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORti86 -x./ti86_clib @./ticalc.lst --- Building TS2068 (Spectrum clone) Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +zx -O3 -vn -make-lib -Wn43 *.c cd spectrum ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C time lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' rm -f time.o #zcc +test -D__SPECTRUM__ -O3 -vn -make-lib -Wn43 time.c cd spectrum ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' Nowt todo here (clock is asm) make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C spectrum make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' zcc +test -O3 -vn -make-lib -Wn43 tape_save.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' zcc +test -O3 -vn -make-lib -Wn43 psg_channels.c zcc +test -O3 -vn -make-lib -Wn43 psg_envelope.c zcc +test -O3 -vn -make-lib -Wn43 psg_noise.c zcc +test -O3 -vn -make-lib -Wn43 psg_noise_channels.c zcc +test -O3 -vn -make-lib -Wn43 psg_tone.c zcc +test -O3 -vn -make-lib -Wn43 psg_tone_channels.c zcc +test -O3 -vn -make-lib -Wn43 psg_volume.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -DFORts2068 -x./ts2068_clib @./ts2068.lst --- Building TS2068 (Spectrum clone) ANSI Library --- rm -f stdio/ansi/ts2068/f_ansi_*.o make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +zx -O3 -vn -make-lib -Wn43 *.c cd spectrum ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C time lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' rm -f time.o #zcc +test -D__SPECTRUM__ -O3 -vn -make-lib -Wn43 time.c cd spectrum ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' Nowt todo here (clock is asm) make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C spectrum make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' zcc +test -O3 -vn -make-lib -Wn43 tape_save.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -DFORts2068 -DA80COL -x./ts2068an_clib @./ts2068an.lst --- Building TS2068 High Resolution Graphics Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORgfx2068hr -x./gfx2068hr @./gfx2068hr.lst --- Building ZX Spectrum Graphics Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -x./gfxspectrum @./gfxspectrum.lst --- Building ZX Spectrum Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +zx -O3 -vn -make-lib -Wn43 *.c cd spectrum ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C spectrum make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' zcc +test -O3 -vn -make-lib -Wn43 tape_save.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -x./zx_clib @./zx.lst --- Building ZX Spectrum ANSI Library --- rm -f stdio/ansi/spectrum/f_ansi_char.o make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +zx -O3 -vn -make-lib -Wn43 *.c cd spectrum ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C spectrum make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' zcc +test -O3 -vn -make-lib -Wn43 tape_save.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -DPACKEDFONT -DA64COL -x./zxan_clib @./zxansi.lst --- Building ZXVGS Library --- make -C fcntl lzxvgs make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd zxvgs ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/zxvgs' zcc +zx -O3 -vn -make-lib -Wn43 -DZXVGS open_z88.c sccz80:"open_z88.c" L:17 Warning:#12:Converting far ptr to near ptr make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/zxvgs' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C zxvgs make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/zxvgs' Nothing to do! make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/zxvgs' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -x./zxvgs @./zxvgs.lst --- Building ZX Spectrum Maths Library --- make -C math/zxmath mzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' rm -f *.o* ../../mzx.lib z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -x../.././mzx @zxmlist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' --- Building ZX Spectrum Tiny Maths Library --- make -C math/zxmath mzx_tiny make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' rm -f *.o* ../../mzx_tiny.lib z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -DTINYMODE -x../.././mzx_tiny @zxmlist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' --- Building ZXROM Library --- make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -x./zxrom @./zxrom.lst --- Building ZX Spectrum fcntl libraries --- make -C fcntl lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd spectrum ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum' ---> Building +3 File library <--- cd plus3 ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/plus3' zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 close.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 fabandon.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 findhand.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 freehand.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 open.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 open_z88.c sccz80:"open_z88.c" L:22 Warning:#12:Converting far ptr to near ptr zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 read.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 readbyte.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 write.c zcc +zx -O3 -vn -make-lib -Wn43 -DPLUS3 writebyte.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././p3 @p3list make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/plus3' ---> Building ZX Microdrive File library <--- cd microdrive ; make make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/microdrive' zcc +zx -O3 -vn -make-lib -Wn43 open.c sccz80:"open.c" L:36 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:78 Warning:#9:Converting pointer to integer without cast zcc +zx -O3 -vn -make-lib -Wn43 open_z88.c sccz80:"open_z88.c" L:18 Warning:#12:Converting far ptr to near ptr zcc +zx -O3 -vn -make-lib -Wn43 close.c zcc +zx -O3 -vn -make-lib -Wn43 readbyte.c zcc +zx -O3 -vn -make-lib -Wn43 remove.c zcc +zx -O3 -vn -make-lib -Wn43 rename.c zcc +zx -O3 -vn -make-lib -Wn43 lseek.c zcc +zx -O3 -vn -make-lib -Wn43 fdtell.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././zxmdv @mdvlist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/microdrive' ---> Building ZX BASIC driver library <--- cd zxbasdrv ; make make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/zxbasdrv' zcc +zx -O3 -vn -make-lib -Wn43 open_z88.c sccz80:"open_z88.c" L:18 Warning:#12:Converting far ptr to near ptr zcc +zx -O3 -vn -make-lib -Wn43 read.c zcc +zx -O3 -vn -make-lib -Wn43 write.c zcc +zx -O3 -vn -make-lib -Wn43 rnd_loadblock.c zcc +zx -O3 -vn -make-lib -Wn43 rnd_saveblock.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././zxbasdrv @zxbdlst z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././zxbasdos @zxbdlst2 make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum/zxbasdrv' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/spectrum' cd dummy ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/dummy' ---> Building NDOS library <--- z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././ndos @ndoslist make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/dummy' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C rs232 lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd spectrum ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum' ---> Building ZX Plus RS232 library <--- cd plus3 ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/plus3' zcc +zx -O3 -vn -make-lib -Wn43 rs232_close.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_get.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_init.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_params.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_put.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././rs232plus @p3list make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/plus3' ---> Building Interface 1 RS232 library <--- cd if1 ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/if1' zcc +zx -O3 -vn -make-lib -Wn43 rs232_close.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_get.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_init.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_params.c zcc +zx -O3 -vn -make-lib -Wn43 rs232_put.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././rs232if1 @if1list make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum/if1' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/spectrum' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' --- Building Enterprise 64/128 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C time lenterprise make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd enterprise ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/enterprise' Nowt todo here (clock is asm) make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/enterprise' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lenterprise make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DENTERPRISE bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DENTERPRISE bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C enterprise make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/enterprise' zcc +enterprise -O3 -vn -make-lib -Wn43 exos_set_vmode.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/enterprise' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORenterprise -x./enterprise_clib @./enterprise.lst --- Building Enterprise 64/128 Graphics Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C graphics lenterprise make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics' cd enterprise ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise' zcc +test -O3 -vn -make-lib -Wn43 clg.c zcc +test -O3 -vn -make-lib -Wn43 circle.c zcc +test -O3 -vn -make-lib -Wn43 uncircle.c zcc +test -O3 -vn -make-lib -Wn43 setxy.c zcc +test -O3 -vn -make-lib -Wn43 fill.c zcc +test -O3 -vn -make-lib -Wn43 draw.c zcc +test -O3 -vn -make-lib -Wn43 drawr.c zcc +test -O3 -vn -make-lib -Wn43 drawto.c zcc +test -O3 -vn -make-lib -Wn43 undraw.c zcc +test -O3 -vn -make-lib -Wn43 undrawr.c zcc +test -O3 -vn -make-lib -Wn43 undrawto.c zcc +test -O3 -vn -make-lib -Wn43 plot.c zcc +test -O3 -vn -make-lib -Wn43 unplot.c zcc +test -O3 -vn -make-lib -Wn43 xorplot.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORenterprise -x./gfxep @./gfxep.lst --- Building Enterprise 64/128 High Resolution Graphics Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C graphics lenterprisehr make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics' cd enterprise_hr ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise_hr' zcc +test -O3 -vn -make-lib -Wn43 clg.c zcc +test -O3 -vn -make-lib -Wn43 circle.c zcc +test -O3 -vn -make-lib -Wn43 uncircle.c zcc +test -O3 -vn -make-lib -Wn43 setxy.c zcc +test -O3 -vn -make-lib -Wn43 fill.c zcc +test -O3 -vn -make-lib -Wn43 draw.c zcc +test -O3 -vn -make-lib -Wn43 drawr.c zcc +test -O3 -vn -make-lib -Wn43 drawto.c zcc +test -O3 -vn -make-lib -Wn43 undraw.c zcc +test -O3 -vn -make-lib -Wn43 undrawr.c zcc +test -O3 -vn -make-lib -Wn43 undrawto.c zcc +test -O3 -vn -make-lib -Wn43 plot.c zcc +test -O3 -vn -make-lib -Wn43 unplot.c zcc +test -O3 -vn -make-lib -Wn43 xorplot.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/enterprise_hr' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORenterprisehr -x./gfxephr @./gfxephr.lst --- Building Commodore 128 ANSI Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C c128 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/c128' zcc +test -O3 -vn -make-lib -Wn43 getkeyscia.c Looking for label ciaKeyScan zcc +test -O3 -vn -make-lib -Wn43 getjoyscia.c zcc +test -O3 -vn -make-lib -Wn43 gettimeracia.c zcc +test -O3 -vn -make-lib -Wn43 gettimerbcia.c zcc +test -O3 -vn -make-lib -Wn43 gettodcia.c zcc +test -O3 -vn -make-lib -Wn43 setintctrlcia.c zcc +test -O3 -vn -make-lib -Wn43 settimeracia.c zcc +test -O3 -vn -make-lib -Wn43 settimerbcia.c zcc +test -O3 -vn -make-lib -Wn43 settodcia.c zcc +test -O3 -vn -make-lib -Wn43 timervalcia.c zcc +test -O3 -vn -make-lib -Wn43 todcharcia.c zcc +test -O3 -vn -make-lib -Wn43 todstrcia.c zcc +test -O3 -vn -make-lib -Wn43 is64kvdc.c zcc +test -O3 -vn -make-lib -Wn43 printstrvdc.c zcc +test -O3 -vn -make-lib -Wn43 set64kvdc.c zcc +test -O3 -vn -make-lib -Wn43 set80x50textvdc.c zcc +test -O3 -vn -make-lib -Wn43 setbitmapvdc.c zcc +test -O3 -vn -make-lib -Wn43 setbitmapintvdc.c zcc +test -O3 -vn -make-lib -Wn43 attrsonvdc.c zcc +test -O3 -vn -make-lib -Wn43 attrsoffvdc.c zcc +test -O3 -vn -make-lib -Wn43 printbmivdc.c zcc +test -O3 -vn -make-lib -Wn43 printbmvdc.c zcc +test -O3 -vn -make-lib -Wn43 memtobufvdc.c zcc +test -O3 -vn -make-lib -Wn43 buftomemvdc.c zcc +test -O3 -vn -make-lib -Wn43 circlepointsvdc.c zcc +test -O3 -vn -make-lib -Wn43 circleivdc.c zcc +test -O3 -vn -make-lib -Wn43 clrattrvdc.c zcc +test -O3 -vn -make-lib -Wn43 clrbitmapvdc.c zcc +test -O3 -vn -make-lib -Wn43 clrscrvdc.c zcc +test -O3 -vn -make-lib -Wn43 copymemvdc.c zcc +test -O3 -vn -make-lib -Wn43 copydspvdc.c zcc +test -O3 -vn -make-lib -Wn43 setcursorvdc.c zcc +test -O3 -vn -make-lib -Wn43 ellipsevdc.c zcc +test -O3 -vn -make-lib -Wn43 ellipseivdc.c zcc +test -O3 -vn -make-lib -Wn43 fillattrvdc.c zcc +test -O3 -vn -make-lib -Wn43 filldspvdc.c zcc +test -O3 -vn -make-lib -Wn43 fillmemvdc.c zcc +test -O3 -vn -make-lib -Wn43 linevdc.c zcc +test -O3 -vn -make-lib -Wn43 lineivdc.c zcc +test -O3 -vn -make-lib -Wn43 mapvdc.c Looking for label vdcScrHorz Looking for label vdcScrVert Looking for label vdcScrSize Looking for label vdcAttrMem Looking for label vdcCharMem Looking for label vdcCharMemSize Looking for label vdcCharBytes Looking for label vdcCharVert Looking for label vdcBitMapMemSize zcc +test -O3 -vn -make-lib -Wn43 initpcx.c zcc +test -O3 -vn -make-lib -Wn43 donepcx.c zcc +test -O3 -vn -make-lib -Wn43 decodelinepcx.c zcc +test -O3 -vn -make-lib -Wn43 decodefilepcx.c zcc +test -O3 -vn -make-lib -Wn43 decodelineintpcx.c zcc +test -O3 -vn -make-lib -Wn43 decodefileintpcx.c zcc +test -O3 -vn -make-lib -Wn43 savevdc.c zcc +test -O3 -vn -make-lib -Wn43 restorevdc.c zcc +test -O3 -vn -make-lib -Wn43 setcharvdc.c zcc +test -O3 -vn -make-lib -Wn43 setdsppagevdc.c zcc +test -O3 -vn -make-lib -Wn43 scrollupvdc.c zcc +test -O3 -vn -make-lib -Wn43 scrolldownvdc.c zcc +test -O3 -vn -make-lib -Wn43 winvdc.c zcc +test -O3 -vn -make-lib -Wn43 clrwinattrvdc.c zcc +test -O3 -vn -make-lib -Wn43 clrwinvdc.c zcc +test -O3 -vn -make-lib -Wn43 attacksid.c zcc +test -O3 -vn -make-lib -Wn43 releasesid.c zcc +test -O3 -vn -make-lib -Wn43 clearsid.c zcc +test -O3 -vn -make-lib -Wn43 volumesid.c zcc +test -O3 -vn -make-lib -Wn43 envelopesid.c zcc +test -O3 -vn -make-lib -Wn43 freqsid.c zcc +test -O3 -vn -make-lib -Wn43 pulsewavesid.c zcc +test -O3 -vn -make-lib -Wn43 getmousesid.c zcc +test -O3 -vn -make-lib -Wn43 getpotssid.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/c128' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lc128 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DC128 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DC128 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORc128 -x./c128ansi_clib @./c128ansi.lst z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORc128 -x./c128cpm @./c128cpm.lst --- Building Commodore 128 Base Graphics Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORc128 -x./gfx128 @./gfx128.lst --- Building Commodore 128 High Resolution Graphics Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C graphics lc128 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics' cd c128 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128' zcc +test -O3 -vn -make-lib -Wn43 clg.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128' cd c128_64k ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128_64k' zcc +test -O3 -vn -make-lib -Wn43 clg.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128_64k' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORc128hr -x./gfx128hr @./gfx128hr.lst --- Building Commodore 128 640x480 HRG Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C graphics lc128 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics' cd c128 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128' zcc +test -O3 -vn -make-lib -Wn43 clg.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128' cd c128_64k ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128_64k' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics/c128_64k' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/graphics' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORc128hr480 -x./gfx128hr480 @./gfx128hr480.lst --- Building Amstrad CPC Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C rs232 lcpc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd cpc ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc' ---> Building CPC RS232 library (STI) <--- cd sti ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/sti' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././rs232cpc_sti @stilist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/sti' ---> Building CPC RS232 library (BOOSTER) <--- cd booster ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/booster' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././rs232cpc_booster @boosterlist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/booster' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORcpc -x./cpc_clib @./cpc.lst z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORcpc -x./cpccpm @./cpccpm.lst --- Building Amstrad CPC ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C rs232 lcpc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd cpc ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc' ---> Building CPC RS232 library (STI) <--- cd sti ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/sti' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././rs232cpc_sti @stilist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/sti' ---> Building CPC RS232 library (BOOSTER) <--- cd booster ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/booster' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././rs232cpc_booster @boosterlist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc/booster' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/cpc' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORcpc -x./cpcansi_clib @./cpcansi.lst --- Building Amstrad CPC fcntl Library --- make -C fcntl lcpc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd cpc ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpc' zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ close.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ cpc_openin.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ cpc_openout.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ open.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ open_z88.c sccz80:"open_z88.c" L:30 Warning:#36:In function: open_z88() line 3 sccz80:"open_z88.c" L:30 Warning:#12:Converting far ptr to near ptr sccz80:"open_z88.c" L:37 Warning:#36:In function: open_z88() line 10 sccz80:"open_z88.c" L:37 Warning:#12:Converting far ptr to near ptr sccz80:"open_z88.c" L:37 Warning:#36:In function: open_z88() line 10 sccz80:"open_z88.c" L:37 Warning:#12:Converting far ptr to near ptr sccz80:"open_z88.c" L:45 Warning:#36:In function: open_z88() line 18 sccz80:"open_z88.c" L:45 Warning:#12:Converting far ptr to near ptr sccz80:"open_z88.c" L:45 Warning:#36:In function: open_z88() line 18 sccz80:"open_z88.c" L:45 Warning:#12:Converting far ptr to near ptr zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ read.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ write.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ writebyte.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ readbyte.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpc' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORcpc -x./cpcfs @./cpcfs.lst --- Building Amstrad CPC Maths Libraries --- make -C math/cpcmath make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' make clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' rm -f *.o* *.sym *.map *.err zcc_opt.def *.i amax.asm amin.asm ceil.asm fabs.asm fmod.asm ftoa.asm ftoe.asm cosh.asm sinh.asm tanh.asm atan2.asm atof.asm halfpi.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' make objs make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amax.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amin.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ceil.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fabs.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fmod.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoa.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoe.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ cosh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ sinh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ tanh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atan2.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atof.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ halfpi.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DforCPC464 -x../.././464_math @468list make clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' rm -f *.o* *.sym *.map *.err zcc_opt.def *.i amax.asm amin.asm ceil.asm fabs.asm fmod.asm ftoa.asm ftoe.asm cosh.asm sinh.asm tanh.asm atan2.asm atof.asm halfpi.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' make objs make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amax.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amin.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ceil.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fabs.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fmod.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoa.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoe.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ cosh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ sinh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ tanh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atan2.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atof.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ halfpi.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DforCPC664 -x../.././664_math @468list make clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' rm -f *.o* *.sym *.map *.err zcc_opt.def *.i amax.asm amin.asm ceil.asm fabs.asm fmod.asm ftoa.asm ftoe.asm cosh.asm sinh.asm tanh.asm atan2.asm atof.asm halfpi.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' make objs make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amax.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amin.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ceil.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fabs.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fmod.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoa.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoe.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ cosh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ sinh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ tanh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atan2.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atof.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ halfpi.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DforCPC6128 -x../.././6128_math @468list make clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' rm -f *.o* *.sym *.map *.err zcc_opt.def *.i amax.asm amin.asm ceil.asm fabs.asm fmod.asm ftoa.asm ftoe.asm cosh.asm sinh.asm tanh.asm atan2.asm atof.asm halfpi.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' make objs make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amax.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ amin.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ceil.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fabs.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ fmod.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoa.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ ftoe.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ cosh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ sinh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ tanh.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atan2.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ atof.c zcc +cpc -O3 -vn -make-lib -Wn43 -D__CPC__ -D__NATIVE_MATH__ halfpi.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././cpc_math @cpclist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/cpcmath' --- Building ABC80 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./abc80_clib @./abc80.lst --- Building ABC80 ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./abc80ansi_clib @./abc80ansi.lst --- Building ABC800 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./abc800_clib @./abc800.lst --- Building Jupiter Ace Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C ace make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/ace' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/ace/tape' zcc +test -O3 -vn -make-lib -Wn43 tape_save.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/ace/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/ace' make -C games lace make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DACE bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DACE bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORjupiter -x./ace_clib.lib @./ace.lst --- Building Jupiter Ace ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C ace make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/ace' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/ace/tape' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/ace/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/ace' make -C games lace make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DACE bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DACE bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORjupiter -x./aceansi_clib.lib @./aceansi.lst --- Building Mattel Aquarius Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games laquarius make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DAQUARIUS bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DAQUARIUS bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORaquarius -x./aquarius_clib.lib @./aquarius.lst --- Building Mattel Aquarius ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games laquarius make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DAQUARIUS bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DAQUARIUS bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORaquarius -x./aquansi_clib.lib @./aquansi.lst --- Building CP/M Library --- make -C fcntl lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' ---> Building CP/M File library <--- cd cpm ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpm' zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 _putoffset.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 bios.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 bdos.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 close.c sccz80:"close.c" L:27 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 creat.c sccz80:"creat.c" L:23 Warning:#12:Converting far ptr to near ptr sccz80:"creat.c" L:33 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 change_volume.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 dir_move_first.c sccz80:"dir_move_first.c" L:17 Warning:#17:Expected ';' sccz80:"dir_move_first.c" L:23 Warning:#9:Converting pointer to integer without cast sccz80:"dir_move_first.c" L:26 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 dir_move_next.c sccz80:"dir_move_next.c" L:14 Warning:#9:Converting pointer to integer without cast sccz80:"dir_move_next.c" L:15 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 dir_get_entry_type.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 dir_get_entry_name.c sccz80:"dir_get_entry_name.c" L:29 Warning:#4:Function returns different type to prototype sccz80:"dir_get_entry_name.c" L:29 Warning:#5:Prototype is signed int fn sccz80:"dir_get_entry_name.c" L:29 Warning:#6:Function is signed char *fn zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 dir_get_entry_size.c sccz80:"dir_get_entry_size.c" L:15 Warning:#4:Function returns different type to prototype sccz80:"dir_get_entry_size.c" L:15 Warning:#5:Prototype is unsigned long fn sccz80:"dir_get_entry_size.c" L:15 Warning:#6:Function is signed long fn sccz80:"dir_get_entry_size.c" L:16 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 get_current_volume.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 get_dir_name.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 fdtell.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 getfcb.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 lseek.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 open.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 open_z88.c sccz80:"open_z88.c" L:21 Warning:#12:Converting far ptr to near ptr sccz80:"open_z88.c" L:38 Warning:#36:In function: open_z88() line 22 sccz80:"open_z88.c" L:38 Warning:#12:Converting far ptr to near ptr sccz80:"open_z88.c" L:40 Warning:#9:Converting pointer to integer without cast sccz80:"open_z88.c" L:47 Warning:#8:Converting integer to pointer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 parsefcb.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 read.c sccz80:"read.c" L:66 Warning:#9:Converting pointer to integer without cast sccz80:"read.c" L:67 Warning:#9:Converting pointer to integer without cast sccz80:"read.c" L:70 Warning:#9:Converting pointer to integer without cast sccz80:"read.c" L:71 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 readbyte.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 remove.c sccz80:"remove.c" L:27 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 rename.c sccz80:"rename.c" L:40 Warning:#9:Converting pointer to integer without cast sccz80:"rename.c" L:41 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 setfcb.c zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 write.c sccz80:"write.c" L:58 Warning:#9:Converting pointer to integer without cast sccz80:"write.c" L:60 Warning:#9:Converting pointer to integer without cast sccz80:"write.c" L:64 Warning:#9:Converting pointer to integer without cast sccz80:"write.c" L:67 Warning:#9:Converting pointer to integer without cast zcc +test -D__CPM__ -O3 -vn -make-lib -Wn43 writebyte.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpm' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fclose.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fgetc.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fread.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C time lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd cpm ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/cpm' zcc +test -O3 -vn -make-lib -Wn43 time.c zcc +test -O3 -vn -make-lib -Wn43 clock.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/cpm' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./cpm_clib @./cpm.lst --- Building Tatung Einstein Library --- make msxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/msx/*.o rm -f -f games/*.o rm -f -f games/msx/*.o rm -f -f graphics/*.o rm -f -f graphics/msx/*.o rm -f -f graphics/msx/surface/*.o rm -f -f psg/msx/*.o rm -f -f msx/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lmsx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C msx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' zcc +test -O3 -vn -make-lib -Wn43 msx_blit.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_fill_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_ram_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_calculate_side.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_attr.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_color.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_form.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_mangled_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_vfill_v.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFOReinstein -x./einstein @./einstein.lst --- Building Galaksija Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lgal make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DGAL bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DGAL bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORgal -x./gal_clib @./gal.lst --- Building SORD M5 Library --- make msxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/msx/*.o rm -f -f games/*.o rm -f -f games/msx/*.o rm -f -f graphics/*.o rm -f -f graphics/msx/*.o rm -f -f graphics/msx/surface/*.o rm -f -f psg/msx/*.o rm -f -f msx/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C msx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' zcc +test -O3 -vn -make-lib -Wn43 msx_blit.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_fill_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_ram_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_calculate_side.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_attr.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_color.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_form.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_mangled_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_vfill_v.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORm5 -x./m5_clib @./m5.lst --- Building CCE MC-1000 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lmc1000 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -D__MC1000__ -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lmc1000 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DMC1000 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DMC1000 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORmc1000 -x./mc1000_clib @./mc1000.lst --- Building CCE MC-1000 ANSI Library --- rm -f stdio/ansi/mc1000/f_ansi_char.o make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lmc1000 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -D__MC1000__ -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lmc1000 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DMC1000 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DMC1000 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORmc1000 -DPACKEDFONT -DA64COL -x./mc1000ansi_clib @./mc1000ansi.lst --- Building MSX Library --- make msxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/msx/*.o rm -f -f games/*.o rm -f -f games/msx/*.o rm -f -f graphics/*.o rm -f -f graphics/msx/*.o rm -f -f graphics/msx/surface/*.o rm -f -f psg/msx/*.o rm -f -f msx/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C fcntl lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' ---> Building CP/M File library <--- cd cpm ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpm' make[3]: Nothing to be done for 'z88_fcntl'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/cpm' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fclose.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fgetc.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fread.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C games lmsx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C msx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' zcc +test -O3 -vn -make-lib -Wn43 msx_blit.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_fill_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_ram_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_calculate_side.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_attr.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_color.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_form.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_mangled_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_vfill_v.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORmsx -x./msx_clib @./msx.lst --- Building Memotech MTX Library --- make msxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/msx/*.o rm -f -f games/*.o rm -f -f games/msx/*.o rm -f -f graphics/*.o rm -f -f graphics/msx/*.o rm -f -f graphics/msx/surface/*.o rm -f -f psg/msx/*.o rm -f -f msx/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C games lmsx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C msx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' zcc +test -O3 -vn -make-lib -Wn43 msx_blit.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_fill_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_ram_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_calculate_side.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_attr.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_color.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_form.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_mangled_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_vfill_v.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORmtx -x./mtx_clib @./mtx.lst --- Building Sharp MZ Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./mz_clib @./mz.lst --- Building Sharp MZ ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./mzansi_clib @./mzansi.lst --- Building NASCOM Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORnascom -x./nascom_clib @./nascom.lst --- Building NASCOM ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORnascom -x./nasansi_clib @./nasansi.lst --- Building Grundy NewBrain Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C fcntl lnewbrain make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' ---> Building NewBrain File library <--- cd newbrain ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/newbrain' zcc +newbrain -O3 -vn -make-lib -Wn43 open_z88.c sccz80:"open_z88.c" L:18 Warning:#12:Converting far ptr to near ptr zcc +newbrain -O3 -vn -make-lib -Wn43 read.c zcc +newbrain -O3 -vn -make-lib -Wn43 remove.c zcc +newbrain -O3 -vn -make-lib -Wn43 lseek.c zcc +newbrain -O3 -vn -make-lib -Wn43 rename.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././nbdrv @nbflst make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/newbrain' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C time lnewbrain make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd newbrain ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/newbrain' Nowt todo here (clock is asm) make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/newbrain' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORnewbrain -x./newbrain_clib @./newbrain.lst z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORnewbrain -x./nbcpm_clib @./nbcpm.lst --- Building Amstrad NC100 Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C fcntl lnc make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd nc100 ; make nc_fcntl ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/nc100' zcc +nc -O3 -vn -make-lib -Wn43 lseek.c zcc +nc -O3 -vn -make-lib -Wn43 open_z88.c zcc +nc -O3 -vn -make-lib -Wn43 opendir.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/nc100' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./nc_clib @./nc100.lst --- Building Old School Computer Architecture Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib losca make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -D__OSCA__ -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fclose.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fgetc.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fread.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C rs232 losca make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd osca ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/osca' ---> Building OSCA RS232 library <--- z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././rs232osca @oscalist make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/osca' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C sdcard clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sdcard' rm -f *.sym *.map zcc_opt.def *.o* rm -f osca/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sdcard' make -C fcntl losca make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd osca ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca' ---> Building basic FLOS file library <--- cd flos ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flos' zcc +osca -O3 -vn -make-lib -Wn43 open.c sccz80:"open.c" L:36 Warning:#36:In function: open() line 9 sccz80:"open.c" L:36 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:45 Warning:#36:In function: open() line 18 sccz80:"open.c" L:45 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:46 Warning:#36:In function: open() line 19 sccz80:"open.c" L:46 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:47 Warning:#36:In function: open() line 20 sccz80:"open.c" L:47 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:49 Warning:#36:In function: open() line 22 sccz80:"open.c" L:49 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:57 Warning:#36:In function: open() line 30 sccz80:"open.c" L:57 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:60 Warning:#36:In function: open() line 33 sccz80:"open.c" L:60 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:61 Warning:#36:In function: open() line 34 sccz80:"open.c" L:61 Warning:#12:Converting far ptr to near ptr zcc +osca -O3 -vn -make-lib -Wn43 open_z88.c sccz80:"open_z88.c" L:18 Warning:#12:Converting far ptr to near ptr zcc +osca -O3 -vn -make-lib -Wn43 close.c zcc +osca -O3 -vn -make-lib -Wn43 read.c zcc +osca -O3 -vn -make-lib -Wn43 readbyte.c zcc +osca -O3 -vn -make-lib -Wn43 write.c sccz80:"write.c" L:17 Warning:#4:Function returns different type to prototype sccz80:"write.c" L:17 Warning:#5:Prototype is unsigned int fn sccz80:"write.c" L:17 Warning:#6:Function is signed int fn zcc +osca -O3 -vn -make-lib -Wn43 writebyte.c sccz80:"writebyte.c" L:25 Warning:#36:In function: writebyte() line 8 sccz80:"writebyte.c" L:25 Warning:#13:Pointer/pointer type mismatch sccz80:"writebyte.c" L:25 Warning:#34:Func expects: signed char * sccz80:"writebyte.c" L:25 Warning:#35:Func gets: signed int * zcc +osca -O3 -vn -make-lib -Wn43 remove.c zcc +osca -O3 -vn -make-lib -Wn43 rename.c zcc +osca -O3 -vn -make-lib -Wn43 mkdir.c cpp: line 15, Warning: Wrong number of macro arguments for "mkdir" extern int __FASTCALL__ mkdir(char *dirname) zcc +osca -O3 -vn -make-lib -Wn43 lseek.c zcc +osca -O3 -vn -make-lib -Wn43 fdtell.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././flosdos @floslist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flos' ---> Building FLOS multi file library <--- cd flosmulti ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flosmulti' zcc +osca -O3 -vn -make-lib -Wn43 open.c sccz80:"open.c" L:33 Warning:#36:In function: open() line 6 sccz80:"open.c" L:33 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:33 Warning:#8:Converting integer to pointer without cast sccz80:"open.c" L:46 Warning:#36:In function: open() line 19 sccz80:"open.c" L:46 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:55 Warning:#36:In function: open() line 28 sccz80:"open.c" L:55 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:56 Warning:#36:In function: open() line 29 sccz80:"open.c" L:56 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:57 Warning:#36:In function: open() line 30 sccz80:"open.c" L:57 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:59 Warning:#36:In function: open() line 32 sccz80:"open.c" L:59 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:67 Warning:#36:In function: open() line 40 sccz80:"open.c" L:67 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:70 Warning:#36:In function: open() line 43 sccz80:"open.c" L:70 Warning:#12:Converting far ptr to near ptr sccz80:"open.c" L:71 Warning:#36:In function: open() line 44 sccz80:"open.c" L:71 Warning:#12:Converting far ptr to near ptr zcc +osca -O3 -vn -make-lib -Wn43 open_z88.c sccz80:"open_z88.c" L:18 Warning:#12:Converting far ptr to near ptr zcc +osca -O3 -vn -make-lib -Wn43 close.c zcc +osca -O3 -vn -make-lib -Wn43 read.c zcc +osca -O3 -vn -make-lib -Wn43 readbyte.c zcc +osca -O3 -vn -make-lib -Wn43 write.c sccz80:"write.c" L:17 Warning:#4:Function returns different type to prototype sccz80:"write.c" L:17 Warning:#5:Prototype is unsigned int fn sccz80:"write.c" L:17 Warning:#6:Function is signed int fn zcc +osca -O3 -vn -make-lib -Wn43 writebyte.c sccz80:"writebyte.c" L:36 Warning:#36:In function: writebyte() line 19 sccz80:"writebyte.c" L:36 Warning:#13:Pointer/pointer type mismatch sccz80:"writebyte.c" L:36 Warning:#34:Func expects: signed char * sccz80:"writebyte.c" L:36 Warning:#35:Func gets: signed int * zcc +osca -O3 -vn -make-lib -Wn43 remove.c zcc +osca -O3 -vn -make-lib -Wn43 rename.c zcc +osca -O3 -vn -make-lib -Wn43 mkdir.c cpp: line 15, Warning: Wrong number of macro arguments for "mkdir" int mkdir(char *dirname) zcc +osca -O3 -vn -make-lib -Wn43 lseek.c zcc +osca -O3 -vn -make-lib -Wn43 fdtell.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././flosxdos @floslist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flosmulti' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORosca -DSDHC_SUPPORT -x./osca_clib.lib @./osca.lst --- Building OSCA Library ANSI VT version --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib losca make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -D__OSCA__ -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fclose.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fgetc.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fread.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C rs232 losca make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232' cd osca ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rs232/osca' ---> Building OSCA RS232 library <--- z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././rs232osca @oscalist make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232/osca' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rs232' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C sdcard clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sdcard' rm -f *.sym *.map zcc_opt.def *.o* rm -f osca/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sdcard' make -C fcntl losca make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' cd osca ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca' ---> Building basic FLOS file library <--- cd flos ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flos' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././flosdos @floslist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flos' ---> Building FLOS multi file library <--- cd flosmulti ; make ; cd .. make[4]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flosmulti' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../../.././flosxdos @floslist make[4]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca/flosmulti' make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/osca' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORosca -DSDHC_SUPPORT -x./oscaansi_clib.lib @./oscaansi.lst --- Building Sharp OZ family ANSI Library --- rm -f -f stdio/ansi/oz/f_ansi_char.o make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C oz make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/oz' rm -f emu/ozgfx/*.o* cd oztime ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/oz/oztime' zcc +test -DOZ -D__OZ__ -O3 -vn -make-lib -Wn43 *.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/oz/oztime' cd ozinput ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/oz/ozinput' zcc +test -DOZ -D__OZ__ -O3 -vn -make-lib -Wn43 *.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/oz/ozinput' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/oz' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games loz make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTICALC bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORoz -DPACKEDFONT -x./ozansi_clib @./ozansi.lst --- Building Philips P2000 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lp2000 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DP2000 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DDP2000 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORp2000 -x./p2000_clib @./p2000.lst --- Building Philips P2000 ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lp2000 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DP2000 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DDP2000 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORp2000 -x./p2000ansi_clib @./p2000ansi.lst --- Building PC6001 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORpc6001 -x./pc6001_clib @./pc6001.lst --- Building PC6001 ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORpc6001 -x./pc6001ansi_clib @./pc6001ansi.lst --- Building Sprinter Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +zx -O3 -vn -make-lib -Wn43 *.c cd spectrum ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C fcntl lpps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' ---> Building P.P.Sprinter File library <--- cd sprinter ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/sprinter' zcc +pps -O3 -vn -make-lib -Wn43 close.c zcc +pps -O3 -vn -make-lib -Wn43 creat.c zcc +pps -O3 -vn -make-lib -Wn43 lseek.c zcc +pps -O3 -vn -make-lib -Wn43 open.c zcc +pps -O3 -vn -make-lib -Wn43 open_z88.c zcc +pps -O3 -vn -make-lib -Wn43 read.c zcc +pps -O3 -vn -make-lib -Wn43 write.c zcc +pps -O3 -vn -make-lib -Wn43 writebyte.c zcc +pps -O3 -vn -make-lib -Wn43 readbyte.c zcc +pps -O3 -vn -make-lib -Wn43 getcwd.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/sprinter' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C time lpps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd sprinter ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/sprinter' zcc +test -O3 -vn -make-lib -Wn43 clock.c zcc +test -O3 -vn -make-lib -Wn43 time.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/sprinter' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C spectrum make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' zcc +test -O3 -vn -make-lib -Wn43 tape_save.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -x./pps_clib @./pps.lst --- Building Sprinter Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +zx -O3 -vn -make-lib -Wn43 *.c cd spectrum ; cd .. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C fcntl lpps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' ---> Building P.P.Sprinter File library <--- cd sprinter ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/sprinter' make[3]: Nothing to be done for 'z88_fcntl'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl/sprinter' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/fcntl' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C time lpps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd sprinter ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/sprinter' make[3]: Nothing to be done for 'all'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/sprinter' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C spectrum make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i tape_save.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' zcc +test -O3 -vn -make-lib -Wn43 tape_save.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/spectrum' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx -x./ppsansi_clib @./ppsansi.lst --- Building Xircom Rex Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C rex make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rex' cd graphics ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/rex/graphics' zcc +rex -O3 -vn -make-lib -Wn43 DsDisplayEllipse.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rex/graphics' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/rex' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORrex -x./rex_clib.lib @./rex6000.lst --- Building RCM2/3000 Library --- --- WARNING: RCM2/3000 is temporarily disabled - no library will be produced --- make -C stdlib clean make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f *.o* *.sym *.map zcc_opt.def *.i sleep.asm csleep.asm delay.asm unbcd.asm wcmatch.asm getopt.asm cd z88 ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/z88' rm -f *.o* *.sym *.map zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/z88' cd spectrum ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/spectrum' rm -f *.o* *.sym *.map zcc_opt.def make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib/spectrum' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' #z80asm -RCMX000 -d -ns -nm -Mo -DFORrcmx000 -x./rcmx000_clib @./rcmx000.lst --- Building SC-3000 System Library --- make msxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/msx/*.o rm -f -f games/*.o rm -f -f games/msx/*.o rm -f -f graphics/*.o rm -f -f graphics/msx/*.o rm -f -f graphics/msx/surface/*.o rm -f -f psg/msx/*.o rm -f -f msx/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C msx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' zcc +test -O3 -vn -make-lib -Wn43 msx_blit.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_fill_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_ram_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_calculate_side.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_attr.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_color.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_form.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_mangled_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_vfill_v.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORsc3000 -x./sc3000_clib @./sc3000.lst --- Building Sega Master System Library --- make msxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/msx/*.o rm -f -f games/*.o rm -f -f games/msx/*.o rm -f -f graphics/*.o rm -f -f graphics/msx/*.o rm -f -f graphics/msx/surface/*.o rm -f -f psg/msx/*.o rm -f -f msx/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C msx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' zcc +test -O3 -vn -make-lib -Wn43 msx_blit.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_fill_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_ram_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_calculate_side.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_attr.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_color.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_form.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_mangled_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_vfill_v.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORsms -x./sms_clib @./sms.lst --- Building Spectravideo Library --- make msxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f stdio/msx/*.o rm -f -f games/*.o rm -f -f games/msx/*.o rm -f -f graphics/*.o rm -f -f graphics/msx/*.o rm -f -f graphics/msx/surface/*.o rm -f -f psg/msx/*.o rm -f -f msx/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C games lmsx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DMSX bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C msx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/msx' zcc +test -O3 -vn -make-lib -Wn43 msx_blit.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_fill_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_blit_ram_vram.c zcc +test -O3 -vn -make-lib -Wn43 msx_calculate_side.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_put_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_attr.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_color.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_char_form.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_mangled_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_16.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_8.c zcc +test -O3 -vn -make-lib -Wn43 msx_set_sprite_mode.c zcc +test -O3 -vn -make-lib -Wn43 msx_vfill_v.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/msx' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORsvi -x./svi_clib @./svi.lst --- Building Sam Coupe Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C time lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' rm -f time.o #zcc +test -D__SPECTRUM__ -O3 -vn -make-lib -Wn43 time.c cd spectrum ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' Nowt todo here (clock is asm) make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORsam -x./sam_clib @./sam.lst --- Building Sam Coupe ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C time lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' rm -f time.o #zcc +test -D__SPECTRUM__ -O3 -vn -make-lib -Wn43 time.c cd spectrum ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' Nowt todo here (clock is asm) make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/spectrum' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORsam -x./samansi_clib @./samansi.lst --- Building Sorcerer Exidy Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORsorcerer -x./sorcerer_clib @./sorcerer.lst --- Building S-OS (The Sentinel) Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio lcpm make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fclose.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fgetc.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -D__CPM__ fread.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C sos make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sos' cd tape ; make clean ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sos/tape' rm -f *.o* *.sym *.map zcc_opt.def *.i rnd_saveblock.asm rnd_loadblock.asm tape_save.asm tape_save_block.asm tape_load.asm tape_load_block.asm make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sos/tape' cd tape ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sos/tape' zcc +test -DBUILDING_SOSLIB -O3 -vn -make-lib -Wn43 rnd_saveblock.c zcc +test -DBUILDING_SOSLIB -O3 -vn -make-lib -Wn43 rnd_loadblock.c zcc +test -DBUILDING_SOSLIB -O3 -vn -make-lib -Wn43 tape_save.c sccz80:"tape_save.c" L:18 Warning:#9:Converting pointer to integer without cast zcc +test -DBUILDING_SOSLIB -O3 -vn -make-lib -Wn43 tape_save_block.c sccz80:"tape_save_block.c" L:19 Warning:#9:Converting pointer to integer without cast zcc +test -DBUILDING_SOSLIB -O3 -vn -make-lib -Wn43 tape_load.c sccz80:"tape_load.c" L:18 Warning:#9:Converting pointer to integer without cast zcc +test -DBUILDING_SOSLIB -O3 -vn -make-lib -Wn43 tape_load_block.c sccz80:"tape_load_block.c" L:19 Warning:#9:Converting pointer to integer without cast make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sos/tape' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sos' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORsos -x./sos_clib.lib @./sos.lst --- Building TRS 80 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games ltrs80 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DTRS80 bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DTRS80 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORtrs80 -x./trs80_clib @./trs80.lst --- Building Philips VG5000 Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lvg5k make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_play.c # This piezo speaker has to be accessed in its own way make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORvg5k -x./vg5k_clib @./vg5k.lst --- Building Philips VG5000 ANSI Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lvg5k make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_play.c # This piezo speaker has to be accessed in its own way make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORvg5k -x./vg5kansi_clib @./vg5kansi.lst --- Building VZ200/300 Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lvz make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORvz -x./vz_clib @./vz200.lst --- Building VZ200/300 ANSI Library --- make gfxdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f graphics/*.o rm -f -f graphics/c128/*.o rm -f -f graphics/ticalc/*.o rm -f -f graphics/gray/*.o rm -f -f graphics/gray/ticalc/*.o rm -f -f graphics/spectrum/*.o rm -f -f graphics/z88/*.o rm -f -f graphics/text/*.o rm -f -f graphics/text6/*.o rm -f -f graphics/x11/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lvz make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DVZ bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORvz -x./vzansi_clib @./vzansi.lst --- Building Canon X-07 Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./x07_clib @./x07.lst --- Building Embedded (ns16450) Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio gen make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORembedded -x./embedded_clib @./embedded.lst --- Building Test System Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x./test_clib @./test.lst --- Building Preemptive threading Library --- make -C threading/preempt make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/threading/preempt' zcc +test -O3 -vn -make-lib -Wn43 thread_exit.c zcc +test -O3 -vn -make-lib -Wn43 sem_getvalue.c zcc +test -O3 -vn -make-lib -Wn43 thread_manager_start.c zcc +test -O3 -vn -make-lib -Wn43 get_task.c zcc +test -O3 -vn -make-lib -Wn43 roundrobin_scheduler.c zcc +test -O3 -vn -make-lib -Wn43 thread_manager_init_real.c zcc +test -O3 -vn -make-lib -Wn43 sem_destroy.c zcc +test -O3 -vn -make-lib -Wn43 sem_init.c zcc +test -O3 -vn -make-lib -Wn43 sem_post.c zcc +test -O3 -vn -make-lib -Wn43 thread_manager.c zcc +test -O3 -vn -make-lib -Wn43 sem_wait.c zcc +test -O3 -vn -make-lib -Wn43 thread_create.c z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -x../.././preempt thread_exit.o sem_getvalue.o thread_manager_start.o get_task.o roundrobin_scheduler.o thread_manager_init_real.o sem_destroy.o sem_init.o sem_post.o thread_manager.o sem_wait.o thread_create.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/threading/preempt' --- Building Sharp X1 ANSI Library --- make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lx1 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -D__X1__ -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C time lx1 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time' cd x1 ; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/time/x1' zcc +test -O3 -vn -make-lib -Wn43 clock.c zcc +test -O3 -vn -make-lib -Wn43 time.c make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time/x1' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/time' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make -C x1 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/x1' zcc +test -O3 -vn -make-lib -Wn43 subcpu_command.c zcc +test -O3 -vn -make-lib -Wn43 subcpu_set.c zcc +test -O3 -vn -make-lib -Wn43 subcpu_get.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/x1' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORx1 -x./x1ansi_clib @./x1ansi.lst --- Building ZX80 Library --- make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib lzx80 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +zx80 -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 closeall.c zcc +test -O3 -vn -make-lib -Wn43 fabandon.c zcc +test -O3 -vn -make-lib -Wn43 fchkstd.c zcc +test -O3 -vn -make-lib -Wn43 fdopen.c zcc +test -O3 -vn -make-lib -Wn43 feof.c zcc +test -O3 -vn -make-lib -Wn43 fgetpos.c zcc +test -O3 -vn -make-lib -Wn43 fgets.c zcc +test -O3 -vn -make-lib -Wn43 fgets_cons.c sccz80:"fgets_cons.c" L:17 Warning:#4:Function returns different type to prototype sccz80:"fgets_cons.c" L:17 Warning:#5:Prototype is signed char *fn sccz80:"fgets_cons.c" L:17 Warning:#6:Function is signed int fn zcc +test -O3 -vn -make-lib -Wn43 fopen.c zcc +test -O3 -vn -make-lib -Wn43 fopen_z88.c zcc +test -O3 -vn -make-lib -Wn43 fputs_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen.c zcc +test -O3 -vn -make-lib -Wn43 fseek.c zcc +test -O3 -vn -make-lib -Wn43 ftell.c zcc +test -O3 -vn -make-lib -Wn43 fwrite.c zcc +test -O3 -vn -make-lib -Wn43 printk.c sccz80:"printk.c" L:55 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 printn.c zcc +test -O3 -vn -make-lib -Wn43 puts.c zcc +test -O3 -vn -make-lib -Wn43 ungetc.c zcc +test -O3 -vn -make-lib -Wn43 vfprintf_mini.c Looking for label put_char zcc +test -O3 -vn -make-lib -Wn43 fclose.c zcc +test -O3 -vn -make-lib -Wn43 fgetc.c zcc +test -O3 -vn -make-lib -Wn43 fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 fread.c cd 8080; make ; cd .. make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[3]: Nothing to be done for 'generic'. make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio/8080' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' zcc +test -O3 -vn -make-lib -Wn43 fprintf.c zcc +test -O3 -vn -make-lib -Wn43 fscanf.c zcc +test -O3 -vn -make-lib -Wn43 itou.c sccz80:"itou.c" L:27 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 ltoa_any.c zcc +test -O3 -vn -make-lib -Wn43 printf.c zcc +test -O3 -vn -make-lib -Wn43 scanf.c zcc +test -O3 -vn -make-lib -Wn43 sprintf.c zcc +test -O3 -vn -make-lib -Wn43 sscanf.c zcc +test -O3 -vn -make-lib -Wn43 utoi.c zcc +test -O3 -vn -make-lib -Wn43 vfprintf_comp.c zcc +test -O3 -vn -make-lib -Wn43 vfprintf_fp.c zcc +test -O3 -vn -make-lib -Wn43 vfscanf.c sccz80:"vfscanf.c" L:32 Warning:#8:Converting integer to pointer without cast zcc +test -O3 -vn -make-lib -Wn43 vsprintf.c zcc +test -O3 -vn -make-lib -Wn43 vsscanf.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' zcc +test -O3 -vn -make-lib -Wn43 longjmp.c zcc +test -O3 -vn -make-lib -Wn43 setjmp.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' zcc +test -O3 -vn -make-lib -Wn43 assert.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lzx make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_frequency.c zcc +test -O3 -vn -make-lib -Wn43 -DSPECTRUM bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C psg make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' zcc +test -O3 -vn -make-lib -Wn43 psg_channels.c zcc +test -O3 -vn -make-lib -Wn43 psg_envelope.c zcc +test -O3 -vn -make-lib -Wn43 psg_noise.c zcc +test -O3 -vn -make-lib -Wn43 psg_noise_channels.c zcc +test -O3 -vn -make-lib -Wn43 psg_tone.c zcc +test -O3 -vn -make-lib -Wn43 psg_tone_channels.c zcc +test -O3 -vn -make-lib -Wn43 psg_volume.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx80 -x./zx80_clib @./zx80.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' --- Building ZX81 Library --- make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY closeall.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fabandon.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fchkstd.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fdopen.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY feof.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgetpos.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgets.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgets_cons.c sccz80:"fgets_cons.c" L:17 Warning:#4:Function returns different type to prototype sccz80:"fgets_cons.c" L:17 Warning:#5:Prototype is signed char *fn sccz80:"fgets_cons.c" L:17 Warning:#6:Function is signed int fn zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fopen.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fopen_z88.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fputs_callee.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY freopen.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fseek.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ftell.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fwrite.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY printk.c sccz80:"printk.c" L:55 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY printn.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY puts.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ungetc.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfprintf_mini.c Looking for label put_char zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fclose.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgetc.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fread.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fprintf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fscanf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY itou.c sccz80:"itou.c" L:27 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ltoa_any.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY printf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY scanf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY sprintf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY sscanf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY utoi.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfprintf_comp.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfprintf_fp.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfscanf.c sccz80:"vfscanf.c" L:32 Warning:#8:Converting integer to pointer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vsprintf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vsscanf.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY longjmp.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY setjmp.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY assert.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lzx81 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +zx81 -O3 -vn -make-lib -Wn43 -DZX81 bit_frequency.c zcc +zx81 -O3 -vn -make-lib -Wn43 -DZX81 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C psg generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_channels.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_envelope.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_noise.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_noise_channels.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_tone.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_tone_channels.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_volume.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81 -x./zx81_clib @./zx81.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' --- Building ZX81 ANSI Library --- make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' rm -f stdio/ansi/zx81/f_ansi_char.o make -C strings make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/strings' rm -f strlcat_callee.o rm -f strlcpy_callee.o rm -f strlen.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/strings' make -C stdlib generic make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' rm -f delay.o rm -f sleep.o rm -f csleep.o rm -f inp.o rm -f outp_callee.o rm -f randomize.o zcc +test -O3 -vn -make-lib -Wn43 *.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdlib' make -C stdio generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/stdio' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY closeall.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fabandon.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fchkstd.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fdopen.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY feof.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgetpos.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgets.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgets_cons.c sccz80:"fgets_cons.c" L:17 Warning:#4:Function returns different type to prototype sccz80:"fgets_cons.c" L:17 Warning:#5:Prototype is signed char *fn sccz80:"fgets_cons.c" L:17 Warning:#6:Function is signed int fn zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fopen.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fopen_z88.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fputs_callee.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY freopen.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fseek.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ftell.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fwrite.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY printk.c sccz80:"printk.c" L:55 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY printn.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY puts.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ungetc.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfprintf_mini.c Looking for label put_char zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fclose.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fgetc.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fputc_callee.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY freopen_z88.c sccz80:"freopen_z88.c" L:56 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fread.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/stdio' make -C printflike generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/printflike' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fprintf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY fscanf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY itou.c sccz80:"itou.c" L:27 Warning:#9:Converting pointer to integer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY ltoa_any.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY printf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY scanf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY sprintf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY sscanf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY utoi.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfprintf_comp.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfprintf_fp.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vfscanf.c sccz80:"vfscanf.c" L:32 Warning:#8:Converting integer to pointer without cast zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vsprintf.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY vsscanf.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/printflike' make -C setjmp generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY longjmp.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY setjmp.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/setjmp' make -C assert generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/assert' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY assert.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/assert' make gamesdeps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f games/*.o make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' make -C games lzx81 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/games' zcc +zx81 -O3 -vn -make-lib -Wn43 -DZX81 bit_frequency.c zcc +zx81 -O3 -vn -make-lib -Wn43 -DZX81 bit_play.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/games' make -C psg generic_iy make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_channels.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_envelope.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_noise.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_noise_channels.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_tone.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_tone_channels.c zcc +test -O3 -vn -make-lib -Wn43 -Ca-IXIY psg_volume.c make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81 -DPACKEDFONT -DA64COL -x./zx81ansi_clib @./zx81ansi.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' --- Building ZX81 Standard Graphics Library --- make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81 -x./gfx81 @./gfx81.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' --- Building ZX81 UDG based Graphics Library --- make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81udg -x./gfx81udg @./gfx81udg.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' --- Building ZX81 High Resolution Libraries (64 rows) --- make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81hr64 -x./gfx81hr64 @./gfx81hr.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81hr64 -x./gfx81arx64 @./gfx81arx.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81mt64 -x./gfx81mt64 @./gfx81mt.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' --- Building ZX81 High Resolution Libraries (192 rows) --- make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81hr192 -x./gfx81hr192 @./gfx81hr.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81hr192 -x./gfx81arx192 @./gfx81arx.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81mt192 -x./gfx81mt192 @./gfx81mt.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -IXIY -DFORzx81g007 -x./gfx81g007 @./gfx81g007.lst make zx81deps make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' rm -f -f assert/*.o rm -f -f setjmp/*.o rm -f -f printflike/*.o rm -f -f strings/*.o rm -f -f stdlib/*.o rm -f -f stdio/*.o rm -f -f stdio/zx81/*.o rm -f -f stdio_new/stream-general/*.o rm -f -f stdio_new/stream-out/stdio_basechar.o rm -f -f stdio_new/stream-general/stdio_atou.o rm -f -f stdio/ansi/zx81/*.o rm -f -f input/spectrum/*.o rm -f -f input/zx81/*.o rm -f -f games/*.o rm -f -f graphics/*.o rm -f -f graphics/zx81/*.o rm -f -f graphics/zx81/hr/*.o rm -f -f graphics/zx81/udg/*.o rm -f -f graphics/gray/*.o rm -f -f zx81/*.o rm -f -f zx81/tape/*.o rm -f -f zx81/basic/*.o rm -f -f time/zx81/*.o make -C psg clean make[3]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/psg' rm -f -f aquarius/*.o rm -f -f cpc/*.o rm -f -f mc1000/*.o rm -f -f msx/*.o rm -f -f pc6001/*.o rm -f -f spectrum/*.o rm -f -f ts2068/*.o rm -f -f x1/*.o rm -f -f zx81/*.o rm -f *.o* *.sym *.map zcc_opt.def *.i make[3]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/psg' make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' --- Building ZX 81 Maths Library --- make -C math/zxmath m81 make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' rm -f *.o* ../../m81.lib z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx81 -x../.././m81 @zxmlist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' --- Building ZX 81 Tiny Maths Library --- make -C math/zxmath m81_tiny make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' rm -f *.o* ../../m81_tiny.lib z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -DFORzx81 -DTINYMODE -x../.././m81_tiny @zxmlist make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/math/zxmath' make -C sprites/software/sp1 sp1-all make[2]: Entering directory '/builddir/build/BUILD/z88dk/libsrc/sprites/software/sp1' --- SP1 Software Sprite Engine --- Making default build for all targets Results in z88dk/libsrc/sprites/software/sp1/{target} Making sp1-spectrum z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -xspectrum/sp1 @spectrum.lst Making sp1-ts2068hr z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -xts2068hr/sp1 @ts2068hr.lst Making sp1-zx81hr z80asm -d -ns -nm -Mo -I/builddir/build/BUILD/z88dk/lib/config//../ -xzx81hr/sp1 -IXIY @zx81hr.lst make[2]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc/sprites/software/sp1' make[1]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' cd libsrc ; make install make[1]: Entering directory '/builddir/build/BUILD/z88dk/libsrc' cp ./*.lib ../lib/clibs make[1]: Leaving directory '/builddir/build/BUILD/z88dk/libsrc' + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.MSuuqr + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64 ++ dirname /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64 + cd z88dk + export Z80_OZFILES=/usr/share/z88dk-1.10.1/lib/ + Z80_OZFILES=/usr/share/z88dk-1.10.1/lib/ + export ZCCCFG=/usr/share/z88dk-1.10.1/lib/config/ + ZCCCFG=/usr/share/z88dk-1.10.1/lib/config/ + make install install-libs DESTDIR=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64 mkdir -p -m 755 /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk mkdir -p -m 755 /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib mkdir -p -m 755 /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/clibs mkdir -p -m 755 /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/config cd src/appmake ; make PREFIX=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/appmake' install appmake /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/appmake' cd src/copt ; make PREFIX=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/copt' install copt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/copt' cd src/cpp ; make PREFIX=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/cpp' install zcpp /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/cpp' cd src/sccz80 ; make PREFIX=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/sccz80' install -m 755 sccz80 /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/sccz80' cd src/z80asm ; make PREFIX=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/z80asm' install z80asm /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin/ install asmpp.pl /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/z80asm' cd src/zcc ; make PREFIX=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr install make[1]: Entering directory '/builddir/build/BUILD/z88dk/src/zcc' install zcc /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/bin/ make[1]: Leaving directory '/builddir/build/BUILD/z88dk/src/zcc' ./config.sh /usr/share/z88dk/ z88 cp -R -p include /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk cp -R -p lib /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk find /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk -type f -exec chmod 644 {} \; find /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk -type d -exec chmod 755 {} \; mkdir -p /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/config cp -R lib/config/* /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/config/ find /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/config -type f | xargs chmod 644 mkdir -p /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/clibs cp -R lib/clibs/* /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/clibs/ find /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64//usr/share/z88dk/lib/clibs -type f | xargs chmod 644 + mkdir -p /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/man/man3z + cp -p netman/man3z/DeviceOffline.3 netman/man3z/DeviceOnline.3 netman/man3z/QueryPackage.3 netman/man3z/byteorder.3 netman/man3z/getnetbyname.3 netman/man3z/getnetbynumber.3 netman/man3z/getprotobyname.3 netman/man3z/getprotobynumber.3 netman/man3z/getservbyname.3 netman/man3z/getservbyport.3 netman/man3z/getservprotobyname.3 netman/man3z/getservprotobynumber.3 netman/man3z/htonl.3 netman/man3z/htons.3 netman/man3z/ntohl.3 netman/man3z/ntohs.3 netman/man3z/pktdrive.3 netman/man3z/resolve.3 netman/man3z/reverse_addr_lookup.3 netman/man3z/sock_abort.3 netman/man3z/sock_close.3 netman/man3z/sock_closed.3 netman/man3z/sock_dataready.3 netman/man3z/sock_flush.3 netman/man3z/sock_listen.3 netman/man3z/sock_open.3 netman/man3z/sock_opened.3 netman/man3z/sock_putc.3 netman/man3z/sock_puts.3 netman/man3z/sock_read.3 netman/man3z/sock_shutdown.3 netman/man3z/sock_write.3 netman/man3z/tcp_RegCatchall.3 netman/man3z/tcp_calloc.3 netman/man3z/tcp_free.3 netman/man3z/tcp_malloc.3 netman/man3z/tcp_pagein.3 netman/man3z/tcp_pageout.3 /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/man/man3z + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig /sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 + /usr/lib/rpm/brp-python-hardlink + /usr/lib/rpm/redhat/brp-mangle-shebangs Processing files: z88dk-1.10.1-12.20150709cvs.fc28.riscv64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.J0T5ew + umask 022 + cd /builddir/build/BUILD + cd z88dk + DOCDIR=/builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/apps.html doc/faq.html doc/far.html doc/farz88.html doc/history.html doc/z80asm.html doc/zcc.html /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/dstar.gif doc/enigma.gif /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/copt.man /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/compile.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/cpc.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/embedded.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/error.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/farmods.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/fileio.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/lib3d.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/options.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/packages.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/platforms.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/retarget.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/stdio.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/ti.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/z80asm.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr doc/zxscrdrv.txt /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr EXTENSIONS /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr LICENSE /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + cp -pr examples /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64/usr/share/doc/z88dk + exit 0 Provides: z88dk = 1.10.1-12.20150709cvs.fc28 z88dk(riscv-64) = 1.10.1-12.20150709cvs.fc28 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/perl ld-linux-riscv64-lp64d.so.1()(64bit) ld-linux-riscv64-lp64d.so.1(GLIBC_2.27)(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.27)(64bit) perl(Capture::Tiny) perl(Data::Dump) perl(File::Basename) perl(File::Spec) perl(IO::File) perl(Iterator::Simple) perl(Iterator::Simple::Lookahead) perl(Regexp::Common) perl(integer) perl(strict) perl(warnings) rtld(GNU_HASH) Conflicts: z80asm Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64 Wrote: /builddir/build/SRPMS/z88dk-1.10.1-12.20150709cvs.fc28.src.rpm Wrote: /builddir/build/RPMS/riscv64/z88dk-1.10.1-12.20150709cvs.fc28.riscv64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.M54vBK + umask 022 + cd /builddir/build/BUILD + cd z88dk + /usr/bin/rm -rf /builddir/build/BUILDROOT/z88dk-1.10.1-12.20150709cvs.fc28.riscv64 + exit 0 + touch /buildok + cleanup + set +e + sync + sleep 5 + sync + poweroff Terminated ++ cleanup ++ set +e ++ sync ++ sleep 5 Terminated +++ cleanup +++ set +e +++ sync +++ sleep 5 +++ sync +++ poweroff