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
AltairZ80: Altair DOS stops responding to key presses after interrupts have been enabled. #1189
Comments
I do not know how version 3 of the simulator handles interrupts. I did my testing with version 4 of open-simh (not simh). I also do not know how the default SIO device handles interrupts. I think it has a special hook into the CPU code and doesn't use the standard 8080 interrupt mechanism. I wrote the M2SIO[0-1] device because, in my opinion, it more accurately simulates the Mits 2SIO device, including interrupt handling. Altair DOS expects interrupts to happen on interrupt vector 7. The Intel 8080 expects the opcode to execute during an interrupt to appear on the data bus. This would be an RST 7 instruction when the hardware is configured for interrupt vector 7. RST 7 will cause the CPU to jump to the interrupt handler at 0038H. This can be set up with the
Interrupts should now work.
Again, this is all on open-simh Version 4 which I believe is available here. |
I figured out how to get interrupts working with SIO device. There is a bug in the SIO device when using the To get around this problem, use the The following works on version 4 and may work on version 3:
|
Hello deltecent, thanks for your reply. |
Try it with "SET SIO NOSLEEP" and see if it works better. SIO SLEEP causes the device to call the OS sleep() routine to reduce your host CPU utilization. This wreaks havoc with SIMH's event timing, which is used to process the interrupts. If NOSLEEP makes the keyboard respond appropriately, we can work on an alternative to SIO SLEEP to help with host CPU utilization using THROTTLE. But you may have to switch to OpenSIMH. There's a bug in SIMH that prevents using one of the THROTTLE settings that is great for this purpose. |
I replaced 'set sio sleep' with 'set sio nosleep' in my DO-file but unfortunately that didn't solve the problem. |
Apologies to all.
This is Joe's wife. He's in a nursing home now and I don't have his GitHub
password. Could someone please unsubscribe his account from this list?
Thanks.
…On Mon, Mar 4, 2024 at 1:04 PM Ster0pes ***@***.***> wrote:
I replaced 'set sio sleep' with 'set sio nosleep' in my DO-file but
unfortunately that didn't solve the problem.
I had a short look at OpenSIMH but at the moment I have no experience with
makefiles and that sort of thing to build source code projects, so I guess
I'll have to read into that first.
—
Reply to this email directly, view it on GitHub
<#1189 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCIM3EBA6HPNMHRXVEEWYTYWTOWTAVCNFSM6AAAAABCQBBSLWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZXGQ2TEMRRG4>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
The bug causing Altair DOS to stop responding when interrupts are enabled has been fixed in Open SIMH. |
Please take this address off this list. It is no longer in use.
…On Mon, Mar 18, 2024 at 6:02 PM Deltec Enterprises ***@***.***> wrote:
The bug causing Altair DOS to stop responding when interrupts are enabled
has been fixed in Open SIMH.
—
Reply to this email directly, view it on GitHub
<#1189 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCIM3HZL7RABX3SLTWNIX3YY6FCNAVCNFSM6AAAAABCQBBSLWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBVGU2DANBRHE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Hello there.
I'd like to try to write a Fortran program in Altair DOS 1.0 on the AltairZ80 emulator.
To be able to exit, say, the Fortran compiler or an infinitely looping program gracefully I need Ctrl+C to work. Therefore, when starting Altair DOS, I answer Y to the question "INTERRUPTS?".
However, as soon as I do that, Altair DOS seem to become unresponsive. I see the next prompt ("HIGHEST DISK NUMBER?") with a flashing cursor, but whatever key I press, nothing happens.
When at startup I answer N to "INTERRUPTS?" Altair DOS works as expected.
Used simulator: Altair 8800 (Z80) simulator V3.9-0 [32b data, 32b addresses, no Ethernet]
I'm using prebuilt binaries (v3.9-0, latest release at the time of writing).
These are the commands I executed. See attachments for the disk image.
Expected behavior:
Altair DOS works as expected and applications like the Fortran compiler can be aborted using Ctrl+C.
Actual behavior:
Altair DOS stops responding to key presses. The simulator can still be exited with Ctrl+E.
altdos.dsk.zip
The text was updated successfully, but these errors were encountered: