| 1 | 2 | sinclairrf |   BUGS:
 | 
      
         | 2 |  |  |  
 | 
      
         | 3 |  |  |   example
 | 
      
         | 4 |  |  | *   "<", ... operators for signed 8-bit values
 | 
      
         | 5 |  |  |  
 | 
      
         | 6 |  |  |   ssbcc
 | 
      
         | 7 |  |  | *   change "outstatus" to "outfull" for UART and UART_Tx
 | 
      
         | 8 |  |  | *   add size[variable_name]
 | 
      
         | 9 |  |  |     add r* to over-write either s_T or s_N?
 | 
      
         | 10 |  |  | *   accommodate Lattice Diamond synthesis and memory initialization
 | 
      
         | 11 |  |  | *   make "quiet" the default
 | 
      
         | 12 |  |  | *   ensure timer tolerance is non-zero
 | 
      
         | 13 |  |  | *   ensure all "raise" statements include the source line code number
 | 
      
         | 14 |  |  | *   write COMBINE MEMORY tests
 | 
      
         | 15 |  |  | ?   bit-slice constants (similarly to parameters)
 | 
      
         | 16 |  |  |     handle ';' that aren't preceded by a space
 | 
      
         | 17 |  |  |     use .IFNDEF instead of checking assembler check for previously included files
 | 
      
         | 18 |  |  |     add "rot" instruction?
 | 
      
         | 19 |  |  |     add address range validation for memory accesses
 | 
      
         | 20 |  |  |     add warning for unreachable code following .jump or .return instructions
 | 
      
         | 21 |  |  |     add "share memory" feature?
 | 
      
         | 22 |  |  |       for dual-port memories in slave peripherals (i.e., registers readable by the bus master)
 | 
      
         | 23 |  |  |       for peripherals such as adders where long chains of outputs and inports would have been required and .store+/- and .fetch+/- would be much more efficient code-wise
 | 
      
         | 24 |  |  |       how to accommodate multiple "shared memory" peripherals?
 | 
      
         | 25 |  |  |     remove dead parameters and dead code
 | 
      
         | 26 |  |  |     rework design as required to make it more robust
 | 
      
         | 27 |  |  |     documentation
 | 
      
         | 28 |  |  |       top-level overview, point to implemented cores
 | 
      
         | 29 |  |  |       required:  ARCHITECTURE and sizes, ASSEMBLY, and HDL
 | 
      
         | 30 |  |  |       I/O Ports
 | 
      
         | 31 |  |  |       INPORT and OUTPORT
 | 
      
         | 32 |  |  |       PERIPHERAL
 | 
      
         | 33 |  |  |         finish doc/peripheral.html
 | 
      
         | 34 |  |  | *     all error messages
 | 
      
         | 35 |  |  |     generate Altera SOPC/Qsys TCL script
 | 
      
         | 36 |  |  |     add VHDL
 | 
      
         | 37 |  |  |  
 | 
      
         | 38 |  |  |   core/9x8
 | 
      
         | 39 |  |  |     documentation
 | 
      
         | 40 |  |  |       update
 | 
      
         | 41 |  |  |       assembler
 | 
      
         | 42 |  |  |         directives
 | 
      
         | 43 |  |  |         instructions
 | 
      
         | 44 |  |  |           change "opcodes.html" to "instructions.html", ...
 | 
      
         | 45 |  |  |         parameters
 | 
      
         | 46 |  |  |         constants
 | 
      
         | 47 |  |  |       peripherals
 | 
      
         | 48 |  |  |       running the test benches
 | 
      
         | 49 |  |  |     core.v
 | 
      
         | 50 |  |  |       additional instructions?
 | 
      
         | 51 |  |  |         "invert" opcode in 6'b000100 group
 | 
      
         | 52 |  |  |         "tst&=" and "tst&<>" instructions -- replace T with the stated comparison based on the bitwise and of T and N
 | 
      
         | 53 |  |  |         "cmp=" and "cmp<>" instructions -- replace T with the statued comparison based on N-T
 | 
      
         | 54 |  |  |     asm
 | 
      
         | 55 |  |  |       require .memory directive to be repeated after other directives, EOF, etc.
 | 
      
         | 56 |  |  |       improve error message for missing input files
 | 
      
         | 57 |  |  |       add non-return-stack-alteration restriction to some optional macro arguments
 | 
      
         | 58 |  |  |       implement .abbr directive
 | 
      
         | 59 |  |  |       add .if(...) [.elif(...)]* [.else] .endif directive set
 | 
      
         | 60 |  |  |         avoid full parsing of false branches (accommodate other cores?)
 | 
      
         | 61 |  |  |         add symbol for current core -- is9x8 (?)
 | 
      
         | 62 |  |  |     peripherals
 | 
      
         | 63 |  |  |       multi-byte adder
 | 
      
         | 64 |  |  |       multiplier
 | 
      
         | 65 |  |  |       PICK -- emulate the Forth operator?
 | 
      
         | 66 |  |  |         this can be done if the data stack is in its own dual-port memory, but that kinds of defeats the purpose of a small micro controller
 | 
      
         | 67 |  |  |       bus slave peripherals -- store external commands in a FIFO and statuses in dual-port RAM or shared RAM for external reads
 | 
      
         | 68 |  |  |         SPI_slave
 | 
      
         | 69 |  |  |         I2C_slave
 | 
      
         | 70 |  |  |       SoC Interconnects
 | 
      
         | 71 |  |  |         wishbone_slave
 | 
      
         | 72 |  |  |         avalon_slave
 | 
      
         | 73 |  |  |         wishbone_master
 | 
      
         | 74 |  |  |         avalon_master
 | 
      
         | 75 |  |  |         ARM_slave
 | 
      
         | 76 |  |  |     core.vhd
 | 
      
         | 77 |  |  |       do this once core.v is completed
 | 
      
         | 78 |  |  |  
 | 
      
         | 79 |  |  |   examples
 | 
      
         | 80 |  |  | *   Game-of-life
 | 
      
         | 81 |  |  |     add more examples
 | 
      
         | 82 |  |  |       "echo" program
 | 
      
         | 83 |  |  |       Jim Haberly -- accumulate 10 samples from an ADC
 | 
      
         | 84 |  |  |     JPEG compression example?
 | 
      
         | 85 |  |  |       Cast's JPEG-E core: http://www.cast-inc.com/ip-cores/images/jpeg-e/index.html (1343 slices, 170 MHz, 7 RAMB16, 9 DSP48)
 | 
      
         | 86 |  |  |  
 | 
      
         | 87 |  |  |   lib/9x8/math.s
 | 
      
         | 88 |  |  |     -- incorporate adder peripheral
 | 
      
         | 89 |  |  |     -- add_u8_u32__u32, ...
 | 
      
         | 90 |  |  |     -- sub_uX_uY__uZ, X,Y,Z \in {8,16,24,32}, Z \in min(X,Y)+{0,8}, Z<=32
 | 
      
         | 91 |  |  |     -- add signed versions
 | 
      
         | 92 |  |  |  
 | 
      
         | 93 |  |  |   lib/9x8/forth.s
 | 
      
         | 94 |  |  |     -- identify good instructions to include
 | 
      
         | 95 |  |  |       pick
 | 
      
         | 96 |  |  |  
 | 
      
         | 97 |  |  |   publicize
 | 
      
         | 98 |  |  |     - opencores
 | 
      
         | 99 |  |  |     - ssbcc.net
 | 
      
         | 100 |  |  |     - Programmable Planet
 | 
      
         | 101 |  |  |     - EETimes and other e-rags
 | 
      
         | 102 |  |  |     - add to web page
 |