Fixedpoint Numbers and Multitasking

Translate this program into SPARC assembler. Then make it run the two indicated routines simultaneously, by implementing a cooperative multitasking system and sprinkling a call to the maybe_cede_cpu routine in the middle of the main drawing loop.

The multitasking executive should start one routine, and then when it cedes it should start the other one, and then it should alternate between the two.

Put each subroutine in its own file. We will give 50% credit for just the spirograph part, and more credit for increasingly near-to-working multitasking. Make a precise plan for your cooperative multitasking system and document it. How will it look to the routines that use it, how will the registers work in the implementation, where will you save them, where will the two (or maybe three?) stacks live, how will you switch them back and forth. 25% credit for that. The last 25% for actually implementing it.

You may work on this assignment in teams of two. More will be expected of a team than of a single individual.

Due midnight Wed May 8. To hand in your code and other files, log into a * linux machine and run

 ~bap/public_html/bin/hw-handin dirs-and-files

Hand in checklist: