home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
assemblr
/
library
/
lib4a86
/
demo
/
dirs.dem
< prev
next >
Wrap
Text File
|
1992-02-16
|
6KB
|
202 lines
; ----------------------------
; 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