summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-11-12Reworked opcodes.asm to use m4. Soon, it will be clean.Astrid Smith
2010-11-10Changes to commentary in interrupts.asmAstrid Smith
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-11-09Added loads of interrupt processing code.Astrid Smith
Properly handling interrupts that come in a critical section is a difficult problem. This is my first stab at it. Notably, I'm doing all my interrupt processing in softwareland. It turns out to be about 1/3 as fast as using the interrupt hardware directly, though I don't have to run in supervisor mode this way.
2010-11-09Clarified used/free registers listAstrid Smith
2010-11-09Makefile now has 'make clean' and is very thorough.Astrid Smith
2010-11-09Changed project and binaries name to z680k.Astrid Smith
2010-09-16Cleared up some compiler errorsAstrid Smith
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-13Fixed endianness issue in deref :(Astrid Smith
2010-09-13Made zexdoc's writestr routine a bit fasterAstrid Smith
2010-09-13Changed zexdoc to halt instead of jumping into neverneverland when it's doneAstrid 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-10Underef routine now should work correctlyAstrid Smith
2010-09-10How could I forget to actually write characters in 'writestr'?Astrid 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-10Trying to get the zexdoc testbench to run.Astrid Smith
Now, at least, it's integrated into the build system and will be automatically included in built executables.
2010-09-10Added stubs for putting the emulated screen into a TIOS-drawn window.Astrid Smith
2010-09-10Completely patched zexdoc to assemble with SPASM.Astrid Smith
2010-09-08Some more changes, spasm almost doesn't complain anymore!Astrid Smith
2010-09-08Working on adapting zexdoc to work in spasmAstrid Smith
2010-09-07Blank files for multibyte opcodes createdAstrid Smith
2010-09-07Added testbenches folderAstrid Smith
2010-09-07Fixed the last movea that wasn't size-suffixedAstrid Smith
2010-09-07IO port framework now worksAstrid Smith
A68k is defaulting all my address moves to word size, rather than long. I don't know whether I've expunged all this nonsense yet, but I'm trying. This version executes an infinite loop which writes 'A' to port 00h. I've patched in a write-to-console function on port 00h, so this can be used as a sort of debug monitor.
2010-09-06I actually have a Makefile now, thank you very much.Astrid Smith
2010-09-06Assembler is picky about EQUR apparently ...Astrid 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-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-08-02HACK XXX UNDO LATER Made relative flag references absolute.Astrid Smith
A68k wanted to add relocations, but couldn't figure out how. Undo this later when it's speed time, as this (probably) slows things down a bit.