; Fix Iff-Postscript-Dateien
; 
; (c) 1996 Cyborg 

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

    {* NewProc=GetFilename[][]*}

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

    {* String: Version="$VER: Fix-IFF-Postscript (C) CYBORG 96"*}

Start:
    GetFilename()
    FH=Open(#Filename,#Mode_old)
    OH=Output()
    Memblock=Allocmem(50000,#MEMF_Clear)
    Read(FH,MemBlock,40)
    Write(OH,memblock,40)
    Write(OH,#Feld,26)
.l1:Anz=Read(Fh,memblock,50000)
    Write(Oh,memblock,anz)
    if Anz=#50000 --> .l1
    Freemem(Memblock,50000)
    Seek(OH,#0,#Offset_end)
    Anz=Seek(OH,#4,#Offset_begin)
    Anz==anz-4
    Write(OH,#Anz,4)
    Close(FH)
    RTS
  

even
Feld:
    dc.b `CAMG`
    dc.l $4
    dc.l $29004
    dc.b `CMAP`
    dc.l $6
    dc.w $FFFF,$FF00,$0000
