The usual trick was to setup the first line with REM something.
Then just poke an unsuportted char at the end of the REM description(replace last char)
Then all that was left to do was poke the line number to be zero.
What this all does is play with implementation quirks of the Basic LIST command.
Yea the invalid character trick - the pamphlet talks about that. I think the way that got nixed is advance to the end of the line, if the cursor goes invisible it confirms this technique is being used then you delete until the invalid characters are erased.
I been going through trade secret trying the codes - it all works in 48k but the weird thing is this fails with +3 and I can't figure out why. Its like this is just the cheese way of poking INK 7 PAPER 7 in the first four blank spaces of line 10.
1. The addresses are sort of meaningless, because you assume the BASIC starts at address 23755. It doesn’t consistently. The PROG system variable at 23635–6 will hold the correct address. PEEK it first, then add the displacement, then POKE these values.
2. It’s much simpler, I think, to use INV. VIDEO/TRUE VIDEO commands to set both INK and PAPER attributes to 7 (white).
3. The 128K BASIC (not just the +3 BASIC) does not support coloring the listing, so this “trick” won’t work.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Nomad wrote: ↑Sun Apr 15, 2018 12:54 pm
Yea the invalid character trick - the pamphlet talks about that. I think the way that got nixed is advance to the end of the line, if the cursor goes invisible it confirms this technique is being used then you delete until the invalid characters are erased.
...
Whatever you do it can always be reversed if you know how it was done.
Note: Basic lists line 0, but does not allow you to edit it, so that "protects" the special unsupported char in the line.
Having an unsupported char in one line stops basic from listing any other line after that one.
But there are simple ways to defeat this for the common user, once you have the correct file to help you.
As far as I recall if we have a special file that contains a single normal REM without any special chars, already forced as line 0, you can just MERGE it in after loading the "protected" listing.
This will unprotect the file.
True, but still the percentage of users that would go to that extent are going to be small. I always saw it as a way to stop the majority of peasants getting the IP
Always figured by the time someone gets the disassembler out its all over.