For some time now I have been developing a certain system, which I have tentatively named Virtual Machine for 8-bit systems. The name seems to me, at least for now, to reflect well what it is intended to be used for.
.
.
The project is based on the STM32H750, although in principle it can be ported to almost any Cortex-ARM, which I think I will probably do in the future. For now, it's on this chip because it basically meets my needs at least at the moment.
What this chip does, at the moment it simulates a computer with a 65816 processor. This processor was the most advanced development version of a family of processors derived from the MOS6502 known from ATARI 8-bit computers, COMMODORE, or NES consoles.
Currently, the system simulates a 65816 processor and can execute its code at a speed equivalent to a 65816 processor with a clock of about 4.5MHz.
At this point I have run the 65816 compatibility test, which passes in its entirety including simulation of all known 65816 anomalies.
By the way, I managed to run j. BASIC and a simple operating system, exactly it is EhBASIC2.22, which runs on many DIY systems based on 6502.
In the video is a fractal drawing program written in the dialect of this BASIC.
I am also attaching a listing, maybe someone would like to help and run it on their 8-bit computer, which might help me to better estimate the performance of this machine of mine.
Porting the program shouldn't be too complicated, as it uses text mode and simple calculations. In order for the test to make any sense, I ask that you do not make any changes that might distort the results, such as not removing spaces or combining several lines into one to increase its execution speed. It is best to run as is or, if necessary, make only the necessary changes for the dialect if the program in this version would not run on the machine in question. if the system does not show the time you can remove lines 290 and 510.
As of today, the chip provides access to 2 serial ports and several 8/16-bit parallel ports.
It has a built-in program to track the TRACE of the emulated system. All in all, for its operation it is sufficient to connect to some serial terminal.
I want to develop the system by adding simulators for more processors.
The system at the moment has 3 blocks of RAM 512kB, 384kB and 64kB.
And it has 2 serial hardware ports for communication. Their number can be expanded if required. In principle, it is supposed to be possible to map all STM32 I/O chips.
The program in BASIC and a video of how it works attached, as I had trouble adjusting the format of the video to make it visible in the message.
If anyone has any ideas what should be included in such a system, please write. The Virtual Machine is still under construction
.


The project is based on the STM32H750, although in principle it can be ported to almost any Cortex-ARM, which I think I will probably do in the future. For now, it's on this chip because it basically meets my needs at least at the moment.
What this chip does, at the moment it simulates a computer with a 65816 processor. This processor was the most advanced development version of a family of processors derived from the MOS6502 known from ATARI 8-bit computers, COMMODORE, or NES consoles.
Currently, the system simulates a 65816 processor and can execute its code at a speed equivalent to a 65816 processor with a clock of about 4.5MHz.
At this point I have run the 65816 compatibility test, which passes in its entirety including simulation of all known 65816 anomalies.

By the way, I managed to run j. BASIC and a simple operating system, exactly it is EhBASIC2.22, which runs on many DIY systems based on 6502.
In the video is a fractal drawing program written in the dialect of this BASIC.
I am also attaching a listing, maybe someone would like to help and run it on their 8-bit computer, which might help me to better estimate the performance of this machine of mine.
Porting the program shouldn't be too complicated, as it uses text mode and simple calculations. In order for the test to make any sense, I ask that you do not make any changes that might distort the results, such as not removing spaces or combining several lines into one to increase its execution speed. It is best to run as is or, if necessary, make only the necessary changes for the dialect if the program in this version would not run on the machine in question. if the system does not show the time you can remove lines 290 and 510.
As of today, the chip provides access to 2 serial ports and several 8/16-bit parallel ports.
It has a built-in program to track the TRACE of the emulated system. All in all, for its operation it is sufficient to connect to some serial terminal.
I want to develop the system by adding simulators for more processors.
The system at the moment has 3 blocks of RAM 512kB, 384kB and 64kB.
And it has 2 serial hardware ports for communication. Their number can be expanded if required. In principle, it is supposed to be possible to map all STM32 I/O chips.
The program in BASIC and a video of how it works attached, as I had trouble adjusting the format of the video to make it visible in the message.
If anyone has any ideas what should be included in such a system, please write. The Virtual Machine is still under construction

Cool? Ranking DIY