[comp.os.cpm] NZCOM and Echelon IOPs - A Problem.

MA18@SYSE.SALFORD.AC.UK (07/18/88)

Subject: Problems with Echelon supplied IOPs and NZCOM.
I have experienced a problem with all three of the IOPs that Echelon used to
supply (Nukey, Bprinter, and recorder) when trying to use them with my system
running NZCOM, when everything was OK under ZCOM. I have identified the
problem with NUKEY, but have not had the time nor the inclination to check the
other two. I suspect the problem is generic. The cause f thof the problem is th
the coding of Nukey assumes that ENV address is a multiple of 256. So when it
tries to find the address of the IOP from the ENVironment it *REPLACES* the
lower byte of the address (in L) rather than adding it in. With NZCOM on my
new system the ENV address has a lower byte of 80H (it is E280H). It used to
be a multiple of 256. I am not sure whose "fault" this problem is but it may
not matter too much as there is a simple solution.

I could have simply altered the existing code to set the top bit when the
lower byte of the address was replaced. This is simple. It will work BUT it
may recur with some other memory configuration of NZCOM. My preferred solution
is to use an ARUNZ alias to do the following:
load nukey into memory
set a register to the value loc 109 (using an alias - to ensure memory is loaded
test the register using IF (type 3 or 4)  and conditionally patch the
    offending constant
finally we simply GO!

I intended to include the source of the two aliases - but I left them at home
on my Z machine. This is coming to you from a PC (no comment). If this idea
is not enough I can post the sources later in the week.

I hope this is of some help.

BTW NZCOM is a really nice system. I can now use ProPascal and Turbo M2
without needing to go to CPM, and I can very easily re-load my RCP and IOP
after using BGii.