What is E-MMI ROM and what you'll find in this section? How to use it and how it works?
All E-MMI software has a special virtual machine with ROM simulation. Some typical and helpful subroutines (see below) are always available for E-MMI users. The presence of such subroutines makes programming for E-MMI very easy that is very important feature for education or self-education. Say the novice wants to input 2 numbers, add them and print the result on the display screen. Using ROM, he just calls input subroutine twice, writes add instruction and then calls another subroutine that print the result. That's all, the program is ready! Of course, when any person goes feather, he (or she) can examine these subroutines (including this online documentation!) or write his (her) own subroutine as well. It will be the next level of MMIX skills.
And what if you don't use E-MMI software? Is there any interest in this case? I dare to say yes! As you reading this Web-page, you must be interested in learning MMIX computer. So you must find helpful to analyze the examples of typical important MMIX subroutines such as the solutions of the following "classical" problems: input of integer and real numbers, print them, input or print the text on MMIX etc. Please note that these solutions are not evident sometimes.
And now some words about realization. E-MMI virtual machine has a special memory area from addresses EE00 0000 0000 0000 (till EE00 0000 0000 03FF now, so it's 1 K). This area is the position of ROM: you can find ROM subroutines there, and, as in real computer ROM, read and use them but not write (E-MMI will generate an error if you'll try to write data into this range of addresses). ROM subroutines' content is reading from the special text file rom.cod when E-MMI software starts.
This moment E-MMI ROM contains the following subroutines:
- print INT64
- input INT64
- print DOUBLE
- input DOUBLE
- print CHAR
- input CHAR
- print BOOLEAN
- print text, allocated after subroutine call
- make CR/LF
- convert INT64 to DOUBLE
- convert DOUBLE to INT64 (ROUND and TRUNC)
Some of them have online description already, other wait for their turn.
I have done great work developing this ROM for MMIX and hope you'll find it helpful. Fell free to contact with me if necessary. Especially if you want to add useful MMIX subroutines to ROM!
Related topics:
E-MMI software