the last 2 parameters of the method glDrawArrays its the initial position and vertex count… so, the code you posted here, you should have at least 8 vertex, since you start in the position 4 and draw 4 vertex
The program might “work” on your machine but it could just as well crash on another. You’re accessing undefined memory. You are responsible for making sure GL can access the vertices you point it to.
Besides, you can’t properly convert from float to GLfixed without an explicit conversion. Here the values will all be rounded to 0.