I love that each step further down in size has you thinking "nope, it won't get smaller". Here is a C64 version in 13 bytes:
.pc=$7c
loop:
lda $d012 ; content of $d012 into accumulator
lsr ; shift accumulator right, moving lsbit into carry
lda #$cd ; value of diagonal line into accumulator
adc #0 ; add 0 + carry. if carry, accumulator will hold $ce, opposite diagonal line
jsr $ffd2 ; call CHROUT in rom; outputs character in accumulator on device
bcc loop ; branch to loop if carry is cleared; an effective branch-always which saves 1 byte from a jump
I'm sure it can be golfed further with the illegal opcodes that I am not familiar with.EDIT: Shed one byte, added comments, moved the origin to $7c which means that adding 2 bytes of header will make it a runnable C64 PRG.