VC³ 2024 Author: Saturnus the Invincible [STI\SCA] Category: Christmas Challenge System: Amiga 500 Language: Assembler Len source code: 1094 bytes Len exe file: 116 bytes Len code only: 80 bytes Instructions: Run from CLI on Amiga 500 or use UAE Description: Simple implementation that prints the chars using our beloved BCPL wrch, writes and newline functions. We don't save any regs to save 8 bytes, so data is kept in d5, d6 and on the BCPL stack (a1). Comments: Since I prefer the '80s over the '70s I didn't optimize it any further. Code: 0000: 91c8 SUBA.L A0,A0 0002: 6106 BSR $000a 0004: 0509 5c4f 2f0a 000a: 7010 MOVEQ #16,D0 000c: 221f MOVE.L (A7)+,D1 000e: e489 LSR.L #2,D1 0010: 286a 0124 MOVEA.L $124(A2),A4 0014: 4e95 JSR (A5) 0016: 6110 BSR $0028 0018: 6100 0002 BSR $001c 001c: 32bc 2021 MOVE.W #' !',(A1) 0020: 7c07 MOVEQ #7,D6 0022: 6108 BSR $002c 0024: 51ce fffc DBF D6,$0022 0028: 32bc 2d2b MOVE.W #'-+',(A1) 002c: 7a12 MOVEQ #18,D5 002e: 600c BRA $003c 0030: 670a BEQ $003c 0032: ba7c 0009 CMP.W #9,D5 0036: 6704 BEQ $003c 0038: 1211 MOVE.B (A1),D1 003a: 6004 BRA $0040 003c: 1229 0001 MOVE.B 1(A1),D1 0040: 286a 00e0 MOVEA.L $e0(A2),A4 0044: 4e95 JSR (A5) 0046: 5345 SUBQ.W #1,D5 0048: 6ae6 BPL $0030 004a: 286a 0110 MOVEA.L $110(A2),A4 004e: 4ed5 JMP (A5) See sti-sca-vc3-2024.asm for documented source.