home *** CD-ROM | disk | FTP | other *** search
/ gondwana.ecr.mu.oz.au/pub/ / Graphics.tar / Graphics / VOGLE.ZIP / VOGLE / SRC / MSFORT / FGETSTR.ASM < prev    next >
Encoding:
Assembly Source File  |  2000-02-11  |  2.1 KB  |  103 lines

  1. ;    Static Name Aliases
  2.  
  3. ;
  4.  
  5. ;    $S25_L    EQU    L
  6.  
  7. ;    $S27_I    EQU    I
  8.  
  9.     TITLE   fgetstr.for
  10.  
  11.     NAME    fgetstr
  12.  
  13.  
  14.  
  15.     .8087
  16.  
  17. FGETSTR_TEXT    SEGMENT  BYTE PUBLIC 'CODE'
  18.  
  19. FGETSTR_TEXT    ENDS
  20.  
  21. _DATA    SEGMENT  WORD PUBLIC 'DATA'
  22.  
  23. _DATA    ENDS
  24.  
  25. CONST    SEGMENT  WORD PUBLIC 'CONST'
  26.  
  27. CONST    ENDS
  28.  
  29. _BSS    SEGMENT  WORD PUBLIC 'BSS'
  30.  
  31. _BSS    ENDS
  32.  
  33. DGROUP    GROUP    CONST, _BSS, _DATA
  34.  
  35.     ASSUME  CS: FGETSTR_TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
  36.  
  37. EXTRN    __acrtused:ABS
  38.  
  39. EXTRN    _getstring:FAR
  40.  
  41. EXTRN    __FClccop:FAR
  42.  
  43. EXTRN    __FCclenv:DWORD
  44.  
  45. _DATA      SEGMENT
  46.  
  47. $SG31    DB    ' '
  48.  
  49. _DATA      ENDS
  50.  
  51. _BSS      SEGMENT
  52.  
  53. $S25_L    DW 02H DUP (?)
  54.  
  55. $S27_I    DW 02H DUP (?)
  56.  
  57. _BSS      ENDS
  58.  
  59. FGETSTR_TEXT      SEGMENT
  60.  
  61. ; Line 10
  62.  
  63.     PUBLIC    GETSTRING
  64.  
  65. GETSTRING    PROC FAR
  66.  
  67.     push    bp
  68.  
  69.     mov    bp,sp
  70.  
  71.     sub    sp,12
  72.  
  73. ;    IBCOL = 10
  74.  
  75. ;    STRING = 6
  76.  
  77. ;    GETSTRING = 65524
  78.  
  79.     mov    ax,WORD PTR __FCclenv
  80.  
  81.     mov    dx,WORD PTR __FCclenv+2
  82.  
  83.     mov    WORD PTR [bp-8],ax
  84.  
  85.     mov    WORD PTR [bp-6],dx
  86.  
  87.     les    bx,DWORD PTR [bp-8]
  88.  
  89.     mov    ax,WORD PTR es:[bx+2]
  90.  
  91.     cwd    
  92.  
  93.     mov    WORD PTR $S25_L,ax
  94.  
  95.     mov    WORD PTR $S25_L+2,dx
  96.  
  97. ; Line 11
  98.  
  99.     mov    WORD PTR [bp-2],ax
  100.  
  101.     push    WORD PTR [bp+8]
  102.  
  103.     push    WORD PTR [bp+6]    ;STRING
  104.  
  105.     les    bx,DWORD PTR [bp+10]    ;IBCOL
  106.  
  107.     push    WORD PTR es:[bx]
  108.  
  109.     lea    ax,WORD PTR [bp-4]
  110.  
  111.     mov    WORD PTR __FCclenv,ax
  112.  
  113.     mov    WORD PTR __FCclenv+2,ss
  114.  
  115.     call    FAR PTR _getstring
  116.  
  117.     add    sp,6
  118.  
  119.     cwd    
  120.  
  121.     mov    WORD PTR $S27_I,ax
  122.  
  123.     mov    WORD PTR $S27_I+2,dx
  124.  
  125. ; Line 12
  126.  
  127.     mov    ax,WORD PTR $S25_L
  128.  
  129.     mov    dx,WORD PTR $S25_L+2
  130.  
  131.     cmp    WORD PTR $S27_I+2,dx
  132.  
  133.     jg    $L30__LOGI
  134.  
  135.     jl    $L20002
  136.  
  137.     cmp    WORD PTR $S27_I,ax
  138.  
  139.     jae    $L30__LOGI
  140.  
  141. $L20002:
  142.  
  143.     mov    ax,OFFSET DGROUP:$SG31
  144.  
  145.     push    ds
  146.  
  147.     push    ax
  148.  
  149.     mov    ax,1
  150.  
  151.     push    ax
  152.  
  153.     mov    ax,WORD PTR [bp+6]    ;STRING
  154.  
  155.     mov    dx,WORD PTR [bp+8]
  156.  
  157.     add    ax,WORD PTR $S27_I
  158.  
  159.     push    dx
  160.  
  161.     push    ax
  162.  
  163.     mov    ax,WORD PTR $S25_L
  164.  
  165.     sub    ax,WORD PTR $S27_I
  166.  
  167.     push    ax
  168.  
  169.     mov    ax,1
  170.  
  171.     push    ax
  172.  
  173.     call    FAR PTR __FClccop
  174.  
  175.     add    sp,14
  176.  
  177. $L30__LOGI:
  178.  
  179. ; Line 13
  180.  
  181.     mov    ax,WORD PTR $S27_I
  182.  
  183.     mov    dx,WORD PTR $S27_I+2
  184.  
  185.     mov    WORD PTR [bp-12],ax
  186.  
  187.     mov    WORD PTR [bp-10],dx
  188.  
  189. ; Line 14
  190.  
  191.     mov    sp,bp
  192.  
  193.     pop    bp
  194.  
  195.     ret    8
  196.  
  197.  
  198.  
  199. GETSTRING    ENDP
  200.  
  201. FGETSTR_TEXT    ENDS
  202.  
  203. END
  204.  
  205.