Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unify kernel build procedures #3

Open
vandys opened this issue Dec 2, 2021 · 1 comment
Open

Unify kernel build procedures #3

vandys opened this issue Dec 2, 2021 · 1 comment

Comments

@vandys
Copy link

vandys commented Dec 2, 2021

As I ramp up to look at a simulator-friendly idle mode for RSX280, I'm encountering some lack of clarity. Maybe this calls for actual fixes, maybe just some documentation notes?

I see an rsx280.sys referenced in the sysvmr rule, but that files appears to only be created in the target disk image; it's a copy of system.sys? I also see it going into [master]system.sys. So this is sort of a mirror image of how I think the copy-system rule works?

I also wanted to get some more insight by looking at the native build script, sysgen command file, but it's not in the source tree? It also works WRT a [build] which is not in the distribution. I can guess the point of syssrc and drvsrc, but those should also be officially noted, say in a script to place sources into a disk image for purposes of native kernel development?

Thanks!

@hperaza
Copy link
Owner

hperaza commented Dec 3, 2021

Hi Andy,

Right now I can't find an easy way to add an idle mode for RSX280 without running into some sort of race condition. In addition, even when no tasks are ready the idle loop is busy doing some housekeeping, and device interrupts and timer interrupts still occur. The emulator has to count cycles anyway for the next timer interrupt to happen at the right moment. The patch I posted in issue #2, although not perfect, already helps to reduce the CPU load on the host machine noticeably. As a note, RSX-11M under simh also hogs 100% CPU time of the host machine.

The rsx280.sys file is the "virgin" (unconfigured) version of the system. It is copied to the master directory as system.sys, and that copy is the one configured by VMR; rsx280.sys is kept just in case you want to reconfigure the whole system again from scratch.

Regarding the build command file: no, it is not in the source tree. I posted it in issue #1 as an example; it is incomplete, but can be used as starting point for a future native system generation. For the same reason the source directories (syssrc, drvsrc, etc.) and the build output directory are not present in the distributed disk image, which is a fully configured, working image for the Z280RC machine. The shell script included in the zip file does create the directories when importing source files into the disk image.

Regarding the docs: some day I'll put some notes together :) Since I'm not a native English speaker it takes me much longer to write a manual than to write code. I have a bunch of notes left from the different stages of development, maybe is time to make a document out of them explaining how the system works. Although if you are familiar with RSX-11M then you'll already understand 50% or more of RSX280, as I've followed DECs docs to make the system look-and-feel as close as possible to RSX-11M.

Hector.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants