Date : Mon, 23 Mar 1992 14:28:03 -0500
From : Jay Sage <sage@ll.mit.edu>
Subject: Re: interrupts, arunz, problems
Martin Frerichs <MFRERIC@ibm.gwdg.de> recently wrote:
>> Hi folks, just recently I had problems with the newest ARUNZ-version from
>> simtel.
I would not expect ARUNZ to be doing anything with interrupts, but I have
not looked at the source code yet to check. Are you perchance now using the
type-4 version of the program? All type-4 programs have DI and EI
instructions as part of the address relocation code in the type-4 loader,
which occupies the second record of the COM file (bytes 80H to FFH). I
believe that this code cannot work with interrupts enabled because of the way
it uses the stack pointer.
If you want interrupts to be disabled at all times, then you can simply
replace the EI opcode with a NOP (00H), and your problem should go away. You
will have to do this with any type-4 program you intend to use. The easy way
to do this would be to take the T4LDR11.Z80 source, take out the EI opcode,
assemble it to a new HEX file, and MLOAD it over all type-4 programs before
you use them. Alternatively, you could simply stick with the type-3 versions
of the programs.
I should point out that versions 3.3 and later of ZCPR also have parts of
the code that turn off interrupts and then reenable them. This occurs in the
part of the code that asks for directory passwords. Unless you were running
a secure system, you probably would not have stumbled upon this.
-- Jay Sage (author of ARUNZ and ZCPR33 and later)