home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / mslang / as / c-chadir.asm < prev    next >
Assembly Source File  |  1984-11-09  |  2KB  |  76 lines

  1. ;     written 11/8/84 gwf
  2. ;CHANGDIR --- This program will change current working directories.
  3. ;
  4. ;            FOR CBASIC
  5. ;
  6.  
  7. ;
  8. ;
  9. ;     ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
  10. ;       CALL CHANGDIR(TO.WHERE)     
  11. ; Call with parameter desired directory name +CHR$(0).
  12. ;     ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
  13. ;
  14. ;              Example program to compile
  15. ;
  16. ;          def changdir(new.dir$) EXTERNAL
  17. ;          fend
  18. ;          input"Desired directory ";ans$
  19. ;          Y$=ans$+CHR$(0)
  20. ;          CALL changdir(y$)
  21. ;          end
  22. ;
  23. ;
  24. ch_dir    equ    3bh    ;Change directory function call
  25. doscall equ    21h    ;DOS interrupt number
  26.  
  27.  
  28. cgroup    group    cseg
  29. ;
  30.  
  31. ;Names must have a byte zero to indicate their termination
  32. ;                called ASCIIZ
  33.  
  34.  
  35.  
  36. ;*****************************************************************************
  37.  
  38.  
  39. cseg    segment  PARA PUBLIC 'CODE'         ;define code segment
  40. ;---------------------------------------------------------------------
  41.  
  42.    assume cs:cgroup
  43.    public changdir
  44.  
  45.  
  46. changdir proc NEAR     ;main part of program
  47.  
  48.  
  49.  
  50. ;set up stack for return
  51.     push bp     ;save for return
  52.     mov  bp,sp    ;set base for passed names
  53.     push ds     ;save old data segment
  54.     push es     ;save for return
  55.  
  56.  
  57. ;MAIN PART OF PROGRAM.
  58. ;DX points to new directory name
  59.  
  60.     mov  si,ss:[bp+4]    ;get address of parameter passed
  61.     mov  ax,si         ;
  62.     add  ax,2         ;    actual address of string is 2 later
  63.     mov  dx,ax         ;DS:DX must point to ASCIIZ string
  64.     mov  ah,ch_dir         ;change directory function number
  65.     int  doscall         ;Call DOS
  66.  
  67.     pop  es
  68.     pop  ds
  69.     pop  bp
  70.     ret  2            ;return to calling program
  71. changdir endp            ;end of main part of program
  72. ;---------------------------------------------------------------------
  73. cseg    ends        ;end of code segment
  74. ;*********************************************************************
  75.     end        ;end of assembly
  76.