| ... | ... |
@@ -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; |