Skip to content

While tinkering in Windows 95, Dynamic Core crashes #10

@Tennessene

Description

@Tennessene

To be honest I really don't know what I'm dealing with here. I haven't ported very big programs from C++ to Java and I really don't know much about how emulators work besides them emulating the hardware the original system used somehow. I think some emulators have self-modifying code, but not all. I figured out what a dynamic core is:

The "dynamic core" of an emulator relates to how the emulator translates the instructions of the emulated system into instructions that the host system can understand.

This can be done in a few ways, but the dynamic core tries to do it in the most efficient way possible, by translating large blocks of instructions at once and storing them for later use. This is faster than translating each instruction one at a time.

So the error happens sometimes when I'm doing something in Windows 95 like making a change in system settings and then going to restart and as soon as I press the start button, it crashes and says Dynamic Core: Self modifying code across page boundaries not implemented yet
Here is the full stack trace:

java.lang.Exception: Stacktrace
	at jdos.misc.Log.exit(Log.java:15)
	at jdos.cpu.core_dynamic.Helper.decode_putback(Helper.java:78)
	at jdos.cpu.core_dynamic.Decoder.CreateCacheBlock(Decoder.java:330)
	at jdos.cpu.Core_dynamic$2.call(Core_dynamic.java:109)
	at jdos.Dosbox$1.call(Dosbox.java:67)
	at jdos.Dosbox.DOSBOX_RunMachine(Dosbox.java:205)
	at jdos.cpu.Callback.CALLBACK_RunRealInt(Callback.java:158)
	at jdos.shell.Dos_shell.Execute(Dos_shell.java:755)
	at jdos.shell.Dos_shell.DoCommand(Dos_shell.java:633)
	at jdos.shell.Dos_shell.ParseLine(Dos_shell.java:173)
	at jdos.shell.Dos_shell.Run(Dos_shell.java:91)
	at jdos.shell.Shell$5.call(Shell.java:398)
	at jdos.misc.setup.Config.StartUp(Config.java:97)
	at jdos.gui.MainBase.main(MainBase.java:536)
	at jdos.gui.MainFrame$4.run(MainFrame.java:247)
	at java.base/java.lang.Thread.run(Thread.java:833)

So, somehow we need to add support to modify code across page boundaries?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions