8051 Virtual Workshop User Guide

Introduction
Overview
    Overview
    Virtual Workshop Integration
    Extension Integration
Getting Started
    Loading an 8051 Program into the Virtual Workshop
    Running a Simulation
Watching C Variables
    Watching C Variables
    Local Symbols Window
    Watch Windows
    Editing C Variable Values
    The Context Menu
    Variable Tooltips
Viewing Disassembly Memory Contents and Registers
    Disassembly Window
    Registers Window
    Memory Windows
Activity Views
    Introduction
    Port Activity View
    Serial Port Activity View
    Timer/Counter Activity View
    Program Status Word Activity View
Interrupts
    Simulation
    Tree View
Breakpoints
    Using Breakpoints
    Source and Machine Level Breakpoints
    Source Level Breakpoints
        Setting
        The Breakpoint View
        Breakpoint Properties
        Context Menu
        Deleting
        Hierarchical Breakpoints
    Machine Level Breakpoints
        Set Breakpoint at Cursor
        Breakpoints Dialog Box
        Editing Breakpoints
            Editing Breakpoints
            Add Breakpoint
            Delete Breakpoint
            Change Breakpoint
            Disable Breakpoint
Using the Toolbar
Interpreting the Status bar
Program Status File
Simulator Commands
    Go
    Halt
    Trace
    Restart
    Step Into
    Step Over
    Step Out
    Step to Cursor
    Undo Instruction
    Undo Command
    Trigger Interrupt 0
    Trigger Interrupt 1
    Trigger Timer 2 Reset
Specifying the 8051 Memory Setup
    Memory Address Ranges
    Memory Mapping
    Memory Mapped I/O
Using the Console I/O Utility
Using the Serial Port I/O Utility
    Serial Port Output
    Serial Port Input
Using the Port I/O Utility
    Using the Port I/O Utility
    8051 Ports Dialog Box
Code and Data Coverage
    Code Coverage
    Data/Xdata Coverage
Source Code Profiling
State capture
Using the Call Stack
Improving Simulation Speed
    Improving Simulation Speed
    Enable/Disable Interrupts
    Enable/Disable Serial Port
    Enable/Disable Timers
Miscellaneous Features
    Check Returns
    Trap Delayed Interrupts
    Clear Ram on Reset
    No Break on Stepout
    No Break on Stepover
    Confirm Binary
The Extension Interface
    Introduction
    Compulsory Interface Calls
        Introduction
        Initialise()
    General Purpose Interface Calls
        Introduction
        GetXDataMemory()
        SetXDataMemory()
        ClearXDataMemory()
        GetProgramMemory()
        SetProgramMemory()
        SetMachineCycles()
        IncMachineCycles()
        GetSerialInput()
        GetSerialInputWord()
        SetSerialOutput()
        SetSerialOutputWord()
        GetPortPins()
        SetPortPins()
        SetAnalogOutputs
        SetWaveForm
        ResetState()
        PreCloseExtensions()
    Capture State Specific Interface Calls
        Introduction
        DuplicateState()
        DeleteState()
        SetActiveState()
    MFC Specific Interface Calls
        Introduction
        AddViewMenuItems()
        OnCmdMsg()
    Variant Specific Interface Calls
        Introduction
        GetSFRMemory()
        SetSFRMemory()
        GetDptr()
        SetDptr()
        GetWaveForm
        GetMachineCycles()
        CheckWatchdog()
        GetAdditionalInterrupts()
        GetAdditionalPorts()
        GetRegisters()
        GetSerialPorts()
        HandleReservedInstruction()
        GetReservedInstructionMnemonic()
        GetExternalBusAccessCode()
        GetExternalBusAccessData()
    Advanced Interface Calls
        Introduction
        GetDataMemory()
        SetDataMemory()
Extension Examples
    Introduction
    Counters 0 and 1
        Introduction
        Extension Source Code
        8051 Test Code
    Memory Bank Switching
        Introduction
        Extension Source Code
        8051 Test Code
Using the Custom AppWizard or Project Template
    Introduction
    Microsoft Visual Tool Requirements
    Custom Appwizard and Project Template
    Installing the Custom AppWizard
        Installing under Visual C++ version 5
        Installing under Visual C++ version 6
    Installing the Visual Studio Project Template
    Tutorial - Creating an Extension with the AppWizard
        Introduction
        Create an 8051 Project
        Edit and Compile your 8051 Program
        Running your Program in the Virtual Workshop
        Watch the Serial Port Running
        Shut Down the Virtual Workshop
        Create an Outline Virtual Workshop Extension
        Configuring and Building the Extension
        Loading and Running the Extension
        Unloading the Extension
        Toggling a Port Pin from your Extension
        Adding a Dialog Box to your Extension
            Modeless Dialog Box
            Creating the Dialog Box Resource
            Creating the Class Source Files for your Dialog Box
            Making the Dialog Box Modeless
            Opening the Dialog Box
            Build and Run your Extension
            Sending Messages to your Program
            Build and Run your Extension
        Finalising Support for your Dialog Box
            The Finishing Touches
            Supporting the Capture State Command
            Build and Run your Extension
            Closing and Reopening your Dialog Box
                Handling the Close Event
                Creating a Menu Item
                Handling the Menu Message
                Build and Run your Extension
            Restoring the Dialog Position
            Build and Run your Extension
        Single Stepping through your Extension
        Speeding up your Extension
Code Creation Wizards
    Introduction
    Common Features
    xstdsys.c and xstdsys.h
    _init_chip() and _init_chip1()
    Wizard blocks
    Modifying the Configuration Code
    Inserting Code into your Normal Source Files
    Interrupt and I/O Handlers
    Changing Variants
    Linked Wizards
    Reset All Wizards
    Headers Wizard
    Accessing Wizards using the Source Code Context Menu
        Displaying the Context Menu
        A Wizards Dialog Box
        Operations and Registers
        Register Bits
        Register Only Selection