home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / ZCPR33 / Z3-33 / Z33-TM2.LBR / Z33M2.Z80 < prev   
Text File  |  2000-06-30  |  1KB  |  40 lines

  1. ; skeleton of a module that gets the address of the ZCPR33 
  2. ; environmental descriptor from the command processor, and 
  3. ; stores it away.  Also a routine to retrieve it later, 
  4. ; accessible from Turbo-Modula2.
  5. ;
  6. ;    Steve Cohen
  7. ;    June 8, 1987
  8. ;
  9.     PUBLIC  GETENV
  10.  
  11.     DB    'Z33ENV'        ; JUST FOR FINDING THIS CODE WITH
  12.                     ; PATCHER OR DEBUGGER
  13.  
  14. ; this is the routine to which a program will jump (after 
  15. ; we patch it to do so) immediately upon execution which 
  16. ; saves the ENV address which Z33 provides us in HL.
  17.                     
  18.     LD    (Z33ADR),HL        ; PATCH FIRST JUMP INSTRUCTION TO
  19.                     ; JUMP TO HERE
  20.  
  21.     JP    0            ; PATCH THIS JUMP TO WHERE THE
  22.                     ; OLD FIRST JUMP INSTRUCTION
  23.                     ; JUMPED TO
  24.                     
  25. Z33ADR:    DW    0            ; STORAGE FOR Z33 ENV ADDRESS
  26. ;
  27. ; this routine can be called by any TM2 module that imports 
  28. ; to return the ENV address.  The procedure is in this form:
  29. ;
  30. ;     PROCEDURE GETENV():CARDINAL;
  31. ;
  32. GETENV: 
  33.     LD    HL,(Z33ADR)        ; MUST HAVE BEEN PREVIOUSLY INITIALIZED
  34.     EX    (SP),HL            ; RETURN IT VIA STACK
  35.     PUSH    HL            ; put return address back
  36.     RET
  37.     
  38.     ENDMUST HAVE BEEN PREVIOUSLY INITIALIZED
  39.     EX    (SP),HL            ; RETURN IT VIA STACK
  40.     PU