home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / xbase / library / clipper / rettig / source / peekint.asm < prev    next >
Assembly Source File  |  1990-10-21  |  2KB  |  58 lines

  1. ; PEEKINT.ASM
  2. ;
  3. ; by Ralph Davis
  4. ; modified by Leonard Zerman
  5. ;
  6. ; Placed in the public domain by Tom Rettig Associates, 10/22/1990.
  7. ;
  8.          PUBLIC   PEEKINT
  9.  
  10.          EXTRN    _TR_PEEK_PARMS:FAR
  11.  
  12.          INCLUDE  EXTENDA.MAC
  13.  
  14.  
  15. ;*****************************************************
  16. PEEKINT_TEXT SEGMENT BYTE PUBLIC 'CODE'
  17.          ASSUME   CS:PEEKINT_TEXT
  18. ;-----------------------------------------------------
  19. ;
  20. ;     PEEKINT(segment, offset)
  21. ;
  22. ;        segment = SPACE(4)    && hexadecimal string
  23. ;        offset  = number < 65536 or hexadecimal string
  24. ;
  25. ;        Returns:  word at segment:offset as an integer
  26. ;                  -1 if less than two parameters passed
  27. ;
  28. ;--------------
  29. PEEKINT PROC     FAR
  30.          PUSH     BP
  31.          MOV      BP,SP
  32.          PUSH     DS
  33.          PUSH     ES
  34.          PUSH     BX
  35.          PUSH     SI
  36.          CALL     _TR_PEEK_PARMS
  37.          JL       PEEKINT_ERR    ; Sign flag set means less than 2 parms
  38.          MOV      DS,SI        
  39.          MOV      SI,AX          ; DS:SI now points to requested word
  40.          MOV      AX,[SI]        ; pick it up
  41.          JMP      SHORT PEEKINT_EXIT   ; and we're done
  42. PEEKINT_ERR:
  43.          MOV      AX,-1          ; return -1 for error condition
  44.  
  45. PEEKINT_EXIT:
  46.          POP      SI
  47.          POP      BX
  48.          POP      ES
  49.          POP      DS
  50.          POP      BP
  51.          RET_INT  AX             ; return integer to caller
  52.          RET
  53. PEEKINT ENDP
  54. ;------------------------------------------------
  55. PEEKINT_TEXT  ENDS
  56. ;************************************************
  57.          END
  58.