home *** CD-ROM | disk | FTP | other *** search
- ; ----------------------------
- ; DIRS.DEM - Demoprogramm für die Routinen aus DIRS.LIB
- ; (für den A86)
- ;
- ; (c) Bernd Schemmer 1990 - 1992
- ; Letzter Update: 15.02.1992
- ;
- ; Übersetzen:
- ; A86 DIRS.DEM DEMOS.INC TO DIRS.COM
- ;
- ; Hinweis: Die Environment-Variable 'A86' muß den Dateinamen 'MACROS.MAC'
- ; enthalten und die .LIB-Dateien müssen über die Datei A86.LIB
- ; erreichbar sein.
- ;
- ; ---------------------------
- jmp start ; Daten überspringen
-
- logo db CR,LF
- db 'DIRS.DEM - Demoprogramm für die Routinen aus DIRS.LIB'
- db CR,LF
- db '------------------------------------------------------'
- db CR,LF
- db CR,LF
- GETLENGTH logo
- ; Namen der Directorys
- DirPuffer db 4,'TEST',0
- DirPuffer0 db 5,'TEST1',0
- DirPuffer1 db 2,'..',0
-
- msg00 db
- msg0 db 'Erstelle das Directory TEST ...'
- db CR,LF
- GETLENGTH msg0
- db '(darf nicht möglich sein, da das Directory TEST schon existiert!)'
- db CR,LF
- GETLENGTH msg00
-
- MakeMsg error0, 'Fehler: Directory TEST kann nicht erstellt werden!'
- MakeMsg error00, CR,LF, 'Fehler: Directory Test existiert bereits!'
-
- msg10 db
- msg1 db CR,LF
- db 'Wechsele ins Directory TEST ...'
- db CR,LF
- GETLENGTH msg1
- db '(darf nicht möglich sein, da kein Directory TEST existiert!)'
- db CR,LF
- GETLENGTH msg10
-
- MakeMsg error1, 'Fehler: Kann nicht ins Directory TEST wechseln!'
- MakeMsg msg2, CR,LF, 'Wechsele ins übergeordnete Directory ...'
- MakeMsg error2, 'Fehler: Kann nicht ins übergeordnete Directory wechseln!'
- MakeMsg msg21, CR,LF, 'Nenne das Directory TEST um in TEST1 ...'
- MakeMsg error21, 'Fehler: Kann das Directory TEST nicht umbenennen!'
-
- msg30 db
- msg3 db CR,LF
- db 'Lösche das Directory TEST1 ...'
- db CR,LF
- GETLENGTH msg3
- db '(darf nicht möglich sein, da das Directory TEST1 nicht existiert!)'
- db CR,LF
- GETLENGTH msg30
-
- MakeMsg error3, 'Fehler: Directory TEST1 kann nicht gelöscht werden!'
-
- ; ------------------
-
- start:
- call ShowLogo ; Logo ausgeben und Speicherblock verkleinern
-
- call ShowAktDir ; akt. Directory ausgeben
- ; Feststellen, ob ein Directory existiert
- mov si,offset DirPuffer
- call ExistDir
- jc >l1
- ; Directory existiert
- WRITE_STRING error00
- jmp Ende
-
- l1:
- ; Erstellen eines Directorys
- WRITE_STRING msg0
- mov si,offset DirPuffer
- call MakeDir
- jnc >l1
- ; Fehler: Directory kann nicht erstellt werden!
- WRITE_STRING error0
- jmp Ende
- l1:
- ; Erstellen eines Directorys (mit Fehler)
- WRITE_STRING msg00
- mov si,offset DirPuffer
- call MakeDir
- jnc >l1
- ; erwarteter Fehler: Directory kann
- ; nicht erstellt werden!
- WRITE_STRING error0
- l1:
-
- ; Wechseln des Directorys
- WRITE_STRING msg1
- mov si,offset DirPuffer
- call ChangeDir
- jnc >l1
- ; Fehler: Directory kann nicht gewechselt werden!
- WRITE_STRING error1
- jmp Ende
- l1:
- call ShowAktDir
- ; Wechseln des Directorys (mit Fehler)
- WRITE_STRING msg10
- mov si,offset DirPuffer
- call ChangeDir
- jnc >l1
- ; erwarteter Fehler: ins Directory kann
- ; nicht gewechselt werden!
- WRITE_STRING error1
- l1:
- ; Wechseln ins übergeordente Directory
- WRITE_STRING msg2
- mov si,offset DirPuffer1
- call ChangeDir
- jnc >l1
- ; Fehler: Directory kann nicht gewechselt werden!
- WRITE_STRING error2
- jmp Ende
- l1:
- call ShowAktDir
- ; umbennen eines Directorys
- WRITE_STRING msg21
- mov si,offset DirPuffer
- mov di,offset DirPuffer0
- call RenameDir
- jnc >l1
-
- WRITE_STRING error21
- jmp Ende
-
- l1:
- ; Löschen eines Directorys
- WRITE_STRING msg3
- mov si,offset DirPuffer0
- call RemoveDir
- jnc >l1
- ; Fehler: Directory kann nicht gelöscht werden!
- WRITE_STRING error3
- jmp Ende
- l1:
- ; Löschen eines Directorys (mit Fehler)
- WRITE_STRING msg30
- mov si,offset DirPuffer0
- call RemoveDir
- jnc >l1
- ; erwarteter Fehler: Directory kann
- ; nicht gelöscht werden!
- WRITE_STRING error3
- l1:
-
- Ende:
- EndProcess 0
-
-
- ; ----------------------------
- ; ShowAktDir
- ;
- ; Funktion: Gibt das akt. Laufwerk auf die Standard-Ausgabe aus
- ;
- AktDirPuffer db 0,65 dup 0 ; Puffer für das akt. Directory
-
- MakeMsg1 AktDirMsg, 'Das akt. Directory ist '
- MakeMsg AktDirError, 'Fehler: Aktuelles Directory konnte nicht ermittelt werden!'
-
- ShowAktDir:
- xor dl,dl ; LW = akt. Laufwerk
- mov si,offset AktDirPuffer
- call GetDir ; Akt. Directory ermitteln
- jc >l1 ; Fehler aufgetreten!
-
- pushf ; Akt. Directory ausgeben
- WRITE_STRING AktDirMSG
- mov si,offset AktDirPuffer
- lodsb
- mov cl,al
- xor ch,ch
- mov dx,si
- mov bx,01h
- mov ah,040h
- int 021h
-
- call ShowCR_LF
- popf
- jmp >l9
-
- l1: ; Fehlermeldung ausgeben
- pushf
- WRITE_STRING AktDirError
- popf
- l9:
- ret
-
-