|This problem is a little more unique than the last and a bit of an experiment. A while ago, Wouter thought up a simple, but efficient text compression algorithm. You will be provided with his encoding tool and guidelines only. Your challenge is to write the smallest decompression routine possible (and obviously to figure out how the text string is being compressed). We think this might prove a little challenging given the fact that nobody has seen this algorithm before now. Use your code-breaking and z80-programming skills, and have fun! Entries are due to Sam Heald before July 29th.|
The compressing tool is availible online as a CGI script. Just go here, type the text string that you want to compress and you'll get it back. The compressor does not check for invalid characters. The following characters are valid: A-Z (must be uppercase), 0-9, comma, period, colon, question mark, and exclamation point.
HL = POINTER TO COMPRESSED STRING
HL = ExampleString ; ExampleString: .db $62,$D5,$60,$E0,$FF,$C0
A null terminated string located at address TEMP.
TEMP = TEXT_MEM ; should be "HI THERE",0
You do not need to worry about lowercase characters because the algorithm does not account for them.|
You may NOT corrupt the compressed data.
You may NOT use an ROM calls in your decompression routine.
You do not have to preserve registers.