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
7I'm not sure what this adds to the site above and beyond the RickRoll challenge. – AdmBorkBork – 2017-08-21T14:54:20.453
7I don't like the hammering of ricroll dupes here. – programmer5000 – 2017-08-21T14:56:41.287
3Meta discussion – programmer5000 – 2017-08-21T15:06:33.663
11For once, I don't think this is a Rickroll dupe. There is meaningful structure here. The parallelism allows from different strategies. Reopening. – xnor – 2017-08-21T23:51:47.890
3The structure is an argument in favour of being a dupe of the rickroll, not against. – Peter Taylor – 2017-08-22T09:50:21.840
2The poem in question has much more structure than Never Gonna Give You Up, I don't see how it makes it more of a dupe target. – totallyhuman – 2017-08-22T18:02:27.153
I'm dupe-hammering this again, because the meta consensus seems to be that it is in fact a dupe (by virtue of the fact that the meta question was closed as a dupe of other meta questions with the same consensus). – Mego – 2017-08-27T01:09:03.620
2@Mego I can't find the meta consensus you are talking about that has that consensus. The only thing I could find said
in this case it makes more sense to upvote, precisely because the OP has found a song that isn't just a duplicate of the rickroll
and this question has quite a few upvotes. – Stephen – 2017-08-27T04:13:31.350@Stephen Look at the meta discussion linked in the comments. It's been closed as a dupe of other discussions where the consensus was "yes this is a dupe". – Mego – 2017-08-27T04:14:45.853
@Mego I don't see that in either other meta discussion. The first (about "Work it harder, make it better") has a clear consensus that not all song lyric questions are rickroll dupes, and the second ("I met a bear") has no consensus--two opposing answers with two points each. – KSmarts – 2017-11-28T15:17:29.667