ROUTINE

DESPCRIPTION
  Routine is just some procedure called by procedure body which accomplish some
  common or separate task. (like some drawing effects, computations etc.)

SPECIFICATION
  - routine is near procedure (returns with retn)
  - routine performs one type of task using
  - arguments passed in registers and structures of library
  - saves only ESP

FUTURE SPEEDUP METHOD - self modyfing code:

  Routine will analyse it's arguments and generate optimal algorithm for this
  one arguments. Optimal algorithm for this operation will almost always be
  faster than general algorithm for this type of operation.

  I know self overwriting code is considered as bad optimizing technique but let
  me explain why i use it on example: think about drawing 32x32 (quite small)
  bitmap. Imagine that general algorithm takes only one cycle per pixel more
  than optimal. In this case, optimal algorithm would save 32*32 = 1024 cycles.
  Pipeline reloading takes about 300 cycles, so we saved 700 cycles. And this is
  bad case - i used small picture and poor optimization.

  NOTE: memory containing routine using SMC must be writable
