home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_01_06 / 1n06045b < prev    next >
Text File  |  1990-09-30  |  2KB  |  75 lines

  1.  
  2.  
  3. Listing 1: the assembly header
  4.  
  5.  
  6. ;
  7. ; RDTOP.ASM
  8. ;
  9.  
  10. _TEXT   SEGMENT BYTE PUBLIC 'CODE'
  11. _TEXT   ENDS
  12. _DATA   SEGMENT WORD PUBLIC 'DATA'
  13. _DATA   ENDS
  14. _BSS    SEGMENT WORD PUBLIC 'BSS'
  15. _BSS    ENDS
  16. _END    SEGMENT WORD PUBLIC 'LEMEND'
  17. _END    ENDS
  18.  
  19. DGROUP  GROUP _TEXT,_DATA,_BSS,_END
  20.  
  21. _TEXT   SEGMENT BYTE PUBLIC 'CODE'
  22.         ASSUME  CS:_TEXT,DS:DGROUP
  23.  
  24.         EXTRN RANDOM:NEAR      ;C FUNCTION
  25.         EXTRN BINEND:BYTE      ;THIS COMPUTES LENGTH OF LEM AT LINK TIME
  26.  
  27. ;       LEM HEADER
  28.  
  29.         DB         'BIO'       ;SIGNATURE
  30.         DD         0           ;RESERVED
  31.         DW         BINEND      ;STORE LENGTH OF LEM
  32.         DB         1           ;NUMBER OF PROCEDURES/FUNCTIONS
  33.  
  34. ;       'RANDOM' DESCRIPTOR
  35.  
  36.         DB         'RANDOM',0,0,0,0,0,0,0
  37.         DW         RDHEAD      ;OFFSET TO START OF PROCEDURE/FUNCTION
  38.         DB         1           ;TYPE = FUNCTION 
  39.         DB         2           ;NUMBER OF PARAMETERS CALLED
  40.  
  41. ;       MAXIMUM VALUE PARAMETER
  42.  
  43.         DB         1           ;TYPE CONVERSION = WORD
  44. MAXVAL  DW         0,0         ;SEGMENT AND OFFSET
  45. MAXVALL DW         0           ;LENGTH
  46.  
  47. ;       SEED PARAMETER
  48.  
  49.         DB         1           ;TYPE CONVERSION = WORD
  50. SEED    DW         0,0         ;SEGMENT AND OFFSET
  51. SEEDL   DW         0           ;LENGTH
  52.  
  53. RETVAL  DW         0
  54.  
  55. RDHEAD  PROC       FAR
  56.  
  57.         LES        BX,DWORD PTR MAXVAL    ;GET LENGTH ADDRESS
  58.         PUSH       WORD PTR ES:[BX]       ;PUSH LENGTH ITSELF
  59.         LES        BX,DWORD PTR SEED      ;GET LENGTH ADDRESS
  60.         PUSH       WORD PTR ES:[BX]       ;PUSH LENGTH ITSELF
  61.         CALL       RANDOM
  62.  
  63.         MOV        RETVAL,AX              ;SAVE RETURN VALUE
  64.         MOV        AX,1                   ;RETURN TYPE IS SHORT
  65.         LEA        BX,RETVAL              ;OFFSET OF MEM LOCATION
  66.         MOV        CX,2                   ;LENGTH
  67.  
  68.         RET
  69.  
  70. RDHEAD  ENDP
  71. _TEXT   ENDS
  72.         END
  73.  
  74.  
  75.