From 1665098ac945be92bd7a74eab1dcd5244c956af9 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Wed, 26 Feb 2020 21:29:50 +0100 Subject: [PATCH] prevent packed strings from appearing in all BASIC segments --- Makefile | 1 + c64/basic/packed_strings/packed_chars.s | 7 +++++++ c64/basic/packed_strings/packed_keywords.s | 7 +++++++ c64/basic/packed_strings/packed_tokens.s | 7 +++++++ c64/basic/packed_strings/packed_words.s | 7 +++++++ c64/basic/ready_message.s | 3 +-- tools/compress_text.c | 17 +++++++++++------ 7 files changed, 41 insertions(+), 8 deletions(-) create mode 100644 c64/basic/packed_strings/packed_chars.s create mode 100644 c64/basic/packed_strings/packed_keywords.s create mode 100644 c64/basic/packed_strings/packed_tokens.s create mode 100644 c64/basic/packed_strings/packed_words.s diff --git a/Makefile b/Makefile index eecfb259..75b7270a 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,7 @@ SRCDIR_BASIC = $(SRCDIR_COMMON) \ c64/basic/init \ c64/basic/math \ c64/basic/math_consts \ + c64/basic/packed_strings \ c64/basic/rom_revision SRCDIR_KERNAL = $(SRCDIR_COMMON) \ diff --git a/c64/basic/packed_strings/packed_chars.s b/c64/basic/packed_strings/packed_chars.s new file mode 100644 index 00000000..16ed8b6e --- /dev/null +++ b/c64/basic/packed_strings/packed_chars.s @@ -0,0 +1,7 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + +packed_message_chars: + + put_packed_chars() diff --git a/c64/basic/packed_strings/packed_keywords.s b/c64/basic/packed_strings/packed_keywords.s new file mode 100644 index 00000000..f62bd5a5 --- /dev/null +++ b/c64/basic/packed_strings/packed_keywords.s @@ -0,0 +1,7 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + +packed_keywords: + + put_packed_keywords() diff --git a/c64/basic/packed_strings/packed_tokens.s b/c64/basic/packed_strings/packed_tokens.s new file mode 100644 index 00000000..574907ca --- /dev/null +++ b/c64/basic/packed_strings/packed_tokens.s @@ -0,0 +1,7 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + +packed_message_tokens: + + put_packed_tokens() diff --git a/c64/basic/packed_strings/packed_words.s b/c64/basic/packed_strings/packed_words.s new file mode 100644 index 00000000..49fcf0b9 --- /dev/null +++ b/c64/basic/packed_strings/packed_words.s @@ -0,0 +1,7 @@ +// #LAYOUT# STD * #TAKE +// #LAYOUT# * BASIC_0 #TAKE +// #LAYOUT# * * #IGNORE + +packed_message_words: + + put_packed_words() diff --git a/c64/basic/ready_message.s b/c64/basic/ready_message.s index 791cb7eb..9d528c38 100644 --- a/c64/basic/ready_message.s +++ b/c64/basic/ready_message.s @@ -4,7 +4,6 @@ ready_message: - // See src/make_error_tables.c for packed message handling - // information. + ldx #29 jmp print_packed_message diff --git a/tools/compress_text.c b/tools/compress_text.c index fcfc7dca..6f7b0daf 100644 --- a/tools/compress_text.c +++ b/tools/compress_text.c @@ -436,15 +436,16 @@ int main(void) exit(-1); } - printf("packed_message_chars:\n"); + printf(".macro put_packed_chars()\n{\n"); for(int i=0;i=8) { @@ -455,8 +456,9 @@ int main(void) } else printf("\t.byte $%02x\n",message_tokens[i]); } - - printf("packed_message_words:\n"); + printf("}\n"); + + printf(".macro put_packed_words()\n{\n"); for(int i=0;i=8) { @@ -467,8 +469,9 @@ int main(void) } else printf("\t.byte $%02x\n",packed_words[i]); } + printf("}\n"); - printf("packed_keywords:\n"); + printf(".macro put_packed_keywords()\n{\n"); for(int i=0;i=8) { @@ -479,7 +482,9 @@ int main(void) } else printf("\t.byte $%02x\n",packed_keywords[i]); } - printf("\t.label packed_keyword_table_len = $%X\n",packedkey_len); + printf("}\n"); + + printf(".label packed_keyword_table_len = $%X\n",packedkey_len); fprintf(stderr,"Error list takes %d bytes raw.\n",raw_size); fprintf(stderr,"%d token bytes used to encode all messages.\n",token_count);