21-11-2020, 05:54 PM
(This post was last modified: 18-06-2021, 08:50 AM by someone.
Edit Reason: Fix a typo
)
The DGZ80 CPU card was prone to displaying screenfuls of NULLS and '9's when it crashed.
e.g. (Note: the '0' is represents the NULL character, and the '9's are flashing)
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
For most S100 Systems with a DG-Z80 the data bus was floating high or pulled up high thus causing the %FF to be read from memory address space devoid of memory.
The reason for this crash symptom is when the executing code encounters an unwanted %FF which is a RST %38 instruction and if there is no RAM at address %0038 a memory read from that location would read a %FF which is another RST %38 instruction thus the whole memory space would eventually be completely filled with %0039 (i.e. the %0038 Program Counter Address for memory location %0038 + 1 being the resumption address) includes the DG640 VDU memory thus resulting in the screen seen above. Note that the first actual stack work would be the address + 1 of the first encountered %FF and that stack pointer at that time would unlikely be in VDU memory thus is not displayed. Likewise the attribute RAM on the VDU would be filled with alternating 00's (no attributes active) and 01's(flashing on).
e.g. (Note: the '0' is represents the NULL character, and the '9's are flashing)
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
9090909090909090909090909090909090909090909090909090909090909090
For most S100 Systems with a DG-Z80 the data bus was floating high or pulled up high thus causing the %FF to be read from memory address space devoid of memory.
The reason for this crash symptom is when the executing code encounters an unwanted %FF which is a RST %38 instruction and if there is no RAM at address %0038 a memory read from that location would read a %FF which is another RST %38 instruction thus the whole memory space would eventually be completely filled with %0039 (i.e. the %0038 Program Counter Address for memory location %0038 + 1 being the resumption address) includes the DG640 VDU memory thus resulting in the screen seen above. Note that the first actual stack work would be the address + 1 of the first encountered %FF and that stack pointer at that time would unlikely be in VDU memory thus is not displayed. Likewise the attribute RAM on the VDU would be filled with alternating 00's (no attributes active) and 01's(flashing on).