diff options
| author | Duncan Smith | 2010-09-07 19:12:01 -0700 |
|---|---|---|
| committer | Duncan Smith | 2010-09-07 19:12:01 -0700 |
| commit | dbe094eeae873ff5788b99d8a9c763df963d3a30 (patch) | |
| tree | adc7d83bc7634d4dc8aeab8f7955ed8fd452c7ec /loader.c | |
| parent | c4f950804cbf98ffb2ec6eef4928e1795132df83 (diff) | |
IO port framework now works
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.
Diffstat (limited to 'loader.c')
| -rw-r--r-- | loader.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -12,7 +12,12 @@ HANDLE page_handles[256]; -char infloop[16] = { 0xC3, 0x40, 0, 0, 0, 0 }; +char infloop[16] = { 0xC3, 0x40, // JP 4000h + 0, 0, 0, 0 }; +char writestr[16] = { 0x3E, 0x41, // LD A,'A' + 0xD3, 0x00, // OUT 00h,A + 0xC3, 0x40, 0x00 // JP 4000h +}; void init_load(void); void *deref_page(int); @@ -58,7 +63,7 @@ void init_load(void) mem_page_0 = pages[0]; mem_page_loc_0 = 0; // mem_page_1 = pages[0x1f]; - mem_page_1 = infloop; + mem_page_1 = writestr; mem_page_loc_1 = 0x1f; mem_page_2 = pages[0]; mem_page_loc_2 = 0; |
