home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / utils / asmutl / mloadpch.tzt / MLOADPCH.TXT
Encoding:
Text File  |  1988-01-29  |  1.8 KB  |  54 lines

  1. From: Fred Haines
  2. To:   Rick Charnes
  3. Date: January 8, 1988
  4. Subj: MLOAD24 patch
  5.  
  6.  
  7. Rick,
  8.  
  9. Here's the way I patched the exit routine of MLOAD24 to getáì
  10. around the problem I had running under XBIOS. The lines precededáì
  11. by double semicolons are the ones I commented out; the line witháì
  12. the double semicolons before the comment is the one line I added.
  13.  
  14. ;
  15. ; exit to cp/m
  16. ;
  17. exit:    lxi    d,tbuf        ;restore dma address
  18.     mvi    c,sdmaf
  19.     call    bdos
  20.  
  21. ;;    lda    system+2    ;get top of memory pointer
  22. ;;    sui    9        ;allow for ccp+slop
  23. ;;    lxi    h,hiload+1    ;highest load address
  24. ;;    sub    m        ;above ccp?
  25. ;;    jc    warmbt        ;then warm-boot
  26. ;;    lhld    spsave        ;nope, ccp still in memory
  27. ;;    sphl            ;restore its stack
  28. ;;    ret            ;return to ccp
  29.  
  30.     jmp    warmbt        ;; unconditional jump inserted
  31.    áì
  32.  
  33. ;
  34. ; load program initialization
  35. ;
  36.  
  37. I hasten to emphasize that this is NOT a fix to MLOAD24. Quiteáì
  38. the contrary, this patch actually eliminates a desirable feature,áì
  39. the ability of the program to quit without warmbooting if itáì
  40. determines that the load did not overwrite the CCP. It's Firstáì
  41. Aid rather than a miracle cure.
  42.  
  43. "Top of memory" is the base address of DOS, "hiload" is theáì
  44. highest address affected by the load, "warmbt" equals 0000h. Theáì
  45. routine provides two ways to quit, by jump to warmbt, or by aáì
  46. simple ret to CPM.
  47.  
  48. I believe it is the second routine that is causing the problem,áì
  49. which behaves like a damaged CCP or a blown pointer to the CCP,áì
  50. but I'm not able to follow the intricacies of the checking to seeáì
  51. whether the CCP has been overwritten or not. Somebody will crackáì
  52. this case in short order, but the patch may keep you afloat untiláì
  53. he does.
  54.