... | ... |
@@ -35,7 +35,8 @@ typedef struct { |
35 | 35 |
|
36 | 36 |
typedef struct { |
37 | 37 |
Uint8 data[LENGTH]; |
38 |
- Uint16 ptr, length, llen, mlen, rlen; |
|
38 |
+ unsigned int ptr, length; |
|
39 |
+ Uint16 llen, mlen, rlen; |
|
39 | 40 |
Label labels[512]; |
40 | 41 |
Macro macros[256]; |
41 | 42 |
Reference refs[2048]; |
... | ... |
@@ -193,6 +194,10 @@ writebyte(Uint8 b) |
193 | 194 |
fprintf(stderr, "-- Writing in zero-page: %02x\n", b); |
194 | 195 |
return 0; |
195 | 196 |
} |
197 |
+ else if(p.ptr > 0xffff) { |
|
198 |
+ fprintf(stderr, "-- Writing after the end of RAM: %02x\n", b); |
|
199 |
+ return 0; |
|
200 |
+ } |
|
196 | 201 |
else if(p.ptr < p.length) { |
197 | 202 |
fprintf(stderr, "-- Memory overwrite: %04x -> %04x\n", p.length, p.ptr); |
198 | 203 |
return 0; |