ùúùú                                        ; CD-Finder
; 
; (c) 1997 Cyborg 

	IncDir 	"Sys:Coder/"
	Include     "Preass/Konstanten.inc"
	Include     "Preass/ASL_lib.inc"
    Include     "Preass/intuition.inc"
    Include     "Include/Guienv.i"
    Include     "Include/Libraries/gadtools.i"

Main:
	Include "preass/Startup.i"
	Jsr Openlibs
	Tst.l D0
	Beq Mainende
	Jsr START
Mainende:
	jsr Closelibs
	Move.l Error,d0
	tst.l d0
	beq .l1
	jmp ErrorHandling
.l1:	Rts

    Mode_NoCase= 100
    Mode_Case=   0


FileReq:
     Move.l A0,LokalScreen
     Move.l AslBase,a6
     Move.l #ASL_FileRequest,d0
     Move.l #0,a0
     Jsr AllocAslRequest(a6)
     Move.l D0,Requester
     Tst.l Requester
     Beq .Select2
     move.l #ASLFR_Taglist,a0
     move.l LokalScreen,4(a0)
     Move.l Requester,a0
     Move.l #ASLFR_Taglist,a1
     Jsr ASLRequest(a6)
     Move.l D0,Result
        Tst.l Result
        Beq .Select2
        Clr.l D0
        Move.l Requester,A0
        Move.l 4(A0),D0
        Move.l D0,Filename_Zeiger
        Clr.l D0
        Move.l Requester,A0
        Move.l 8(A0),D0
        Move.l D0,Dirname_zeiger
        Move.l ExecBase,a6
        Move.l Dirname_zeiger,a0
        Move.l #Dirname,a1
        Move.l #100,d0
        Jsr Copymem(a6)
        Move.l Filename_zeiger,a0
        Move.l #Name,a1
        Move.l #100,d0
        Jsr Copymem(a6)
        Lea Name_Bak,a0
        move.l Dirname_zeiger,a1
.Sel1:  move.b (a1)+,(a0)+
        cmpi.b #0,(a1)
        bne .sel1
        cmpi.b #":",-1(a0)
        beq .sel12
        move.b #"/",(a0)+
.sel12: move.l Filename_zeiger,a1
.Sel2:  move.b (a1)+,(a0)+
        cmpi.b #0,(a1)
        bne .sel2
        move.b #0,(a0)+
.Select2:
        Tst.l Requester
        Beq .lab1
        Move.l AslBase,a6
        Move.l Requester,a0
        Jsr FreeASLRequest(a6)
.lab1:  RTS

FillBuffer:
    subq.l #1,d1
.l1:move.b d0,(a0)+
    dbra  d1,.l1
    RTS

ConvertZahl:
    Move.l #"    ",Zusatz
    Move.l #"   0",Zahl
ConvertZahl1:
    Movem.l a0-a5,-(sp)
    Lea Zusatz,a0
    Cmpi.l #0,d7
    bpl .l0
    Neg.l d7
    move.b #"-",zahl
    Cmpi.l #9999,d7
    bgt .l0
    move.b #"-",zusatz
.l0:Move.l d7,d0
    MoveQ.l #-1,d1
.l1:AddQ.l #1,d1
    Subi.l #10000000,d0
    Bpl .l1
    Addi.l #10000000,d0
    addi.l #$30,d1
    cmpi.b #"0",d1
    Beq .l11
    move.b d1,0(a0)
.l11:MoveQ.l #-1,d1
.l2:AddQ.l #1,d1
    Subi.l #1000000,d0
    Bpl .l2
    Addi.l #1000000,d0
    addi.l #$30,d1
    cmpi.b #" ",0(a0)
    bne .l22
    cmpi.b #"0",d1
    Beq .l21
.l22:
    move.b d1,1(a0)
.l21:MoveQ.l #-1,d1
.l3:AddQ.l #1,d1
    Subi.l #100000,d0
    Bpl .l3
    Addi.l #100000,d0
    addi.l #$30,d1
    cmpi.b #" ",1(a0)
    bne .l32
    cmpi.b #"0",d1
    Beq .l31
.l32:
    move.b d1,2(a0)
.l31:MoveQ.l #-1,d1
.l4:AddQ.l #1,d1
    Subi.l #10000,d0
    Bpl .l4
    Addi.l #10000,d0
    addi.l #$30,d1
    cmpi.b #" ",2(a0)
    bne .l42
    cmpi.b #"0",d1
    Beq .l41
.l42:
    move.b d1,3(a0)
.l41:MoveQ.l #-1,d1
.l5:AddQ.l #1,d1
    Subi.l #1000,d0
    Bpl .l5
    Addi.l #1000,d0
    addi.l #$30,d1
    cmpi.b #" ",3(a0)
    bne .l52
    cmpi.b #"0",d1
    Beq .l51
.l52:
    move.b d1,4(a0)
.l51:MoveQ.l #-1,d1
.l6:AddQ.l #1,d1
    Subi.l #100,d0
    Bpl .l6
    Addi.l #100,d0
    addi.l #$30,d1
    cmpi.b #" ",4(a0)
    bne .l62
    cmpi.b #"0",d1
    Beq .l61
.l62:
    move.b d1,5(a0)
.l61:MoveQ.l #-1,d1
.l7:AddQ.l #1,d1
    Subi.l #10,d0
    Bpl .l7
    Addi.l #10,d0
    addi.l #$30,d1
    cmpi.b #" ",5(a0)
    bne .l72
    cmpi.b #"0",d1
    Beq .l71
.l72:
    move.b d1,6(a0)
.l71:
    addi.l #$30,d0
    move.b d0,7(a0)
    Movem.l (sp)+,a0-a5
    Tst.l D6
    Beq .ende   
    Move.l DOSBase,a6
    Move.l D6,d1
    Move.l #Zusatz,d2
    Move.l #8,d3
    Jsr Write(a6)
.ende:RTS

CompareString:
    movem.l d0-d7/a0-a6,-(sp)
    movem.l d0-d1/a0-a1,-(sp)
    Jsr CountString
    Move.l D0,Stringlaenge
    movem.l (sp)+,d0-d1/a0-a1
    movem.l d0-d1/a0-a1,-(sp)
Move.l a1,A0
Jsr CountString
    Cmp.l Stringlaenge,D0
    Beq .l0
    movem.l (sp)+,d0-d1/a0-a1
    bra .fehler
.l0:movem.l (sp)+,d0-d1/a0-a1
    cmpi.l #Mode_Nocase,d1
    beq .nocase
    move.l Stringlaenge,d1
    subq.l #1,d1
    addi.l d0,a1
.l1:move.b (a0)+,d0
    cmp.b (a1)+,d0
    bne .fehler
    dbra d1,.l1
    movem.l (a7)+,d0-d7/a0-a6
    moveq.l #-1,d0
    RTS
.NoCase:
    move.l Stringlaenge,d1
    subq.l #1,d1
    addi.l d0,a1
.l2:move.b (a0)+,d0
    move.b (a1)+,d2
    bclr #5,d0
    bclr #5,d2
    cmp.b d2,d0
    bne .fehler
    dbra d1,.l2
    movem.l (a7)+,d0-d7/a0-a6
    moveq.l #-1,d0
    RTS
.Fehler:
    movem.l (a7)+,d0-d7/a0-a6
    moveq.l #0,d0
    RTS

CountString:
        move.l a1,-(Sp)
        move.l a0,a1
.l1:    cmpi.b #$00,(a1)+
        bne .l1
        lea -1(a1),a1
        sub.l a0,a1
        move.l a1,d0
        move.l (sp)+,a1
        RTS

CountEOL:
        move.l a1,-(Sp)
        move.l a0,a1
.l1:    cmpi.b #$0a,(a1)
        beq .l2
        cmpi.b #$00,(a1)+
        bne .l1
        lea -1(a1),a1
.l2:    sub.l a0,a1
        move.l a1,d0
        addq.l #1,d0
        cmpi.b #$00,(a0)
        beq .null
        move.l (sp)+,a1
        RTS
.null:  clr.l d0
        move.l (sp)+,a1
        RTS

CD:
        Move.l DOSBase,a6
        Move.l a0,d1
        Move.l #Access_read,d2
        Jsr Lock(a6)
        Tst.l d0
        Beq .ende
            Move.l d0,d1
            Jsr Currentdir(a6)
            Move.l d0,d1
            Jsr Unlock(a6)
            moveq.l #-1,d0
.ende:  RTS

GetFilename:
        cmpi.l #0,laenge
        beq .l13
        cmpi.l #1,laenge
        beq .l13
        Move.l Adresse,a0
.l1:    cmpi.b #`"`,(a0)
        beq .l10
        cmpi.b #` `,(a0)+
        beq .l1
        lea -1(a0),a1
.l2:    cmpi.b #`"`,(a0)
        beq .l11
        cmpi.b #$0a,(a0)
        beq .l12
        cmpi.b #$00,(a0)
        beq .l12
        cmpi.b #` `,(a0)+
        bne .l2
        Lea -1(a0),a2
.l3:    suba.l a1,a2
        Move.l ExecBase,a6
        Move.l a1,a0
        Move.l #Filename,a1
        Move.l a2,d0
        Jsr Copymem(a6)
        Move.l a2,d0
        rts
.l10:   lea 1(a0),a1
        bra .l2
.l11:   lea 1(a0),a1
        bra .l3
.l12:   move.l a0,a2
        bra .l3
.l13:   moveq.l #0,d0
        RTS

    Include sys:coder/include/Datatypes/datatypes.i
    Include sys:coder/include/intuition/icclass.i

    




    Eintraglaenge= 32

SECTION A,DATA

even
TopazAttr:
    dc.l TopazName
    dc.w 8
    dc.b 0,0
Topazname:
    dc.b "topaz.font",0
    blk.b 29,0

SECTION B,CODE

AminetCheck:    
    Move.l DOSBase,a6
    Move.l D7,d1
    Move.l #Buffer,d2
    Move.l #1,d3
    Jsr Read(a6)
    Move.l D7,d1
    Move.l #-1,d2
    Move.l #Offset_Current,d3
    Jsr Seek(a6)
    cmpi.b #"|",Buffer
    beq .Aminet
    move.l #-1,d0
    RTS
.aminet:
    Move.l Handle,d1
    Move.l #Buffer,d2
    Move.l #1000,d3
    Jsr Fgets(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #Buffer,D0
    Bne .ende
    cmpi.b #"|",buffer
    beq .aminet
.Schleife:
    Move.l Handle,d1
    Move.l #Buffer,d2
    Move.l #1000,d3
    Jsr Fgets(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #Buffer,D0
    Bne .ende
    move.l buffer,a0
.l1:cmpi.b #" ",(a0)+
    bne .l1
    lea -1(a0),a1
.l2:cmpi.b #" ",(a0)+
    beq .l2
    lea -1(a0),a2
.l3:cmpi.b #" ",(a0)+
    bne .l3
    lea -1(a0),a3
    move.l a3,d3
    sub.l a2,d3
    move.l a1,d2
    sub.l #Buffer,d2
    movem.l d0-d3/a0-a3,-(a7)
    Move.l ExecBase,a6
    Move.l a2,a0
    Move.l #Buffer1,a1
    Move.l d3,d0
    Jsr Copymem(a6)
    movem.l (a7)+,d0-d3/a0-a3
    Lea FIB,A1
    Lea AMINET_name000,A0
.Name001:Move.b (a0)+,D0
    Move.b D0,(a1)+
    Cmpi.b #0,D0
    Bne .Name001
    Lea -1(a1),A1
    Lea Buffer1,A0
Move.l d3,D0
Subq.l #1,d0
.Name002:Move.b (A0)+,(a1)+
    Cmpi.b #0,(A0)
    Beq .Name003
Dbra D0,.name002
bra .name004
.name003:Cmpi.w #0,D0
Beq .name004
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name003
.name004:Move.b #00,(A1) 
    Lea -1(a1),A1
    Lea _name005,A0
.Name006:Move.b (a0)+,D0
    Move.b D0,(a1)+
    Cmpi.b #0,D0
    Bne .Name006
    Lea -1(a1),A1
    Lea Buffer,A0
Move.l d2,D0
Subq.l #1,d0
.Name007:Move.b (A0)+,(a1)+
    Cmpi.b #0,(A0)
    Beq .Name008
Dbra D0,.name007
bra .name009
.name008:Cmpi.w #0,D0
Beq .name009
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name008
.name009:Move.b #00,(A1) 
    Lea -1(a1),A1
    Lea xnname010,A0
.Name011:Move.b (a0)+,D0
    Move.b D0,(a1)+
    Cmpi.b #0,D0
    Bne .Name011
    Move.l #FIB,A0
    Jsr Countstring
    Move.l D0,OK
    Move.l DOSBase,a6
    Move.l WH,d1
    Move.l #FIB,d2
    Move.l OK,d3
    Jsr Write(a6)
    beq .Schleife
.ende:
    moveq.l #0,d0
    RTS

Prefs:  
    Move.l GUIEnvBase,a6
    Move.l #000,D0
    Move.l #011,D1
    Move.l #300,D2
    Move.l #110,D3
    Move.l #CD_Finder_Prefsname011,A0
    Move.l #IDCMP_GADGETDOWN!IDCMP_GADGETUP!IDCMP_CLOSEWINDOW!IDCMP_IDCMPupdate,D4
    Move.l #WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_RMBTRAP!0,D5
    Move.l #0,A1
    Move.l #0,A2
    Jsr OpenGuiWindowA(a6)
    Move.l D0,IndexWindow
    Tst.l IndexWindow
    Beq WaitMessage
    Move.l IndexWindow,A0
    Move.l #0,A1
    Jsr CreateGuiInfoA(a6)
    Move.l D0,IndexGUI
    Move.l IndexGui,A0
    Move.l #10,D0
    Move.l #10,D1
    Move.l #200,D2
    Move.l #013,D3
    Move.l #CheckBox_Kind,D4
    Move.l #GadgetP00Tags,A1
    Jsr CreateGuiGadgetA(a6)
    Move.l GUIEnvBase,a6
    Move.l IndexGui,A0
    Move.l #10,D0
    Move.l #25,D1
    Move.l #200,D2
    Move.l #013,D3
    Move.l #CheckBox_Kind,D4
    Move.l #GadgetP01Tags,A1
    Jsr CreateGuiGadgetA(a6)
    Move.l IndexGui,A0
    Move.l #0,A1
    Jsr DrawGuiA(a6)
.WaitMessage:
    Move.l GUIEnvBase,a6
    Move.l IndexGui,A0
    Jsr WaitGuiMsg(a6)
    Clr.l D0
    Move.l IndexGui,A0
    Move.l 36(A0),D0
    Move.l D0,MsgClass
    Move.l MsgClass,d0
    Cmp.l #IDCMP_CloseWindow,D0
    Bne .WaitMessage
    Move.l IndexWindow,A0
    Jsr CloseGuiWindow(a6)
    RTS

Cnop 0,4
Open_Window:
	Move.l GUIEnvBase,a6
	Move.l #000,D0
	Move.l #011,D1
	Move.l #640,D2
	Move.l #50,D3
	Move.l #CD_Findername012,A0
	Move.l #IDCMP_GADGETDOWN!IDCMP_GADGETUP!IDCMP_CLOSEWINDOW!IDCMP_VANILLAKEY!IDCMP_RAWKEY!0,D4
	Move.l #WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_RMBTRAP!0,D5
	Move.l #0,A1
	Move.l #0,A2
	Jsr OpenGuiWindowA(a6)
	Move.l D0,Window
	Tst.l Window
	Beq Open_Windowende
	Move.l Window,A0
	Move.l #0,A1
	Jsr CreateGuiInfoA(a6)
	Move.l D0,GUI
Open_Windowende:RTS

Create_Gadgets:
	Move.l GUIEnvBase,a6
	Move.l Gui,A0
	Move.l #070,D0
	Move.l #005,D1
	Move.l #100,D2
	Move.l #012,D3
	Move.l #String_Kind,D4
	Move.l #Gadget000Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l GUIEnvBase,a6
	Move.l Gui,A0
	Move.l #005,D0
	Move.l #020,D1
	Move.l #080,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget001Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l Gui,A0
	Move.l #090,D0
	Move.l #020,D1
	Move.l #080,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget002Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l Gui,A0
	Move.l #175,D0
	Move.l #020,D1
	Move.l #080,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget003Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l Gui,A0
	Move.l #230,D0
	Move.l #005,D1
	Move.l #400,D2
	Move.l #012,D3
	Move.l #String_Kind,D4
	Move.l #Gadget004Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l GUIEnvBase,a6
	Move.l Gui,A0
	Move.l #260,D0
	Move.l #020,D1
	Move.l #127,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget005Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l Gui,A0
	Move.l #390,D0
	Move.l #020,D1
	Move.l #240,D2
	Move.l #06,D3
	Move.l #GEG_ProgressIndicatorKind,D4
	Move.l #Gadget006Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l Gui,A0
	Move.l #390,D0
	Move.l #027,D1
	Move.l #240,D2
	Move.l #06,D3
	Move.l #GEG_ProgressIndicatorKind,D4
	Move.l #Gadget006Tags,A1
	Jsr CreateGuiGadgetA(a6)
	Move.l GUIEnvBase,a6
	Move.l Gui,A0
	Move.l #005,D0
	Move.l #034,D1
	Move.l #080,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget008Tags,A1
	Jsr CreateGuiGadgetA(a6)
	Move.l Gui,A0
	Move.l #090,D0
	Move.l #034,D1
	Move.l #080,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget009Tags,A1
	Jsr CreateGuiGadgetA(a6)
	Move.l Gui,A0
	Move.l #260,D0
	Move.l #034,D1
	Move.l #127,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget010Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l Gui,A0
	Move.l #175,D0
	Move.l #034,D1
	Move.l #080,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget011Tags,A1
	Jsr CreateGuiGadgetA(a6)

	Move.l Gui,A0
	Move.l #390,D0
	Move.l #034,D1
	Move.l #080,D2
	Move.l #012,D3
	Move.l #Button_Kind,D4
	Move.l #Gadget012Tags,A1
	Jsr CreateGuiGadgetA(a6)

    Move.l Gui,A0
    Move.l #0,A1
    Jsr DrawGuiA(a6)
    Move.l D0,Result
	RTS

Close_Window:
	Move.l GUIEnvBase,a6
	Move.l Window,A0
	Jsr CloseGuiWindow(a6)
	RTS


WritePlain:    
        Move.l #0,D6
        Jsr Convertzahl
        Move.l #Zusatz,D0
        Move.l D0,Zeiger
        Moveq.l #$8,D0
        Move.l D0,Anz
.Write_Sylk_test1:
        Clr.l D0
        Move.l Zeiger,A0
        Move.b (A0),D0
        Move.l D0,Wert
        cmpi.l #$00000020,Wert
        bne .Write_Sylk_Test2
        Move.l Zeiger,D0
        Addq.l #1,D0
        Move.l D0,Zeiger
        Move.l Anz,D0
        Subq.l #1,D0
        Move.l D0,Anz
        bra .Write_Sylk_test1
.Write_Sylk_test2:
        Move.l DOSBase,a6
        Move.l WH,d1
        Move.l Zeiger,d2
        Move.l anz,d3
        Jsr Write(a6)
        RTS

CountCells:    
    moveq.l #0,d0
.count:
    lea 1(a0),a0
    addq.l #1,d0
.CountCells1:
    cmpi.b #`:`,(a0)
    beq .count
    cmpi.b #`/`,(a0)
    beq .Count
    cmpi.b #$0a,(a0)
    beq .ende
    cmpi.b #$00,(a0)
    beq .ende
    lea 1(a0),a0
    bra .CountCells1
.ende:
    RTS

WriteZelle:       
    moveq.l #0,d0
.count:
    addq.l #1,d0
    cmpi.l d0,d1
    beq .write
    lea 1(a0),a0
.CountCells1:
    cmpi.b #`:`,(a0)
    beq .count
    cmpi.b #`/`,(a0)
    beq .Count
    lea 1(a0),a0
    bne .CountCells1
.Write:
    cmpi.l #1,d1
    beq .write0
    lea 1(a0),a0
.write0:
    move.l a0,a1
.weiter:
    cmpi.b #`:`,(a0)
    beq .next
    cmpi.b #`/`,(a0)
    beq .next
    cmpi.b #$0a,(a0)
    beq .next
    cmpi.b #$00,(a0)
    beq .next
    lea 1(a0),a0
    bra .weiter
.next:
    sub.l a1,a0
    Move.l DOSBase,a6
    Move.l WH,d1
    Move.l a1,d2
    Move.l a0,d3
    Jsr Write(a6)
    RTS

TestFilename:       
    Move.l DOSBase,a6
    Move.l D7,d1
    Move.l #Buffer,d2
    Move.l #1000,d3
    Jsr NamefromFH(a6)
    Move.l D7,d1
    Move.l #0,d2
    Move.l #Offset_end,d3
    Jsr Seek(a6)
    Move.l d7,d1
    Move.l #0,d2
    Move.l #Offset_begin,d3
    Jsr Seek(a6)
    Move.l D0,Laenge
    Move.l ExecBase,a6
    Move.l Laenge,d0
    Move.l #MEMF_CLEAR!MEMF_PUBLIC,d1
    Jsr AllocMem(a6)
    Move.l D0,Memoryblock
    Tst.l MemoryBlock
    Beq .error
    Move.l DOSBase,a6
    Move.l d7,d1
    Move.l Memoryblock,d2
    Move.l Laenge,d3
    Jsr Read(a6)
    Move.l Memoryblock,d0
    RTS
.Error:
    Moveq.l #0,d0
    RTS

TerminateString:
    move.l a0,-(a7)
.l1:cmpi.b #$00,(a0)
    beq .ende
    cmpi.b #$0a,(a0)
    beq .Term
    lea 1(a0),a0
    bra.s .l1
.Term:
    move.b #$00,(a0)
.ende:
    move.l (a7)+,a0
    RTS

RGets:    
    Jsr TerminateString
    move.l memoryblock,a1
    add.l Laenge,a1
    cmp.l a0,a1
    ble .error
    moveq.l #1,d0
    RTS
.error:
    moveq.l #0,d0
    RTS

RGets2:    
    Jsr Countstring
    Move.l D0,OK
    move.l a0,a1
    add.l Ok,a1
    addi.l #1,a1
    move.l memoryblock,a0
    add.l len,a0
    cmpa.l a0,a1
    bge .l1
    move.l a1,d0
    RTS
.l1:
    moveq.l #0,d0
    RTS

Progress:                
    Lea SetProgressTags,a0
    move.l Prozent,4(a0)
    Move.l GUIEnvBase,a6
    Move.l gui,A0
    Move.l Gadget,D0
    Move.l #SetProgressTags,A1
    Jsr SetGUIGadgetA(a6)
    RTS

Copy:       
    Move.l DOSBase,a6
    Move.l d6,d1
    Move.l #Buffer,d2
    Move.l #1000,d3
    Jsr Read(a6)
    Move.l D0,anz
    Move.l d7,d1
    Move.l #Buffer,d2
    Move.l anz,d3
    Jsr Write(a6)
    Move.l D0,anz
    Move.l Anz,d0
    Cmp.l #1000,D0
    Beq Copy
    RTS

SetPfad:  
    Move.l DOSBase,a6
    Move.l TH,d1
    Move.l #Pfad,d2
    Jsr FPuts(a6)
    Move.l #pfad,A0
    Jsr CountString
    Move.l D0,OK
    Lea PFad,a0
    add.l ok,a0
.l1:cmpi.b #"/",(a0)
    beq .Thatsit
    cmpi.b #":",(a0)
    beq .Thatsit
    lea -1(a0),a0
    bra .l1
.ThatsIt:
    move.b #0,1(a0)
    Move.l #pfad,A0
    Jsr CountString
    Move.l D0,OK
    RTS    

SetPfad_Crunch:  
    Move.l DOSBase,a6
    Move.l TH,d1
    Move.l #Pfad,d2
    Jsr FPuts(a6)
    Move.l #pfad,A0
    Jsr CountString
    Move.l D0,OK
    Move.l Writelaenge,D0
    Add.l OK,D0
    Move.l D0,WriteLaenge
    Move.l Readlaenge,D0
    Add.l OK,D0
    Move.l D0,ReadLaenge
    Lea PFad,a0
    add.l ok,a0
.l1:cmpi.b #"/",(a0)
    beq .Thatsit
    cmpi.b #":",(a0)
    beq .Thatsit
    lea -1(a0),a0
    bra .l1
.ThatsIt:
    lea 1(a0),a0
    move.b #0,(a0)+
    RTS

SetPfad_Compare:  
    Move.l #pfad2,A0
    Jsr CountString
    Move.l D0,OK
    Lea PFad2,a0
    add.l ok,a0
.l1:cmpi.b #"/",(a0)
    beq .Thatsit
    cmpi.b #":",(a0)
    beq .Thatsit
    lea -1(a0),a0
    bra .l1
.ThatsIt:
    lea 1(a0),a0
    move.b #0,(a0)+
    RTS

ComparePfad:       
    move.b (a0)+,d0
    move.b (a1)+,d1
    cmpi.b d0,d1
    bne .dismatch
    cmpi.b #0,(a0)
    bne ComparePfad
    moveq.l #-1,d0
    RTS
.dismatch:
    moveq.l #0,d0
    RTS


Crunch:        
    Move.l #6,Gadget
    Move.l #50,Prozent
    Jsr Progress
    Move.l Counter,D0
    Muls.l #2,D0
    Move.l D0,Counter
    Moveq.l #$0,D0
    Move.l D0,Count
    Moveq.l #$0,D0
    Move.l D0,ReadLaege
    Moveq.l #$0,D0
    Move.l D0,Writelaenge
    Move.l Handle,-(a7)
    Move.l TH,-(a7)
    Move.l OK,-(a7)
    Move.l Result,-(a7)
    Move.l DOSBase,a6
    Move.l Handle,d1
    Move.l #Mode_old,d2
    Jsr Open(a6)
    Move.l D0,Handle
    Move.l #t_swapname013,d1
    Move.l #mode_new,d2
    Jsr Open(a6)
    Move.l D0,TH
    Move.l TH,d1
    Move.l #CM01xnname014,d2
    Move.l #5,d3
    Jsr Write(a6)
    Move.l Handle,d1
    Move.l #Pfad,d2
    Move.l #150,d3
    Jsr Fgets(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #Pfad,D0
    Bne .ende
.l0:
    Jsr SetPfad_Crunch
    Move.l ExecBase,a6
    Move.l #pfad,a0
    Move.l #Pfad_1,a1
    Move.l #150,d0
    Jsr Copymem(a6)
.l1:    
    Move.l Writelaenge,D0
    Muls.l #100,D0
    Move.l D0,Pro
    Move.l Pro,D0
    Divs.l ReadLaenge,D0
    Move.l D0,Pro
    Move.l #7,Gadget
    Move.l Pro,Prozent
    Jsr Progress
    Move.l Count,D0
    Addq.l #1,D0
    Move.l D0,Count
    Move.l Count,D0
    Muls.l #100,D0
    Move.l D0,Pro
    Move.l Pro,D0
    Divs.l Counter,D0
    Move.l D0,Pro
    Move.l Pro,D0
    Add.l #50,D0
    Move.l D0,Pro
    Move.l #6,Gadget
    Move.l Pro,Prozent
    Jsr Progress
    Move.l DOSBase,a6
    Move.l Handle,d1
    Move.l #Pfad,d2
    Move.l #150,d3
    Jsr Fgets(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #Pfad,D0
    Bne .ende1
    Move.l #Pfad,A0
    Jsr Countstring
    Move.l D0,OK
    Move.l Readlaenge,D0
    Add.l ok,D0
    Move.l D0,Readlaenge
    Move.l ExecBase,a6
    Move.l #pfad,a0
    Move.l #Pfad2,a1
    Move.l #150,d0
    Jsr Copymem(a6)
    Jsr SetPfad_Compare
    Move.l #Pfad2,a0
    Move.l #Pfad_1,a1
    Jsr ComparePfad
    Move.l D0,Match
    Tst.l Match
    Beq .l0
    Move.l DOSBase,a6
    Move.l TH,d1
    Move.l #name015,d2
    Move.l #1,d3
    Move.l #1,d4
    Jsr Fwrite(a6)
    Move.l #Pfad,A0
    Jsr Countstring
    Move.l D0,OK
    lea pfad,a0
    add.l ok,a0
.l2:cmpi.b #"/",(a0)
    beq .Thatsit
    cmpi.b #":",(a0)
    beq .Thatsit
    lea -1(a0),a0
    bra .l2
.ThatsIt:
    lea 1(a0),a0
    move.l a0,Result
    Move.l Result,A0
    Jsr Countstring
    Move.l D0,OK
    Move.l DOSBase,a6
    Move.l TH,d1
    Move.l Result,d2
    Move.l ok,d3
    Move.l #1,d4
    Jsr Fwrite(a6)
    Move.l OK,D0
    Addq.l #1,D0
    Move.l D0,OK
    Move.l Writelaenge,D0
    Add.l OK,D0
    Move.l D0,WriteLaenge
    bra .l1
.ende1:
    Move.l TH,d1
    Move.l #0,d2
    Move.l #Offset_begin,d3
    Jsr Seek(a6)
    Move.l Handle,d1
    Move.l #pfad,d2
    Move.l #150,d3
    Jsr NamefromFH(a6)
    Move.l Handle,d1
    Jsr Close(a6)
    Move.l #Pfad,d1
    Move.l #Mode_new,d2
    Jsr Open(a6)
    Move.l D0,Handle
    Move.l TH,d6
    Move.l Handle,d7
    Jsr Copy
    Move.l DOSBase,a6
    Move.l TH,d1
    Jsr Close(a6)
    Move.l handle,d1
    Jsr Close(a6)
    Move.l #T_swapname016,d1
    Jsr Deletefile(a6)
    bra .ende2
.Ende:
    Move.l TH,d1
    Jsr Close(a6)
    Move.l handle,d1
    Jsr Close(a6)
.ende2:
    Move.l (a7)+,Result
    Move.l (a7)+,OK
    Move.l (a7)+,TH
    Move.l (a7)+,Handle
    Move.l #6,Gadget
    Move.l #100,Prozent
    Jsr Progress
    RTS

Decrunch:        
    Moveq.l #$1,D0
    Move.l D0,Countfiles
    Moveq.l #$1,D0
    Move.l D0,CountDirs
    Moveq.l #$0,D0
    Move.l D0,MaxZellen
    Move.l Handle,-(a7)
    Move.l TH,-(a7)
    Move.l OK,-(a7)
    Move.l Result,-(a7)
    move.l handle,a0
    move.l (a0),Handle
    Move.l DOSBase,a6
    Move.l Handle,d1
    Move.l #Pfad,d2
    Move.l #150,d3
    Jsr Fgets(a6)
    Move.l Pfad,d0
    Cmp.l #"CM01",D0
    Bne .Ende
    Move.l #t_swapname017,d1
    Move.l #mode_new,d2
    Jsr Open(a6)
    Move.l D0,TH
    Move.l Handle,d1
    Move.l #Pfad,d2
    Move.l #150,d3
    Jsr Fgets(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #Pfad,D0
    Bne .ende
    bra .l0
.l00:
    Move.l ExecBase,a6
    Move.l #Pfad_1,a0
    Move.l #Pfad,a1
    Move.l #150,d0
    Jsr CopyMem(a6)
.l0:
    Move.l Countdirs,D0
    Addq.l #1,D0
    Move.l D0,Countdirs
    Jsr SetPfad
.l1:    
    Move.l DOSBase,a6
    Move.l Handle,d1
    Move.l #Pfad_1,d2
    Move.l #150,d3
    Jsr Fgets(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #Pfad_1,D0
    Bne .ende1
    Move.l #pfad_1,a0
    Jsr CountCells
    Move.l D0,Zellen
    Move.l Zellen,d0
    Cmp.l maxZellen,D0
    Bgt .pre0000
    Bra .Pre0001
.Pre0000:

                          Move.l Zellen,D0
                          Move.l D0,maxZellen
                        
.Pre0001:
                                                                     
    Move.l Countfiles,D0
    Addq.l #1,D0
    Move.l D0,Countfiles
    Cmpi.b #"%",pfad_1
    bne .l00
    Move.l DOSBase,a6
    Move.l TH,d1
    Move.l #Pfad,d2
    Move.l OK,d3
    Move.l #1,d4
    Jsr FWrite(a6)
    Move.l TH,d1
    Move.l #Pfad_1+1,d2
    Jsr FPuts(a6)
    bra .l1
.ende1:
    Move.l Handle,d1
    Jsr Close(a6)
    move.l TH,D7
    Move.l D7,d1
    Move.l #0,d2
    Move.l #Offset_Begin,d3
    Jsr Seek(a6)
    Move.l (a7)+,Result
    Move.l (a7)+,OK
    Move.l (a7)+,TH
    Move.l (a7)+,a0
    move.l D7,(a0)
    RTS
.ende:
    Move.l Handle,d1
    Move.l #0,d2
    Move.l #Offset_Begin,d3
    Jsr Seek(a6)
    Move.l (a7)+,Result
    Move.l (a7)+,OK
    Move.l (a7)+,TH
    Move.l (a7)+,Handle
    RTS

Progressfiles:  
    Move.l Counter,D0
    Addq.l #1,D0
    Move.l D0,Counter
    Move.l Files,D0
    Addq.l #1,D0
    Move.l D0,Files
    Move.l Files,d0
    Cmp.l #10,D0
    Blt .ende
    Moveq.l #$0,D0
    Move.l D0,Files
    Move.l Merker,D0
    Addq.l #1,D0
    Move.l D0,Merker
    Move.l Merker,d0
    Cmp.l #101,D0
    Blt .l1
    Moveq.l #$0,D0
    Move.l D0,Merker
.l1:
    Lea SetProgressTags,a0
    move.l Merker,4(a0)
    Move.l GUIEnvBase,a6
    Move.l gui,A0
    Move.l #7,D0
    Move.l #SetProgressTags,A1
    Jsr SetGUIGadgetA(a6)
.ende:
    RTS

ProgressReadlines:  
    Move.l Counter,D0
    Addq.l #1,D0
    Move.l D0,Counter
    Move.l Counter,d0
    Cmp.l #10,D0
    Blt .ende
    Moveq.l #$0,D0
    Move.l D0,Counter
    Move.l Merker,D0
    Addq.l #1,D0
    Move.l D0,Merker
    Move.l Merker,d0
    Cmp.l #101,D0
    Blt .l1
    Moveq.l #$0,D0
    Move.l D0,Merker
.l1:
    Lea SetProgressTags,a0
    move.l Merker,4(a0)
    Move.l GUIEnvBase,a6
    Move.l gui,A0
    Move.l #7,D0
    Move.l #SetProgressTags,A1
    Jsr SetGUIGadgetA(a6)
.ende:
    RTS

GetCDName:   
    Move.l DOSBase,a6
    Move.l a0,d1
    Move.l #Access_read,d2
    Jsr Lock(a6)
    Move.l D0,Dirlock
    Move.l Dirlock,d1
    Move.l #CDName,d2
    Move.l #100,d3
    Jsr NameFromLock(a6)
    Tst.l Dirlock
    Beq .ende
    Move.l Dirlock,d1
    Jsr Unlock(a6)
.ende:
    RTS

GetIndex:  
    Moveq.l #$0,D0
    Move.l D0,Zahl
    Move.l DOSBase,a6
    Move.l #Base_CD_name018,d1
    Move.l #access_read,d2
    Jsr Lock(a6)
    Move.l D0,Dirlock
    Move.l #Fib,A0
    Move.l #0,D0
    Move.l #300,D1
    Jsr FillBuffer
    Move.l DOSBase,a6
    Move.l Dirlock,d1
    Move.l #FIB,d2
    Jsr Examine(a6)
.Schleife:
    Move.l Zahl,D0
    Addq.l #1,D0
    Move.l D0,Zahl
    Move.l Dirlock,d1
    Move.l #FIB,d2
    Jsr ExNext(a6)
    Move.l D0,OK
    Tst.l Ok
    Bne .Schleife
    Move.l Dirlock,d1
    Jsr Unlock(a6)
    move.l Zahl,d0
    RTS

Anhaengen:  
    Move.l GUIEnvBase,a6
    Move.l Gui,A0
    Move.l #Schon_vorhanden_anhname019,A1
    Move.l #GER_YNCkind,D0
    Move.l #DOITTags,A2
    Jsr GuiRequestA(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #GER_No,D0
    Beq .pre0004
    Bra .Pre0005
.Pre0004:

                       Move.l DOSBase,a6
                       Move.l FH,d1
                       Jsr Close(a6)
                       Move.l #Buffer,d1
                       Move.l #Mode_new,d2
                       Jsr Open(a6)
                       Move.l D0,FH
                      
.Pre0005:
                                                                                                          
    Move.l Result,d0
    Cmp.l #GER_Cancel,D0
    Beq .pre0008
    Bra .Pre0009
.Pre0008:

                            Move.l DOSBase,a6
                            Move.l FH,d1
                            Jsr Close(a6)
                            Move.l ExecBase,a6
                            Move.l #Base_CD_x_00name020,a0
                            Move.l #Dirname,a1
                            Moveq.l #$09,d0
                            Jsr Copymem(a6)
                            Move.l #name021,a0
                            Move.l #Filename,a1
                            Moveq.l #$07,d0
                            Jsr Copymem(a6)
                            Move.l #0,A0
                            Jsr FileReq
                            Move.l DOSBase,a6
                            Move.l #Name_bak,d1
                            Move.l #Mode_new,d2
                            Jsr Open(a6)
                            Move.l D0,FH
                          
.Pre0009:
                                                                                                                                                                                                                                                                                                                                                                              
    Move.l DOSBase,a6
    Move.l FH,d1
    Move.l #0,d2
    Move.l #Offset_end,d3
    Jsr Seek(a6)
    RTS

EinScannen:  
    Move.l GUIEnvBase,a6
    Move.l #000,D0
    Move.l #011,D1
    Move.l #640,D2
    Move.l #255,D3
    Move.l #CD_Finder_Directoryindexname022,A0
    Move.l #IDCMP_GADGETDOWN!IDCMP_GADGETUP!IDCMP_CLOSEWINDOW!IDCMP_IDCMPupdate,D4
    Move.l #WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_RMBTRAP!0,D5
    Move.l #0,A1
    Move.l #0,A2
    Jsr OpenGuiWindowA(a6)
    Move.l D0,IndexWindow
	Tst.l IndexWindow
	Beq .ende
	Move.l IndexWindow,A0
	Move.l #0,A1
	Jsr CreateGuiInfoA(a6)
	Move.l D0,IndexGUI
    Move.l DataTypesBase,a6
    Move.l #Buffer,d0
    Move.l #NewDTTAGS,a0
    Jsr NewDTObjectA(a6)
    Move.l D0,NewObject
    Move.l IndexWindow,a0
    Move.l #0,a1
    Move.l NewObject,a2
    Move.l #-1,d0
    Jsr AddDTObject(a6)
.WaitMessage:
    Move.l GUIEnvBase,a6
    Move.l IndexGui,A0
    Jsr WaitGuiMsg(a6)
    Clr.l D0
    Move.l IndexGui,A0
    Move.l 36(A0),D0
    Move.l D0,MsgClass
    Clr.l D0
    Move.l IndexGui,A0
    Move.w 52(A0),D0
    Move.l D0,MsgGadNbr
    Clr.l D0
    Move.l IndexGui,A0
    Move.b 43(A0),D0
    Move.l D0,MsgChar
    Move.l MsgClass,d0
    Cmp.l #IDCMP_IDCMPUpdate,D0
    Beq .pre0012
    Bra .Pre0013
.Pre0012:

                                     Move.l DataTypesBase,a6
                                     Move.l NewObject,a0
                                     Move.l IndexWindow,a1
                                     Move.l #0,a2
                                     Move.l #0,a3
                                     Jsr RefreshDTObjectA(a6)
                                     Bra .WaitMessage
                                   
.Pre0013:
                                                                                                                                                                           
    Move.l MsgClass,d0
    Cmp.l #IDCMP_CloseWindow,D0
    Bne .WaitMessage
    Move.l DataTypesBase,a6
    Move.l IndexWindow,a0
    Move.l NewObject,a1
    Jsr RemoveDTObject(a6)
    Move.l NewObject,a0
    Jsr DisposeDTObject(a6)
	Move.l GUIEnvBase,a6
	Move.l IndexWindow,A0
	Jsr CloseGuiWindow(a6)
.ende:
    RTS

Start:
    Moveq.l #$1,D0
    Move.l D0,STATUS
    Moveq.l #$0,D0
    Move.l D0,OO
Move.l DOSBase,a6
Move.l #Env_Cd_Findername023,d1
Move.l #Mode_old,d2
Jsr Open(a6)
Move.l D0,TH
    Cmp.l #0,D0
    Bne .pre0016
    Bra .Pre0017
.Pre0016:

                                        Move.l TH,d1
                                        Move.l #Status,d2
                                        Move.l #4,d3
                                        Jsr Read(a6)
                                        Move.l TH,d1
                                        Move.l #Searchonly,d2
                                        Move.l #4,d3
                                        Jsr Read(a6)
                                        Move.l TH,d1
                                        Jsr Close(a6)
                                                   
.Pre0017:
                                                                                                                                                                                                                                                                       
    Move.l #Kcon___640_200_CD_Finder_AUTO_CLOSE_WAITname024,d1
    Move.l #mode_old,d2
    Jsr Open(a6)
    Move.l D0,OH
    Move.l OH,d0
    Cmp.l #0,D0
    Beq .pre0020
    Bra .Pre0021
.Pre0020:

               Moveq.l #$1,D0
               Move.l D0,OO
               Jsr Output(a6)
               Move.l D0,OH
             
.Pre0021:
                                                              
    Move.l #Base_CD_name025,A0
    Jsr CD
    Move.l ExecBase,a6
    Move.l #CD0_name026,a0
    Move.l #Device,a1
    Moveq.l #$04,d0
    Jsr CopyMem(a6)
    Jsr Open_Window
    Tst.l Window
    Beq PRG_Ende
    Jsr Create_Gadgets
    Tst.l Result
    Beq WaitMessage
    Move.l GUIEnvBase,a6
    Move.l Gui,A0
    Move.l #GadgetErrorname027,A1
    Move.l #GER_OKKind,D0
    Move.l #OKTAGS,A2
    Jsr GuiRequestA(a6)
    Bra PRG_Ende
WaitMessage:
    Move.l GUIEnvBase,a6
    Move.l Gui,A0
    Jsr WaitGuiMsg(a6)
    Clr.l D0
    Move.l Gui,A0
    Move.l 36(A0),D0
    Move.l D0,MsgClass
    Clr.l D0
    Move.l Gui,A0
    Move.w 52(A0),D0
    Move.l D0,MsgGadNbr
    Move.l MsgClass,d0
    Cmp.l #IDCMP_CloseWindow,D0
    Beq PRG_Ende
    Move.l MsgClass,d0
    Cmp.l #IDCMP_GadgetUp,D0
    Bne WaitMessage
    Move.l Gui,A0
    Move.l #Gettags,A1
    Jsr GuiGadgetActiona(a6)
    Move.l MsgGadNbr,d0
    Cmp.l #1,D0
    Beq .pre0024
    Bra .Pre0025
.Pre0024:

                      Moveq.l #$0,D0
                      Move.l D0,Files
                      Moveq.l #$0,D0
                      Move.l D0,Dirs
                      Moveq.l #$0,D0
                      Move.l D0,Counter
                      Moveq.l #$0,D0
                      Move.l D0,Merker
                      Move.l #6,Gadget
                      Move.l #0,Prozent
                      Jsr Progress
                      Move.l #Device,a0
                      Jsr GetCDName
                      Lea Buffer,A1
                      Lea Die_CD_heiname028,A0
.Name029:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name029
                      Lea -1(a1),A1
                      Lea CDName,A0
.Name030:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name030
                      Move.l GUIEnvBase,a6
                      Move.l Gui,A0
                      Move.l #buffer,A1
                      Move.l #GER_Okkind,D0
                      Move.l #OKTags,A2
                      Jsr GuiRequestA(a6)
                      Move.l #CDName,A0
                      Jsr Countstring
                      Move.l D0,OK
                      Lea Buffer,A1
                      Lea Base_CD_name030,A0
.Name031:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name031
                      Lea -1(a1),A1
                      Lea CDName,A0
Move.l ok,D0
Subq.l #1,d0
.Name032:Move.b (A0)+,(a1)+
                      Cmpi.b #0,(A0)
                      Beq .Name033
Dbra D0,.name032
bra .name034
.name033:Cmpi.w #0,D0
Beq .name034
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name033
.name034:Move.b #00,(A1) 
                      Lea -1(a1),A1
                      Lea name035,A0
.Name036:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name036
                      Move.l DOSBase,a6
                      Move.l #Buffer,d1
                      Move.l #mode_old,d2
                      Jsr Open(a6)
                      Move.l D0,FH
                      Move.l FH,d0
                      Cmp.l #0,D0
                      Bne .pre0026
                      Bra .Pre0027
.Pre0026:
 
                                 Jsr Anhaengen
                               
.Pre0027:
                                                                             
                      Move.l FH,d0
                      Cmp.l #0,D0
                      Beq .pre0028
                      Bra .Pre0029
.Pre0028:
 
                                 Move.l DOSBase,a6
                                 Move.l #Buffer,d1
                                 Move.l #Mode_new,d2
                                 Jsr Open(a6)
                                 Move.l D0,FH
                               
.Pre0029:
                                                                                            
                      Move.l #Device,A0
                      Jsr CD
                      Move.l DOSBase,a6
                      Move.l #Device,d1
                      Move.l #Access_read,d2
                      Jsr Lock(a6)
                      Move.l D0,CDlock
                      Tst.l CDLock
                      Beq CantLock
                      Move.l a7,a5
.Schleife:
                      Move.l DOSBase,a6
                      Move.l CDLock,d1
                      Move.l #FIB,d2
                      Jsr Examine(a6)
                      Move.l D0,OK
                      Tst.l FH
                      Beq CDENDEError
.Schleife1:
                      Move.l DOSBase,a6
                      Move.l CDLock,d1
                      Move.l #FIB,d2
                      Jsr ExNext(a6)
                      Move.l D0,OK
                      Tst.l OK
                      Beq .dirende
                      Jsr Progressreadlines
                      Clr.l D0
                      Move.l #FIB,A0
                      Move.l 4(A0),D0
                      Move.l D0,Type
                      Move.l Type,d0
                      Cmp.l #0,D0
                      Bgt .dir
                      Move.l #FIB,A0
                      Lea 8(A0),A0
                      Move.l A0,Zeiger
                      Move.l DOSBase,a6
                      Move.l Zeiger,d1
                      Move.l #Access_read,d2
                      Jsr Lock(a6)
                      Move.l D0,Filelock
                      Move.l Filelock,d1
                      Move.l #Buffer,d2
                      Move.l #100,d3
                      Jsr NameFromLock(a6)
                      Move.l Filelock,d1
                      Jsr Unlock(a6)
                      Move.l #Buffer,A0
                      Jsr Countstring
                      Move.l D0,OK
                      Move.l Status,d0
                      Cmp.l #0,D0
                      Beq .skippy
                      Move.l ExecBase,a6
                      Move.l #Buffer,a0
                      Move.l #SuchText,a1
                      Move.l #100,d0
                      Jsr Copymem(a6)
                      Move.l GUIEnvBase,a6
                      Move.l Gui,A0
                      Move.l #Settags,A1
                      Jsr GuiGadgetActiona(a6)
.skippy:              
                      Move.l Files,D0
                      Addq.l #1,D0
                      Move.l D0,Files
                      Move.l DOSBase,a6
                      Move.l FH,d1
                      Move.l #Buffer,d2
                      Move.l ok,d3
                      Jsr Write(a6)
                      Move.l FH,d1
                      Move.l #xnname036,d2
                      Move.l #1,d3
                      Jsr Write(a6)
                      Bra .Schleife1
.dir:
                      Move.l Counter,D0
                      Subq.l #1,D0
                      Move.l D0,Counter
                      Move.l #FIB,A0
                      Lea 8(A0),A0
                      Move.l A0,Zeiger
                      Move.l DOSBase,a6
                      Move.l Zeiger,d1
                      Move.l #Access_read,d2
                      Jsr Lock(a6)
                      Move.l D0,Dummy
                      Move.l Dummy,-(a7)
                      Move.l Dirs,D0
                      Addq.l #1,D0
                      Move.l D0,Dirs
                      Bra .Schleife1
.dirende:
                      Cmp.l a5,a7
                      Beq .dirende1
                      Move.l DOSBase,a6
                      Move.l CDLock,d1
                      Jsr Unlock(a6)
                      Move.l (a7)+,CDLOCK
                      Move.l CDLOCK,d1
                      Jsr Currentdir(a6)
                      Move.l D0,l
                      Move.l l,d1
                      Jsr unlock(a6)
                      Move.l #FIB,A0
                      Move.l #0,D0
                      Move.l #300,D1
                      Jsr FillBuffer
                      bra .Schleife
.dirende1:
                      Move.l DOSBase,a6
                      Move.l FH,d1
                      Jsr Close(a6)
                      Move.l #6,Gadget
                      Move.l #50,Prozent
                      Jsr Progress
                      Move.l #SuchText,A0
                      Move.l #0,D0
                      Move.l #100,D1
                      Jsr FillBuffer
                      Move.l GUIEnvBase,a6
                      Move.l Gui,A0
                      Move.l #Settags,A1
                      Jsr GuiGadgetActiona(a6)
                      Move.l Files,D0
                      Move.l D0,Counter
                      Move.l Files,D7
                      Move.l #0,D6
                      Jsr Convertzahl
                      Move.l Zusatz,Files1
                      Move.l Zahl,Files
                      Move.l Dirs,D7
                      Move.l #0,D6
                      Jsr Convertzahl
                      Move.l Zusatz,Dirs1
                      Move.l Zahl,Dirs
                      Move.l #Base_CD_name037,A0
                      Jsr CD
                      Move.l #CDName,A0
                      Jsr Countstring
                      Move.l D0,OK
                      Lea Buffer,A1
                      Lea Base_CD_name038,A0
.Name039:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name039
                      Lea -1(a1),A1
                      Lea CDName,A0
Move.l ok,D0
Subq.l #1,d0
.Name040:Move.b (A0)+,(a1)+
                      Cmpi.b #0,(A0)
                      Beq .Name041
Dbra D0,.name040
bra .name042
.name041:Cmpi.w #0,D0
Beq .name042
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name041
.name042:Move.b #00,(A1) 
                      Lea -1(a1),A1
                      Lea name043,A0
.Name044:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name044
                      Move.l #Buffer,Handle
                      Jsr Crunch
                      Lea Buffer,A1
                      Lea Es_sind_name044,A0
.Name045:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name045
                      Lea -1(a1),A1
                      Lea Files,A0
Move.l #5,D0
Subq.l #1,d0
.Name046:Move.b (A0)+,(a1)+
                      Cmpi.b #0,(A0)
                      Beq .Name047
Dbra D0,.name046
bra .name048
.name047:Cmpi.w #0,D0
Beq .name048
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name047
.name048:Move.b #00,(A1) 
                      Lea -1(a1),A1
                      Lea _Files_und_name049,A0
.Name050:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name050
                      Lea -1(a1),A1
                      Lea Dirs,A0
Move.l #5,D0
Subq.l #1,d0
.Name051:Move.b (A0)+,(a1)+
                      Cmpi.b #0,(A0)
                      Beq .Name052
Dbra D0,.name051
bra .name053
.name052:Cmpi.w #0,D0
Beq .name053
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name052
.name053:Move.b #00,(A1) 
                      Lea -1(a1),A1
                      Lea _Dirs_in_name054,A0
.Name055:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name055
                      Lea -1(a1),A1
                      Lea CDName,A0
.Name056:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name056
                      Move.l GUIEnvBase,a6
                      Move.l GUi,A0
                      Move.l #Buffer,A1
                      Move.l #GER_okkind,D0
                      Move.l #OKTAGS,A2
                      Jsr GuiRequestA(a6)
                      bra WaitMessage
                    
.Pre0025:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
    Move.l MsgGadNbr,d0
    Cmp.l #2,D0
    Beq .pre0030
    Bra .Pre0031
.Pre0030:

                      Move.l #6,Gadget
                      Move.l #0,Prozent
                      Jsr Progress
                      Move.l #Device,a0
                      Jsr GetCDName
                      Move.l #CDName,A0
                      Jsr Countstring
                      Move.l D0,OK
                      Lea Buffer,A1
                      Lea Base_CD_name056,A0
.Name057:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name057
                      Lea -1(a1),A1
                      Lea CDName,A0
Move.l ok,D0
Subq.l #1,d0
.Name058:Move.b (A0)+,(a1)+
                      Cmpi.b #0,(A0)
                      Beq .Name059
Dbra D0,.name058
bra .name060
.name059:Cmpi.w #0,D0
Beq .name060
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name059
.name060:Move.b #00,(A1) 
                      Lea -1(a1),A1
                      Lea name061,A0
.Name062:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name062
                      Move.l DOSBase,a6
                      Move.l #Buffer,d1
                      Move.l #Mode_old,d2
                      Jsr Open(a6)
                      Move.l D0,FH
                      Move.l #FH,Handle
                      Jsr Decrunch
                      Move.l FH,d0
                      Cmp.l #0,D0
                      Bne .pre0032
                      Bra .Pre0033
.Pre0032:

                                 Moveq.l #$0,D0
                                 Move.l D0,Found
                                 Move.l #0,A0
                                 Jsr FileReq
                                 Tst.l Result
                                 Beq .close2
                                 Move.l DOSBase,a6
                                 Move.l #name_bak,d1
                                 Move.l #Access_Read,d2
                                 Jsr Lock(a6)
                                 Move.l D0,Filelock
                                 Move.l Filelock,d1
                                 Move.l #Buffer+2,d2
                                 Move.l #300,d3
                                 Jsr NameFromLock(a6)
                                 Move.l Filelock,d1
                                 Jsr Unlock(a6)
                                 Move.l #Buffer+2,A0
                                 Jsr CountString
                                 Move.l D0,OK
                                 lea Buffer,a0
                                 Move.w #"#?",(a0)+
                                 add.l ok,a0
                                 Move.w #"#?",(a0)+
                                 Move.l DOSBase,a6
                                 Move.l #T_Swapname062,d1
                                 Move.l #Mode_New,d2
                                 Jsr Open(a6)
                                 Move.l D0,WH
                                 Move.l #Buffer,d1
                                 Move.l #FIB,d2
                                 Move.l #300,d3
                                 Jsr ParsePatternNoCase(a6)
                                 Move.l D0,IsWild
                                 bra .SchleifeY
.SchleifeX:
                                 Move.l WH,d1
                                 Move.l #Buffer,d2
                                 Jsr Fputs(a6)
.SchleifeY:
                                 Move.l FH,d1
                                 Move.l #Buffer,d2
                                 Move.l #1000,d3
                                 Jsr Fgets(a6)
                                 Move.l D0,Result
                                 Move.l Result,d0
                                 Cmp.l #Buffer,D0
                                 Bne .close2
                                 Move.l #FIB,d1
                                 Move.l #Buffer,d2
                                 Jsr MatchPatternNoCase(a6)
                                 Move.l D0,Match
                                 Tst.l Match
                                 Beq .SchleifeX
                                 Moveq.l #$1,D0
                                 Move.l D0,Found
                                 Bra .SchleifeY
.close2:
                                 Move.l WH,d1
                                 Jsr Close(a6)
                                 Move.l FH,d1
                                 Jsr Close(a6)
                                 Move.l #6,Gadget
                                 Move.l #50,Prozent
                                 Jsr Progress
                                 Move.l Found,d0
                                 Cmp.l #1,D0
                                 Beq .pre0034
                                 Bra .Pre0035
.Pre0034:

                                        Move.l #CDName,A0
                                        Jsr Countstring
                                        Move.l D0,OK
                                        Lea Buffer,A1
                                        Lea Base_CD_name063,A0
.Name064:Move.b (a0)+,D0
                                        Move.b D0,(a1)+
                                        Cmpi.b #0,D0
                                        Bne .Name064
                                        Lea -1(a1),A1
                                        Lea CDName,A0
Move.l ok,D0
Subq.l #1,d0
.Name065:Move.b (A0)+,(a1)+
                                        Cmpi.b #0,(A0)
                                        Beq .Name066
Dbra D0,.name065
bra .name067
.name066:Cmpi.w #0,D0
Beq .name067
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name066
.name067:Move.b #00,(A1) 
                                        Lea -1(a1),A1
                                        Lea name068,A0
.Name069:Move.b (a0)+,D0
                                        Move.b D0,(a1)+
                                        Cmpi.b #0,D0
                                        Bne .Name069
                                        Move.l DOSBase,a6
                                        Move.l #T_Swapname069,d1
                                        Move.l #Mode_old,d2
                                        Jsr Open(a6)
                                        Move.l D0,FH
                                        Move.l #buffer,d1
                                        Move.l #Mode_new,d2
                                        Jsr Open(a6)
                                        Move.l D0,WH
                                        Move.l FH,d6
                                        Move.l WH,d7
                                        Jsr Copy
                                        Move.l DOSBase,a6
                                        Move.l WH,d1
                                        Jsr Close(a6)
                                        Move.l FH,d1
                                        Jsr Close(a6)
                                        Move.l #CDName,A0
                                        Jsr Countstring
                                        Move.l D0,OK
                                        Lea Buffer,A1
                                        Lea Base_CD_name070,A0
.Name071:Move.b (a0)+,D0
                                        Move.b D0,(a1)+
                                        Cmpi.b #0,D0
                                        Bne .Name071
                                        Lea -1(a1),A1
                                        Lea CDName,A0
Move.l ok,D0
Subq.l #1,d0
.Name072:Move.b (A0)+,(a1)+
                                        Cmpi.b #0,(A0)
                                        Beq .Name073
Dbra D0,.name072
bra .name074
.name073:Cmpi.w #0,D0
Beq .name074
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name073
.name074:Move.b #00,(A1) 
                                        Lea -1(a1),A1
                                        Lea name075,A0
.Name076:Move.b (a0)+,D0
                                        Move.b D0,(a1)+
                                        Cmpi.b #0,D0
                                        Bne .Name076
                                        Move.l #Buffer,Handle
                                        Jsr Crunch
                                             
.Pre0035:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
                                Move.l #5,Gadget
                                Move.l #100,Prozent
                                Jsr Progress
                               
.Pre0033:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
                    
.Pre0031:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
    Move.l MsgGadNbr,d0
    Cmp.l #3,D0
    Beq .pre0036
    Bra .Pre0037
.Pre0036:

                      Move.l #6,Gadget
                      Move.l #0,Prozent
                      Jsr Progress
                      Moveq.l #$0,D0
                      Move.l D0,Counter
                      Moveq.l #$0,D0
                      Move.l D0,Files
                      Moveq.l #$0,D0
                      Move.l D0,Merker
                      Moveq.l #$0,D0
                      Move.l D0,Dirs
                      Moveq.l #$0,D0
                      Move.l D0,Treffer
                      Jsr GetIndex
                      Move.l D0,Index
                      Move.l ExecBase,a6
                      Move.l #Suchtext,a0
                      Move.l #Buffer+2,a1
                      Move.l #100,d0
                      Jsr CopyMem(a6)
                      Move.l #Buffer+2,A0
                      Jsr CountString
                      Move.l D0,OK
                      Lea Buffer,a0
                      Move.w #"#?",(a0)+
                      Add.l ok,a0
                      Move.w #"#?",(a0)+
                      Move.l DOSBase,a6
                      Move.l #buffer,d1
                      Move.l #SuchText,d2
                      Move.l #100,d3
                      Jsr ParsePatternNoCase(a6)
                      Move.l D0,IsWild
                      Move.l Searchonly,d0
                      Cmp.l #0,D0
                      Bne .pre0038
                      Bra .Pre0039
.Pre0038:

                                        Move.l ExecBase,a6
                                        Move.l #Base_CD_x_00name076,a0
                                        Move.l #Dirname,a1
                                        Moveq.l #$09,d0
                                        Jsr Copymem(a6)
                                        Move.l #x_00name077,a0
                                        Move.l #Filename,a1
                                        Moveq.l #$01,d0
                                        Jsr Copymem(a6)
                                        Move.l #0,A0
                                        Jsr FileReq
                                        Move.l #Name_Bak,D0
                                        Move.l D0,Zeiger
                                        Moveq.l #$1,D0
                                        Move.l D0,Index
                                          bra .in
                                       
.Pre0039:
                                                                                                                                                                                                                                                                                                                                                                                                                 
                      Move.l DOSBase,a6
                      Move.l #Base_CD_name078,d1
                      Move.l #access_read,d2
                      Jsr Lock(a6)
                      Move.l D0,Dirlock
                      Move.l #Fib,A0
                      Move.l #0,D0
                      Move.l #300,D1
                      Jsr FillBuffer
                      Move.l DOSBase,a6
                      Move.l Dirlock,d1
                      Move.l #FIB,d2
                      Jsr Examine(a6)
.SchleifeZ1:
                      Move.l searchonly,d0
                      Cmp.l #0,D0
                      Bne .close4a
                      Move.l Dirlock,d1
                      Move.l #FIB,d2
                      Jsr ExNext(a6)
                      Move.l D0,OK
                      Tst.l Ok
                      Beq .close4
                      Move.l #Fib,A0
                      Lea 8(A0),A0
                      Move.l A0,Zeiger
.in:
                      Move.l Dirs,D0
                      Addq.l #1,D0
                      Move.l D0,Dirs
                      Move.l Dirs,D0
                      Muls.l #100,D0
                      Move.l D0,Pro
                      Move.l Pro,D0
                      Divs.l Index,D0
                      Move.l D0,Pro
                      Move.l #6,Gadget
                      Move.l Pro,Prozent
                      Jsr Progress
                      Move.l DOSBase,a6
                      Move.l Zeiger,d1
                      Move.l #Mode_Old,d2
                      Jsr Open(a6)
                      Move.l D0,FH
                      Move.l #FH,Handle
                      Jsr Decrunch
Move.l Fh,D7
Move.l #T_swapname079,a0
Jsr TestFilename
Move.l D0,Zeiger
                      Cmp.l #0,D0
                      Bne .SchleifeZ2
.SchleifeZ:
                                 Move.l DOSBase,a6
                                 Move.l FH,d1
                                 Move.l #Buffer,d2
                                 Move.l #1000,d3
                                 Jsr Fgets(a6)
                                 Move.l D0,Result
                                 Move.l Result,d0
                                 Cmp.l #Buffer,D0
                                 Bne .close3
                                 Jsr ProgressFiles
                                 Move.l DOSBase,a6
                                 Move.l #SuchText,d1
                                 Move.l #Buffer,d2
                                 Jsr MatchPatternNoCase(a6)
                                 Move.l D0,Match
                                 Tst.l Match
                                 Beq .SchleifeZ
                                 Move.l Treffer,D0
                                 Addq.l #1,D0
                                 Move.l D0,Treffer
                                 Move.l #Buffer,A0
                                 Jsr Countstring
                                 Move.l D0,OK
                                 Move.l DOSBase,a6
                                 Move.l Oh,d1
                                 Move.l #Buffer,d2
                                 Move.l OK,d3
                                 Jsr Write(a6)
                                 bra .SchleifeZ
.SchleifeZ3:
                                 Move.l Zeiger,A0
                                 Jsr Countstring
                                 Move.l D0,OK
                                 Move.l Zeiger,D0
                                 Add.l OK,D0
                                 Move.l D0,Zeiger
                                 Move.l Zeiger,D0
                                 Addq.l #1,D0
                                 Move.l D0,Zeiger
.SchleifeZ2:
                                 Move.l Zeiger,A0
                                 Jsr Rgets
                                 Move.l D0,Result
                                 Move.l Result,d0
                                 Cmp.l #0,D0
                                 Beq .close3a
                                 Jsr ProgressFiles
                                 Move.l DOSBase,a6
                                 Move.l #SuchText,d1
                                 Move.l Zeiger,d2
                                 Jsr MatchPatternNoCase(a6)
                                 Move.l D0,Match
                                 Tst.l Match
                                 Beq .SchleifeZ3
                                 Move.l Treffer,D0
                                 Addq.l #1,D0
                                 Move.l D0,Treffer
                                 Move.l Zeiger,A0
                                 Jsr Countstring
                                 Move.l D0,OK
                                 Move.l DOSBase,a6
                                 Move.l Oh,d1
                                 Move.l Zeiger,d2
                                 Move.l OK,d3
                                 Jsr Write(a6)
                                 Move.l Oh,d1
                                 Move.l #xnname080,d2
                                 Move.l #1,d3
                                 Jsr Write(a6)
                                 Move.l Zeiger,D0
                                 Add.l OK,D0
                                 Move.l D0,Zeiger
                                 Move.l Zeiger,D0
                                 Addq.l #1,D0
                                 Move.l D0,Zeiger
                                 bra .SchleifeZ2
.close3a:
                      Move.l ExecBase,a6
                      Move.l Memoryblock,a1
                      Move.l laenge,d0
                      Jsr Freemem(a6)
.close3:
                      Move.l DOSBase,a6
                      Move.l FH,d1
                      Move.l #Buffer,d2
                      Move.l #1000,d3
                      Jsr NamefromFH(a6)
                      Move.l #Buffer,d1
                      Jsr FilePart(a6)
                      Move.l D0,Filepointer
                      Move.l FilePointer,a0
                      Move.l #swapname081,a1
                      Move.l #0,d0
                      Move.l #Mode_Nocase,d1
                      Jsr Comparestring
                      Move.l D0,Match
                      Move.l Match,d0
                      Cmp.l #0,D0
                      Bne .close6
                      Move.l DOSBase,a6
                      Move.l FH,d1
                      Jsr Close(a6)
                      bra .Schleifez1
.close6:
                      Move.l FH,d1
                      Jsr Close(a6)
                      Move.l #Buffer,d1
                      Jsr Deletefile(a6)
                      bra .Schleifez1
.close4:
                      Move.l Dirlock,d1
                      Jsr Unlock(a6)
.Close4a:             Move.l Treffer,D7
                      Move.l OH,D6
                      Jsr Convertzahl
                      Move.l DOSBase,a6
                      Move.l OH,d1
                      Move.l #_Treffer_in_name082,d2
                      Moveq.l #$0C,d3
                      Jsr Write(a6)
                      Move.l Counter,D7
                      Move.l OH,D6
                      Jsr Convertzahl
                      Move.l DOSBase,a6
                      Move.l OH,d1
                      Move.l #_Eintrname083,d2
                      Moveq.l #$1A,d3
                      Jsr Write(a6)
                      Move.l Index,D7
                      Move.l OH,D6
                      Jsr Convertzahl
                      Move.l DOSBase,a6
                      Move.l OH,d1
                      Move.l #_CDname084,d2
                      Moveq.l #$07,d3
                      Jsr Write(a6)
                      Move.l #6,Gadget
                      Move.l #100,Prozent
                      Jsr Progress
                    
.Pre0037:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
    Move.l MsgGadNbr,d0
    Cmp.l #5,D0
    Beq .pre0041
    Bra .Pre0042
.Pre0041:

                      Move.l #6,Gadget
                      Move.l #0,Prozent
                      Jsr Progress
                      Move.l #0,A0
                      Jsr FileReq
                      Tst.l Result
                      Beq WaitMessage
                      Move.l DOSBase,a6
                      Move.l #name_bak,d1
                      Move.l #Mode_old,d2
                      Jsr Open(a6)
                      Move.l D0,FH
                      Tst.l FH
                      Beq WaitMessage
                      Move.l #Name,A0
                      Jsr CountString
                      Move.l D0,OK
                      Lea Buffer,A1
                      Lea Base_CD_name085,A0
.Name086:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name086
                      Lea -1(a1),A1
                      Lea Name,A0
Move.l ok,D0
Subq.l #1,d0
.Name087:Move.b (A0)+,(a1)+
                      Cmpi.b #0,(A0)
                      Beq .Name088
Dbra D0,.name087
bra .name089
.name088:Cmpi.w #0,D0
Beq .name089
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name088
.name089:Move.b #00,(A1) 
                      Lea -1(a1),A1
                      Lea name090,A0
.Name091:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name091
                      Move.l DOSBase,a6
                      Move.l #Buffer,d1
                      Move.l #Mode_NEW,d2
                      Jsr Open(a6)
                      Move.l D0,WH
                      Tst.l WH
                      Beq .Close5
                      Move.l FH,D7
                      Jsr AminetCheck
                      Move.l D0,OK
                      Tst.l Ok
                      Beq .close5
                      Move.l FH,d6
                      Move.l WH,d7
                      Jsr Copy
.close5:              
                      Move.l DOSBase,a6
                      Move.l FH,d1
                      Jsr Close(a6)
                      Move.l WH,d1
                      Jsr Close(a6)
                      Lea Buffer,A1
                      Lea Base_CD_name091,A0
.Name092:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name092
                      Lea -1(a1),A1
                      Lea Name,A0
Move.l ok,D0
Subq.l #1,d0
.Name093:Move.b (A0)+,(a1)+
                      Cmpi.b #0,(A0)
                      Beq .Name094
Dbra D0,.name093
bra .name095
.name094:Cmpi.w #0,D0
Beq .name095
	Move.b #$20,(A1)+
Subq.w #1,D0
Bra .name094
.name095:Move.b #00,(A1) 
                      Lea -1(a1),A1
                      Lea name096,A0
.Name097:Move.b (a0)+,D0
                      Move.b D0,(a1)+
                      Cmpi.b #0,D0
                      Bne .Name097
                      Move.l #buffer,Handle
                      Jsr Crunch
                      Move.l #6,Gadget
                      Move.l #100,Prozent
                      Jsr Progress
                    
.Pre0042:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
    Move.l MsgGadNbr,d0
    Cmp.l #8,D0
    Beq .pre0045
    Bra .Pre0046
.Pre0045:

                      Move.l #6,Gadget
                      Move.l #0,Prozent
                      Jsr Progress
                      Move.l ExecBase,a6
                      Move.l #Base_CD_x_00name097,a0
                      Move.l #Dirname,a1
                      Moveq.l #$09,d0
                      Jsr Copymem(a6)
                      Move.l #name098,a0
                      Move.l #Filename,a1
                      Moveq.l #$07,d0
                      Jsr Copymem(a6)
                      Move.l #0,A0
                      Jsr FileReq
                      Tst.l Result
                      Beq WaitMessage
                      Move.l DOSBase,a6
                      Move.l #Name_bak,d1
                      Move.l #Mode_old,d2
                      Jsr Open(a6)
                      Move.l D0,FH
                      Tst.l FH
                      Beq WaitMessage
                      Move.l #FH,Handle
                      Jsr Decrunch
                      Move.l DOSBase,a6
                      Move.l fh,d1
                      Move.l #Buffer,d2
                      Move.l #1000,d3
                      Jsr NamefromFH(a6)
                      Move.l FH,d1
                      Jsr Close(a6)
                      Jsr EinScannen
                      Move.l DOSBase,a6
                      Move.l #Buffer,d1
                      Jsr DeleteFile(a6)
                      Move.l #6,Gadget
                      Move.l #100,Prozent
                      Jsr Progress
                    
.Pre0046:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
    Move.l MsgGadNbr,d0
    Cmp.l #9,D0
    Beq .pre0049
    Bra .Pre0050
.Pre0049:

                      Move.l #6,Gadget
                      Move.l #0,Prozent
                      Jsr Progress
                      Move.l ExecBase,a6
                      Move.l #Base_CD_name099,a0
                      Move.l #Dirname,a1
                      Moveq.l #$08,d0
                      Jsr Copymem(a6)
                      Move.l #name100,a0
                      Move.l #name,a1
                      Moveq.l #$07,d0
                      Jsr Copymem(a6)
                      Move.l #0,A0
                      Jsr FileReq
                      Tst.l Result
                      Beq WaitMessage
                      Move.l DOSBase,a6
                      Move.l #Name_bak,d1
                      Move.l #Mode_old,d2
                      Jsr Open(a6)
                      Move.l D0,FH
                      Tst.l FH
                      Beq WaitMessage
                      Move.l FH,d1
                      Move.l #0,d2
                      Move.l #Offset_end,d3
                      Jsr Seek(a6)
                      Move.l FH,d1
                      Move.l #0,d2
                      Move.l #Offset_begin,d3
                      Jsr Seek(a6)
                      Move.l D0,Laenge
                      Move.l #FH,Handle
                      Jsr Decrunch
                      Move.l DOSBase,a6
                      Move.l fh,d1
                      Move.l #Buffer,d2
                      Move.l #1000,d3
                      Jsr NamefromFH(a6)
                      Move.l FH,d1
                      Move.l #0,d2
                      Move.l #Offset_end,d3
                      Jsr Seek(a6)
                      Move.l FH,d1
                      Move.l #0,d2
                      Move.l #Offset_begin,d3
                      Jsr Seek(a6)
                      Move.l D0,Laenge2
                      Move.l FH,d1
                      Jsr Close(a6)
                      Move.l #Buffer,d1
                      Jsr DeleteFile(a6)
                      Move.l GUIEnvBase,a6
                      Move.l #000,D0
                      Move.l #011,D1
                      Move.l #300,D2
                      Move.l #110,D3
                      Move.l #CD_Finder_Statusname101,A0
                      Move.l #IDCMP_GADGETDOWN!IDCMP_GADGETUP!IDCMP_CLOSEWINDOW!IDCMP_IDCMPupdate,D4
                      Move.l #WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_RMBTRAP!0,D5
                      Move.l #0,A1
                      Move.l #0,A2
                      Jsr OpenGuiWindowA(a6)
                      Move.l D0,IndexWindow
                      Tst.l IndexWindow
                      Beq WaitMessage
    	              Move.l IndexWindow,A0
    	              Move.l #0,A1
    	              Jsr CreateGuiInfoA(a6)
    	              Move.l D0,IndexGUI
                      Move.l #name,A0
                      Jsr Countstring
                      Move.l D0,OK
                      Move.l OK,D0
                      Subq.l #6,D0
                      Move.l D0,OK
                      Move.l OK,D0
                      Add.l #name,D0
                      Move.l D0,OK
                      Move.l ExecBase,a6
                      Move.l #x_00name102,a0
                      Move.l OK,a1
                      Move.l #1,d0
                      Jsr Copymem(a6)
                      Move.l Laenge,D7
                      Move.l #0,D6
                      Jsr Convertzahl
                      Move.l ExecBase,a6
                      Move.l #zusatz,a0
                      Move.l #gepackt_txt,a1
                      Move.l #8,d0
                      Jsr Copymem(a6)
                      Move.l #_Bytesname103,a0
                      Move.l #gepackt_Txt+8,a1
                      Moveq.l #$06,d0
                      Jsr Copymem(a6)
                      Move.l Countfiles,D7
                      Move.l #0,D6
                      Jsr Convertzahl
                      Move.l ExecBase,a6
                      Move.l #zusatz,a0
                      Move.l #Files_txt,a1
                      Move.l #8,d0
                      Jsr Copymem(a6)
                      Move.l #_Stname104,a0
                      Move.l #Files_Txt+8,a1
                      Moveq.l #$06,d0
                      Jsr Copymem(a6)
                      Move.l CountDirs,D7
                      Move.l #0,D6
                      Jsr Convertzahl
                      Move.l ExecBase,a6
                      Move.l #zusatz,a0
                      Move.l #Dirs_txt,a1
                      Move.l #8,d0
                      Jsr Copymem(a6)
                      Move.l #_Stname105,a0
                      Move.l #Dirs_Txt+8,a1
                      Moveq.l #$06,d0
                      Jsr Copymem(a6)
                      Move.l Laenge2,D7
                      Move.l #0,D6
                      Jsr Convertzahl
                      Move.l ExecBase,a6
                      Move.l #zusatz,a0
                      Move.l #ungepackt_txt,a1
                      Move.l #8,d0
                      Jsr Copymem(a6)
                      Move.l #_Bytesname106,a0
                      Move.l #ungepackt_Txt+8,a1
                      Moveq.l #$06,d0
                      Jsr Copymem(a6)
                      Move.l Laenge,D0
                      Muls.l #100,D0
                      Move.l D0,Laenge
                      Move.l Laenge,D0
                      Divs.l Laenge2,D0
                      Move.l D0,Laenge
                      Move.l Laenge,D7
                      Move.l #0,D6
                      Jsr Convertzahl
                      Move.l ExecBase,a6
                      Move.l #___name107,a0
                      Move.l #Ratio_txt,a1
                      Moveq.l #$0A,d0
                      Jsr Copymem(a6)
                      Move.l #zahl+1,a0
                      Move.l #ratio_txt+5,a1
                      Move.l #3,d0
                      Jsr Copymem(a6)
                      Move.l #name108,a0
                      Move.l #Ratio_Txt+9,a1
                      Moveq.l #$01,d0
                      Jsr Copymem(a6)
                      Move.l GUIEnvBase,a6
                      Move.l IndexGui,A0
                      Move.l #90,D0
                      Move.l #10,D1
                      Move.l #200,D2
                      Move.l #013,D3
                      Move.l #Text_Kind,D4
                      Move.l #GadgetI00Tags,A1
                      Jsr CreateGuiGadgetA(a6)
                      Move.l IndexGui,A0
                      Move.l #90,D0
                      Move.l #40,D1
                      Move.l #200,D2
                      Move.l #013,D3
                      Move.l #Text_Kind,D4
                      Move.l #GadgetI01Tags,A1
                      Jsr CreateGuiGadgetA(a6)
                      Move.l GUIEnvBase,a6
                      Move.l IndexGui,A0
                      Move.l #90,D0
                      Move.l #25,D1
                      Move.l #200,D2
                      Move.l #013,D3
                      Move.l #Text_Kind,D4
                      Move.l #GadgetI02Tags,A1
                      Jsr CreateGuiGadgetA(a6)
                      Move.l GUIEnvBase,a6
                      Move.l IndexGui,A0
                      Move.l #90,D0
                      Move.l #55,D1
                      Move.l #200,D2
                      Move.l #013,D3
                      Move.l #Text_Kind,D4
                      Move.l #GadgetI03Tags,A1
                      Jsr CreateGuiGadgetA(a6)
                      Move.l GUIEnvBase,a6
                      Move.l IndexGui,A0
                      Move.l #90,D0
                      Move.l #70,D1
                      Move.l #200,D2
                      Move.l #013,D3
                      Move.l #Text_Kind,D4
                      Move.l #GadgetI04Tags,A1
                      Jsr CreateGuiGadgetA(a6)
                      Move.l GUIEnvBase,a6
                      Move.l IndexGui,A0
                      Move.l #90,D0
                      Move.l #85,D1
                      Move.l #200,D2
                      Move.l #013,D3
                      Move.l #Text_Kind,D4
                      Move.l #GadgetI05Tags,A1
                      Jsr CreateGuiGadgetA(a6)
                      Move.l GUIEnvBase,a6
                      Move.l IndexGui,A0
                      Move.l #0,A1
                      Jsr DrawGuiA(a6)
                      Move.l #6,Gadget
                      Move.l #100,Prozent
                      Jsr Progress
                      Move.l GUIEnvBase,a6
                      Move.l IndexWindow,A0
                      Jsr CloseGuiWindow(a6)
                    
.Pre0050:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
    Move.l MsgGadNbr,d0
    Cmp.l #10,D0
    Beq .pre0053
    Bra .Pre0054
.Pre0053:

                        Move.l #6,Gadget
                        Move.l #0,Prozent
                        Jsr Progress
                        Move.l GUIEnvBase,a6
                        Move.l #000,D0
                        Move.l #011,D1
                        Move.l #640,D2
                        Move.l #200,D3
                        Move.l #CD_Finder_Exportname109,A0
                        Move.l #IDCMP_GADGETDOWN!IDCMP_GADGETUP!IDCMP_CLOSEWINDOW!IDCMP_REFRESHWINDOW!IDCMP_VANILLAKEY!IDCMP_MOUSEBUTTONS,D4
                        Move.l #WFLG_DRAGBAR!WFLG_DEPTHGADGET!WFLG_CLOSEGADGET!WFLG_RMBTRAP!0,D5
                        Move.l #0,A1
                        Move.l #0,A2
                        Jsr OpenGuiWindowA(a6)
                        Move.l D0,IndexWindow
                        Tst.l IndexWindow
                        Beq WaitMessage
                        Move.l #SelectedNodespeicher,D0
                        Move.l D0,SelectedNodeZeiger
                        Jsr Indexliste_erstellen
                        Move.l GUIEnvBase,a6
                        Move.l IndexWindow,A0
                        Move.l #0,A1
                        Jsr CreateGuiInfoA(a6)
                        Move.l D0,IndexGUI
                	Move.l IndexGui,A0
                	Move.l #10,D0
                	Move.l #115,D1
                	Move.l #200,D2
                	Move.l #015,D3
                	Move.l #String_Kind,D4
                	Move.l #GadgetE00Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                        Move.l GUIEnvBase,a6
                        Move.l IndexGui,A0
                        Move.l #000,D0
                        Move.l #GEG_Address,D1
                        Jsr GetGuiGadgetA(a6)
                        Move.l D0,GuiGadgetinfo100
                      	lea GadgetE01tags,a0
                	Move.l GuiGadgetInfo100,D0
                	Move.l D0,4(a0)
                     	Move.l IndexGui,A0
                     	Move.l #010,D0
                     	Move.l #015,D1
                     	Move.l #200,D2
                     	Move.l #0100,D3
                     	Move.l #Listview_Kind,D4
                     	Move.l #GadgetE01Tags,A1
                     	Jsr CreateGuiGadgetA(a6)
                        Move.l GUIEnvBase,a6
                        Move.l IndexGui,A0
                        Move.l #250,D0
                        Move.l #115,D1
                        Move.l #200,D2
                        Move.l #015,D3
                        Move.l #String_Kind,D4
                        Move.l #GadgetE02Tags,A1
                        Jsr CreateGuiGadgetA(a6)
                        Move.l GUIEnvBase,a6
                        Move.l IndexGui,A0
                        Move.l #002,D0
                        Move.l #GEG_Address,D1
                        Jsr GetGuiGadgetA(a6)
                        Move.l D0,GuiGadgetinfo101
                      	lea GadgetE03tags,a0
                	Move.l GuiGadgetInfo101,D0
                	Move.l D0,4(a0)
                	Move.l IndexGui,A0
                	Move.l #250,D0
                	Move.l #015,D1
                	Move.l #200,D2
                	Move.l #0100,D3
                	Move.l #Listview_Kind,D4
                	Move.l #GadgetE03Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                	Move.l IndexGui,A0
                	Move.l #070,D0
                	Move.l #120,D1
                	Move.l #160,D2
                	Move.l #013,D3
                	Move.l #Cycle_Kind,D4
                	Move.l #GadgetE04Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                	Move.l GUIEnvBase,a6
                	Move.l IndexGui,A0
                	Move.l #230,D0
                	Move.l #120,D1
                	Move.l #200,D2
                	Move.l #013,D3
                	Move.l #String_Kind,D4
                	Move.l #GadgetE05Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                	Move.l IndexGui,A0
                	Move.l #430,D0
                	Move.l #120,D1
                	Move.l #040,D2
                	Move.l #013,D3
                	Move.l #Button_Kind,D4
                	Move.l #GadgetE06Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                        Move.l IndexGui,A0
                        Move.l #470,D0
                        Move.l #120,D1
                        Move.l #160,D2
                        Move.l #013,D3
                        Move.l #Cycle_Kind,D4
                        Move.l #GadgetE07Tags,A1
                        Jsr CreateGuiGadgetA(a6)
                	Move.l GUIEnvBase,a6
                	Move.l IndexGui,A0
                	Move.l #210,D0
                	Move.l #40,D1
                	Move.l #040,D2
                	Move.l #015,D3
                	Move.l #Button_Kind,D4
                	Move.l #GadgetE08Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                	Move.l IndexGui,A0
                	Move.l #210,D0
                	Move.l #55,D1
                	Move.l #040,D2
                	Move.l #015,D3
                	Move.l #Button_Kind,D4
                	Move.l #GadgetE09Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                	Move.l IndexGui,A0
                	Move.l #10,D0
                	Move.l #135,D1
                	Move.l #100,D2
                	Move.l #013,D3
                	Move.l #Button_Kind,D4
                	Move.l #GadgetE10Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                	Move.l IndexGui,A0
                	Move.l #120,D0
                	Move.l #138,D1
                	Move.l #240,D2
                	Move.l #06,D3
                	Move.l #GEG_ProgressIndicatorKind,D4
                	Move.l #GadgetE11Tags,A1
                	Jsr CreateGuiGadgetA(a6)
                	Move.l IndexGui,A0
                	Move.l #0,A1
                	Jsr DrawGuiA(a6)
.WaitMessage1:
                      Move.l GUIEnvBase,a6
                      Move.l IndexGui,A0
                      Jsr WaitGuiMsg(a6)
                      Clr.l D0
                      Move.l IndexGui,A0
                      Move.l 36(A0),D0
                      Move.l D0,MsgClass
                      Clr.l D0
                      Move.l IndexGui,A0
                      Move.w 40(A0),D0
                      Move.l D0,MsgCode
                      Clr.l D0
                      Move.l IndexGui,A0
                      Move.w 52(A0),D0
                      Move.l D0,MsgGadNbr
                      Move.l MsgClass,d0
                      Cmp.l #IDCMP_CloseWindow,D0
                      Beq .CloseWindow
                      Move.l IndexGui,A0
                      Move.l #GetTags,A1
                      Jsr GuigadgetActiona(a6)
                      Move.l MsgGadnbr,d0
                      Cmp.l #6,D0
                      Beq .pre0055
                      Bra .Pre0056
.Pre0055:

                                        Move.l ExecBase,a6
                                        Move.l #Turbocalc_name110,a0
                                        Move.l #Dirname,a1
                                        Moveq.l #$0A,d0
                                        Jsr Copymem(a6)
                                        Move.l #name111,a0
                                        Move.l #Filename,a1
                                        Moveq.l #$07,d0
                                        Jsr Copymem(a6)
                                        Move.l #0,A0
                                        Jsr FileReq
                                        Tst.l Result
                                        Beq .WaitMessage1
                                        Move.l GUIEnvBase,a6
                                        Move.l IndexGui,A0
                                        Move.l #Set5tag,A1
                                        Jsr GuiGadgetActiona(a6)
                                      
.Pre0056:
                                                                                                                                                                                                                                                                                                                                                                                                                        
                      Move.l MsgGadNbr,d0
                      Cmp.l #8,D0
                      Beq .pre0057
                      Bra .Pre0058
.Pre0057:

                                        move.l LV_Index,d0
                                        Swap D0
                                        Andi.l #$FFFF,d0
                                        mulu.l #4,d0
                                        move.l d0,a0
                                        add.l #IndexItems,a0
                                        move.l Selectednodezeiger,a5
                                        Move.l (a0),10(a5)
                                        Move.l ExecBase,a6
                                        Move.l #Selected_labs,a0
                                        Move.l a5,a1
                                        Jsr Addtail(a6)
                                        Lea 14(a5),a5
                                        Move.l a5,Selectednodezeiger
                                        Move.l GUIEnvBase,a6
                                        Move.l IndexGui,A0
                                        Move.l #3,D0
                                        Move.l #SetNewItem,A1
                                        Jsr SetGuiGadgetA(a6)
                                       
.Pre0058:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
                      Move.l MsgGadNbr,d0
                      Cmp.l #9,D0
                      Beq .pre0059
                      Bra .Pre0060
.Pre0059:

                                        Move.l ExecBase,a6
                                        Move.l #Selected_labs,a0
                                        Move.l #SelectedItem,a1
                                        Jsr FindName(a6)
                                        Move.l D0,Node
                                        Clr.l D0
                                        Move.l Node,A0
                                        Move.l 10(A0),D0
                                        Move.l D0,Zeiger
                                        Move.l Node,a1
                                        Jsr Remove(a6)
                                        Move.l Zeiger,a1
                                        Move.l #108,d0
                                        Jsr FreeMem(a6)
                                        Move.l SelectedNodeZeiger,D0
                                        Sub.l #14,D0
                                        Move.l D0,SelectedNodeZeiger
                                        Move.l SelectedNodeZeiger,A0
                                        Move.l #0,D0
                                        Move.l #14,D1
                                        Jsr FillBuffer
                                        Move.l GUIEnvBase,a6
                                        Move.l IndexGui,A0
                                        Move.l #3,D0
                                        Move.l #SetNewItem,A1
                                        Jsr SetGuiGadgetA(a6)
                                       
.Pre0060:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
                      bra .WaitMessage1
                      
.Closewindow:
                      jsr Remove_Indexliste
                      jsr Remove_Selectedliste
                      Move.l GUIEnvBase,a6
                      Move.l IndexWindow,A0
                      Jsr CloseGuiWindow(a6)
                      Move.l #6,Gadget
                      Move.l #100,Prozent
                      Jsr Progress
                    
.Pre0054:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
WaitMessage1:
    Move.l MsgGadNbr,d0
    Cmp.l #12,D0
    Beq .pre0060
    Bra .Pre0061
.Pre0060:

                       Jsr Prefs
                     
.Pre0061:
                                                     
    Bra WaitMessage

CDENDEError:
    Move.l DOSBase,a6
    Move.l CDlock,d1
    Jsr Unlock(a6)
    Move.l GUIEnvBase,a6
    Move.l Gui,A0
    Move.l #Konnte_kein_Indexfile_anlegenname112,A1
    Move.l #GER_Okkind,D0
    Move.l #OKTAGS,A2
    Jsr GUIRequestA(a6)
    Bra WaitMessage
CantLock:
    Move.l GUIEnvBase,a6
    Move.l Gui,A0
    Move.l #Device_nicht_gefunden__bittename113,A1
    Move.l #GER_Okkind,D0
    Move.l #OKTAGS,A2
    Jsr GUIRequestA(a6)
    Bra WaitMessage
PRG_Ende:
    Move.l Window,d0
    Cmp.l #0,D0
    Bne .pre0064
    Bra .Pre0065
.Pre0064:
 
                  jsr Close_window
                 
.Pre0065:
                                                     
    Move.l #Progdir_name114,A0
    Jsr CD
    Move.l OO,d0
    Cmp.l #0,D0
    Beq .Pre0068
    Bra .Pre0069
.Pre0068:
Move.l DOSBase,a6
Move.l OH,d1
Jsr Close(a6)
.Pre0069:
Move.l #Env_Cd_Findername115,d1
Move.l #Mode_old,d2
Jsr Open(a6)
Move.l D0,TH
    Cmp.l #0,D0
    Bne .pre0070
    Bra .Pre0071
.Pre0070:

                                        Move.l TH,d1
                                        Move.l #Status,d2
                                        Move.l #4,d3
                                        Jsr Write(a6)
                                        Move.l TH,d1
                                        Move.l #Searchonly,d2
                                        Move.l #4,d3
                                        Jsr Write(a6)
                                        Move.l TH,d1
                                        Jsr Close(a6)
                                                   
.Pre0071:
                                                                                                                                                                                                                                                                         
    RTS


IndexListe_erstellen:
    Move.l DOSBase,a6
    Move.l #Base_CD_name116,d1
    Move.l #Access_read,d2
    Jsr Lock(a6)
    Move.l D0,Dirlock
    Move.l #Fib,A0
    Move.l #0,D0
    Move.l #300,D1
    Jsr FillBuffer
    Move.l DOSBase,a6
    Move.l Dirlock,d1
    Move.l #FIB,d2
    Jsr Examine(a6)
    lea IndexItems,a4
.Schleife:
    Move.l DOSBase,a6
    Move.l Dirlock,d1
    Move.l #FIB,d2
    Jsr Exnext(a6)
    Move.l D0,OK
    Tst.l OK
    Beq .dirende
    Clr.l D0
    Move.l #FIB,A0
    Move.l 4(A0),D0
    Move.l D0,Type
    Move.l Type,d0
    Cmp.l #0,D0
    Bgt .Schleife
    Move.l #FIB,A0
    Lea 8(A0),A0
    Move.l A0,Zeiger
    Move.l ExecBase,a6
    Move.l #108,d0
    Move.l #MEMF_public,d1
    Jsr AllocMem(a6)
    Move.l D0,Memoryblock
    Tst.l Memoryblock
    Beq .dirende
    move.l memoryblock,(a4)+
    Move.l Zeiger,a0
    Move.l Memoryblock,a1
    Move.l #108,d0
    Jsr Copymem(a6)
    bra .Schleife
.Dirende:
    Move.l DOSBase,a6
    Move.l Dirlock,d1
    Jsr Unlock(a6)
	lea IndexItems,a4
	lea IndexNodespeicher,a5
.node1:	
    Tst.l (a4)
    Beq .node2
       move.l (a4)+,10(a5)
       Move.l ExecBase,a6
       Move.l #Index_labs,a0
       Move.l a5,a1
       Jsr Addtail(a6)
       lea 14(a5),a5
       bra .node1
.node2:
    Move.l a5,Indexnodezeiger
    RTS

Remove_SelectedListe:
    Move.l ExecBase,a6
    Move.l #Selected_Labs,a0
    Jsr RemTail(a6)
    Move.l D0,Node
    Tst.l Node
    Bne Remove_SelectedListe
    Move.l #Selectednodespeicher,A0
    Move.l #0,D0
    Move.l #5024,D1
    Jsr FillBuffer
    RTS

Remove_IndexListe:
    Move.l ExecBase,a6
    Move.l #Index_Labs,a0
    Jsr RemTail(a6)
    Move.l D0,Node
    Tst.l Node
    Bne Remove_IndexListe
    move.l #IndexItems,a5
.l1:move.l (a5)+,a1
    cmpi.l #0,a1
    beq .ende
    Move.l #108,d0
    Jsr Freemem(a6)
    bra .l1    
.ende:        
    Move.l #Indexnodespeicher,A0
    Move.l #0,D0
    Move.l #5024,D1
    Jsr FillBuffer
    Move.l #IndexItems,A0
    Move.l #0,D0
    Move.l #1024,D1
    Jsr FillBuffer
    RTS

Readin:  
    Move.l ExecBase,a6
    Move.l #Base_CD_name117,a0
    Move.l #Dirname,a1
    Moveq.l #$08,d0
    Jsr Copymem(a6)
    Move.l #0,A0
    Jsr FileReq
    Move.l DOSBase,a6
    Move.l #name_bak,d1
    Move.l #Mode_old,d2
    Jsr Open(a6)
    Move.l D0,FH
    Tst.l FH
    Beq .error
    Move.l #T_DirTreename118,d1
    Move.l #Mode_new,d2
    Jsr Open(a6)
    Move.l D0,WH
    Tst.l WH
    Beq .error1
.l1:
    Move.l FH,d1
    Move.l #Pfad,d2
    Move.l #150,d3
    Jsr Fgets(a6)
    Move.l D0,Result
    Move.l Result,d0
    Cmp.l #Pfad,D0
    Bne .ende
    cmpi.l #"CM01",pfad
    beq .l1
    cmpi.b #"%",pfad
    beq .l1
    Move.l #pfad,d1
    Jsr Pathpart(a6)
    move.l d0,a0
    move.w #$0000,(a0)
    Move.l #pfad,A0
    Jsr Countstring
    Move.l D0,OK
    Move.l OK,D0
    Addq.l #1,D0
    Move.l D0,OK
    Move.l DOSBase,a6
    Move.l WH,d1
    Move.l #Pfad,d2
    Move.l OK,d3
    Jsr Write(a6)
;    Write(wh,"\n",1)
    bra .l1
.ende:
    Move.l WH,d1
    Jsr Close(a6)
    Move.l FH,d1
    Jsr Close(a6)
    Move.l #T_DirTreename119,d1
    Move.l #Mode_Old,d2
    Jsr Open(a6)
    Move.l D0,FH
    Tst.l FH
    Beq .error
    Move.l FH,d1
    Move.l #0,d2
    Move.l #Offset_end,d3
    Jsr Seek(a6)
    Move.l FH,d1
    Move.l #0,d2
    Move.l #Offset_begin,d3
    Jsr Seek(a6)
    Move.l D0,Len
    Move.l ExecBase,a6
    Move.l Len,d0
    Move.l #MEMF_Public,d1
    Jsr AllocMem(a6)
    Move.l D0,Memoryblock
    Tst.l memoryblock
    Beq .error1
    Move.l DOSBase,a6
    Move.l FH,d1
    Move.l Memoryblock,d2
    Move.l len,d3
    Jsr Read(a6)
    Move.l FH,d1
    Jsr Close(a6)
    Move.l #T_Dirtreename120,d1
    Jsr Deletefile(a6)
    move.l Memoryblock,d0
    move.l Len,d1
    RTS
.error1:
    Move.l DOSBase,a6
    Move.l FH,d1
    Jsr Close(a6)
.error:
    moveq.l #0,d0
    RTS

EntryLevel:       
    movem.l a2-a6/d0-d7,-(a7)
    moveq.l #0,d0
.count:
    addq.l #1,d0
    cmpi.l d0,d1
    beq .write
    lea 1(a0),a0
.CountCells1:
    cmpi.b #0,(a0)
    beq .ERROR
    cmpi.b #`:`,(a0)
    beq .count
    cmpi.b #`/`,(a0)
    beq .Count
    lea 1(a0),a0
    bne .CountCells1
.Write:
    cmpi.l #1,d1
    beq .write0
    lea 1(a0),a0
.write0:
    move.l a0,a1
.weiter:
    cmpi.b #`:`,(a0)
    beq .next
    cmpi.b #`/`,(a0)
    beq .next
    cmpi.b #$0a,(a0)
    beq .next
    cmpi.b #$00,(a0)
    beq .next
    lea 1(a0),a0
    bra .weiter
.next:
    sub.l a1,a0
    movem.l (a7)+,a2-a6/d0-d7
    RTS
.error:
    move.l #0,a0
    move.l #0,a1
    bra .next

DrawTree_Lines:    
    move.l (a2),a1
    Move.l a1,A0
    Jsr Countstring
    Move.l D0,OK
    move.l 4(a2),A1
    cmpi.l #0,a1
    beq .l1
    move.l a2,-(a7)
    move.l von,-(a7)
    jsr Write_line_Sub
    Move.l A1,A2
    Jsr DrawTree_Lines
    move.l (a7)+,von
    move.l (a7)+,a2
.l1:
    move.l 8(a2),A1
    cmpi.l #0,a1
    beq .l2
    jsr Write_line_next
    Move.l a1,a2
    bra DrawTree_Lines

.l2:                            ; Stack:  09080706050403020100
    RTS

Write_line_Sub:
    move.l 28(a2),Von
    move.l 28(a1),Bis
    movem.l a0-a1,-(a7)
    Move.l DOSBase,a6
    Move.l FH,d1
    Move.l #von,d2
    Move.l #4,d3
    Jsr Write(a6)
    Move.l FH,d1
    Move.l #Bis,d2
    Move.l #4,d3
    Jsr Write(a6)
    movem.l (a7)+,a0-a1
    RTS

Write_line_Next:
    move.l 28(a1),Bis
    movem.l a0-a1,-(a7)
    Move.l DOSBase,a6
    Move.l FH,d1
    Move.l #von,d2
    Move.l #4,d3
    Jsr Write(a6)
    Move.l FH,d1
    Move.l #Bis,d2
    Move.l #4,d3
    Jsr Write(a6)
    movem.l (a7)+,a0-a1
    RTS


DrawTree_Punkte:    
    Move.l #0,I
    Move.l Entries,I_bis
    Move.l #1,I_Step
.I_Label:
        Moveq.l #$0,D0
        Move.l D0,Lines
;        Move.l Tree,a2
        Jsr Drawtree_Sub
        Move.l DOSBase,a6
        Move.l FH,d1
        Move.l #X,d2
        Move.l #4,d3
        Jsr Write(a6)
        Move.l FH,d1
        Move.l #Y,d2
        Move.l #4,d3
        Jsr Write(a6)
        Move.l FH,d1
        Move.l #Z,d2
        Move.l #4,d3
        Jsr Write(a6)
        Move.l FH,d1
        Move.l namenzeiger,d2
        Move.l #20,d3
        Jsr Write(a6)
    Move.l I,D0
    Add.l I_Step,D0
    Move.l D0,I
    Cmp.l I_Bis,D0
    Ble .I_Label
    RTS

DrawTree_Sub:
    Move.l Lines,D0
    Addq.l #1,D0
    Move.l D0,Lines
    move.l (a2),a1
    Move.l a1,A0
    Jsr Countstring
    Move.l D0,OK
    move.l 28(a2),d0
    cmpi.l I,d0
    bne .l0
    move.l 0(a2),Namenzeiger
    move.l 16(a2),X
    move.l 20(a2),Y
    move.l 24(a2),Z
    RTS
.l0:move.l 4(a2),A1
    cmpi.l #0,a1
    beq .l1
    move.l a2,-(a7)
    Move.l A1,a2
    Jsr DrawTree_SUB
    move.l (a7)+,a2
.l1:
    move.l 8(a2),A1
    cmpi.l #0,a1
    beq .l2
    move.l a2,-(a7)
    Move.l A1,a2
    Jsr DrawTree_SUB
    move.l (a7)+,a2
.l2:
    RTS


Deep:    
    movem.l a0-a6,-(a7)
    Move.l #1,I
    Move.l #255,I_bis
    Move.l #1,I_Step
.I_Label:
        Move.l a2,a0
        Move.l I,d1
        Jsr Entrylevel
        cmpi.l #0,a0
        beq .ende
    Move.l I,D0
    Add.l I_Step,D0
    Move.l D0,I
    Cmp.l I_Bis,D0
    Ble .I_Label
.ende:
    Move.l I,D0
    Subq.l #1,D0
    Move.l D0,I
    movem.l (a7)+,a0-a6
    move.l I,d0
    RTS

Entry:         
    move.l #0,Y
    Move.l a5,a2
    Jsr Deep
    Move.l D0,Bis
    Move.l ExecBase,a6
;    Move.l Tree,a0
    Move.l #Eintrag,a1
    Move.l #Eintraglaenge,d0
    Jsr Copymem(a6)
;    Move.l Tree,Adresse
    Move.l #1,I
    Move.l Bis,I_bis
    Move.l #1,I_Step
.I_Label:
        move.l #0,X
        Move.l a5,a0
        Move.l I,d1
        Jsr EntryLevel
        Movem.l a0-a1,-(a7)
        Move.l #buffer,A0
        Move.l #0,D0
        Move.l #100,D1
        Jsr Fillbuffer
        Movem.l (a7)+,a2-a3
        Move.l ExecBase,a6
        Move.l a3,a0
        Move.l #Buffer,a1
        Move.l a2,d0
        Jsr Copymem(a6)
        Addi.l #1,a2
        Move.l I,d0
        Muls.l #50,d0
        Move.l d0,Z
.again:
        Move.l Char,d0
        Cmp.l #0,D0
        Beq .pre0074
        Bra .Pre0075
.Pre0074:

                     Move.l a2,d0
                     Move.l #Memf_Public,d1
                     Jsr AllocMem(a6)
                     Move.l D0,Mem1
                     Tst.l mem1
                     Beq .error
                     Move.l #Buffer,a0
                     Move.l mem1,a1
                     Move.l a2,d0
                     Jsr Copymem(a6)
                     move.l mem1,char
                     Move.l #Eintrag,a0
                     Move.l Adresse,a1
                     Move.l #Eintraglaenge,d0
                     Jsr Copymem(a6)
                     bra .found
                   
.Pre0075:
                                                                                                                                                                                                                                                                                                  
        Move.l Char,a0
        Move.l #Buffer,a1
        Jsr ComparePfad
        Move.l D0,OK
        Tst.l OK
        Bne .found
        Move.l  next,d0
        Cmp.l #0,D0
        Beq .pre0078
        Bra .Pre0079
.Pre0078:

                     Move.l Entries,D0
                     Addq.l #1,D0
                     Move.l D0,Entries
                     Move.l ExecBase,a6
                     Move.l #Eintraglaenge,d0
                     Move.l #Memf_public,d1
                     Jsr Allocmem(a6)
                     Move.l D0,Mem
                     Tst.l mem
                     Beq .error
                     Move.l a2,d0
                     Move.l #Memf_Public,d1
                     Jsr AllocMem(a6)
                     Move.l D0,Mem1
                     Tst.l mem1
                     Beq .error2
                     Move.l mem,a0
                     Move.l MEM1,(a0)+
                     Move.l #0,(a0)+
                     Move.l #0,(a0)+
                     Move.l Adresse,(a0)+
                     Move.l X,d0
                     Add.l #50,d0
                     Move.l d0,(a0)+
                     Move.l Y,d0
                     Add.l #50,d0
                     Move.l d0,(a0)+
                     Move.l Z,(a0)+
                     Move.l Entries,(a0)+
                     Move.l Mem,Next
                     Move.l a3,a0
                     Move.l mem1,a1
                     Move.l a2,d0
                     Jsr CopyMem(a6)
                     move.l mem1,a0     
                     add.l a2,a0
                     move.b #0,-1(a0)
                     Move.l #Eintrag,a0
                     Move.l Adresse,a1
                     Move.l #Eintraglaenge,d0
                     Jsr Copymem(a6)
                     move.l next,Adresse
                     Move.l Next,a0
                     Move.l #Eintrag,a1
                     Move.l #Eintraglaenge,d0
                     Jsr CopyMem(a6)
                     Move.l X,d0
                     add.l #50,d0
                     move.l d0,X
                     Move.l Y,d0
                     add.l #50,d0
                     move.l d0,Y
                     bra .found
                    
.Pre0079:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
        move.l next,Adresse
        Move.l Next,a0
        Move.l #Eintrag,a1
        Move.l #Eintraglaenge,d0
        Jsr CopyMem(a6)
        bra .Again
.found:
        Move.l I,d0
        Cmp.l Bis,D0
        Beq .tonext
        Move.l Sub,d0
        Cmp.l #0,D0
        Beq .pre0082
        Bra .Pre0083
.Pre0082:

                     Move.l Entries,D0
                     Addq.l #1,D0
                     Move.l D0,Entries
                     Move.l #Eintraglaenge,d0
                     Move.l #Memf_public,d1
                     Jsr Allocmem(a6)
                     Move.l D0,Mem
                     Tst.l mem
                     Beq .error
                     move.l mem,a0
                     move.l #0,(a0)+
                     move.l #0,(a0)+
                     move.l #0,(a0)+
                     Move.l Adresse,(a0)+
                     move.l X,(a0)+
                     Move.l Y,(a0)+
                     Move.l Z,(a0)+
                     Move.l Entries,(a0)+
                     move.l mem,Sub
                     Move.l #Eintrag,a0
                     Move.l Adresse,a1
                     Move.l #Eintraglaenge,d0
                     Jsr Copymem(a6)
                   
.Pre0083:
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
        move.l sub,Adresse
        Move.l Sub,a0
        Move.l #Eintrag,a1
        Move.l #Eintraglaenge,d0
        Jsr Copymem(a6)
.tonext:
    Move.l I,D0
    Add.l I_Step,D0
    Move.l D0,I
    Cmp.l I_Bis,D0
    Ble .I_Label
    RTS
.error2:
    Move.l mem,a1
    Move.l #Eintraglaenge,d0
    Jsr FreeMem(a6)
.error:
    move.l #0,d0
    RTS

DrawTree:    
    move.l (a2),a1
    Move.l a1,A0
    Jsr Countstring
    Move.l D0,OK
    move.l 16(a2),X
    move.l 20(a2),Y
    move.l 24(a2),Z
    Move.l DOSBase,a6
    Move.l Oh,d1
    Move.l a1,d2
    Move.l ok,d3
    Jsr Write(a6)
    Move.l oh,d1
    Move.l #_X_name121,d2
    Move.l #3,d3
    Jsr Write(a6)
    Move.l X,D7
    Move.l OH,D6
    Jsr Convertzahl
    Move.l DOSBase,a6
    Move.l oh,d1
    Move.l #_Y_name122,d2
    Move.l #3,d3
    Jsr Write(a6)
    Move.l Y,D7
    Move.l OH,D6
    Jsr Convertzahl
    Move.l DOSBase,a6
    Move.l oh,d1
    Move.l #_Z_name123,d2
    Move.l #3,d3
    Jsr Write(a6)
    Move.l Z,D7
    Move.l OH,D6
    Jsr Convertzahl
    Move.l DOSBase,a6
    Move.l oh,d1
    Move.l #xnname124,d2
    Move.l #1,d3
    Jsr Write(a6)
    move.l 4(a2),A1
    cmpi.l #0,a1
    beq .l1
    move.l a2,-(a7)
    Move.l A1,a2
    Jsr DrawTree
    move.l (a7)+,a2
.l1:
    move.l 8(a2),A1
    cmpi.l #0,a1
    beq .l2
    move.l a2,-(a7)
    Move.l A1,a2
    Jsr DrawTree
    move.l (a7)+,a2
.l2:
    RTS

BuildTree:  
    Moveq.l #$1,D0
    Move.l D0,Entries
    Move.l Memoryblock,D0
    Move.l D0,Zeiger
    Move.l #buffer,A0
    Move.l #0,D0
    Move.l #100,D1
    Jsr Fillbuffer
    Move.l Zeiger,a5
    Jsr Entry
    Move.l D0,OK
    Tst.l OK
    Beq .ende
.Schleife:
    Move.l Zeiger,A0
    Jsr Rgets2
    Move.l D0,Zeiger
    Move.l Zeiger,d0
    Cmp.l #0,D0
    Beq .ende
    Move.l Zeiger,a5
    Jsr Entry
    Move.l D0,OK
    Tst.l OK
    Beq .ende
    bra .Schleife
.ende:
    RTS

MakeTree:  
    move.l #0,Char
    move.l #0,Sub
    move.l #0,Next
    move.l #0,Last
    move.l #0,X
    move.l #0,Y
    move.l #0,Z
    move.l #1,EntryNr
    Move.l ExecBase,a6
    Move.l #Eintraglaenge,d0
    Move.l #Memf_Public,d1
    Jsr Allocmem(a6)
    Move.l D0,Zeiger
    Tst.l Zeiger
    Beq .error
    Move.l #Eintrag,a0
    Move.l Zeiger,a1
    Move.l #Eintraglaenge,d0
    Jsr Copymem(a6)
    move.l Zeiger,d0
    RTS
.error:
    Moveq.l #0,D0
	RTS
                 
KillTree:    
    move.l 4(a2),A1
    cmpi.l #0,a1
    beq .l1
    move.l a2,-(a7)
    Move.l A1,a2
    Jsr KillTree
    move.l (a7)+,a2
.l1:
    move.l 8(a2),A1
    cmpi.l #0,a1
    beq .l2
    move.l a2,-(a7)
    Move.l A1,a2
    Jsr KillTree
    move.l (a7)+,a2
.l2:
    move.l (a2),a1
    Move.l a1,A0
    Jsr Countstring
    Move.l D0,OK
    Tst.l Ok
    Beq .l3
    Move.l OK,D0
    Addq.l #1,D0
    Move.l D0,OK
    Move.l ExecBase,a6
    Move.l ok,d0
    Jsr freemem(a6)
.l3:
    Move.l ExecBase,a6
    Move.l a2,a1
    Move.l #Eintraglaenge,d0
    Jsr freemem(a6)
    RTS

Eintrag:
Char:   dc.l 0   ; Zeiger auf String Nullterminiert
Sub:    dc.l 0   ; Zeiger auf Subdir
Next:   dc.l 0   ; Zeiger auf NextEntry
Last:   dc.l 0   ; Zeiger auf PrevEntry
X:      dc.l 0   ; 
Y:      dc.l 0   ; 3d - Koordinate
Z:      dc.l 0   ;
EntryNr:dc.l 0   ; PunktNummer

Message:
        dc.l 0
        dc.l 0
        dc.b 5,0
        dc.l 0
        dc.l 0
        dc.w 0
Errorhandling:
    Move.l DOSBase,a6
    Jsr output(a6)
    Move.l D0,Ausgabe
    Move.l Error,d0
    Cmp.l #1,D0
    Beq .Pre0000
    Bra .Pre0001
.Pre0000:
Move.l DOSBase,a6
Move.l Ausgabe,d1
Move.l #Allgemeiner_Fehlerxnname000,d2
Moveq.l #$13,d3
Jsr Write(a6)
.Pre0001:
    Move.l Error,d0
    Cmp.l #2,D0
    Beq .Pre0002
    Bra .Pre0003
.Pre0002:
Move.l DOSBase,a6
Move.l Ausgabe,d1
Move.l #Konnte_File_nicht_findenxnname001,d2
Moveq.l #$19,d3
Jsr Write(a6)
.Pre0003:
    Move.l Error,d0
    Cmp.l #3,D0
    Beq .Pre0004
    Bra .Pre0005
.Pre0004:
Move.l DOSBase,a6
Move.l Ausgabe,d1
Move.l #Window_Screen_Fehlerxnname002,d2
Moveq.l #$15,d3
Jsr Write(a6)
.Pre0005:
    Move.l Error,d0
    Cmp.l #4,D0
    Beq .Pre0006
    Bra .Pre0007
.Pre0006:
Move.l DOSBase,a6
Move.l Ausgabe,d1
Move.l #Library_nicht_gefundenxnname003,d2
Moveq.l #$17,d3
Jsr Write(a6)
.Pre0007:
    Move.l Error,d0
    Cmp.l #5,D0
    Beq .Pre0008
    Bra .Pre0009
.Pre0008:
Move.l DOSBase,a6
Move.l Ausgabe,d1
Move.l #Fehlerhafte_Eingabexnname004,d2
Moveq.l #$14,d3
Jsr Write(a6)
.Pre0009:
    Move.l Error,d0
    Cmp.l #6,D0
    Beq .Pre0010
    Bra .Pre0011
.Pre0010:
Move.l DOSBase,a6
Move.l Ausgabe,d1
Move.l #Speicherfehlerxnname005,d2
Moveq.l #$0F,d3
Jsr Write(a6)
.Pre0011:
    RTS
even
Ausgabe:		dc.l 0
Allgemeiner_Fehlerxnname000:
	dc.b `Allgemeiner Fehler`,$a,``,0
even
Konnte_File_nicht_findenxnname001:
	dc.b `Konnte File nicht finden`,$a,``,0
even
Window_Screen_Fehlerxnname002:
	dc.b `Window|Screen Fehler`,$a,``,0
even
Library_nicht_gefundenxnname003:
	dc.b `Library nicht gefunden`,$a,``,0
even
Fehlerhafte_Eingabexnname004:
	dc.b `Fehlerhafte Eingabe`,$a,``,0
even
Speicherfehlerxnname005:	dc.b `Speicherfehler`,$a,``,0
even

Even
Openlibs:
	Move.l $4.w,a6
	Move.l #Aslname,a1
	Moveq.l #0,d0
	Jsr Openlibrary(a6)
	Move.l d0,Aslbase
	Tst.l D0
	Beq.w .ende
	Move.l #DOSname,a1
	Moveq.l #0,d0
	Jsr Openlibrary(a6)
	Move.l d0,DOSbase
	Tst.l D0
	Beq.w .ende
	Move.l #GUIEnvname,a1
	Moveq.l #0,d0
	Jsr Openlibrary(a6)
	Move.l d0,GUIEnvbase
	Tst.l D0
	Beq.w .ende
	Move.l #DataTypesname,a1
	Moveq.l #0,d0
	Jsr Openlibrary(a6)
	Move.l d0,DataTypesbase
	Tst.l D0
	Beq.w .ende
	RTS
.ende:	Move.l #4,Error
	Rts
Closelibs:
	Move.l $4.w,a6
	Tst.l Aslbase
	Beq.w .ende00
	Move.l Aslbase,a1
	Jsr Closelibrary(a6)
.ende00:Tst.l DOSbase
	Beq.w .ende01
	Move.l DOSbase,a1
	Jsr Closelibrary(a6)
.ende01:Tst.l GUIEnvbase
	Beq.w .ende02
	Move.l GUIEnvbase,a1
	Jsr Closelibrary(a6)
.ende02:Tst.l DataTypesbase
	Beq.w .ende03
	Move.l DataTypesbase,a1
	Jsr Closelibrary(a6)
.ende03:Rts
even
WBmessage:		dc.l 0
Laenge:		dc.l 0
Adresse:		dc.l 0
Error:		dc.l 0
LokalScreen:		dc.l 0
Requester:		dc.l 0
Result:		dc.l 0
Filename_Zeiger:		dc.l 0
Dirname_zeiger:		dc.l 0
Zusatz:		dc.l 0
Zahl:		dc.l 0
Stringlaenge:		dc.l 0
IndexNodeZeiger:		dc.l 0
Files1:		dc.l 0
Files:		dc.l 0
Dirs1:		dc.l 0
Dirs:		dc.l 0
Von:		dc.l 0
OK:		dc.l 0
IndexWindow:		dc.l 0
IndexGUI:		dc.l 0
SearchOnly:		dc.l 0
MsgClass:		dc.l 0
Window:		dc.l 0
GUI:		dc.l 0
Pro:		dc.l 0
Zeiger:		dc.l 0
Anz:		dc.l 0
Wert:		dc.l 0
Memoryblock:		dc.l 0
Prozent:		dc.l 0
Gadget:		dc.l 0
WriteLaenge:		dc.l 0
ReadLaenge:		dc.l 0
Counter:		dc.l 0
Count:		dc.l 0
ReadLaege:		dc.l 0
Handle:		dc.l 0
TH:		dc.l 0
Match:		dc.l 0
Countfiles:		dc.l 0
CountDirs:		dc.l 0
MaxZellen:		dc.l 0
Zellen:		dc.l 0
Merker:		dc.l 0
Dirlock:		dc.l 0
FH:		dc.l 0
NewObject:		dc.l 0
MsgGadNbr:		dc.l 0
MsgChar:		dc.l 0
STATUS:		dc.l 0
OO:		dc.l 0
OH:		dc.l 0
CDlock:		dc.l 0
Type:		dc.l 0
Filelock:		dc.l 0
Dummy:		dc.l 0
l:		dc.l 0
Found:		dc.l 0
WH:		dc.l 0
IsWild:		dc.l 0
Treffer:		dc.l 0
Index:		dc.l 0
Filepointer:		dc.l 0
Laenge2:		dc.l 0
SelectedNodeZeiger:		dc.l 0
GuiGadgetinfo100:		dc.l 0
LV_index:		dc.l 0
Lv_Selected:		dc.l 0
GuiGadgetinfo101:		dc.l 0
Cycle_index:		dc.l 0
Type_index:		dc.l 0
MsgCode:		dc.l 0
Node:		dc.l 0
Len:		dc.l 0
I:		dc.l 0
I_bis:		dc.l 0
I_step:		dc.l 0
Lines:		dc.l 0
Namenzeiger:		dc.l 0
Bis:		dc.l 0
Mem1:		dc.l 0
Entries:		dc.l 0
Mem:		dc.l 0
AslBase:		dc.l 0
DOSBase:		dc.l 0
NONE:		dc.l 0
GUIEnvBase:		dc.l 0
DataTypesBase:		dc.l 0
even
DirName:	blk.b 256,0
even
Name:	blk.b 256,0
even
Name_bak:	blk.b 256,0
even
ASLFR_Taglist:
	dc.l ASLFR_screen,0
	dc.l ASLFR_PrivateIDCMP,Dostrue
	dc.l ASLFR_TextAttr,Dosfalse
	dc.l ASLFR_InitialLeftEdge,20
	dc.l ASLFR_InitialTopEdge,24
	dc.l ASLFR_InitialWidth,300
	dc.l ASLFR_Initialheight,210
	dc.l ASLFR_InitialDrawer,Dirname
	dc.l ASLFR_InitialFile,Name
	dc.l Tag_end,0
Filename:	blk.b 256,0
even
Cnop 0,4
IndexNodeSpeicher:	blk.b 5024,0
even
Cnop 0,4
SelectedNodeSpeicher:	blk.b 5024,0
even
Cnop 0,4
IndexItems:	blk.b 1024,0
even
Cnop 0,4
FIB:	blk.b 300,0
even
Buffer:	blk.b 1000,0
even
Buffer1:	blk.b 100,0
even
CDName:	blk.b 50,0
even
Cycle_labs:	dc.L Pipe_Lab,Kcon_lab,PRT_Lab,File_lab,0
even
Dateitype_Labs:	dc.L ASCII,CVS_TAB,CVS_SPACE,CVS_SEMI,CVS_Komma,SYLK,Lotus,0
even
Pipe_Lab:	dc.b "Pipe:Export",0
even
KCON_Lab:	dc.b "KCON:",0
even
PRT_Lab:	dc.b "PRT:",0
even
File_Lab:	dc.b "File:",0
even
ASCII:	dc.b "Nur Text",0
even
CVS_Tab:	dc.b "CVS Tab",0
even
CVS_Space:	dc.b "CVS Space",0
even
CVS_Semi:	dc.b "CVS ;",0
even
CVS_Komma:	dc.b "CVS ,",0
even
SYLK:	dc.b "Sylk Excel-4+",0
even
Lotus:	dc.b "Lotus 1-2-3",0
even
Version:	dc.b "$VER: CD-Finder 1.1 DEMOVersion (C) CYBORG 97",0
even
DoItText:	dc.b "Ja|Nein|Neuer Name",0
even
Index_Labs:	dc.l Index_Labs1
Index_Labs1:	dc.l 0
Index_Labs2:	dc.l Index_Labs
Selected_Labs:	dc.l Selected_Labs1
Selected_Labs1:	dc.l 0
Selected_Labs2:	dc.l Selected_Labs
AMINET_name000:
	dc.b `AMINET:`,0
even
_name005:
	dc.b `/`,0
even
xnname010:	dc.b $a,``,0
even
CD_Finder_Prefsname011:
	dc.b `CD-Finder Prefs`,0
even
GadgetP00Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GadgetP00Text
	dc.l GEG_Flags,002
	dc.l Tag_done,0
GadgetP01Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GadgetP01Text
	dc.l GEG_Flags,002
	dc.l Tag_done,0
CD_Findername012:
	dc.b `CD-Finder`,0
even
Gadget000Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET000Text
	dc.l GEG_Flags,001
	dc.l GEG_Varaddress,Device
	dc.l Tag_done,0
Cnop 0,4
Device:	blk.b 100,0
even
Gadget001Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET001Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Gadget002Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET002Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Gadget003Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET003Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Gadget004Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET004Text
	dc.l GEG_Flags,001
	dc.l GEG_Varaddress,SuchText
	dc.l Tag_done,0
Cnop 0,4
SuchText:	blk.b 100,0
even
Gadget005Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET005Text
	dc.l GEG_Flags,048
	dc.l Tag_done,0
Gadget006Tags:
	dc.l GEG_Description,0
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Gadget008Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET008Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Gadget009Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET009Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Gadget010Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET010Text
	dc.l GEG_Flags,048
	dc.l Tag_done,0
Gadget011Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET011Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Gadget012Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGET012Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
SetProgressTags:
	dc.l GEG_PICurrentValue,0
	dc.l Tag_Done,NULL
t_swapname013:
	dc.b `t:swap.crunch`,0
even
CM01xnname014:	dc.b `CM01`,$a,``,0
even
name015:	dc.b `%`,0
even
T_swapname016:
	dc.b `T:swap.crunch`,0
even
Cnop 0,4
Pfad:	blk.b 150,0
even
Cnop 0,4
Pfad_1:	blk.b 150,0
even
Cnop 0,4
Pfad2:	blk.b 150,0
even
t_swapname017:
	dc.b `t:swap.decrunch`,0
even
Base_CD_name018:
	dc.b `Base-CD:`,0
even
Schon_vorhanden_anhname019:
	dc.b `Schon vorhanden anhängen?`,0
even
DOITTags:
	dc.l GER_Gadgets,DOITTEXT
	dc.l Tag_done,Null
Base_CD_x_00name020:
	dc.b `Base-CD:`,$00,``,0
even
name021:	dc.b `.index`,$00,``,0
even
CD_Finder_Directoryindexname022:
	dc.b `CD-Finder Directoryindex`,0
even
NewDTTAGS:
	dc.l GA_Left,5
	dc.l GA_TOP,11
	dc.l GA_Width,630
	dc.l GA_Height,248
	dc.l GA_ID,1
	dc.l ICA_Target,ICTARGET_IDCMP
	dc.l Tag_done,Null
Env_Cd_Findername023:
	dc.b `Env:Cd-Finder.dat`,0
even
Kcon___640_200_CD_Finder_AUTO_CLOSE_WAITname024:
	dc.b `Kcon://640/200/CD-Finder/AUTO/CLOSE/WAIT`,0
even
Base_CD_name025:
	dc.b `Base-CD:`,0
even
CD0_name026:
	dc.b `CD0:`,0
even
GadgetErrorname027:	dc.b `GadgetError!`,0
even
Gettags:
	dc.l GEG_GetVar,GEG_Allgadgets
	dc.l Tag_done,Null
Die_CD_heiname028:
	dc.b `Die CD heißt: `,0
even
OKTags:
	dc.l GER_Gadgets,OKTEXT
	dc.l Tag_Done,Null
Base_CD_name030:
	dc.b `Base-CD:`,0
even
name035:	dc.b `.Index`,0
even
Settags:
	dc.l GEG_SetVar,GEG_Allgadgets
	dc.l Tag_done,Null
xnname036:	dc.b $a,``,0
even
Base_CD_name037:
	dc.b `Base-CD:`,0
even
Base_CD_name038:
	dc.b `Base-CD:`,0
even
name043:	dc.b `.Index`,0
even
Es_sind_name044:
	dc.b `Es sind `,0
even
_Files_und_name049:
	dc.b ` Files und `,0
even
_Dirs_in_name054:
	dc.b ` Dirs in `,0
even
Base_CD_name056:
	dc.b `Base-CD:`,0
even
name061:	dc.b `.Index`,0
even
T_Swapname062:
	dc.b `T:Swap`,0
even
Base_CD_name063:
	dc.b `Base-CD:`,0
even
name068:	dc.b `.Index`,0
even
T_Swapname069:
	dc.b `T:Swap`,0
even
Base_CD_name070:
	dc.b `Base-CD:`,0
even
name075:	dc.b `.Index`,0
even
Base_CD_x_00name076:
	dc.b `Base-CD:`,$00,``,0
even
x_00name077:
	dc.b $00,``,0
even
Base_CD_name078:
	dc.b `Base-CD:`,0
even
T_swapname079:
	dc.b `T:swap.decrunch`,0
even
xnname080:	dc.b $a,``,0
even
swapname081:	dc.b `swap.decrunch`,0
even
_Treffer_in_name082:
	dc.b ` Treffer in `,0
even
_Eintrname083:
	dc.b ` Einträgen durchsucht auf `,0
even
_CDname084:
	dc.b ` CD's!`,$a,``,0
even
Base_CD_name085:
	dc.b `Base-CD:`,0
even
name090:	dc.b `.Index`,0
even
Base_CD_name091:
	dc.b `Base-CD:`,0
even
name096:	dc.b `.Index`,0
even
Base_CD_x_00name097:
	dc.b `Base-CD:`,$00,``,0
even
name098:	dc.b `.Index`,$00,``,0
even
Base_CD_name099:
	dc.b `Base-CD:`,0
even
name100:	dc.b `.Index`,$00,``,0
even
CD_Finder_Statusname101:
	dc.b `CD-Finder Status`,0
even
x_00name102:
	dc.b $00,``,0
even
_Bytesname103:
	dc.b ` Bytes`,0
even
_Stname104:
	dc.b ` Stück`,0
even
_Stname105:
	dc.b ` Stück`,0
even
_Bytesname106:
	dc.b ` Bytes`,0
even
___name107:
	dc.b `          `,0
even
name108:	dc.b `%`,0
even
GadgetI00Tags:
	dc.l GEG_Description,0
	dc.l GTTX_Border,1
	dc.l GEG_Text,GadgetI00Text
	dc.l GTTX_Text,name
	dc.l Tag_done,0
GadgetI01Tags:
	dc.l GEG_Description,0
	dc.l GTTX_Border,1
	dc.l GEG_Text,GadgetI01Text
	dc.l GTTX_Text,gepackt_txt
	dc.l Tag_done,0
gepackt_TXT:	blk.b 100,0
even
GadgetI02Tags:
	dc.l GEG_Description,0
	dc.l GTTX_Border,1
	dc.l GEG_Text,GadgetI02Text
	dc.l GTTX_Text,ungepackt_txt
	dc.l Tag_done,0
ungepackt_TXT:	blk.b 100,0
even
GadgetI03Tags:
	dc.l GEG_Description,0
	dc.l GTTX_Border,1
	dc.l GEG_Text,GadgetI03Text
	dc.l GTTX_Text,Ratio_txt
	dc.l Tag_done,0
Ratio_TXT:	blk.b 100,0
even
GadgetI04Tags:
	dc.l GEG_Description,0
	dc.l GTTX_Border,1
	dc.l GEG_Text,GadgetI04Text
	dc.l GTTX_Text,Files_txt
	dc.l Tag_done,0
Files_TXT:	blk.b 100,0
even
GadgetI05Tags:
	dc.l GEG_Description,0
	dc.l GTTX_Border,1
	dc.l GEG_Text,GadgetI05Text
	dc.l GTTX_Text,Dirs_txt
	dc.l Tag_done,0
Dirs_TXT:	blk.b 100,0
even
CD_Finder_Exportname109:
	dc.b `CD-Finder Export`,0
even
GadgetE00Tags:
	dc.l GEG_Description,0
	dc.l GEG_Flags,016
	dc.l GEG_Varaddress,IndexItem
	dc.l Tag_done,0
Cnop 0,4
IndexItem:	blk.b 100,0
even
GadgetE01Tags:
	dc.l GTLV_ShowSelected,GuiGadgetinfo100
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE01Text
	dc.l GEG_Flags,004
	dc.l GEG_Varaddress,LV_Index
	dc.l GTLV_Labels,Index_Labs
	dc.l Tag_done,0
GadgetE02Tags:
	dc.l GEG_Description,0
	dc.l GEG_Flags,016
	dc.l GEG_Varaddress,SelectedItem
	dc.l Tag_done,0
Cnop 0,4
SelectedItem:	blk.b 100,0
even
GadgetE03Tags:
	dc.l GTLV_ShowSelected,GuiGadgetinfo100
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE03Text
	dc.l GEG_Flags,004
	dc.l GEG_Varaddress,LV_Selected
	dc.l GTLV_Labels,Selected_Labs
	dc.l Tag_done,0
GadgetE04Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE04Text
	dc.l GEG_Flags,001
	dc.l GEG_Varaddress,CYCLE_Index
	dc.l GTCY_Labels,Cycle_Labs
	dc.l Tag_done,0
GadgetE05Tags:
	dc.l GEG_Description,0
	dc.l GEG_Varaddress,Name_bak
	dc.l GEG_Flags,016
	dc.l Tag_done,0
GadgetE06Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE06Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
GadgetE07Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE07Text
	dc.l GEG_Flags,004
	dc.l GEG_Varaddress,Type_Index
	dc.l GTCY_Labels,DateiType_Labs
	dc.l Tag_done,0
GadgetE08Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE08Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
GadgetE09Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE09Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
GadgetE10Tags:
	dc.l GEG_Description,0
	dc.l GEG_Text,GADGETE10Text
	dc.l GEG_Flags,016
	dc.l Tag_done,0
GadgetE11Tags:
	dc.l GEG_Description,0
	dc.l GEG_Flags,016
	dc.l Tag_done,0
Turbocalc_name110:
	dc.b `Turbocalc:`,0
even
name111:	dc.b `.index`,$00,``,0
even
Set5tag:
	dc.l GEG_SetVar,5
	dc.l Tag_done,Null
SetNewItem:
	dc.l GTLV_Labels,Selected_Labs
	dc.l Tag_done,Null
Konnte_kein_Indexfile_anlegenname112:
	dc.b `Konnte kein Indexfile anlegen!`,0
even
Device_nicht_gefunden__bittename113:
	dc.b `Device nicht gefunden, bitte CD einlegen!`,0
even
Progdir_name114:
	dc.b `Progdir:`,0
even
Env_Cd_Findername115:
	dc.b `Env:Cd-Finder.dat`,0
even
Base_CD_name116:
	dc.b `Base-CD:`,0
even
Base_CD_name117:
	dc.b `Base-CD:`,0
even
T_DirTreename118:
	dc.b `T:DirTree.temp`,0
even
T_DirTreename119:
	dc.b `T:DirTree.temp`,0
even
T_Dirtreename120:
	dc.b `T:Dirtree.temp`,0
even
_X_name121:
	dc.b `:X=`,0
even
_Y_name122:
	dc.b `:Y=`,0
even
_Z_name123:
	dc.b `:Z=`,0
even
xnname124:	dc.b $a,``,0
even
Aslname: dc.b "asl.library",0
DOSname: dc.b "dos.library",0
GUIEnvname: dc.b "guienv.library",0
DataTypesname: dc.b "datatypes.library",0
even
GadgetP00Text:	dc.b "Suche in einem File",0
GadgetP01Text:	dc.b "Anzeige beim Scannen",0,0
GADGET000Text:	dc.b "_Device:",0,0
GADGET001Text:	dc.b "S_can",0
GADGET002Text:	dc.b "_Edit",0
GADGET003Text:	dc.b "_Suche",0,0
GADGET004Text:	dc.b "_Text",0
GADGET005Text:	dc.b "_Importieren",0,0
GADGET008Text:	dc.b "I_ndex",0,0
GADGET009Text:	dc.b "In_fo",0
GADGET010Text:	dc.b "E_xportieren",0,0
GADGET011Text:	dc.b "T_ree",0
GADGET012Text:	dc.b "_Prefs",0,0
OKTEXT:	dc.b "Weiter",0,0
GadgetI00Text:	dc.b "Volumen:",0,0
GadgetI01Text:	dc.b "Gepackt:",0,0
GadgetI02Text:	dc.b "Ungepackt:",0,0
GadgetI03Text:	dc.b "Ratio:",0,0
GadgetI04Text:	dc.b "Files:",0,0
GadgetI05Text:	dc.b "Dirs:",0
GADGETE01Text:	dc.b "Indexfiles:",0
GADGETE03Text:	dc.b "Selected",0,0
GADGETE04Text:	dc.b "_Output:",0,0
GADGETE06Text:	dc.b "_REQ",0,0
GADGETE07Text:	dc.b "Dateityp:",0
GADGETE08Text:	dc.b " --> ",0
GADGETE09Text:	dc.b " <-- ",0
GADGETE10Text:	dc.b "_Export",0
	Include "Preass:LVO3.0/Exec_lib.i"
	Include "Preass:LVO3.0/Asl_lib.i"
	Include "Preass:LVO3.0/DOS_lib.i"
	Include "Preass:LVO3.0/GUIEnv_lib.i"
	Include "Preass:LVO3.0/DataTypes_lib.i"

