Kind of boring, still doable on a C64 with a somewhat decent amount of bytes :)
00 C0 A9 17 8D 18 D0 A2 2C 86 FE A6 FE A0 C0 BD B6 C0 20 1E AB C6 FE 10 F2 60
C6 49 52 53 54 20 00 D4 48 45 4E 20 00 54 48 45 20 00 54 48 45 59 20 43 41 4D
45 20 00 46 4F 52 20 00 53 50 45 41 4B 20 00 41 4E 44 20 C9 20 44 49 44 20 4E
4F 54 20 00 4F 55 54 2D 0D 00 C2 45 43 41 55 53 45 20 C9 20 57 41 53 20 4E 4F
54 20 41 20 00 4D 45 2D 41 4E 44 20 54 48 45 52 45 20 57 41 53 20 4E 4F 20 4F
4E 45 20 4C 45 46 54 20 54 4F 20 00 4D 45 2E 00 2E 0D 00 53 2C 20 00 D3 4F 43
49 41 4C 49 53 54 00 D4 52 41 44 45 20 D5 4E 49 4F 4E 49 53 54 00 CA 45 57 00
0D 00 8C 35 3A 6B 2A 1F B4 90 B0 56 50 3A 41 93 B0 25 35 2A 1F B4 90 A1 56 50
3A 41 93 A1 25 35 2A 1F B4 90 97 56 50 3A 41 93 97 25 35 2A 18
Usage: SYS49152
Explanation:
As this contains mostly data, instead of a meaningless disassembly listing, here's the ca65
-style assembly source that creates this machine code:
.segment "LDADDR"
.word $c000 ; load address
.code
lda #$17 ; upper/lower mode
sta $d018 ; store in VIC register
ldx #revpoemsize ; initialize ...
stx $fe ; ... counter
loop: ldx $fe ; load current position
ldy #$c0 ; highbyte of strings always same
lda revpoem,x ; load lowbyte from table
jsr $ab1e ; output 0-terminated string
dec $fe ; decrement position
bpl loop ; >=0 ? -> repeat
rts ; done
first: .byte "First ", 0
then: .byte "Then ", 0
the: .byte "the ", 0
came: .byte "they came ", 0
for: .byte "for ", 0
speak: .byte "speak ", 0
didnot: .byte "and I did not ", 0
out: .byte "out-", $d, 0
wasnot: .byte "Because I was not a ", 0
noone: .byte "me-and there was no one left to ", 0
me: .byte "me.", 0
period: .byte ".", $d, 0
comma: .byte "s, ", 0
socialist: .byte "Socialist", 0
unionist: .byte "Trade Unionist", 0
jew: .byte "Jew", 0
p: .byte $d, 0
revpoem: .byte <me, <for, <speak, <noone, <came, <then, <p
.byte <period, <jew, <wasnot, <out, <speak, <didnot
.byte <comma, <jew, <the, <for, <came, <then, <p, <period
.byte <unionist, <wasnot, <out, <speak, <didnot, <comma
.byte <unionist, <the, <for, <came, <then, <p, <period
.byte <socialist, <wasnot, <out, <speak, <didnot, <comma
.byte <socialist, <the, <for, <came, <first
revpoemsize = * - revpoem - 1