Workers move red and blue boxes back and forth from two stacks. One is red, the other blue. Red and blue boxes represent two numbers entered by the student. The number four would be represented by four boxes stacked above a line in the middle of the screen. The number negative two would be represented by two boxes below the line.
Addition works by sliding the blue boxes up to extend from the top-most block of the red stack.
Subtraction works by sliding the blue boxes down from the top of the red stack. If the red stack is negative, the directions are reversed. The whole process uses animated creatures carrying the blocks to show the flow of blocks back and forth. The program then asks the student to produce the correct manipulation of blocks by clicking on blue and red blocks and dragging them as appropriate for the operation. This would be a fairly straightforward Java application, with some pages of HTML introduction to show how the system works.