PICAXE PreProcessor crash

Afternoon folks,

I'm trying to check the syntax on what I would call a reasonably simple program - quite literally all it does is load a set of data into the table memory of a 20M2. However, when I hit Check Syntax, Windows throws up an error, saying PICAXE PreProcessor has stopped working.

I've got a copy of Visual Studio on my laptop, so I opened it to get the error code, which is as follows:
Unhandled exception at 0x0040896e in picaxepp.exe: 0xC0000005: Access violation reading location 0x2c34202c.

My program is as follows:
Code:
Table 0, (0, 0, 0, 0, 0, 62, 72, 136, 72, 62, 130, 254, 146, 146, 108, 124, 130, 130, 130, 68, 130, 254, 130, 130, 124, 254, 146, 146, 146, 130, 254, 144, 144, 144, 128, 124, 130, 130, 146, 94, 254, 16, 16, 16, 254, 0, 130, 254, 130, 0, 4, 2, 130, 252, 128, 254, 16, 40, 68, 130, 254, 2, 2, 2, 2, 254, 64, 48, 64, 254, 254, 32, 16, 8, 254, 124, 130, 130, 130, 124, 254, 144, 144, 144, 96, 124, 130, 138, 132, 122, 254, 144, 152, 148, 98, 100, 146, 146, 146, 76, 128, 128, 254, 128, 128, 252, 2, 2, 2, 252, 248, 4, 2, 4, 248, 252, 2, 28, 2, 252, 198, 40, 16, 40, 198, 224, 16, 14, 16, 224, 134, 138, 146, 162, 194, 4, 42, 42, 42, 30, 254, 18, 34, 34, 28, 28, 34, 34, 34, 4, 28, 34, 34, 18, 254, 28, 42, 42, 42, 24, 8, 63, 72, 64, 32, 8, 21, 21, 21, 30, 254, 16, 32, 32, 30, 0, 18, 190, 2, 0, 4, 2, 34, 188, 0, 0, 254, 8, 20, 34, 0, 130, 254, 2, 0, 62, 32, 30, 32, 30, 62, 16, 32, 32, 30, 28, 34, 34, 34, 28, 31, 20, 20, 20, 8, 8, 20, 20, 12, 31, 62, 16, 32, 32, 16, 18, 42, 42, 42, 4, 32, 252, 34, 2, 4, 60, 2, 2, 4, 62, 56, 4, 2, 4, 56, 60, 2, 12, 2, 60, 34, 20, 8, 20, 34, 48, 10, 10, 10, 60, 34, 38, 42, 50, 34, 124, 138, 146, 162, 124, 0, 66, 254, 2, 0, 70, 138, 146, 146, 98, 68, 130, 146, 146, 108, 24, 40, 72, 254, 8, 228, 162, 162, 162, 156, 60, 82, 146, 146, 12, 128, 142, 144, 160, 192, 108, 146, 146, 146, 108, 96, 146, 146, 148, 120, 0, 6, 6, 0, 0, 0, 5, 6, 0, 0, 128, 64, 160, 64, 32, 32, 64, 160, 64, 128, 0, 128, 64, 32, 0, 0, 32, 64, 128, 0, 0, 224, 0, 224, 0, 0, 0, 192, 0, 0, 64, 128, 138, 144, 96, 0, 0, 253, 0, 0, 76, 146, 158, 130, 124, 2, 2, 2, 2, 2, 40, 16, 124, 16, 40, 40, 254, 40, 254, 40, 18, 42, 254, 42, 4, 196, 200, 16, 38, 70, 108, 146, 170, 132, 10, 0, 56, 68, 130, 0, 0, 130, 68, 56, 0, 16, 16, 124, 16, 16, 16, 16, 16, 16, 16, 4, 8, 16, 32, 64, 0, 108, 108, 0, 0, 0, 106, 108, 0, 0, 16, 40, 68, 130, 0, 40, 40, 40, 40, 40, 0, 130, 68, 40, 16, 0, 254, 130, 130, 0, 64, 32, 16, 8, 4, 0, 130, 130, 254, 0, 32, 64, 128, 64, 32, 0, 16, 108, 130, 0, 0, 0, 255, 0, 0, 0, 108, 130, 16, 0, 16, 32, 32, 16, 32)
All it does is load a basic ASCII character set, in 5x8 character map format, into the table memory, for use later when driving LED dot matrix displays (through a driver)... any clues anyone?
 
Sorry, forgot to add - Windows 7 Enterprise, 64-bit, Intel i5-6300U @ 2.4GHz, 8GB RAM, running PE 6.1.0.0. Attempted to check syntax with chips set to both 40X2 (was obviously gonna fail, not enough table memory) and 20M2 (should work...)
 
Yep, that's solved it - broke the 490 bytes into 100 byte chunks, and it's loaded those successfully :) thanks for the tip!
 

Aries

New Member
Why would having a long line cause problems like that?
Probably because whoever wrote the section of code that reads the line(s) of program did not make the buffer long enough to hold a very long line and didn't trap the lack of "end-of-line" condition (I've done it myself in a previous incarnation). To be fair, given that commands can be separated by colons, there is no finite maximum which you can guarantee would never be exceeded by somebody. However, it ought to have been trapped properly in the preprocessor code.
 
Top