Skip to content

Commit 61982ae

Browse files
committed
Rewrite entire memory system to decode instructions in advance
1 parent 5251343 commit 61982ae

File tree

6 files changed

+1254
-477
lines changed

6 files changed

+1254
-477
lines changed

mod/scripts/main.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ global.override.block(LogicBlock, {
3939
*/
4040
function isMlogv32Processor(processor) {
4141
return (
42-
processor.executor.optionalVar("RAM_X") != null &&
43-
processor.executor.optionalVar("RAM_Y") != null &&
44-
processor.executor.optionalVar("RAM_WIDTH") != null &&
45-
processor.executor.optionalVar("RAM_SIZE") != null &&
46-
processor.executor.optionalVar("RAM_PROC_SIZE") != null
42+
processor.executor.optionalVar("MEMORY_X") != null &&
43+
processor.executor.optionalVar("MEMORY_Y") != null &&
44+
processor.executor.optionalVar("MEMORY_WIDTH") != null &&
45+
processor.executor.optionalVar("MEMORY_END") != null &&
46+
processor.executor.optionalVar("MEMORY_PROC_SIZE") != null
4747
);
4848
}
4949

@@ -52,11 +52,11 @@ function isMlogv32Processor(processor) {
5252
* @param {Fi} file
5353
*/
5454
function flashMlogv32Processor(processor, file) {
55-
const RAM_X = processor.executor.optionalVar("RAM_X").numval;
56-
const RAM_Y = processor.executor.optionalVar("RAM_Y").numval;
57-
const RAM_WIDTH = processor.executor.optionalVar("RAM_WIDTH").numval;
58-
const RAM_SIZE = processor.executor.optionalVar("RAM_SIZE").numval;
59-
const RAM_PROC_SIZE = processor.executor.optionalVar("RAM_PROC_SIZE").numval;
55+
const RAM_X = processor.executor.optionalVar("MEMORY_X").numval;
56+
const RAM_Y = processor.executor.optionalVar("MEMORY_Y").numval;
57+
const RAM_WIDTH = processor.executor.optionalVar("MEMORY_WIDTH").numval;
58+
const RAM_SIZE = processor.executor.optionalVar("MEMORY_END").numval;
59+
const RAM_PROC_SIZE = processor.executor.optionalVar("MEMORY_PROC_SIZE").numval;
6060

6161
/** @type number[] */
6262
const data = file.readBytes();

rust/mlogv32/link.x

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@ MEMORY {
99
LENGTH = num_ram_procs * 4096*4
1010
0x10000000 = 128*128 * 4096*4
1111
0x8000000 = 128*64 * 4096*4
12+
0x3000000 = 128*24 * 4096*4
13+
0x1000000 = 128*8 * 4096*4
1214
*/
13-
ram (rwx) : ORIGIN = 0, LENGTH = 0x8000000
15+
rom (rx) : ORIGIN = 0, LENGTH = 0x1000000
16+
ram (rw) : ORIGIN = 0x1000000, LENGTH = 0x3000000
1417
}
1518

16-
REGION_ALIAS("REGION_TEXT", ram);
19+
REGION_ALIAS("REGION_TEXT", rom);
1720
REGION_ALIAS("REGION_RODATA", ram);
1821
REGION_ALIAS("REGION_DATA", ram);
1922
REGION_ALIAS("REGION_BSS", ram);

0 commit comments

Comments
 (0)