diff options
Diffstat (limited to 'sw/z80/build/kernel/memory.lst')
-rw-r--r-- | sw/z80/build/kernel/memory.lst | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/sw/z80/build/kernel/memory.lst b/sw/z80/build/kernel/memory.lst new file mode 100644 index 0000000..5f229f5 --- /dev/null +++ b/sw/z80/build/kernel/memory.lst @@ -0,0 +1,186 @@ + 1 ;-------------------------------------------------------- + 2 ; File Created by SDCC : free open source ANSI-C Compiler + 3 ; Version 3.5.0 #9253 (Mar 24 2016) (Linux) + 4 ; This file was generated Wed Aug 23 21:44:59 2017 + 5 ;-------------------------------------------------------- + 6 .module memory + 7 .optsdcc -mz80 + 8 + 9 ;-------------------------------------------------------- + 10 ; Public variables in this module + 11 ;-------------------------------------------------------- + 12 .globl _pages_table + 13 .globl _mmu_write_table + 14 .globl _page_map + 15 .globl _page_unmap + 16 ;-------------------------------------------------------- + 17 ; special function registers + 18 ;-------------------------------------------------------- + 19 ;-------------------------------------------------------- + 20 ; ram data + 21 ;-------------------------------------------------------- + 22 .area _DATA + 0000 23 _pages_table:: + 0000 24 .ds 192 + 25 ;-------------------------------------------------------- + 26 ; ram data + 27 ;-------------------------------------------------------- + 28 .area _INITIALIZED + 29 ;-------------------------------------------------------- + 30 ; absolute external ram data + 31 ;-------------------------------------------------------- + 32 .area _DABS (ABS) + 33 ;-------------------------------------------------------- + 34 ; global & static initialisations + 35 ;-------------------------------------------------------- + 36 .area _HOME + 37 .area _GSINIT + 38 .area _GSFINAL + 39 .area _GSINIT + 40 ;-------------------------------------------------------- + 41 ; Home + 42 ;-------------------------------------------------------- + 43 .area _HOME + 44 .area _HOME + 45 ;-------------------------------------------------------- + 46 ; code + 47 ;-------------------------------------------------------- + 48 .area _CODE + 49 ;kernel/memory.c:5: int mmu_write_table(void) + 50 ; --------------------------------- + 51 ; Function mmu_write_table + 52 ; --------------------------------- + 0000 53 _mmu_write_table:: + 54 ;kernel/memory.c:9: for (i = 0; i < PAGES_MAX_COUNT; i++) { + 0000 21 00 00 [10] 55 ld hl,#0x0000 + 0003 56 00102$: + 0003 23 [ 6] 57 inc hl + 0004 7D [ 4] 58 ld a,l + 0005 D6 20 [ 7] 59 sub a, #0x20 + 0007 7C [ 4] 60 ld a,h + 0008 17 [ 4] 61 rla + 0009 3F [ 4] 62 ccf + 000A 1F [ 4] 63 rra + 000B DE 80 [ 7] 64 sbc a, #0x80 + 000D 38 F4 [12] 65 jr C,00102$ + 66 ;kernel/memory.c:15: return 0; + 000F 21 00 00 [10] 67 ld hl,#0x0000 + 0012 C9 [10] 68 ret + 69 ;kernel/memory.c:18: int page_map(int page, int pid, uint16_t addr) + 70 ; --------------------------------- + 71 ; Function page_map + 72 ; --------------------------------- + 0013 73 _page_map:: + 0013 DD E5 [15] 74 push ix + 0015 DD 21 00 00 [14] 75 ld ix,#0 + 0019 DD 39 [15] 76 add ix,sp + 77 ;kernel/memory.c:20: if (page >= PAGES_MAX_COUNT) + 001B DD 7E 04 [19] 78 ld a,4 (ix) + 001E D6 20 [ 7] 79 sub a, #0x20 + 0020 DD 7E 05 [19] 80 ld a,5 (ix) + 0023 17 [ 4] 81 rla + 0024 3F [ 4] 82 ccf + 0025 1F [ 4] 83 rra + 0026 DE 80 [ 7] 84 sbc a, #0x80 + 0028 38 05 [12] 85 jr C,00102$ + 86 ;kernel/memory.c:21: return -1; + 002A 21 FF FF [10] 87 ld hl,#0xFFFF + 002D 18 38 [12] 88 jr 00105$ + 002F 89 00102$: + 90 ;kernel/memory.c:23: if (pages_table[page].used) + 002F 11r00r00 [10] 91 ld de,#_pages_table+0 + 0032 DD 4E 04 [19] 92 ld c,4 (ix) + 0035 DD 46 05 [19] 93 ld b,5 (ix) + 0038 69 [ 4] 94 ld l, c + 0039 60 [ 4] 95 ld h, b + 003A 29 [11] 96 add hl, hl + 003B 09 [11] 97 add hl, bc + 003C 29 [11] 98 add hl, hl + 003D 19 [11] 99 add hl,de + 003E 4D [ 4] 100 ld c,l + 003F 44 [ 4] 101 ld b,h + 0040 7E [ 7] 102 ld a,(hl) + 0041 E6 01 [ 7] 103 and a,#0x01 + 0043 28 05 [12] 104 jr Z,00104$ + 105 ;kernel/memory.c:24: return -2; + 0045 21 FE FF [10] 106 ld hl,#0xFFFE + 0048 18 1D [12] 107 jr 00105$ + 004A 108 00104$: + 109 ;kernel/memory.c:26: pages_table[page].addr = addr; + 004A 59 [ 4] 110 ld e, c + 004B 50 [ 4] 111 ld d, b + 004C 13 [ 6] 112 inc de + 004D 13 [ 6] 113 inc de + 004E C5 [11] 114 push bc + 004F 21 0A 00 [10] 115 ld hl, #0x000A + 0052 39 [11] 116 add hl, sp + 0053 01 04 00 [10] 117 ld bc, #0x0004 + 0056 ED B0 [21] 118 ldir + 0058 C1 [10] 119 pop bc + 120 ;kernel/memory.c:27: pages_table[page].pid = pid; + 0059 69 [ 4] 121 ld l, c + 005A 60 [ 4] 122 ld h, b + 005B 23 [ 6] 123 inc hl + 005C DD 7E 06 [19] 124 ld a,6 (ix) + 005F 77 [ 7] 125 ld (hl),a + 126 ;kernel/memory.c:29: pages_table[page].used = 1; + 0060 0A [ 7] 127 ld a,(bc) + 0061 F6 01 [ 7] 128 or a,#0x01 + 0063 02 [ 7] 129 ld (bc),a + 130 ;kernel/memory.c:30: return 0; + 0064 21 00 00 [10] 131 ld hl,#0x0000 + 0067 132 00105$: + 0067 DD E1 [14] 133 pop ix + 0069 C9 [10] 134 ret + 135 ;kernel/memory.c:33: int page_unmap(int page) + 136 ; --------------------------------- + 137 ; Function page_unmap + 138 ; --------------------------------- + 006A 139 _page_unmap:: + 006A DD E5 [15] 140 push ix + 006C DD 21 00 00 [14] 141 ld ix,#0 + 0070 DD 39 [15] 142 add ix,sp + 143 ;kernel/memory.c:35: if (page >= PAGES_MAX_COUNT) + 0072 DD 7E 04 [19] 144 ld a,4 (ix) + 0075 D6 20 [ 7] 145 sub a, #0x20 + 0077 DD 7E 05 [19] 146 ld a,5 (ix) + 007A 17 [ 4] 147 rla + 007B 3F [ 4] 148 ccf + 007C 1F [ 4] 149 rra + 007D DE 80 [ 7] 150 sbc a, #0x80 + 007F 38 05 [12] 151 jr C,00102$ + 152 ;kernel/memory.c:36: return -1; + 0081 21 FF FF [10] 153 ld hl,#0xFFFF + 0084 18 22 [12] 154 jr 00105$ + 0086 155 00102$: + 156 ;kernel/memory.c:38: if (pages_table[page].used == 0) + 0086 11r00r00 [10] 157 ld de,#_pages_table+0 + 0089 DD 4E 04 [19] 158 ld c,4 (ix) + 008C DD 46 05 [19] 159 ld b,5 (ix) + 008F 69 [ 4] 160 ld l, c + 0090 60 [ 4] 161 ld h, b + 0091 29 [11] 162 add hl, hl + 0092 09 [11] 163 add hl, bc + 0093 29 [11] 164 add hl, hl + 0094 19 [11] 165 add hl,de + 0095 5D [ 4] 166 ld e,l + 0096 54 [ 4] 167 ld d,h + 0097 7E [ 7] 168 ld a,(hl) + 0098 E6 01 [ 7] 169 and a,#0x01 + 009A 20 05 [12] 170 jr NZ,00104$ + 171 ;kernel/memory.c:39: return -2; + 009C 21 FE FF [10] 172 ld hl,#0xFFFE + 009F 18 07 [12] 173 jr 00105$ + 00A1 174 00104$: + 175 ;kernel/memory.c:41: pages_table[page].used = 0; + 00A1 1A [ 7] 176 ld a,(de) + 00A2 E6 FE [ 7] 177 and a,#0xFE + 00A4 12 [ 7] 178 ld (de),a + 179 ;kernel/memory.c:42: return 0; + 00A5 21 00 00 [10] 180 ld hl,#0x0000 + 00A8 181 00105$: + 00A8 DD E1 [14] 182 pop ix + 00AA C9 [10] 183 ret + 184 .area _CODE + 185 .area _INITIALIZER + 186 .area _CABS (ABS) |