From e63b97813746e37c95a3ec930fd5763115acf376 Mon Sep 17 00:00:00 2001 From: Paul Gardner-Stephen Date: Wed, 24 Apr 2019 10:32:51 +0930 Subject: [PATCH] ignore many common instruction fragments --- src/similarity.c | 22 ++++++++++++++++++++++ strings/A92020 | 7 +++++++ 2 files changed, 29 insertions(+) create mode 100644 strings/A92020 diff --git a/src/similarity.c b/src/similarity.c index 0d5e9581..9bb9fe98 100644 --- a/src/similarity.c +++ b/src/similarity.c @@ -100,6 +100,28 @@ int main(int argc,char **argv) // since that is the max length of a 6502 instruction int single_instruction=0; if (k==3) { + // Reject some very common instruction fragments + + + // Branch followed by any opcode + if (f1[i]==0xd0) break; + if (f1[i]==0xf0) break; + if (f1[i]==0xb0) break; + if (f1[i]==0x10) break; + + if (f1[i+1]==0x85) { + // Single byte followed by STA $xx + // Super common, so can be ignored. + break; + } + + // Common 2-byte instructions followed by + // any single byte are very common and not + // copyrightable. + if (f1[i]==0x85) break; + if (f1[i]==0xa9) break; + if (f1[i]==0xc9) break; + // Filter out all 3 byte instructions switch(f1[i]) { case 0x0C: // TSB $nnnn diff --git a/strings/A92020 b/strings/A92020 new file mode 100644 index 00000000..b317f90a --- /dev/null +++ b/strings/A92020 @@ -0,0 +1,7 @@ +LDA #$20, then call a routine + +LDA #$20 +JSR $xxxx + +Obvious sequence for doing this. +Not copyrightable.