home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / clipper / nannws12.arc / DEVICE.ASM < prev    next >
Assembly Source File  |  1986-09-14  |  2KB  |  62 lines

  1. ; DEVICE.ASM (C) 1986 Communication Horizons
  2. ; Author : Neil Weicher
  3. ; Syntax : CALL DEVICE WITH <expC>
  4. ; Purpose: Redirects printer output to the specified device or
  5. ;          file
  6. ; Notes  : <expC> is a legal device name or file name.  If a
  7. ;          device name is specified it should not have a
  8. ;          trailing colon ':'.  If a file name is specified it
  9. ;          will be created, if necessary.  Any data in an
  10. ;          existing file will be lost.  The file will not be
  11. ;          closed until another CALL DEVICE is performed, or 
  12. ;          until the program ends.  Can be used with Clipper,
  13. ;          dBase III or Lattice C.  Example: CALL DEVICE WITH
  14. ;          "LPT2" CALL DEVICE WITH "LPT1" && default at program
  15. ;          startup CALL DEVICE WITH "C:OUTPUT.TXT"
  16.  
  17.         PUBLIC  DEVICE
  18. CLIPPER EQU     1                   ;1 = CLIPPER , 0 = DBASE III
  19.  
  20. _PROG   SEGMENT BYTE
  21.         ASSUME  CS:_PROG
  22. DEVICE  PROC    FAR
  23.  
  24.         ;DIFFERENT SUBROUTINE LINKAGE BETWEEN CLIPPER AND DBASE
  25.         IF      CLIPPER
  26.         PUSH    BP
  27.         MOV     BP,SP
  28.         PUSH    DS
  29.         LDS     DX,DWORD PTR [BP+6]    ;DS:DX = FILE NAME
  30.         ELSE
  31.         MOV     DX,BX                   ;DS:DX = FILE NAME
  32.         ENDIF
  33.  
  34.         ;CLOSE THE CURRENTLY DEFINED PRINTER (HANDLE 4)
  35.         MOV     AH,3EH
  36.         MOV     BX,4
  37.         INT     21H
  38.  
  39.         ;TRY TO OPEN SPECIFIED FILE
  40.         MOV     AX,3D01H                ;OPEN FILE
  41.         INT     21H
  42.         JNC     EXIT
  43.  
  44.         ;NOT SUCCESSFUL, TRY TO CREATE FILE
  45.         MOV     AH,3CH                  ;CREATE FILE
  46.         SUB     CX,CX                   ;ATTRIBUTE
  47.         INT     21H
  48.  
  49. EXIT:
  50.         IF      CLIPPER
  51.         POP     DS
  52.         POP     BP
  53.         ENDIF
  54.         RET
  55.  
  56. DEVICE  ENDP
  57. _PROG   ENDS
  58.  
  59.         END
  60.  
  61. ; End of file
  62.