开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: Bugs


 

Hi,

I've been going over some bugs that Bob Kircher has been encountering.


There are 4 bugs identified

1. Some sort of Buffer problem (I need to dig into much earlier emails to recall this problem)? No action has been taken.

2. CP/M XModem not working.? This is the XModem that is on the DISK-A image.? It's Martin Eberhard's XModem, very nicely written and configurable.? It will need the correct XModem.cfg file with the following

/X2?? ?;use custom port defined here
/Z2?? ?;2 MHz CPU
/E?? ?;RDR port returns with Z set when no chr waiting

/MDirect I/O is configured for Z80MC ACE Port
/P CD C8 01 01 20?? ?;Port A
/Q

3. CP/M Programs that use the alternate register set will not work.? This is because the ISR that runs for the bit banged serial and the Front Panel Timer / LED driver is using the alternate register set.? This was done to improve response time to the point where serial data can be reliably received.? While the ISR mainly (solely) uses the A and HL registers, there are other things that make it complicated, namely the bank switching as you never know if the CPU is running from ROM or RAM at the time of an ISR.?

A possible fix for #3 is to turn off the interrupts.? This of course can be done by simply running the SIO and CPU cards without the FP board (the firmware will never receive an interrupt).? Another (less attractive) fix is to re-code the program to not use alternate registers (but this is more complex, needs source code and hopefully it isn't constrained by the quick timing possible when using alternate registers).

4. DDT debugger is not working.? This is a bug related to #3, because if you run CP/M without the FP board, this program also works.
Some how related, this is also a bug on the new ALTAID 8800, and it's also resolved by turning off Timer Interrupts.
But not a bug on the JAIR system (which doesn't use any interrupts).

This will be a more tricky bug to solve.? The ALTAID runs on an 8080, so it does not have any Alternate Register set, but some how the changing RAM (scan lines) is affecting DDT.? Perhaps DDT is using High RAM for scratch?


Comments / questions by Bob:
a. So running CP/M without the front panel is certainly an option.?
b. I'm sure Lee's not thrilled about it though; that front panel is a nifty piece of work.?
c. Admittedly though it's far more useful running programs with the monitor and only limited usefulness with CP/M.
d. Would increasing the interval between timer interrupts help?? Would it even be practical?
e. Ideally we should be able to run anything under CP/M with the front panel attached.


I agree, getting the FP running seamlessly with CP/M is a worthy goal.
Timer interrupt interval is fixed by hardware and corresponds with the LED display scanning.

Regards,
Josh Bensadon




Join [email protected] to automatically receive all group messages.