03-12-2016, 10:20 PM
Hello all,
I have constructed an 8080 simulator and I would like to share it with you for your examination and comment.
You may have seen my "newbie" questions recently. I owe many thanks to Tim, Cyrille, Didier and DrD, for their patient responses to my questions.
This initial version of my 8080 simulator uses matrix M1 as a single column array containing the memory for the 8080. The opcodes must be entered into M1 as positive integers between 0 and 255 (decimal).
A few instructions are not yet implemented. If these opcodes are encountered, a message will be printed out to the Terminal. If an illegal opcode or a HLT is encountered, the program will halt and a dump of the 8080 registers, flags, and the temporary variables will be printed.
At present, the OUT opcode will print a message to the Terminal that indicates what value was output to what port. The IN opcode will print a message indicating that input was requested from a port, and it returns 0 to the running program.
My hope is to be able to create a M1 array containing a simple system monitor for the 8080 with memory inspect and change, etc., so that one could have a simple 8080 system running that will allow entry and execution of simple programs.
There is an interesting quirk with M1. There is no location 0 since the matrix starts at 1. So, you will see comments in my code for when I had to remember to deal with that.
Your comments and critique are welcome. I am not a strong programmer, so please do not expect anything elegant. Your suggestions for improvement are welcome.
smp
I have constructed an 8080 simulator and I would like to share it with you for your examination and comment.
You may have seen my "newbie" questions recently. I owe many thanks to Tim, Cyrille, Didier and DrD, for their patient responses to my questions.
This initial version of my 8080 simulator uses matrix M1 as a single column array containing the memory for the 8080. The opcodes must be entered into M1 as positive integers between 0 and 255 (decimal).
A few instructions are not yet implemented. If these opcodes are encountered, a message will be printed out to the Terminal. If an illegal opcode or a HLT is encountered, the program will halt and a dump of the 8080 registers, flags, and the temporary variables will be printed.
At present, the OUT opcode will print a message to the Terminal that indicates what value was output to what port. The IN opcode will print a message indicating that input was requested from a port, and it returns 0 to the running program.
My hope is to be able to create a M1 array containing a simple system monitor for the 8080 with memory inspect and change, etc., so that one could have a simple 8080 system running that will allow entry and execution of simple programs.
There is an interesting quirk with M1. There is no location 0 since the matrix starts at 1. So, you will see comments in my code for when I had to remember to deal with that.
Your comments and critique are welcome. I am not a strong programmer, so please do not expect anything elegant. Your suggestions for improvement are welcome.
smp