+mainloop:
+ ;halt ; wait for interrupt
+ ld a, (frame)
+ ld b, a ; b: cur frame
+ ld a, (prev) ; a: prev frame
+ xor b
+ bit 7, a
+ ld a, b
+ ld (prev), a
+ jr z, mainloop
+
+ bit 7, a ; 0: play, 1: stop
+ jr z, .keyon
+ ld (iy), YM_OPER
+ ld (iy+1), 0 ; key off
+ jr mainloop
+.keyon: ld (iy), YM_OPER
+ ld (iy+1), $f0 ; key on
+ jr mainloop