mic1 Release Notes

2000/2/29

Version 1.0a

Initial internal release for review.

Version 1.0b

The following corrections have been made to previously released software and are available in this release.

  1. Display current and next microinstruction in mic1sim. -- Fixed.

  2. Reset doesn't properly clear the text for the current microinstruction in mic1sim. -- Fixed.

  3. Clicking the X in the upper right corner has no effect. -- Fixed.

  4. Add "magic number" check to mic1sim for both micro- and macro-programs. -- Fixed.

  5. Add "magic number" to output file from mic1asm. -- Fixed.

  6. Allow case-insensitive interpretation of .jas files. -- Fixed. Added this to the assembler, ran some tests, worked fine in those tests.

  7. Allow a main program to have local variables. -- Fixed.

  8. Invalid goto label message in ijvmasm should name the label. -- Fixed.

  9. Document language accepted by ijvmasm. -- Done. See IJVM Assembler Language Specification (jas.html).

  10. Omit unix "man" files from unix distribution. -- Done.

  11. Provide a self-extracting archive for Win95/98/NT so that people don't need a separate extraction program. -- Done.

  12. Document language accepted by mic1asm. -- Done. See Micro-Assembly Language (MAL) Specification (mal.html).

  13. Explain why PC starts at 0xFFFFFFFF in mic1sim. -- Done. Added to FAQ.

  14. Explain why nop1 is first microinstruction, not Main1. -- Done. Added to FAQ

  15. Eliminate the need for DOS-level involvement of casual Win95/98/NT users. -- Done. Created a gui front-ends for ijvmasm and mic1asm, gijvmasm, gmic1asm.

  16. Improve install for Win95/98/NT to simplify autoexec/classpath issues. -- Done. The new install for Win95/98/NT only requires that the users modify a single text file (using NOTEPAD, for example) to indicate where the java executable is, and where the classes.zip file is for mic1. We no longer touch any autoexec.bat file, or modify CLASSPATH environment variables which may be used by other java programs.

  17. Change to monospaced font for mic1sim output area "Standard out". -- Fixed.

  18. Test install and functionality on SPARC, Linux/intel, Win98, WinNT. Our development environement includes tests for Linux/Intel, Win95, Win98, and WinNT using various versions of the JDK. We rely on "beta" testors to validate use on Solaris, HP/UX, and other platforms.

  19. Explain why backspace shouldn't erase in echo.jas. -- Done. Added to FAQ.

  20. Explain that mic1sim, gijvmasm, gmic1asm, require a GUI environment, while the other programs do not. -- Done. Added to FAQ.

  21. Explain why keyboard input read by the IN instruction doesn't show up in "Standard Out". -- Done. Added to FAQ.

  22. Display all hex values in uppercase in mic1sim. -- Fixed.

  23. Change the IJVM directive ".varnum" to ".var", and make corresponding changes in the documentation and sample programs. -- Done.

  24. Default output file type in gijvmasm is incorrect. -- Fixed. 1999/3/27

  25. ijvmasm.class seems to be missing from classes.zip. -- Fixed. 1999/3/27

Version 1.0c

The following corrections have been made to previously released software and are available in this release.

  1. Add tests for method calls, local variables and constants to ijvmtest.jas. -- Fixed. 1999/4/11

  2. Add numbers to sections in user guide. -- Done. 1999/4/11. Also added table of contents to user guide, and MAL spec, and cleaned up some formatting in IJVM spec as well.

  3. Document method calls in IJVM. -- -- Done. 1999/4/11. This is described in the IJVM lang spec. An extended example appears in the FAQ.

  4. Document constant declarations in IJVM. -- -- Done. 1999/4/11. This is in the IJVM lang spec.

  5. Document new IJVM instructions IN, OUT, ERR, and HLT. -- -- Done. 1999/4/11. These are described in the IJVM language spec. Examples are given for IN and OUT.

  6. Document mechanism which allows ijvmasm to declare local variables in the main program. -- Done. 1999/4/11. This is documented in the lang spec, including an example.

Version 1.0d

The following corrections have been made to previously released software and are available in this release.

  1. ijvmasm: If a method is declared without any parameters, a nameless parameter is created. When the method is invoked, a word is popped off the stack to fill this "invisible" parameter. -- Fixed. 1999/5/17. Thanks to Luke Dunstan for reporting this bug and providing information that helped quickly track down and fix it.

  2. ijvmasm: Added support for Tom Rothamel's ijvm debugger. -- 2000/2/29.

Version 1.0e

The following corrections have been made to previously released software and are available in this release.

  1. fixed mic1dasm to check for magic number 0x12345678 at beginning of input mic1 microcode file. 2000/3/1/.

To Do (proposed for the next version release)

Note: A number of the following have been completed in some form or another. We're still in the process of reviewing each item before we check them off this list.

  1. Document the various file types: *.mic1, *.ijvm, etc. In the works.

  2. Change ijvmasm to allow numeric arguments to ILOAD and ISTORE, not just variable names declared between ".var" and ".end-var". This would require some significant changes to the assembler, but would be more in keeping with Jasmine. The ".var" directive of Jasmine allows you to associate a name with a variable number, but all IINC, ILOAD and ISTORE instructions would still reference the number (not the name).

    Another complication is that the assembler would need to scan for the maximum variable number of all IINC, ILOAD, and ISTORE instructions and consider the number of parameters passed, rather than simply count the number of parameters and variables given. The current approach requires that all local variables and parameters get symbolic names.

  3. Eliminate "spasticness" in the startup of the simulator.

  4. Fix mic1dasm to account for the "magic number" at the beginning of the input file.

  5. Fix echo.jas to correct non-print-characters being echoed as space.

  6. Document add.jas in the user guide to explain how it works.

  7. Document echo.jas in the user guide to explain how it works.

  8. Modify add.jas to give a message each time through the loop, like "Please type two numbers, each terminated by ENTER." Also, output a blank line before that message again.

  9. Eliminate manual page files by combining this information into primary documentation.

  10. Explain how to set CLASSPATH on various platforms, and what to do if you already have one.

  11. The IJVM Assembly Language Specification is perhaps misnamed. This includes some specific information about the assembler (e.g., ijvm.conf). We should consider renaming this and the MAL Micro-assemply Language Specification.

  12. Allow a BELL character to be sent to standard output

  13. Create mailing list.

To Do (proposed for some future release)

  1. Modify mic1sim to allow memory in the neighborhood of SP, PC, MAR, LV, CPP (or elsewhere) to be displayed, or even modified. This is mostly just a matter of deciding how to make this intuitive and attractive, and then writing the code. If you have suggestions about what it should look like on the screen, or what buttons/menu items/etc should be used, send a note to Dan Stone (dans@ontko.com).

  2. Rework the Windows install to use an appropriate Windows-style install program. Casual users may be better served by having a familiar interface to find the java executable, set up the class path, etc. We will gladly accept help from anyone who is familiar with Windows install tools and setting up Java applications under Windows 95/98/NT.

  3. Create a distribution for Macintosh. Now that Apple has a stable version of the JDK available, it should be reasonable to provide a distribution. Now all we have to do is figure out how to do binhex or whatever to do an install there. We will gladly accept help from anyone who knows the Mac environment well and understands the issues of installing and running Java software on a the Mac.

  4. Support multiple documentation file formats: html, ps, ascii, etc. Our plan here is to convert the existing files to SGML, and then generate an appropriate collection of printable, browsable, viewable documents from a single source. We will gladly accept help from anyone who knows SGML to get us started down this path.

  5. Set up bug tracking system: gnats vs. debian bug reporting system. If you have experience with either of these systems (or any other free bug tracking system) and have an opinion about its suitability for the mic1 project, please send a note to Ray Ontko (rayo@ontko.com).

This page maintained by Ray Ontko (rayo@ontko.com).