From bafbb9ac286125c76d893f2057cf6e94277f0dcc Mon Sep 17 00:00:00 2001 From: Astrid Smith Date: Wed, 30 Jun 2010 17:41:52 -0700 Subject: foo --- 680.inc | 8 ++++++++ loader.c | 6 ++++-- main.asm | 1 + ports.asm | 13 +++++++++---- 4 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 680.inc diff --git a/680.inc b/680.inc new file mode 100644 index 0000000..6ae2abf --- /dev/null +++ b/680.inc @@ -0,0 +1,8 @@ + +SAVEREG MACRO + movem d3-d7/a3-a6,-(sp) + ENDM + +RESTREG MACRO + movem (sp)+,d3-d7/a3-a6 + ENDM diff --git a/loader.c b/loader.c index 49fba5e..3997405 100644 --- a/loader.c +++ b/loader.c @@ -21,17 +21,19 @@ void init_load(void) * 0x1f ROM */ + // RAM pages pages[0x40] = malloc(PAGE_SIZE * sizeof(char)); pages[0x41] = malloc(PAGE_SIZE * sizeof(char)); + // ROM pages for (int i = 0; i++; i <= 0x1f) { pages[i] = pages[0x40]; } mem_page_0 = pages[0]; mem_page_loc_0 = 0; - mem_page_1 = pages[0x40]; - mem_page_loc_1 = 0x40; + mem_page_1 = pages[0x1f]; + mem_page_loc_1 = 0x1f; mem_page_2 = pages[0]; mem_page_loc_2 = 0; mem_page_3 = pages[0x40]; diff --git a/main.asm b/main.asm index 6f0a8d9..f4e770e 100644 --- a/main.asm +++ b/main.asm @@ -47,6 +47,7 @@ xdef _tigcc_native include "../tios.h" + include "680.inc" __main: diff --git a/ports.asm b/ports.asm index e183e7a..ddc0bef 100644 --- a/ports.asm +++ b/ports.asm @@ -540,10 +540,11 @@ port_out_03: port_in_04: port_out_04: ;; Bank B paging, among other things - ;; XXX save registers + SAVEREG move.b d1,-(a7) jsr bankswap_b_write addq 2,a7 + RESTREG rts port_in_05: @@ -551,10 +552,11 @@ port_out_05: port_in_06: port_out_06: ;; Bank A paging - ;; XXX save registers + SAVEREG move.b d1,-(a7) jsr bankswap_a_write addq 2,a7 + RESTREG rts port_in_07: @@ -677,16 +679,19 @@ port_out_10_set_row: port_in_11: ;; LCD data - ;; XXX save registers + SAVEREG jsr video_read move.b d0,d1 ; return value + RESTREG rts port_out_11: ;; LCD data + SAVEREG move.b d1,-(a7) - ;; XXX save registers jsr video_write + addq #2,a7 + RESTREG rts port_in_12: -- cgit v1.2.3