[net.micro.cpm] MOVCPM.COM

ABN.ISCAMS@USC-ISID.ARPA (06/29/84)

NetLandians,

Got my new PROMS in the other day for my Decision I, and a new CBIOS to
implement soft-sector 5.25 drives.  All very nice, except the CP/M with
the new CBIOS had expanded from 16 pages to 18 pages.

Morrow documentation explained how their MOVCPM had a byte at 103h that
you could patch for 16 or 18, to adjust for the new CP/M length.  Unfortunately,
it didn't work.  For the first time I encountered the "Synchronization Error"
which rudely throws you right into your monitor with a HLT instruction!

Looking at MOVCPM isn't much help because it's a hotbed of self-patching
code, and nothing's like it appears once it starts running!  It even does
a tricky XTHL or something to call up the "Synchron..." so you can't even
intercept that call.

Someone told me the abort happens when serial numbers or version numbers or
something don't match -- but I couldn't make much sense of that.

I finally kludged my way around the problem - stepped through the 18-page
MOVCPM with DDT until it crashed, noted the number of operations (just over
3000 (sigh...)), and then stepped to just sort of the crash, zipped out of
DDT, and saved my new 18-page CP/M - but that's no way to do things!
It isn't anything unique about the new MOVCPM or a bug there -- I overlaid
my old MOVCPM over top of the front of the code, and the same thing
happened!

Anyone know exactly WHY you can't MOVCPM an 18-page (or whatever) CP/M
when you're running an older, smaller CP/M in your system?  Memory seems to
have nothing to do with it (e.g., couldn't construct a 48Kb CP/M in my
64K system).  Patch something in the old CP/M?  In MOVCPM?  What?

I fought this for THREE DAYS, so I really would like to know why.

Thanks in advance,
David Kirschbaum (a very weary hacker)
Toad Hall
ABN.ISCAMS@USC-ISID