                            Possible BSVC Projects
                            ======================

Here is a list of possible projects that can be done with BSVC.  If you're
a brave person with some spare time or a senior who needs a project to work
on think about one of the following.  Some of these are very pratical while
others are a little on the far side.


1) It would be nice to have the following microprocessors simulated:

   * Intel 8051
   * Intel 8086
   * Intel 8088
   * Motorola 68HC11
   * Power PC 601
   * MOS 6502   (I've got most of this written just haven't finished it :-)

2) More devices for example:

   * Motorola 6850 UART    I've got part of this written but then I found
                           out that NCSU had started using the MC68681 :-)

   * Motorola 68230 Timer  So we can do some multitasking ;-)

   * Simple Video Card     A simple device that simulates a very simple
                           video card.  Sould have some wierd bit plane
                           modes so student will have to do a lot of
                           bit minipulations.

   * ROM                   Really simple to implement.  Just like RAM
                           execpt it reads in a file when it's created.
 
   * Ethernet Adapter      I'm not sure how hard this would be.

   * Shared RAM            On systems that support shared memory you
                           could allocate a RAM moduled that shared from
                           one simulator to the next.  Then fire up two
                           simulators and let the play in the shared memory.
                           This is really out there but might be interesting
                           to play with.

   * Hard disk adapter     Uses a file as a hard disk image

3) 68000 stuff

   * See how hard it would be to build GNU C as a cross compiler for the
     M68000.  Then add a Loader to the Sim68000 to load the a.out file
     generated by gcc.

   * If you get GNU C working then port XINU to the M68000.

4) Cache simulations

   * Get GNU C to work as a cross compiler to one of the microprocessors
     supported by BSVC.  Add a Loader to the simulator to load the a.out
     format file generated by gcc.

   * Port a C library to the simulator.  This should be complete enough to
     allow some UNIX programs to be compiled and ran on the simulator.

   * Subclass the AddressSpace object and implement a Cache simulator.  Then
     you can use the C programs to benchmark the cache.

   * Might also want to get C++ to work then you could study the effects
     of OO on the cache.

   * You could also study GC effects on the Cache.

       This would be really neat if it worked but I would suggest more
       than one person on this project :-)

5) BSVC Framework 

   * Modify the EventHandler to accept file descriptor events, and timed
     file descriptor events.  This would eliminate the polling done in the
     M68681 device.

   * Clean up the interface class and remove some of the C code in there
    
6) Add new feature to the program listing utility

   * Highlight lines were breakpoints are set

   * Allow breakpoints to be set/unset

There are many others, but it's getting late and I've got to go to work
tomorrow :-)


