; 
; 
; (c) 1997 Cyborg 

    {* Include sys:coder/preass/Options.p *}

    {* NewProc=ConvertZahl[Zahl,Handle][D7,D6]*}
    {* NewProc=GetFilename[][]*}

    {* String: Version="$VER: DiskFree (C) CYBORG 97"*}

    {* IncSysBlock: Fileparameterblock,36*}

Start:
    OH=Output()
    OK=GetFilename()
    Dirlock=Lock(#Filename,#Access_read)
    CheckF Dirlock,.error
        OK=Info(Dirlock,#Fileparameterblock)
        Unlock(Dirlock)
        Checkf OK,.error
            Blocks=.l12(#Fileparameterblock)
            BlocksUsed=.l16(#Fileparameterblock)
            BytesPerBlock=.l20(#Fileparameterblock)
            BlocksFree==Blocks-BlocksUsed
            Blocks==Blocks*BytesperBlock
            Blocksfree==Blocksfree*BytesperBlock
            BlocksUsed==BlocksUsed*BytesperBlock
            Write(OH,"Gesamt : ",?)
            Convertzahl(Blocks,OH)
            Write(OH," : benutzt: ",?)
            Convertzahl(BlocksUsed,OH)
            Write(OH," : frei: ",?)
            Convertzahl(BlocksFree,OH)

            Write(OH," Bytes\n",?)
            RTS
.error:
    Write(OH,"\nFehleingabe oder Device nicht gefunden!\n",?)
    RTS

ConvertZahl:
    {* IncVar: zusatz1,Zusatz0,Zahl*}
    Move.l #"    ",Zusatz1
    Move.l #"    ",Zusatz0
    Move.l #"   0",Zahl
ConvertZahl1:
    Movem.l a0-a5,-(sp)
    Lea Zusatz1,a0
    Cmpi.l #0,d7
    bpl .a0
    Neg.l d7
    move.b #"-",zahl
    Cmpi.l #9999,d7
    bgt .a0
    move.b #"-",zusatz1
.a0:Move.l d7,d0
    MoveQ.l #-1,d1
.a1:AddQ.l #1,d1
    Subi.l #100000000000,d0
    Bpl .a1
    Addi.l #100000000000,d0
    addi.l #$30,d1
    cmpi.b #"0",d1
    Beq .a11
    move.b d1,2(a0)
.a11:MoveQ.l #-1,d1
.a2:AddQ.l #1,d1
    Subi.l #10000000000,d0
    Bpl .a2
    Addi.l #10000000000,d0
    addi.l #$30,d1
    cmpi.b #"0",d1
    Beq .a21
    move.b d1,2(a0)
.a21:MoveQ.l #-1,d1
.a3:AddQ.l #1,d1
    Subi.l #1000000000,d0
    Bpl .a3
    Addi.l #1000000000,d0
    addi.l #$30,d1
    cmpi.b #"0",d1
    Beq .a31
    move.b d1,3(a0)
.a31:MoveQ.l #-1,d1
.a4:AddQ.l #1,d1
    Subi.l #100000000,d0
    Bpl .a4
    Addi.l #100000000,d0
    addi.l #$30,d1
    cmpi.b #"0",d1
    Beq .a41
    move.b d1,3(a0)
.a41: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,4(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 #" ",4(a0)
    bne .l22
    cmpi.b #"0",d1
    Beq .l21
.l22:
    move.b d1,5(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 #" ",5(a0)
    bne .l32
    cmpi.b #"0",d1
    Beq .l31
.l32:
    move.b d1,6(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 #" ",6(a0)
    bne .l42
    cmpi.b #"0",d1
    Beq .l41
.l42:
    move.b d1,7(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 #" ",7(a0)
    bne .l52
    cmpi.b #"0",d1
    Beq .l51
.l52:
    move.b d1,8(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 #" ",8(a0)
    bne .l62
    cmpi.b #"0",d1
    Beq .l61
.l62:
    move.b d1,9(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 #" ",9(a0)
    bne .l72
    cmpi.b #"0",d1
    Beq .l71
.l72:
    move.b d1,10(a0)
.l71:
    addi.l #$30,d0
    move.b d0,11(a0)
    Movem.l (sp)+,a0-a5
    Checkf D6,.ende   
    Write(D6,#Zusatz1,12)
.ende:RTS


GetFilename:
    {* IncBlock: Filename,256*}
        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
        Copymem(a1,#Filename,a2)
        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
