Bootloader theory In fact, the bootloader is a low-level BIOS. Interrupt service routines continue to be sent to the bootloader even after program execution. Softere vectors are registered with the bootloader for execution of certain software interrupts. The following are software interrupts the bootloader can report to the main program: NetworkPacketRecieved NetworkReadyToTransmit The following are functions the main program can call: PutTxPacketOnStack; GetRxPacketFromStack; WriteDataFlashInit WriteDataFlashNext [can be passed a pointer to a null-terminated array] ReadDataFlashInit ReadDataFlashNext [can be passed apointer to a null-terminated array] SetADCChannel ReadADC The following are memory spaces that are controlled by the bootloader: NetworkRxPacket0-NetworkRxPacket6, NetworkRxPacketIO NetworkTxPacket0-NetworkTxPacket6, NetworkTxPacketIO [The IO routines are because we don't guarentee the position of the network packet pounter. Our goal is to appear like a black box to the program residing on top of us] DataflashAddr (4 bytes) ADCout (2 bytes)