4 ms·
Forty years ago I had a Sinclair QL with an 8086 emulator. Because the Sinclair QL had preemptive multitasking, I could easily search memory for patterns, monit
by johnklos 2y ago
Forty years ago I had a Sinclair QL with an 8086 emulator. Because the Sinclair QL had preemptive multitasking, I could easily search memory for patterns, monitor locations, stop and start the emulation, or change memory programmatically and easily from the QDOS side. It was worlds easier than using a debugger, particularly since I didn't own an 8086 system.
I always thought it was a clever way to get insights in to software while it was running that wasn't available to people with 8086 systems, and it's interesting to see this idea so many years later.
- mananaysiempre 2y agoBochs and MAME both have superb and widely-used debuggers, while Qemu is more limited but still has some debugging capabilities in its monitor, as well as a gdb integration. (Can’t say anything about PCem/86Box.) It seems that developers of emulators targeting good coverage of old stuff simply can’t not build a debugger, because it’s an integral part of their task to figure out what the hell the devs of the latest failing thing did to make it fail. Bochs is (was?) also quite popular in the OSDev scene as a debugging tool.
- rzzzt 2y agoDOSBox can be configured to include a debugger. The feature is not enabled in the official binary but the enhanced derivative projects probably have it (DOSBox-X definitely does): - https://www.vogons.org/viewtopic.php?t=3944 https://www.vogons.org/viewtopic.php?t=3944 - https://github.com/joncampbell123/dosbox-x/wiki/DOSBox%E2%80%90X%E2%80%99s-Feature-Highlights https://github.com/joncampbell123/dosbox-x/wiki/DOSBox%E2%80...
- 2mlWQbCK 2y agoDOSBox-x on FreeBSD at least has is disabled by default, but it can be enabled when building from ports (make config). https://github.com/joncampbell123/dosbox-x/blob/master/README.debugger https://github.com/joncampbell123/dosbox-x/blob/master/READM...
- genewitch 2y agoHey because I don't feel like making a phone call to my BSD expert, is that a flag? Like in Gentoo it would be like USE="debugger" emerge -vaD bochs #portage reads env and will set flags this way or in /etc/portage/packages.use/bochs (folder name packages.use is arbitrary and I'm old school.) Curious if BSD is like that too and I am way to tired to attempt to search for it with correct words...
- LargoLasskhyfv 2y agoYou don't do that systemwide in FBSD, instead during the build from source for that single port. Optionally even interactively by curses interface. See https://www.freshports.org/emulators/dosbox-x/ https://www.freshports.org/emulators/dosbox-x/
- genewitch 2y agoOh yeah, that is right. thank you! i didn't want to have to install a bsd just to check, i don't have one handy right now! to clarify: USE="debugger" would be a flag that the package has, when you call the package manager to build it from source it just enables that in the make or whatever. package.use is if you want to make sure that some other package doesn't uninstall/modify your package. I am doing a poor job of explaining. package.use is useful for maintaining your flags during upgrades. USE="debugger" or USE="-debugger" are one off, and i should have specified by putting emerge -va1D bochs (or whatever) gentoo is a source-based OS, in a similar way to at least the bsds i've used. Gentoo does have "system wide USE flags" they go in /etc/portage/make.conf, where you would set like USE="-gtk -alsa -X" or whatever, and portage will balk if some package tries to pull in masked packages. "Package has been masked by USE -X" make.conf makes sure that specific tech stacks won't be pulled in as dependencies unless you specifically unmask the flag for that package in package.use or USE="" emerge[...]. package.use is where you keep your "this is how i want this software built when you do it for me" {this part is wrong, but i don't feel like explaining all of the portage package dot whatever weirdness, because anyone who started using gentoo in the last decade or so might strongly disagree with my assertions about naming and other convention - Ed.} USE="" is if i need to install some package with a specific feature that isn't enabled by default. Such as debugging real mode or whatever. I generally only USE="" if it's something i need for a few moments and then gets uninstalled. On a source based OS keeping oddball archive support packages or whatever adds time and heat to your updates.