home *** CD-ROM | disk | FTP | other *** search
- ; written 11/8/84 gwf
- ;CHANGDIR --- This program will change current working directories.
- ;
- ; FOR CBASIC
- ;
-
- ;
- ;
- ; ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
- ; CALL CHANGDIR(TO.WHERE)
- ; Call with parameter desired directory name +CHR$(0).
- ; ≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈≈
- ;
- ; Example program to compile
- ;
- ; def changdir(new.dir$) EXTERNAL
- ; fend
- ; input"Desired directory ";ans$
- ; Y$=ans$+CHR$(0)
- ; CALL changdir(y$)
- ; end
- ;
- ;
- ch_dir equ 3bh ;Change directory function call
- doscall equ 21h ;DOS interrupt number
-
-
- cgroup group cseg
- ;
-
- ;Names must have a byte zero to indicate their termination
- ; called ASCIIZ
-
-
-
- ;*****************************************************************************
-
-
- cseg segment PARA PUBLIC 'CODE' ;define code segment
- ;---------------------------------------------------------------------
-
- assume cs:cgroup
- public changdir
-
-
- changdir proc NEAR ;main part of program
-
-
-
- ;set up stack for return
- push bp ;save for return
- mov bp,sp ;set base for passed names
- push ds ;save old data segment
- push es ;save for return
-
-
- ;MAIN PART OF PROGRAM.
- ;DX points to new directory name
-
- mov si,ss:[bp+4] ;get address of parameter passed
- mov ax,si ;
- add ax,2 ; actual address of string is 2 later
- mov dx,ax ;DS:DX must point to ASCIIZ string
- mov ah,ch_dir ;change directory function number
- int doscall ;Call DOS
-
- pop es
- pop ds
- pop bp
- ret 2 ;return to calling program
- changdir endp ;end of main part of program
- ;---------------------------------------------------------------------
- cseg ends ;end of code segment
- ;*********************************************************************
- end ;end of assembly