Normally in math you might do something like:
(currentSpeed / 255) * 3000
for linear, and to get a bit of a curve use a power:
((currentSpeed / 255) * (currentSpeed / 255)) * 3000
But, in integer math that doesn't work because (currentSpeed / 255) will almost always be zero.
To do this without floating point you have to scale up first before division.
((3000 * currentSpeed) * currentSpeed) / (255 * 255)