home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol028 / exorg.src < prev    next >
Text File  |  1984-04-29  |  1KB  |  44 lines

  1. ;
  2. ; FUNCTION EXORG( VAR VALUE: CHAR): INTEGER;EXTERNAL;
  3. ;
  4. ; THIS EXTERNAL FUNCTION WILL RETURN THE ADDRESS LOCATION OF THE
  5. ; ARGUMENT OF THE FUNCTION. BECAUSE ALL VARIABLES EXCEPT INTEGERS
  6. ; HAVE THEIR ORIGIN ADDRESS IN THE SAME LOCATION THIS SAME
  7. ; FUNCTION COULD BE USED FOR MANY DIFFERENT ARGUMENT TYPES. FOR
  8. ; EXAMPLE:
  9. ;
  10. ; FUNCTION EXORG( VAR VALUE: REAL): INTEGER;EXTERNAL;
  11. ; FUNCTION EXORG( VAR VALUE: STRING255): INTEGER;EXTERNAL;
  12. ;
  13. ; THIS ROUTINE WILL HOPEFULLY COVER ALL CASES WHERE THE USER
  14. ; WANTS THE ADDRESS (OR STARTING ADDRESS) OF A VARIABLE . ALTHOUGH
  15. ; ALL THE ABOVE DEFINITIONS PROBABLY WILL NOT BE NEEDED ALL ARE
  16. ; AVAILABLE BY JUST CHANGING THE VARIABLE TYPE DEFINITION IN THE EXTERNAL
  17. ; FUNCTION DEFINITION, AND THEREBY FOOL THE COMPILER.
  18. ;
  19. ; THIS PROCEDURE COULD BE ADAPTED TO ACCOMMODATE INTEGERS BY ORGH AND 
  20. ; ORGL TO 10 AND 9 RESP.
  21. ;
  22. ; A TYPICAL APPLICATION FOR THIS FUNCTION WOULD BE TO FIND OUT AN ARRAYS
  23. ; STARTING ADDRESS SO YOU COULD DMA DIRECTLY INTO IT.
  24. ;
  25. ;
  26. ORGH    EQU    9;
  27. ORGL    EQU    8; HIGH AND LOW ORDER ORIGIN ADDR OF THE VARIABLE
  28. FUNCL    EQU    2;
  29. FUNCH    EQU    3;FUNCTION RETURN OFFSET LOCATION
  30.     NAME    ORGEX;    LINKER MODULE NAME
  31.     ENTRY    RLORG
  32.     ENTRY    STRORG
  33.     ENTRY    EXORG; LINKER ENTRY PTS FOR ALL ABOVE FUNCTIONS
  34. RLORG:
  35. STRORG;
  36. EXORG:    ENTR    D,2,0;    MACRO SETUP ROUTINE
  37.     MOV    A,ORGL(IX)
  38.     MOV    FUNCL(IX),A; STORING LOW ORDER BYTE
  39.     MOV    A,ORGH(IX)
  40.     MOV    FUNCH(IX),A;    STORING HIGH ORDER BYTE
  41.     EXIT    D,2; CLEANUP AND WE'RE FINISHED
  42. ;
  43. ;
  44.