From 1fe555aaba2df7fcabb1a359021108e5172abc2c Mon Sep 17 00:00:00 2001 From: Arturo Date: Sat, 11 Apr 2026 10:02:30 -0600 Subject: [PATCH] Added easter egg by Arturo Balam for 0F1 (slot 1) --- src/spider/runtime/instr/Instr_LLGS.cpp | 61 +++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/spider/runtime/instr/Instr_LLGS.cpp diff --git a/src/spider/runtime/instr/Instr_LLGS.cpp b/src/spider/runtime/instr/Instr_LLGS.cpp new file mode 100644 index 0000000..8df5e36 --- /dev/null +++ b/src/spider/runtime/instr/Instr_LLGS.cpp @@ -0,0 +1,61 @@ +/** + * @brief LLGS — Easter egg by Arturo Balam (Data - 7A) + * + * Opcode: 0x0F1 + * + * Writes a Spider ASCII art into RAM starting at address 0x00, + * and loads the author signature into RA as a packed ASCII string. + * This version matches the custom mechanical spider design + * and is formatted to fit an 8-byte RAM viewer width. + * + * RAM layout after LLGS executes (8 characters per row, 4 rows total): + * 0x00: "// _ \\" (Row 1) + * 0x08: "\\( )// " (Row 2) + * 0x10: " //()\\ " (Row 3) + * 0x18: " \\ // " (Row 4) + * + * RA after execution: 0x4C4C475300000000ULL ("LLGS" in ASCII, zero-padded) + * (L=0x4C, L=0x4C, G=0x47, S=0x53) + */ + +#include +#include + +namespace spider { + + void CPU::LLGS() { + + // -- Write Spider ASCII art into RAM --------------------------------- + // Padded with exact spaces to ensure it never wraps in an 8-byte viewer + + // Row 0: "// _ \\ " + _ram->at(0x00) = '/'; _ram->at(0x01) = '/'; + _ram->at(0x02) = ' '; _ram->at(0x03) = '_'; + _ram->at(0x04) = ' '; _ram->at(0x05) = '\\'; + _ram->at(0x06) = '\\'; _ram->at(0x07) = ' '; + + // Row 1: "\\( )// " + _ram->at(0x08) = '\\'; _ram->at(0x09) = '\\'; + _ram->at(0x0A) = '('; _ram->at(0x0B) = ' '; + _ram->at(0x0C) = ')'; _ram->at(0x0D) = '/'; + _ram->at(0x0E) = '/'; _ram->at(0x0F) = ' '; + + // Row 2: " //()\\ " + _ram->at(0x10) = ' '; _ram->at(0x11) = '/'; + _ram->at(0x12) = '/'; _ram->at(0x13) = '('; + _ram->at(0x14) = ')'; _ram->at(0x15) = '\\'; + _ram->at(0x16) = '\\'; _ram->at(0x17) = ' '; + + // Row 3: " \\ // " + _ram->at(0x18) = ' '; _ram->at(0x19) = '\\'; + _ram->at(0x1A) = '\\'; _ram->at(0x1B) = ' '; + _ram->at(0x1C) = ' '; _ram->at(0x1D) = '/'; + _ram->at(0x1E) = '/'; _ram->at(0x1F) = ' '; + + // -- Load mnemonic into RA ------------------------ + // "LLGS" packed as ASCII bytes into RA + RA._u64 = 0x4C4C475300000000ULL; + + } + +} // namespace spider \ No newline at end of file