home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_asm / objxref / xrfile.asm < prev    next >
Encoding:
Assembly Source File  |  1986-04-27  |  2.2 KB  |  101 lines

  1.  PAGE    81,128
  2.  TITLE    XRFILE    - Get file name    for search, and    open file
  3.  SUBTTL    V1.0 - May 1986    - Cross    Reference Facility
  4. ;
  5. ;=============================================================================|
  6. ;         Copyright 1986 - Dan Daetwyler - Springdale, AR 72764          |
  7. ;=============================================================================|
  8.     IF1
  9.     INCLUDE    SDA.MAC
  10.     ENDIF
  11.     .SALL
  12. ;
  13. DATA    SEGMENT    BYTE PUBLIC 'DATA'
  14. ;
  15.     .XLIST
  16.     INCLUDE    IOSCB.INC
  17.     .LIST
  18.     PUBLIC    FHAN,FTLEN,FTAB,IOB,FNAM
  19. ;
  20. IOB    IOSCB    <>
  21. ;
  22. FHAN    DW    ?            ;File handle
  23. FTLEN    DW    ?
  24. FTAB    DB    15000 DUP (?)        ;Space for table
  25. FNAM    DB    46 DUP (0)        ;Field for the file name
  26. ;
  27. ERR1    DB    'File not found',0
  28. ERR2    DB    'Error reading cross reference table',0
  29. ;
  30. DATA    ENDS
  31. ;
  32. CODE    SEGMENT    BYTE PUBLIC 'CODE'
  33.     ASSUME    CS:CODE,DS:DATA,ES:DATA
  34. ;
  35. ;==============================================================================
  36. ; Entry    Point    XRFILE                                  |
  37. ;==============================================================================
  38. ;                                          |
  39. ; This module is entered when the user presses F1 on the main display.          |
  40. ; It then accepts the file name    entered    in the appropriate field, and          |
  41. ; opens    the file.  The file table is loaded, and exit is made to the          |
  42. ; calling program.                                  |
  43. ;                                          |
  44. ; Entry    conventions:    None.                              |
  45. ;                                          |
  46. ; Returns:        None.                              |
  47. ;                                          |
  48. ;==============================================================================
  49. ;
  50.     EXTRN    $SDA:NEAR
  51. ;
  52.     PUBLIC    XRFILE
  53. ;
  54. XRFILE    PROC    NEAR
  55.     $FDINP    IOB,1,FNAM
  56.     CMP    IOB.TVL,27
  57.     JNE    GOON
  58.     RET
  59. GOON:    MOV    DI,OFFSET FNAM+45
  60.     MOV    AL,' '
  61.     MOV    CX,46
  62.     STD
  63.     REPE    SCASB            ;Reverse scan for non blank
  64.     CLD
  65.     INC    DI
  66.     INC    DI
  67.     XOR    AL,AL
  68.     STOSB                ;Set terminating null
  69.     MOV    DX,OFFSET FNAM
  70.     MOV    AX,3D00H        ;Open for input
  71.     INT    21H
  72.     JNC    OK1
  73.     $SERRM    IOB,24,ERR1
  74.     JMP    XRFILE
  75. OK1:    MOV    FHAN,AX
  76.     MOV    BX,FHAN
  77.     MOV    DX,OFFSET FTLEN
  78.     MOV    CX,2
  79.     MOV    AH,3FH
  80.     INT    21H            ;Read in table length
  81.     MOV    CX,FTLEN
  82.     MOV    DX,OFFSET FTAB
  83.     MOV    AH,3FH
  84.     INT    21H            ;Read in control table
  85.     CMP    AX,CX
  86.     JE    OK2
  87.     $SERRM    IOB,24,ERR2
  88.     JMP    XRFILE
  89. OK2:    MOV    DL,2
  90. CLR:    MOV    IOB.FLD,DL
  91.     $FDCLR    IOB
  92.     INC    DL
  93.     CMP    DL,63
  94.     JBE    CLR
  95.     RET
  96. XRFILE    ENDP
  97. ;
  98. CODE    ENDS
  99. ;
  100.     END
  101.