Source code for py_register_machine2.machines.small

#!/usr/bin/python3

"""
**py_register_machine2.machines.small**: a collection of small ready to use register machines
	
"""

from ..core import processor, memory, register, device
from ..commands.basic_commands import basic_commands
import sys

[docs]def small_register_machine(rom_size = 50, ram_size = 200, flash_size = 500): """ An unprogrammend Register Machine with * one OutputRegister to ``sys.stdout`` (``out0``) * 15 General Purpose Register (``r0 - r14``) returns : ``(Processor, ROM, RAM, Flash)`` """ rom = memory.ROM(rom_size) ram = memory.RAM(ram_size) flash = device.Flash(flash_size) proc = processor.Processor() proc.register_memory_device(rom) proc.register_memory_device(ram) proc.register_device(flash) registers = [register.OutputRegister("out0", sys.stdout), register.Register("r0"), register.Register("r1"), register.Register("r2"), register.Register("r3"), register.Register("r4"), register.Register("r5"), register.Register("r6"), register.Register("r7"), register.Register("r8"), register.Register("r9"), register.Register("r10"), register.Register("r11"), register.Register("r12"), register.Register("r13"), register.Register("r14")] for r in registers: proc.add_register(r) for command in basic_commands: proc.register_command(command) return (proc, rom, ram, flash)
def get_machine(rom_size = 50, ram_size = 200, flash_size = 500): proc, rom, ram, flash = small_register_machine(rom_size, ram_size, flash_size) proc.setup_done() return (proc, rom, ram, flash)