diff options
| author | Duncan Smith | 2010-06-30 17:41:52 -0700 |
|---|---|---|
| committer | Duncan Smith | 2010-06-30 17:41:52 -0700 |
| commit | dbe3c673c4c0726a96a155e053fffffe8588e083 (patch) | |
| tree | e1607ac2035860f3f7d1b5111672e403448b5183 | |
| parent | 2bb62105cd801bbabf1af11c07e0ee18225f3c12 (diff) | |
foo
| -rw-r--r-- | 680.inc | 8 | ||||
| -rw-r--r-- | loader.c | 6 | ||||
| -rw-r--r-- | main.asm | 1 | ||||
| -rw-r--r-- | ports.asm | 13 |
4 files changed, 22 insertions, 6 deletions
@@ -0,0 +1,8 @@ + +SAVEREG MACRO + movem d3-d7/a3-a6,-(sp) + ENDM + +RESTREG MACRO + movem (sp)+,d3-d7/a3-a6 + ENDM @@ -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]; @@ -47,6 +47,7 @@ xdef _tigcc_native include "../tios.h" + include "680.inc" __main: @@ -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: |
