**********************************
*           MakeDir              *
*  Written in 1991 by N.Tausch   *
*         Public Domain          *
**********************************

ExecBase:       equ 4
OldOpenLibrary: equ -408
CloseLibrary:   equ -414
Output:         equ -60
Write:          equ -48
CreateDir:      equ -120
UnLock:         equ -90

         move.l a0,Parameter      ; Parameter sichern
         subq.l #1,d0             ; 1 von Parameterlänge subtrahieren
         move.l d0,Length         ; Länge sichern
         clr.b 0(a0,d0)            ; Parameter mit 0-Byte terminieren
         move.l ExecBase,a6       ; dos.library öffnen
         lea.l DosName,a1
         jsr OldOpenLibrary(a6)
         tst.l d0                 ; war Operation erfolgreich?
         beq.s LibraryError       ; Nein? Programmende
         move.l d0,DosBase        ; DosBase sichern
         move.l DosBase,a6        ; und gleich nach a6 damit
         jsr Output(a6)           ; Outputhandle holen
         move.l d0,OutputHandle   ; und sichern
         move.l Length,d0         ; Parameterlänge nach d0
         tst.l d0                 ; und testen ob überhaupt ein Parameter vorhanden ist
         beq.w NoParameter        ; Falls nein, dann Fehlertext schreiben
         move.l Parameter,d1      ; Parameter nach d1
         jsr CreateDir(a6)        ; Und neues Verzeichnis erstellen
         tst.l d0                 ; Ist die Operation geglückt?
         beq.s Error              ; Nein? dann verzweige zu Fehler
         move.l d0,d1             ; Lock des Verzeichnisses nach d1
         jsr UnLock(a6)           ; Und Lock wieder freigeben
         move.l OutputHandle,d1   ; Outputhandle nach d1
         move.l #Createtext,d2    ; Text nach d2
         move.l #Endtext-Createtext,d3 ; textlänge nach d3
         jsr Write(a6)            ; und schreiben
         move.l DosBase,a1        ; dos.library wieder schließen
         move.l ExecBase,a6
         jsr CloseLibrary(a6)

LibraryError:
         clr.l d0
         rts                      ; Programm beenden
Error:
         move.l OutputHandle,d1   ; OutputHandle nach d1
         move.l #Endtext,d2       ; Fehlertext nach d2
         move.l #End2text-Endtext,d3 ; Fehlertextlänge nach d3
         jsr Write(a6)            ; Text schreiben
         jmp LibraryError         ; Programm beenden
NoParameter:
         move.l OutputHandle,d1    ; Outputhandle nach d1
         move.l #Parametertext,d2  ; Text nach d2
         move.l #Createtext-Parametertext,d3 ; Textlänge nach d3
         jsr Write(a6)             ; und Text schreiben
         jmp LibraryError          ; programm beenden

; *************** Daten *****************

DosName: dc.b "dos.library",0
DosBase: dc.l 0
Parameter: dc.l 0
Length: dc.l 0
OutputHandle: dc.l 0
Parametertext:
                dc.b "Benutze folgendes Format: <MakeDir Name>",10
Createtext:
                dc.b "Ich erstelle ein neues Directory",10
Endtext:
                dc.b "Ich kann kein neues Verzeichniss erstellen !",10
End2text:
          end

