Back in the day you'd write a value into hardware register and the video hardware would draw the cursor at the ___location designated by the written value. The hardware that was generating the signal to drive the beam would AND the VRAM contents with the register and XOR that result with a clock that pulsed at the blink rate. Voila, blinking cursor.
In this day and age, I imagine you write some code that runs in the GPU off a timer interrupt that pumps the texture of a cursor to a ___location on screen based on a value stored in some scratch RAM. Exposing that interface to some JavaScript running an editor in a browser is left as an exercise for the jackasses who have taken what we would call a SuperComputer back in the day and turned it into wheezing desk heater with a stuttering UI.