


TODO - In no particular order:

  o Provide option to disable the nop portion of two-word
    18cxxx instructions in assembly dumps. 
  o Parallel stimuli
  o High frequency stimuli (currently, the cpu frequency is the
    maximum stimulation frequency) 
  o Support different clock types like variable frequency oscillators.
  o Gui support
    - Add an 'architecture' command for querying a pic's architecture
    - Provide a means for obtaining the current simulation state,
    saving the current simulation state, and finding the difference
    between two simulation states.  

    - Memory management. gpsim is very cavalier with memory. In a few
      instances, I check for insufficient memory, however I need to be
      more thorough. Fortunately, gpsim very seldom deletes
      instantiated objects. So I suspect there are no leaks... 

  o I2C Peripheral Support
  o I2C EEPROM Modules
  o Module call support - Other than attributes, there is no real good
    way to interface with modules. So the idea is to create
  infrastructure that defines how a module can expose an API that the
  simulation call.
  o dsPic support
  o High Level source (C and Jal)

  o Extended Stimuli
    - These are stimuli that are implemented as modules. Currently
  the PulseGen stimulus can replace most of what an asynchronous
  stimulus does. This needs to be finished.
    - Add a PWL 
    - Add a File Stimulus


GUI
---

  o Source Browser:
    - Provide a way of selecting which break to clear if multiple
      breaks are set at one address
  o Breakpoint Window - Add this to manage breakpoints.
  o Symbol Window - It's pretty much useless at the moment.
  o Program Memory - This is still using the GTK-1.x api. 
  o Breadboard window
    -- Needs a major overhaul
    -- Create addition package types (like TQFP). Cairo allows text to
       be drawn in any direction.
    -- Allow pins to be queried.
  o Waveform viewer - add.
    -- The waveform viewer should allow the users to view I/O pin
       state and Attribute states.

 
