summaryrefslogtreecommitdiff
path: root/opcodes.asm
AgeCommit message (Collapse)Author
2010-11-09Woops, forgot to delete two comments.Duncan Smith
2010-11-09Added guards around all routines that touch ePC or eSP.Duncan Smith
These guards have one major fault I can see. I put them as early in the routine as possible, but it's still a distinct possibility that the 68k interrupt will fire between move.b (epc)+,d0 in macro DONE of one instruction and the call to HOLD_INTS in the following instruction. I don't have a good solution to this. I can use the hardware interrupt holding support to make everything a critical section except for the cycle gap before that instruction, but that makes _every_ instruction 24 cycles slower. I don't consider that an acceptable solution.
2010-09-14Conditional jumps work now.Duncan Smith
Holy shit that was a hairy debug session. I have a lot to look forward to.
2010-09-14Trivial changes.Duncan Smith
2010-09-13CCF flags :(Duncan Smith
2010-09-13Documentation updateDuncan Smith
2010-09-13Timing correction macro added (as yet nonfunctional)Duncan Smith
2010-09-13Fixed glaring bug in arithmetic routines affecting (HL)Duncan Smith
2010-09-13Speed improvements to some instructions.Duncan Smith
2010-09-13Fixed bug in conditional instructions which take an argumentDuncan Smith
2010-09-13More testcases and a few fixesDuncan Smith
2010-09-13Comments saying what opcodes haven't been tested yetDuncan Smith
2010-09-13Started out on my own test suiteDuncan Smith
2010-09-13Endianness fixes, I don't know how correct these are ...Duncan Smith
2010-09-13Made HALT instruction halt, even if it's not a very good way to haltDuncan Smith
2010-09-13Small patch to make JR reliableDuncan Smith
2010-09-10XXX UNDO LATER: Performance degrading change to make debugging easierDuncan Smith
2010-09-10I think I nailed all the remaining wrong-sized moves of address registers ...Duncan Smith
2010-09-10Widened spacing to 64 bytes/instr to give myself some breathing room for nowDuncan Smith
2010-09-10CALL was mistakenly fetching an extra word and jumping to JP NZ instead of JPDuncan Smith
2010-09-10Fix to make PUSHW use d2 instead of d0Duncan Smith
2010-09-10Two more fixesDuncan Smith
The underef function will now return 0 if a match is not found, rather than returning something undefined. The routine for CALL immed.w was mistakenly calling deref with a truncated address. This has been fixed.
2010-09-10Lazy, slow hack to FETCHW and FETCHWI becuase I forgot about endiannessDuncan Smith
2010-09-06Registers holding emulated registers are now named.Duncan Smith
Hopefully 'esp', 'epc', 'eaf', and friends will be less troublesome than 'a4', 'a6', and 'd3'.
2010-09-06Fixes to actually run codeDuncan Smith
This is the version to run the first (trivial) infinite loop correctly. I hacked up the loader slightly to replace one of the (nonexistent) pages with a static byte array. z80 code executed: $4000: JP $4000 4000 c3 40 00 4003 This version also draws the opcode executed on the screen, to aid in debugging the emulator: move.b d0,$4c00+32*(128/8) Also, it turns out that I was mixing up the emulated SP (a4) and emulated PC (a6). That has been fixed. Further, it seems that movea defaults to a word operation in a68k. This led to pointer corruption, which has been fixed.
2010-07-23Merge branch 'master' of git@github.com:chronomex/680Duncan Smith
2010-07-23Comments about speedinessDuncan Smith
2010-07-23Tiny changeDuncan Smith
2010-06-28Minor comment changesDuncan Smith
2010-06-26Parted out remaining un-written ALU instructions.Duncan Smith
2010-06-26Parted out ADC macro-instructionDuncan Smith
2010-06-26Parted out ADD macro-instructionDuncan Smith
2010-06-21Parted out F_SUB_B to alu_sub.Duncan Smith
2010-06-21Parted out F_SBC_B to alu_sbc.Duncan Smith
2010-06-21Moved DONE macro to a more sensible locationDuncan Smith
2010-06-20Moved macros into opcodes fileDuncan Smith
2010-06-20Moved emulation core into opcodes.asmDuncan Smith