Metropoli BBS
VIEWER: sddos.mac MODE: TEXT (ASCII)
;------------------------------------------------------------------------------;
;                                                                              ;
; Switch Directory - DOS   Copyright (c) Stephen M. Falatko, 1987, 1988        ;
;                                                                              ;
;     Switch  Directory  -  DOS  (SD)  is  a utility that allows easy          ;
;     switching between subdirectories and  drives with  a minimum of          ;
;     typing.   SD has  been designed  to replace  the DOS CD command          ;
;     while providing enhancements to the CD command.   SD allows you          ;
;     to  specify  a  specific  subdirectory  name,  a combination of          ;
;     subdirectory names  and  search  switches  or  a  complete path          ;
;     specifier.   All features  of SD work  across disk  drives.  If          ;
;     you have made a mistake, hitting Ctrl-Brk while SD is searching          ;
;     will   break you out of SD and put you back in the subdirectory          ;
;     you started in.                                                          ;
;                                                                              ;
;     Switch Directory - DOS 1.0 is descended from SD version 3.4 and          ;
;     its predecessors.   The  improvement in SD is that SD - DOS can          ;
;     attach  itself  to  DOS  and  provide  the  same  functionality          ;
;     previously only  available with  SD in combination with PCED or          ;
;     CED.  For users of PCED or CED, an enhanced  version of  SD 3.4          ;
;     is available called Switch Directory - CED.                              ;
;     on your disk drives.                                                     ;
;                                                                              ;
;                                                                              ;
;     Usage:    [d:\....]>SD [drive][command specification]                    ;
;                                                                              ;
;      Commands:                                                               ;
;                                                                              ;
;      During startup -                                                        ;
;                 with +   no help                                             ;
;                 with -   no internal stack                                   ;
;                 can also put configuration file on command line              ;
;                                                                              ;
;      During normal use -                                                     ;
;                 \ - switch to specific path                                  ;
;                 / - search below subdirectory                                ;
;                     these switches can be mixed                              ;
;                     ie. sd \turbo/source\myprog would be legal               ;
;                 @  - switch to last path selected with "#                    ;
;                 @" - kill SD and release memory                              ;
;                 "+ or -   - go to next highest or lowest path                ;
;                 "#=[path] - store [path] in stack location #                 ;
;                 "#=@      - insert current path into stack location #        ;
;                 "# - switch to entry number #                                ;
;                 "s - display stack                                           ;
;                                                                              ;
;                                                                              ;
;The source code was originally developed from Vern Buerg's LDIR program and   ;
;Charles Wooster's WHISK program.  PrintS and GetDir are Copyrighted by their  ;
;authors.                                                                      ;
;                                                                              ;
; 1/29/88 - Stephen Falatko                                                    ;
;                                                                              ;
;Written for the A86 assembler (All numbers with leading 0 are hex)            ;
;                                                                              ;
;    To Assemble:   [d:]>A86 SDDOS.MAC SDDOS.ASM SDDOS.INS                     ;
;                                                                              ;
;                                                                              ;
;------------------------------------------------------------------------------;


;---------------------------------------------------------------------------;
;                                                                           ;
;     Macros and Equates                                                    ;
;                                                                           ;
;---------------------------------------------------------------------------;


LF           Equ     10
CR           Equ     13
Stopper      Equ     255                    ;Ends print strings

;
;  These equates are for DOS functions.  They are all in hex.  A86 defaults
;  to hex if the number has a leading 0.
;

SetDrive     Equ     0E
CurrentDisk  Equ     019                     ;Get current disk
SetDTA       Equ     01A                     ;Set data transfer area
ChangeDir    Equ     03B                     ;Change directory
GetPath      Equ     047                     ;Get current directory


Change_Dir MACRO

        Mov DX,Offset #1
        Mov AH,ChangeDir
        PUSHF
        CALL    Old_INT_21
#EM

Set_Drive MACRO

        Mov AH,SetDrive
        PUSHF
        CALL    Old_INT_21
#EM

Get_Path MACRO

        Mov AH,GetPath
        PUSHF
        CALL    Old_INT_21
#EM

Current_Disk MACRO

        Mov AH,CurrentDisk
        PUSHF
        CALL    Old_INT_21
#EM

[ RETURN TO DIRECTORY ]