うーんあまり1行に詰め込むのはOSPやQSPでも書かない限りややこしくなるからやめたほうがいいと思う
そして、D$って存在意義無いような気がするし、打ち間違いがあったら困るから自分なら
@1P
B=button()
while B and 13
wend
C=-1:D=-1'CはC$の代わり、DはD$の代わり
if B and 1 then C=0 elseif B and 4 then C=1 elseif B and 8 then C=2
on C goto @2P,@2P,@2P
goto @1P
~以下略
とかするなぁ