summaryrefslogtreecommitdiff
path: root/opcodes.asm
AgeCommit message (Collapse)Author
2010-11-09Woops, forgot to delete two comments.Astrid Smith
2010-11-09Added guards around all routines that touch ePC or eSP.Astrid 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.Astrid Smith
Holy shit that was a hairy debug session. I have a lot to look forward to.
2010-09-14Trivial changes.Astrid Smith
2010-09-13CCF flags :(Astrid Smith
2010-09-13Documentation updateAstrid Smith
2010-09-13Timing correction macro added (as yet nonfunctional)Astrid Smith
2010-09-13Fixed glaring bug in arithmetic routines affecting (HL)Astrid Smith
2010-09-13Speed improvements to some instructions.Astrid Smith
2010-09-13Fixed bug in conditional instructions which take an argumentAstrid Smith
2010-09-13More testcases and a few fixesAstrid Smith
2010-09-13Comments saying what opcodes haven't been tested yetAstrid Smith
2010-09-13Started out on my own test suiteAstrid Smith
2010-09-13Endianness fixes, I don't know how correct these are ...Astrid Smith
2010-09-13Made HALT instruction halt, even if it's not a very good way to haltAstrid Smith
2010-09-13Small patch to make JR reliableAstrid Smith
2010-09-10XXX UNDO LATER: Performance degrading change to make debugging easierAstrid Smith
2010-09-10I think I nailed all the remaining wrong-sized moves of address registers ...Astrid Smith
2010-09-10Widened spacing to 64 bytes/instr to give myself some breathing room for nowAstrid Smith
2010-09-10CALL was mistakenly fetching an extra word and jumping to JP NZ instead of JPAstrid Smith
2010-09-10Fix to make PUSHW use d2 instead of d0Astrid Smith
2010-09-10Two more fixesAstrid 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 endiannessAstrid Smith
2010-09-06Registers holding emulated registers are now named.Astrid Smith
Hopefully 'esp', 'epc', 'eaf', and friends will be less troublesome than 'a4', 'a6', and 'd3'.
2010-09-06Fixes to actually run codeAstrid 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/680Astrid Smith
2010-07-23Comments about speedinessAstrid Smith
2010-07-23Tiny changeAstrid Smith
2010-06-28Minor comment changesAstrid Smith
2010-06-26Parted out remaining un-written ALU instructions.Astrid Smith
2010-06-26Parted out ADC macro-instructionAstrid Smith
2010-06-26Parted out ADD macro-instructionAstrid Smith
2010-06-21Parted out F_SUB_B to alu_sub.Astrid Smith
2010-06-21Parted out F_SBC_B to alu_sbc.Astrid Smith
2010-06-21Moved DONE macro to a more sensible locationAstrid Smith
2010-06-20Moved macros into opcodes fileAstrid Smith
2010-06-20Moved emulation core into opcodes.asmAstrid Smith