jb302@39: #LyX 2.0 created this file. For more info see http://www.lyx.org/ jb302@39: \lyxformat 413 jb302@39: \begin_document jb302@39: \begin_header jb302@39: \textclass article jb302@39: \use_default_options true jb302@39: \maintain_unincluded_children false jb302@39: \language english jb302@39: \language_package default jb302@39: \inputencoding auto jb302@39: \fontencoding global jb302@39: \font_roman default jb302@39: \font_sans default jb302@39: \font_typewriter default jb302@39: \font_default_family default jb302@39: \use_non_tex_fonts false jb302@39: \font_sc false jb302@39: \font_osf false jb302@39: \font_sf_scale 100 jb302@39: \font_tt_scale 100 jb302@39: jb302@39: \graphics default jb302@39: \default_output_format default jb302@39: \output_sync 0 jb302@39: \bibtex_command default jb302@39: \index_command default jb302@39: \paperfontsize default jb302@39: \use_hyperref false jb302@39: \papersize default jb302@39: \use_geometry false jb302@39: \use_amsmath 1 jb302@39: \use_esint 1 jb302@39: \use_mhchem 1 jb302@39: \use_mathdots 1 jb302@39: \cite_engine basic jb302@39: \use_bibtopic false jb302@39: \use_indices false jb302@39: \paperorientation portrait jb302@39: \suppress_date false jb302@39: \use_refstyle 1 jb302@39: \index Index jb302@39: \shortcut idx jb302@39: \color #008000 jb302@39: \end_index jb302@39: \secnumdepth 3 jb302@39: \tocdepth 3 jb302@39: \paragraph_separation indent jb302@39: \paragraph_indentation default jb302@39: \quotes_language english jb302@39: \papercolumns 1 jb302@39: \papersides 1 jb302@39: \paperpagestyle default jb302@39: \tracking_changes false jb302@39: \output_changes false jb302@39: \html_math_output 0 jb302@39: \html_css_as_file 0 jb302@39: \html_be_strict false jb302@39: \end_header jb302@39: jb302@39: \begin_body jb302@39: jb302@39: \begin_layout Part jb302@39: Review and Improvements jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: The diagram below shows an overview of the goal of this project with the jb302@39: completed components and interfaces highlighted in green. jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset ERT jb302@39: status open jb302@39: jb302@39: \begin_layout Plain Layout jb302@39: jb302@39: jb302@39: \backslash jb302@39: bigskip jb302@39: \end_layout jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset Graphics jb302@39: filename /home/jmz/qm/ede/docs/img/ede/state_of_ede.svg jb302@39: display false jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset ERT jb302@39: status open jb302@39: jb302@39: \begin_layout Plain Layout jb302@39: jb302@39: jb302@39: \backslash jb302@39: bigskip jb302@39: \end_layout jb302@39: jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Standard jb302@39: \begin_inset Newpage pagebreak jb302@39: \end_inset jb302@39: jb302@39: jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Section jb302@39: Strategy for the completion of EDE jb302@39: \end_layout jb302@39: jb302@39: \begin_layout Enumerate jb302@42: Complete debugger interface code: jb302@39: \end_layout jb302@39: jb302@39: \begin_deeper jb302@39: \begin_layout Enumerate jb302@39: Both the PC and 8052 versions have fully implemented control interface functions. jb302@42: However, the Python debug class can currently only interact with a file jb302@39: buffer for I/O. jb302@42: The debugger's send and receive functions need to be modified to deal with jb302@42: a serial buffer. jb302@40: \end_layout jb302@40: jb302@40: \begin_layout Enumerate jb302@40: An option to enable this mode needs to be added to the command line interface jb302@42: code. jb302@40: \end_layout jb302@40: jb302@40: \end_deeper jb302@40: \begin_layout Enumerate jb302@42: Improve testing: jb302@40: \end_layout jb302@40: jb302@40: \begin_deeper jb302@40: \begin_layout Enumerate jb302@41: Complete testing of emulator. jb302@41: Before any more emulator code is added, the instructions that have already jb302@40: been implemented should be tested using something similar to the test method jb302@42: outlined in the Emulator Testing section. jb302@40: \end_layout jb302@40: jb302@41: \begin_layout Enumerate jb302@41: Implement automated testing for the assembler to remove the need to inspect jb302@41: files by eye. jb302@41: \end_layout jb302@41: jb302@40: \end_deeper jb302@40: \begin_layout Enumerate jb302@42: Develop emulated peripheral and peripheral driver code: jb302@40: \end_layout jb302@40: jb302@40: \begin_deeper jb302@40: \begin_layout Enumerate jb302@40: Emulated peripherals such as an interrupt controller, timer and parallel jb302@40: port I/O need to be developed. jb302@40: They should be introduced as new modules to the PC build of the emulator. jb302@40: The emulators main.c file will need to be updated to add them to the main jb302@40: execution loop. jb302@40: \end_layout jb302@40: jb302@40: \begin_layout Enumerate jb302@40: Peripheral drivers need to be developed for the Intel MCS-51 build, These jb302@40: drivers could be quite specific to the exact development board and/or 8052 jb302@40: implementation that is being used. jb302@40: The current Intel MCS-51 build of the emulator uses 4135 bytes of code jb302@40: memory and 56 bytes of RAM. jb302@40: 8k ROM and 256 bytes of RAM this leaves almost half the available ROM and jb302@40: 200 bytes of RAM for peripheral drivers to be integrated. jb302@40: \end_layout jb302@40: jb302@40: \end_deeper jb302@40: \begin_layout Enumerate jb302@42: Add the ability to handle segments and macros to the assembler: jb302@40: \end_layout jb302@40: jb302@40: \begin_deeper jb302@40: \begin_layout Enumerate jb302@42: The ELB816 specification document details how these should work; there is jb302@40: no reason the assembler could not be modified to deal with them. jb302@39: \end_layout jb302@39: jb302@39: \end_deeper jb302@39: \end_body jb302@39: \end_document