To do that it will be possible to base this project to the 'py65emu' library. And I think this work will be not very difficult with help of different python libraries.
In the first time it will be just neccesary to adapt this program with the Oric rom and handle the displaying and keyboard.
Code: Select all
from py65emu.cpu import CPU
from py65emu.mmu import MMU
f = open("program.rom", "rb") # Open your rom
# define your blocks of memory. Each tuple is
# (start_address, length, readOnly=True, value=None, valueOffset=0)
m = MMU([
(0x00, 0x200), # Create RAM with 512 bytes
(0x1000, 0x4000, True, f) # Create ROM starting at 0x1000 with your program.
])
# Create the CPU with the MMU and the starting program counter address
# You can also optionally pass in a value for stack_page, which defaults
# to 1, meaning the stack will be from 0x100-0x1ff. As far as I know this
# is true for all 6502s, but for instance in the 6507 used by the Atari
# 2600 it is in the zero page, stack_page=0.
c = CPU(mmu, 0x1000)
# Do this to execute one instruction
c.step()
# You can check the registers and memory values to determine what has changed
print c.r.a # A register
print c.r.x # X register
print c.r.y # Y register
print c.r.s # Stack Pointer
print c.r.pc # Program Counter
print c.r.getFlag('C') # Get the value of a flag from the flag register.
print mmu.read(0xff) # Read a value from memory
https://github.com/docmarionum1/py65emu
What do you think about this ?