beeswax, 119119 113 bytes
> p
ph0`J2[`}ghd'ghq'-< gh0N<gh0N}`0`}gN`/o\`Ngh<o\`Ngh0`J`<
>g}`o`}N` 0`0>'d`0 `N`/ \`0hg>-'qhg'phg} `[2J`0d`[2`b
dF1f+5~Zzf(.FP9 fFP9f..F3_#bF3_# d <
3F..fleft to right right to left
3FBf or fBF3 27 ASCII code for (esc)
9PF.(3 [x,x,3]• set lstack 1st to 3
F [3,3,3]• set lstack to 1st
B [3,3,9]• 1st=1st^2nd
f push lstack 1st on gstack
——————
9PF.(f or f(.FP9 102400 counter to roughly match a wait time
of 1 s on my i5 2410M Laptop
5FZ+f9 [x,x,9]• set lstack 1st to 9
P [x,x,10]• increment 1st
F [10,10,10]• set lstack to 1st
. [10,10,100]• 1st=1st*2nd
( [10,10,102400]• 1st=1st<<2nd (100<<10=102400, arithmetic shift left)
f push lstack 1st on gstack
——————
zZ~5+f or f+5~Zz 95 ASCII for '_'
z [0,0,0]• initialize lstack to zero
Z [0,0,90]• get value from relative coordinate (0,0),
which is the location of `Z` itself, ASCII(Z)=90
~ [0,90,0]• flip 1st and 2nd lstack values
5 [0,90,5]• set lstack 1st to 5
+ [0,90,95]• 1st = 1st+2nd
f push lstack 1st on gstack