;$VER: D68k 2.0.7 (21.10.95)

;Disassembled File  : xa2.0_cvid_sun3_amiga.o
;FileSize in Bytes  : 0005056

;00000003 083870E4 000000C0 00000F5C 0843B7D4 00000099 00000068 00000000

        SECTION "",CODE       ;000 003416

gcc2_compiled.:
___gnu_compiled_c:
_Cinepak_What_Rev_API:
        LINK    A6,#-$0000
        MOVEQ   #$01,D0
        UNLK    A6
        RTS

L000001:
        dc.b    "Radius Cinepak",0,0
_Cinepak_Codec_Query:
        LINK    A6,#-$0000
        MOVE.L  A2,-(A7)
        MOVE.L  D2,-(A7)
        MOVEA.L $0008(A6),A2
        CLR.L   D2
        CLR.L   $0014(A2)
        CLR.L   $001C(A2)
        CLR.L   $0020(A2)
        CLR.L   $0028(A2)
        MOVEQ   #$01,D1
        MOVE.L  D1,$0018(A2)
        MOVE.L  $0004(A2),D0
        CMPI.L  #$43564944,D0
        BEQ.B   L000002
        CMPI.L  #$63766964,D0
        BNE.B   L000006
L000002:
        MOVE.L  #$43564944,$0004(A2)
        MOVE.L  $0008(A2),D0
        ADDQ.L  #3,D0
        MOVEQ   #-$04,D1
        AND.L   D0,D1
        MOVE.L  D1,$0008(A2)
        MOVE.L  $000C(A2),D0
        ADDQ.L  #3,D0
        MOVEQ   #-$04,D1
        AND.L   D0,D1
        MOVE.L  D1,$000C(A2)
        MOVE.L  #_Cinepak_Decode_CVID,$001C(A2)
        MOVE.L  #L000001,$0020(A2)
L000004:
        CLR.L   $0024(A2)
        MOVE.L  #_Cinepak_Decode_CVID,$001C(A2)
        MOVEQ   #$01,D2
        BSR.W   _Cinepak_Init_Stuff
        MOVEQ   #-$09,D0
        ADD.L   $0010(A2),D0
        MOVEQ   #$17,D1
        CMP.L   D0,D1
        BCS.B   L000005
        PEA     _Cinepak_Free_Stuff
        MOVE.L  (A2),-(A7)
        BSR.L   _XA_Add_Func_To_Free_Chain
        ADDQ.W  #8,A7
L000005:
        MOVE.L  (A2),-(A7)
        BSR.L   _XA_Gen_YUV_Tabs
        MOVE.L  (A2),-(A7)
        BSR.L   _JPG_Setup_Samp_Limit_Table
L000006:
        MOVE.L  D2,D0
        MOVE.L  -$0008(A6),D2
        MOVEA.L -$0004(A6),A2
        UNLK    A6
        RTS

_Cinepak_Free_Stuff:
        LINK    A6,#-$0000
        MOVEM.L D2/A2-A4,-(A7)
        MOVE.L  _cvid_strip_num,D0
        CLR.L   _cvid_strip_num
        TST.L   D0
        BEQ.B   L000008
        MOVE.L  #_cvid_2x2_cmap0,D2
        LEA     _free,A4
        ASL.L   #2,D0
        MOVEA.L D0,A2
        ADDA.L  D2,A2
        MOVEA.L D0,A3
        ADDA.L  #_cvid_2x2_cmap1,A3
L000007:
        MOVE.L  -(A2),-(A7)
        JSR     (A4)
        CLR.L   (A2)
        MOVE.L  -(A3),-(A7)
        JSR     (A4)
        CLR.L   (A2)
        ADDQ.W  #8,A7
        CMP.L   A2,D2
        BNE.B   L000007
L000008:
        MOVEM.L -$0010(A6),D2/A2-A4
        UNLK    A6
        RTS

L000009:
        dc.b    "CVID: cmap0 alloc err",0
L00000A:
        dc.b    "CVID: cmap1 alloc err",0
_Cinepak_Init_Stuff:
        LINK    A6,#-$0000
        MOVEM.L D2/D3/A2,-(A7)
        TST.L   _cvid_strip_num
        BNE.B   L000013
        CLR.L   D3
        LEA     _malloc,A2
L00000C:
        PEA     $4C00
L00000D:
        JSR     (A2)
        MOVE.L  D0,D2
        ADDQ.W  #4,A7
        BNE.B   L00000E
        PEA     L000009(PC)
        BSR.L   _TheEnd1
        ADDQ.W  #4,A7
L00000E:
        LEA     _cvid_2x2_cmap0,A0
        MOVE.L  D2,$00(A0,D3.L*4)
        PEA     $4C00
        JSR     (A2)
        MOVE.L  D0,D2
        ADDQ.W  #4,A7
        BNE.B   L000010
        PEA     L00000A(PC)
        BSR.L   _TheEnd1
        ADDQ.W  #4,A7
L000010:
        LEA     _cvid_2x2_cmap1,A0
        MOVE.L  D2,$00(A0,D3.L*4)
        ADDQ.L  #1,D3
        MOVEQ   #$01,D1
        CMP.L   D3,D1
        BGE.B   L00000C
L000012:
        MOVEQ   #$02,D1
        MOVE.L  D1,_cvid_strip_num
L000013:
        MOVEM.L -$000C(A6),D2/D3/A2
        UNLK    A6
        RTS

L000015:
        dc.b    "CVID: strip overflow - contact Author",0
_Cinepak_Decode_CVID:
        LINK    A6,#-$0074
        MOVEM.L D2-D7/A2-A5,-(A7)
        MOVE.L  $0010(A6),D2                image
        MOVEA.L $0014(A6),A0                decinfo
        MOVE.L  $0008(A0),-$0004(A6)        imagex
        MOVE.L  $000C(A0),D0                imagey
        MOVE.L  $0018(A0),-$0008(A6)        mapflag
        MOVE.L  $001C(A0),-$000C(A6)        map
        MOVE.L  $0030(A0),-$0010(A6)        special
        MOVE.L  $0014(A0),-$0014(A6)        chdr
        MOVEA.L $000C(A6),A2                delta
        CLR.L   $0024(A0)                   ys=0
        CLR.L   $0020(A0)                   xs=0
        MOVE.L  -$0004(A6),$0028(A0)        xe=imagex
        MOVE.L  D0,$002C(A0)                ye=imagey
        TST.L   -$0014(A6)                  if(chdr!=0)
        BEQ.B   L000016
        MOVEA.L -$0014(A6),A4
        MOVE.L  $0024(A4),D0
        BEQ.B   L000016
        MOVE.L  D0,-$0014(A6)
L000016:
        TST.L   -$0010(A6)                  if(special!=0)
        BEQ.B   L00001A
        CLR.L   -$0018(A6)
        MOVE.L  #_XA_2x2_OUT_1BLK_rgb,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_rgb,-$0034(A6)
        BRA.W   L000022
L00001A:
        TST.L   -$0014(A6)
        BEQ.B   L00001E
        MOVEQ   #$01,D6
        CMP.L   _xa_dither_flag,D6
        BNE.B   L00001E
        MOVEA.W #$0001,A4
        MOVE.L  A4,-$0018(A6)
        MOVE.L  _x11_bytes_pixel,D0
        CMP.L   D0,D6
        BEQ.B   L00001B
        TST.L   -$0008(A6)
        BNE.B   L00001C
L00001B:
        MOVE.L  #_XA_2x2_OUT_1BLK_dith8,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_dith8,-$0034(A6)
        BRA.B   L000022
L00001C:
        MOVEQ   #$04,D6
        CMP.L   D0,D6
        BNE.B   L00001D
        MOVE.L  #_XA_2x2_OUT_1BLK_dith32,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_dith32,-$0034(A6)
        BRA.B   L000022
L00001D:
        MOVE.L  #_XA_2x2_OUT_1BLK_dith16,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_dith16,-$0034(A6)
        BRA.B   L000022
L00001E:
        CLR.L   -$0018(A6)
        MOVE.L  _x11_bytes_pixel,D0
        MOVEQ   #$01,D6
        CMP.L   D0,D6
        BEQ.B   L00001F
        TST.L   -$0008(A6)
        BNE.B   L000020
L00001F:
        MOVE.L  #_XA_2x2_OUT_1BLK_clr8,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr8,-$0034(A6)
        BRA.B   L000022
L000020:
        MOVEQ   #$04,D6
        CMP.L   D0,D6
        BNE.B   L000021
        MOVE.L  #_XA_2x2_OUT_1BLK_clr32,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr32,-$0034(A6)
        BRA.B   L000022
L000021:
        MOVE.L  #_XA_2x2_OUT_1BLK_clr16,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr16,-$0034(A6)
L000022:
        MOVEQ   #$04,D6
        CMP.L   _cmap_color_func,D6
        BNE.B   L000024
        TST.L   -$0014(A6)
        BEQ.B   L000024
        TST.L   _cmap_cache
        BNE.B   L000023
        CLR.L   -(A7)
        BSR.L   _CMAP_Cache_Init
        ADDQ.W  #4,A7
L000023:
        MOVEA.L -$0014(A6),A4
        CMPA.L  _cmap_cache_chdr,A4
        BEQ.B   L000024
        BSR.L   _CMAP_Cache_Clear
        MOVE.L  A4,_cmap_cache_chdr
L000024:
        CLR.L   -$002C(A6)                  y=0
        CLR.L   -$0028(A6)                  x=0
        CLR.L   D1                          len=....
        MOVE.B  (A2)+,D1
        EORI.W  #$0001,D1
        MOVE.L  D1,-$0024(A6)
        MOVEQ   #$01,D6
        AND.L   D6,-$0024(A6)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,D1
        SWAP    D1
        CLR.W   D1
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,D1
        OR.B    (A2)+,D1
        CMP.L   D1,D2
        BEQ.B   L000026
        BTST    #0,D1
        BEQ.B   L000025
        ADDQ.L  #1,D1
L000025:
        CMP.L   D1,D2
        BNE.W   L000062
L000026:
        ADDQ.W  #4,A2                       dptr+=4, war xsz=... ysz=...
        CLR.L   D0                          strips=...
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        MOVE.L  D0,-$0020(A6)
        MOVE.B  (A2)+,D6
        OR.B    D6,-$001D(A6)
        MOVEQ   #$0F,D6
        CMP.L   -$0020(A6),D6
        BCS.W   L000062
        MOVE.L  -$0020(A6),D6
        CMP.L   _cvid_strip_num,D6          if(strips>cvid_strip_num)
        BLS.B   L00002B
        MOVEQ   #$0F,D6
        CMP.L   -$0020(A6),D6
        BCC.B   L000027
        PEA     L000015(PC)
        BSR.L   _TheEnd1
        ADDQ.W  #4,A7
L000027:
        MOVE.L  _cvid_strip_num,D3
        CMP.L   -$0020(A6),D3
        BCC.B   L00002B
        LEA     _malloc,A3
L000028:
        PEA     $4C00
        JSR     (A3)
        MOVE.L  D0,D2
        ADDQ.W  #4,A7
        BNE.B   L000029
        PEA     L000009(PC)
        BSR.L   _TheEnd1
        ADDQ.W  #4,A7
L000029:
        LEA     _cvid_2x2_cmap0,A0
        MOVE.L  D2,$00(A0,D3.L*4)
        PEA     $4C00
        JSR     (A3)
        MOVE.L  D0,D2
        ADDQ.W  #4,A7
        BNE.B   L00002A
        PEA     L00000A(PC)
        BSR.L   _TheEnd1
        ADDQ.W  #4,A7
L00002A:
        LEA     _cvid_2x2_cmap1,A0
        MOVE.L  D2,$00(A0,D3.L*4)
        ADDQ.L  #1,D3
        CMP.L   -$0020(A6),D3
        BCS.B   L000028
L00002B:
        MOVE.L  -$0020(A6),_cvid_strip_num
        CLR.L   -$001C(A6)                  for(kk=0;kk<strips;kk++)
        MOVEA.L -$001C(A6),A4
        CMPA.L  -$0020(A6),A4
        BCC.W   L000065
L00002C:
        CLR.L   -$0044(A6)
        LEA     _cvid_2x2_cmap0,A0
        MOVEA.L -$001C(A6),A5
        MOVE.L  $00(A0,A5.L*4),-$0038(A6)   qt_cvid_cmap0=cvid_2x2_cmap0[kk]
        LEA     _cvid_2x2_cmap1,A0
        MOVE.L  $00(A0,A5.L*4),-$003C(A6)   qt_cvid_cmap1=cvid_2x2_cmap1[kk]
        TST.L   A5
        BEQ.W   L00002F
        MOVEQ   #$01,D6
        CMP.L   -$0024(A6),D6
        BNE.W   L00002F
        LEA     L000067,A0
        CLR.L   D2
        MOVEA.L $00(A0,A5.L*4),A0
        MOVEA.L -$0038(A6),A3
L00002D:
        PEA     $004C
        MOVE.L  A0,-(A7)
        MOVE.L  A3,-(A7)
        MOVE.L  A0,-$0068(A6)
        BSR.L   _memcpy
        ADDQ.W  #8,A7
        ADDQ.W  #4,A7
        MOVEA.L -$0068(A6),A0
        ADDA.W  #$004C,A0
        ADDA.W  #$004C,A3
        ADDQ.L  #1,D2
        CMPI.L  #$000000FF,D2               maximal 256 Durchläufe
        BLS.B   L00002D
        LEA     L000068,A0
        LEA     $0004(A0),A1
        CLR.L   D2
        MOVEA.L -$001C(A6),A4
        MOVEA.L $00(A0,A4.L*4),A0
        MOVEA.L $00(A1,A4.L*4),A3
L00002E:
        PEA     $004C
        MOVE.L  A0,-(A7)
        MOVE.L  A3,-(A7)
        MOVE.L  A0,-$0068(A6)
        BSR.L   _memcpy
        ADDQ.W  #8,A7
        ADDQ.W  #4,A7
        MOVEA.L -$0068(A6),A0
        ADDA.W  #$004C,A0
        ADDA.W  #$004C,A3
        ADDQ.L  #1,D2
        CMPI.L  #$000000FF,D2
        BLS.B   L00002E
L00002F:
        ADDQ.W  #1,A2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        SWAP    D0
        CLR.W   D0
        MOVE.L  D0,-$0040(A6)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,-$0040(A6)                   topSize=...
        MOVE.B  (A2)+,D6
        OR.B    D6,-$003D(A6)
        ADDQ.W  #4,A2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.B    (A2)+,D0                        y1=...
        CLR.L   D1
        MOVE.B  (A2)+,D1                        x1=...
        ASL.L   #8,D1
        OR.B    (A2)+,D1
        ADD.L   D0,-$002C(A6)                   y_top+=y1
        MOVEQ   #-$0C,D6
        ADD.L   D6,-$0040(A6)                   top_size-=12
        MOVEA.L -$0004(A6),A0
        SUBQ.W  #4,A0
        CMPA.L  D1,A0                           if(x1!=width-4)
        BHI.W   L000062
        MOVEA.L -$0004(A6),A0   
        ADDQ.W  #4,A0
        CMPA.L  D1,A0                           if(x1!=width+4)
        BCS.W   L000062
        TST.L   -$0040(A6)                      while(top_size>0)
        BLE.W   L000064
        CLR.L   -$0048(A6)                      cid=0
L000030:
        MOVE.B  (A2)+,D0
        MOVE.B  D0,-$0045(A6)                   cid=...
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,D5
        SWAP    D5
        CLR.W   D5
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,D5
        OR.B    (A2)+,D5                        csize=...
        SUB.L   D5,-$0040(A6)                   top_size-=csize
        SUBQ.L  #4,D5                           csize-=4
        MOVEQ   #-$20,D0
        ADD.L   -$0048(A6),D0
        MOVEQ   #$12,D6
        CMP.L   D0,D6
        BCS.W   L000062                         switch(cid)
        MOVE.W  L000031(PC,D0.L*2),D0
        JMP     L000031(PC,D0.W)
L000031:
        dc.w    L000031a                        ; 0x2000
        dc.w    L000036a                        ; 0x2100
        dc.w    L000031a                        ; 0x2200
        dc.w    L000036a                        ; 0x2300
        dc.w    L00004Fa                        ; 0x2400
        dc.w    L000057a                        ; 0x2500
        dc.w    L00004Fa                        ; 0x2600
        dc.w    L000057a                        ; 0x2700
        dc.w    L000062                         ; 0x2800 gibts nicht
        dc.w    L000062                         ; 0x2900 gibts nicht
        dc.w    L000062                         ; 0x2a00 gibts nicht
        dc.w    L000062                         ; 0x2b00 gibts nicht
        dc.w    L000062                         ; 0x2c00 gibts nicht
        dc.w    L000062                         ; 0x2d00 gibts nicht
        dc.w    L000062                         ; 0x2e00 gibts nicht
        dc.w    L000062                         ; 0x2f00 gibts nicht
        dc.w    L00003Ca                        ; 0x3000
        dc.w    L000045a                        ; 0x3100
        dc.w    L000043a                        ; 0x3200

L000031a:
        MOVEQ   #$0022,D6
        CMP.L   -$0048(A6),D6
        BNE.B   L000032
        MOVEA.L -$003C(A6),A0                   ; cvid_cmap1
        LEA     _XA_YUV_2x2_clr,A1
        TST.L   -$0018(A6)
        BEQ.B   L000033
        LEA     _XA_YUV_2x2_Dither14,A1
        BRA.B   L000033
L000032:
        MOVEA.L -$0038(A6),A0                   ; cvid_cmap0
        LEA     _XA_YUV_2x2_clr,A1
        TST.L   -$0018(A6)
        BEQ.B   L000033
        LEA     _XA_YUV_2x2_Dither42,A1
L000033:
        MOVE.L  D5,D0
        MULS.L  #$2AAAAAAB,D1:D0
        MOVE.L  D5,D0
        MOVEQ   #$1F,D6
        ASR.L   D6,D0
        SUB.L   D0,D1
        CLR.L   -$0074(A6)
        CMP.L   -$0074(A6),D1
        BLS.W   L000063
        CLR.L   D7
        CLR.L   -$006C(A6)
        CLR.L   D5
        CLR.L   D4
        CLR.L   D3
        CLR.L   D2
        MOVEA.L A0,A3
L000034:                                                ; cid=2000/2200
        MOVE.B  (A2)+,D0                                ; Y0=*dptr++
        MOVE.B  D0,D7
        MOVE.B  (A2)+,D0                                ; Y1=*dptr++
        MOVE.B  D0,-$0069(A6)
        MOVE.B  (A2)+,D0                                ; Y2=*dptr++
        MOVE.B  D0,D5
        MOVE.B  (A2)+,D0                                ; Y3=*dptr++
        MOVE.B  D0,D4
        MOVE.B  (A2)+,D0                                ; U=(*dptr++)^0x80
        EORI.B  #$80,D0
        MOVE.B  D0,D3
        MOVE.B  (A2)+,D0                                ; V=(*dptr++)^0x80
        EORI.B  #$80,D0
        MOVE.B  D0,D2
        TST.L   -$0010(A6)
        BEQ.B   L000035
        MOVE.L  D2,-(A7)                                ; V);
        MOVE.L  D3,-(A7)                                ; U,
        MOVE.L  D4,-(A7)                                ; Y3,
        MOVE.L  D5,-(A7)                                ; Y2,
        MOVE.L  -$006C(A6),-(A7)                        ; Y1,
        MOVE.L  D7,-(A7)                                ; Y0,
        MOVE.L  A3,-(A7)                                ; cmap2x2,
        MOVE.L  D1,-$0064(A6)
        MOVE.L  A1,-$0070(A6)
        BSR.L   _XA_YUV_2x2_rgb                         ; yuv2x2rgb(
        ADDA.W  #$001C,A7
        MOVE.L  -$0064(A6),D1
        MOVEA.L -$0070(A6),A1
        BRA.B   L000036
L000035:
        MOVE.L  -$0014(A6),-(A7)                        ; chdr);
        MOVE.L  -$000C(A6),-(A7)                        ; map,
        MOVE.L  -$0008(A6),-(A7)                        ; mapflag,
        MOVE.L  D2,-(A7)                                ; V,
        MOVE.L  D3,-(A7)                                ; U,
        MOVE.L  D4,-(A7)                                ; Y3,
        MOVE.L  D5,-(A7)                                ; Y2,
        MOVE.L  -$006C(A6),-(A7)                        ; Y1,
        MOVE.L  D7,-(A7)                                ; Y0,
        MOVE.L  A3,-(A7)                                ; (cmap2x2,
        MOVE.L  D1,-$0064(A6)
        MOVE.L  A1,-$0070(A6)
        JSR     (A1)                                    ; yuv2x2clrxxx
        ADDA.W  #$0028,A7
        MOVEA.L -$0070(A6),A1
        MOVE.L  -$0064(A6),D1
L000036:
        ADDA.W  #$004C,A3
        ADDQ.L  #1,-$0074(A6)
        CMP.L   -$0074(A6),D1
        BHI.W   L000034
        BRA.W   L000063                                 ; Ende von cid=0x2000/0x2200
L000036a:                                               ; cid==0x2100 oder cid==0x2300
        CLR.L   -$0074(A6)
        MOVEQ   #$0017,D6
        CMP.L   -$0048(A6),D6
        BNE.B   L000037
        MOVEA.L -$003C(A6),A0               ; cvid_cmap1
        LEA     _XA_YUV_2x2_clr,A1
        TST.L   -$0018(A6)
        BEQ.B   L000038
        LEA     _XA_YUV_2x2_Dither42,A1
        BRA     L000038
L000037:
        MOVEA.L -$0038(A6),A0               ; cvid_cmap0
        LEA     _XA_YUV_2x2_clr,A1
        TST.L   -$0018(A6)
        BEQ.B   L000038
        LEA     _XA_YUV_2x2_Dither42,A1
L000038:
        TST.L   D5
        BLE.W   L000063
        CLR.L   -$0050(A6)
L000039:
        MOVE.L  #$80000000,-$004C(A6)
        MOVE.B  (A2)+,D0
        MOVE.B  D0,-$004D(A6)
        MOVE.L  -$0050(A6),D7
        MOVEQ   #$18,D6
        ASL.L   D6,D7
        CLR.L   D0
        MOVE.B  (A2)+,D0
        SWAP    D0
        CLR.W   D0
        OR.L    D0,D7
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,D7
        OR.B    (A2)+,D7
        SUBQ.L  #4,D5
        MOVEA.L -$0074(A6),A4
        MOVEA.L -$0074(A6),A5
        LEA     $00(A5,A4.L*4),A4
        MOVE.L  A4,D0
        ASL.L   #2,D0
        SUB.L   A5,D0
        LEA     $00(A0,D0.L*4),A3
L00003A:
        MOVE.L  -$004C(A6),D0
        AND.L   D7,D0
        BEQ.W   L00003C
        CLR.L   D6
        MOVE.B  (A2)+,D6
        MOVE.L  D6,-$006C(A6)
        CLR.L   D4
        MOVE.B  (A2)+,D4
        CLR.L   D3
        MOVE.B  (A2)+,D3
        CLR.L   D2
        MOVE.B  (A2)+,D2
        MOVE.B  (A2)+,D0
        EORI.B  #$80,D0
        CLR.L   D1
        MOVE.B  D0,D1
        MOVE.B  (A2)+,D0
        EORI.B  #$80,D0
        ANDI.L  #$000000FF,D0
        SUBQ.L  #6,D5
        TST.L   -$0010(A6)
        BEQ.B   L00003B
        MOVE.L  D0,-(A7)
        MOVE.L  D1,-(A7)
        MOVE.L  D2,-(A7)
        MOVE.L  D3,-(A7)
        MOVE.L  D4,-(A7)
        MOVE.L  D6,-(A7)
        MOVE.L  A3,-(A7)
        MOVE.L  A0,-$0068(A6)
        MOVE.L  A1,-$0070(A6)
        BSR.L   _XA_YUV_2x2_rgb
        ADDA.W  #$001C,A7
        MOVEA.L -$0068(A6),A0
        MOVEA.L -$0070(A6),A1
        BRA.B   L00003C
L00003B:
        MOVE.L  -$0014(A6),-(A7)
        MOVE.L  -$000C(A6),-(A7)
        MOVE.L  -$0008(A6),-(A7)
        MOVE.L  D0,-(A7)
        MOVE.L  D1,-(A7)
        MOVE.L  D2,-(A7)
        MOVE.L  D3,-(A7)
        MOVE.L  D4,-(A7)
        MOVE.L  -$006C(A6),-(A7)
        MOVE.L  A3,-(A7)
        MOVE.L  A0,-$0068(A6)
        MOVE.L  A1,-$0070(A6)
        JSR     (A1)
        ADDA.W  #$0028,A7
        MOVEA.L -$0070(A6),A1
        MOVEA.L -$0068(A6),A0
L00003C:
        ADDA.W  #$004C,A3
        ADDQ.L  #1,-$0074(A6)
        MOVE.L  -$004C(A6),D6
        LSR.L   #1,D6
        MOVE.L  D6,-$004C(A6)
        BNE.W   L00003A
        TST.L   D5
        BGT.W   L000039
        BRA.W   L000063                                 ; Ende von cid=0x2100/0x2300
L00003Ca:
        TST.L   D5
        BLE.W   L000063
        CLR.L   -$0058(A6)
L00003D:                                                ; cid==0x3000
        MOVEA.L -$0028(A6),A4
        CMPA.L  -$002C(A6),A4
        BCC.W   L00004E
        MOVE.B  (A2)+,D0
        MOVE.B  D0,-$0055(A6)
        MOVE.L  -$0058(A6),D2
        MOVEQ   #$18,D6
        ASL.L   D6,D2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        SWAP    D0
        CLR.W   D0
        OR.L    D0,D2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,D2
        OR.B    (A2)+,D2
        SUBQ.L  #4,D5
        MOVE.L  #$80000000,-$0054(A6)
        SUBA.L  A3,A3
        CLR.L   D7
        CLR.L   -$006C(A6)
        CLR.L   D4
        CLR.L   D3
L00003E:
        MOVEA.L -$0028(A6),A4
        CMPA.L  -$002C(A6),A4
        BCC.W   L000042
        MOVE.L  -$0054(A6),D0
        AND.L   D2,D0
        BEQ.B   L00003F
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D7
        MOVE.B  (A2)+,D0
        MOVE.B  D0,-$0069(A6)
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D4
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D3
        SUBQ.L  #4,D5
        MOVEA.L D3,A5
        LEA     $00(A5,D3.L*4),A5
        MOVE.L  A5,D0
        ASL.L   #2,D0
        SUB.L   D3,D0
        MOVEA.L -$0038(A6),A4
        PEA     $00(A4,D0.L*4)
        MOVEA.L D4,A5
        LEA     $00(A5,D4.L*4),A5
        MOVE.L  A5,D0
        ASL.L   #2,D0
        SUB.L   D4,D0
        PEA     $00(A4,D0.L*4)
        MOVEA.L -$006C(A6),A4
        MOVEA.L -$006C(A6),A5
        LEA     $00(A5,A4.L*4),A4
        MOVE.L  A4,D0
        ASL.L   #2,D0
        SUB.L   A5,D0
        MOVEA.L -$0038(A6),A4
        PEA     $00(A4,D0.L*4)
        MOVEA.L D7,A5
        LEA     $00(A5,D7.L*4),A5
        MOVE.L  A5,D0
        ASL.L   #2,D0
        SUB.L   D7,D0
        PEA     $00(A4,D0.L*4)
        MOVE.L  -$0004(A6),-(A7)
        MOVE.L  -$0028(A6),-(A7)
        MOVE.L  -$0044(A6),-(A7)
        MOVE.L  $0008(A6),-(A7)
        MOVEA.L -$0034(A6),A4
        JSR     (A4)                                    ; color2x2blk4()
        ADDA.W  #$0020,A7
        BRA.B   L000040
L00003F:
        CLR.L   D1
        MOVE.B  (A2)+,D1
        SUBQ.L  #1,D5
        MOVEA.L D1,A5
        LEA     $00(A5,D1.L*4),A5
        MOVE.L  A5,D0
        ASL.L   #2,D0
        SUB.L   D1,D0
        MOVEA.L -$003C(A6),A4
        PEA     $00(A4,D0.L*4)
        MOVE.L  -$0004(A6),-(A7)
        MOVE.L  -$0028(A6),-(A7)
        MOVE.L  -$0044(A6),-(A7)
        MOVE.L  $0008(A6),-(A7)
        MOVEA.L -$0030(A6),A5
        JSR     (A5)                                    ; color2x2blk1()
        ADDA.W  #$0014,A7
L000040:
        ADDQ.L  #4,-$0044(A6)
        MOVE.L  -$0044(A6),D6
        CMP.L   -$0004(A6),D6
        BCS.B   L000041
        CLR.L   -$0044(A6)
        ADDQ.L  #4,-$0028(A6)
L000041:
        MOVE.L  -$0054(A6),D6
        LSR.L   #1,D6
        MOVE.L  D6,-$0054(A6)
        ADDQ.W  #1,A3
        MOVEQ   #$1F,D6
        CMP.L   A3,D6
        BGE.W   L00003E
L000042:
        MOVEQ   #$03,D6
        CMP.L   D5,D6
        BLT.B   L000043
        ADDA.L  D5,A2
        CLR.L   D5
L000043:
        TST.L   D5
        BGT.W   L00003D
        BRA.W   L00004E                                 ; Ende von cid=0x3000
L000043a:                                               ; cid==0x3200
        TST.L   D5
        BLE.W   L00004E
        CLR.L   D2
L000044:
        MOVEA.L -$0028(A6),A4
        CMPA.L  -$002C(A6),A4
        BCC.W   L00004E
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D2
        SUBQ.L  #1,D5
        MOVEA.L D2,A5
        LEA     $00(A5,D2.L*4),A5
        MOVE.L  A5,D0
        ASL.L   #2,D0
        SUB.L   D2,D0
        MOVEA.L -$003C(A6),A4
        PEA     $00(A4,D0.L*4)
        MOVE.L  -$0004(A6),-(A7)
        MOVE.L  -$0028(A6),-(A7)
        MOVE.L  -$0044(A6),-(A7)
        MOVE.L  $0008(A6),-(A7)
        MOVEA.L -$0030(A6),A5
        JSR     (A5)                                    ; color2x2blk1()
        ADDQ.L  #4,-$0044(A6)
        ADDA.W  #$0014,A7
        MOVE.L  -$0044(A6),D6
        CMP.L   -$0004(A6),D6
        BCS.B   L000045
        CLR.L   -$0044(A6)
        ADDQ.L  #4,-$0028(A6)
L000045:
        TST.L   D5
        BGT.B   L000044
        BRA.W   L00004E                                 ; Ende von cid=0x3200
L000045a:                                               ; cid==0x3100
        TST.L   D5
        BLE.W   L00004E
        CLR.L   -$005C(A6)
        CLR.L   D7
L000046:
        MOVEA.L -$0028(A6),A4
        CMPA.L  -$002C(A6),A4
        BCC.W   L00004E
        MOVE.L  #$80000000,D3
        MOVE.B  (A2)+,D0                                ; flag=get32()
        MOVE.B  D0,-$0059(A6)
        MOVE.L  -$005C(A6),D2
        MOVEQ   #$18,D6
        ASL.L   D6,D2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        SWAP    D0
        CLR.W   D0
        OR.L    D0,D2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,D2
        OR.B    (A2)+,D2
        SUBQ.L  #4,D5
        CLR.L   -$0060(A6)
        CLR.L   -$006C(A6)
        CLR.L   D4
L000047:
        MOVEA.L -$0028(A6),A4
        CMPA.L  -$002C(A6),A4
        BCC.W   L00004D
        MOVE.L  D2,D0
        AND.L   D3,D0                                   ; if(mask&flag)
        BEQ.W   L00004B
        MOVEQ   #$01,D6
        CMP.L   D3,D6
        BNE.B   L000048
        TST.L   D5
        BLT.W   L00004F
        MOVE.B  (A2)+,D0
        MOVE.B  D0,-$005D(A6)
        MOVE.L  -$0060(A6),D2
        MOVEQ   #$18,D6
        ASL.L   D6,D2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        SWAP    D0
        CLR.W   D0
        OR.L    D0,D2
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,D2
        OR.B    (A2)+,D2
        SUBQ.L  #4,D5
        MOVE.L  #$80000000,D3
        BRA.B   L000049
L000048:
        LSR.L   #1,D3
L000049:
        MOVE.L  D2,D0
        AND.L   D3,D0
        BEQ.B   L00004A
        CLR.L   D1
        MOVE.B  (A2)+,D1
        MOVE.B  (A2)+,D0
        MOVE.B  D0,-$0069(A6)
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D4
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D7
        SUBQ.L  #4,D5
        MOVEA.L D7,A4
        LEA     $00(A4,D7.L*4),A4
        MOVE.L  A4,D0
        ASL.L   #2,D0
        SUB.L   D7,D0
        MOVEA.L -$0038(A6),A5
        PEA     $00(A5,D0.L*4)
        MOVEA.L D4,A4
        LEA     $00(A4,D4.L*4),A4
        MOVE.L  A4,D0
        ASL.L   #2,D0
        SUB.L   D4,D0
        PEA     $00(A5,D0.L*4)
        MOVEA.L -$006C(A6),A5
        MOVEA.L -$006C(A6),A4
        LEA     $00(A4,A5.L*4),A5
        MOVE.L  A5,D0
        ASL.L   #2,D0
        SUB.L   A4,D0
        MOVEA.L -$0038(A6),A5
        PEA     $00(A5,D0.L*4)
        MOVEA.L D1,A4
        LEA     $00(A4,D1.L*4),A4
        MOVE.L  A4,D0
        ASL.L   #2,D0
        SUB.L   D1,D0
        PEA     $00(A5,D0.L*4)
        MOVE.L  -$0004(A6),-(A7)
        MOVE.L  -$0028(A6),-(A7)
        MOVE.L  -$0044(A6),-(A7)
        MOVE.L  $0008(A6),-(A7)
        MOVEA.L -$0034(A6),A5
        JSR     (A5)                                    ; color2x2blk4()
        ADDA.W  #$0020,A7
        BRA.B   L00004B
L00004A:
        CLR.L   D1
        MOVE.B  (A2)+,D1
        SUBQ.L  #1,D5
        MOVEA.L D1,A4
        LEA     $00(A4,D1.L*4),A4
        MOVE.L  A4,D0
        ASL.L   #2,D0
        SUB.L   D1,D0
        MOVEA.L -$003C(A6),A5
        PEA     $00(A5,D0.L*4)
        MOVE.L  -$0004(A6),-(A7)
        MOVE.L  -$0028(A6),-(A7)
        MOVE.L  -$0044(A6),-(A7)
        MOVE.L  $0008(A6),-(A7)
        MOVEA.L -$0030(A6),A4
        JSR     (A4)                                    ; color2x2blk1()
        ADDA.W  #$0014,A7
L00004B:
        LSR.L   #1,D3
        ADDQ.L  #4,-$0044(A6)
        MOVEA.L -$0044(A6),A5
        CMPA.L  -$0004(A6),A5
        BCS.B   L00004C
        CLR.L   -$0044(A6)
        ADDQ.L  #4,-$0028(A6)
L00004C:
        TST.L   D3
        BNE.W   L000047
L00004D:
        TST.L   D5
        BGT.W   L000046
L00004E:
        TST.L   D5
        BEQ.W   L000063
L00004F:
        ADDA.L  D5,A2
        BRA.W   L000063                                 ; Ende von cid=0x3100
L00004Fa:                                               ; cid==0x2400 oder cid==0x2600
        TST.L   -$0018(A6)                              ; dither?
        BEQ.B   L000053
        CLR.L   -$0018(A6)
        MOVE.L  _x11_bytes_pixel,D0
        MOVEQ   #$01,D6
        CMP.L   D0,D6
        BEQ.B   L000050
        TST.L   -$0008(A6)
        BNE.B   L000051
L000050:
        MOVE.L  #_XA_2x2_OUT_1BLK_clr8,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr8,-$0034(A6)
        BRA.B   L000053
L000051:
        MOVEQ   #$04,D6
        CMP.L   D0,D6
        BNE.B   L000052
        MOVE.L  #_XA_2x2_OUT_1BLK_clr32,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr32,-$0034(A6)
        BRA.B   L000053
L000052:
        MOVE.L  #_XA_2x2_OUT_1BLK_clr16,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr16,-$0034(A6)
L000053:
        MOVEA.L -$0038(A6),A1
        MOVEQ   #$26,D6
        CMP.L   -$0048(A6),D6
        BNE.B   L000054
        MOVEA.L -$003C(A6),A1
L000054:
        MOVE.L  D5,D3
        ASR.L   #2,D3
        TST.L   -$0008(A6)
        BEQ.B   L000056
        CLR.L   D1
        CMP.L   D1,D3
        BLS.W   L000063
        CLR.L   D2
        SUBA.L  A0,A0
L000055:
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D2
        MOVEA.L -$000C(A6),A4
        MOVE.L  $00(A4,D2.L*4),$0C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  $00(A4,D0.L*4),$1C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  $00(A4,D0.L*4),$2C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  $00(A4,D0.L*4),$3C(A1,A0.L)
        ADDA.W  #$004C,A0
        ADDQ.L  #1,D1
        CMP.L   D1,D3
        BHI.B   L000055
        BRA.W   L000063
L000056:
        CLR.L   D1
        CMP.L   -$0008(A6),D3
        BLS.W   L000063
        CLR.L   D2
        SUBA.L  A0,A0
L000057:
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D2
        MOVE.L  D2,$0C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,$1C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,$2C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,$3C(A1,A0.L)
        ADDA.W  #$004C,A0
        ADDQ.L  #1,D1
        CMP.L   D1,D3
        BHI.B   L000057
        BRA.W   L000063                                 ; Ende von cid=0x2400/0x2600
L000057a:                                               ; cid==0x2500 oder cid==0x2700
        SUBA.L  A3,A3
        TST.L   -$0018(A6)
        BEQ.B   L00005B
        CLR.L   -$0018(A6)
        MOVE.L  _x11_bytes_pixel,D0
        MOVEQ   #$01,D6
        CMP.L   D0,D6
        BEQ.B   L000058
        TST.L   -$0008(A6)
        BNE.B   L000059
L000058:
        MOVE.L  #_XA_2x2_OUT_1BLK_clr8,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr8,-$0034(A6)
        BRA.B   L00005B
L000059:
        MOVEQ   #$04,D6
        CMP.L   D0,D6
        BNE.B   L00005A
        MOVE.L  #_XA_2x2_OUT_1BLK_clr32,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr32,-$0034(A6)
        BRA.B   L00005B
L00005A:
        MOVE.L  #_XA_2x2_OUT_1BLK_clr16,-$0030(A6)
        MOVE.L  #_XA_2x2_OUT_4BLKS_clr16,-$0034(A6)
L00005B:
        MOVEA.L -$0038(A6),A1
        MOVEQ   #$27,D6
        CMP.L   -$0048(A6),D6
        BNE.B   L00005C
        MOVEA.L -$003C(A6),A1
L00005C:
        TST.L   D5
        BLE.W   L000063
        CLR.L   D4
L00005D:
        MOVE.L  #$80000000,D3
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D4
        MOVE.L  D4,D1
        MOVEQ   #$18,D6
        ASL.L   D6,D1
        CLR.L   D0
        MOVE.B  (A2)+,D0
        SWAP    D0
        CLR.W   D0
        OR.L    D0,D1
        CLR.L   D0
        MOVE.B  (A2)+,D0
        ASL.L   #8,D0
        OR.L    D0,D1
        OR.B    (A2)+,D1
        SUBQ.L  #4,D5
        CLR.L   D2
        LEA     $00(A3,A3.L*4),A4
        MOVE.L  A4,D0
        ASL.L   #2,D0
        SUB.L   A3,D0
        ASL.L   #2,D0
        MOVEA.L D0,A0
L00005E:
        MOVE.L  D3,D0
        AND.L   D1,D0
        BEQ.B   L000061
        TST.L   -$0008(A6)
        BEQ.B   L00005F
        MOVE.B  (A2)+,D0
        MOVE.B  D0,D2
        MOVEA.L -$000C(A6),A5
        MOVE.L  $00(A5,D2.L*4),$0C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  $00(A5,D0.L*4),$1C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  $00(A5,D0.L*4),$2C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  $00(A5,D0.L*4),$3C(A1,A0.L)
        BRA.B   L000060
L00005F:
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,$0C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,$1C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,$2C(A1,A0.L)
        CLR.L   D0
        MOVE.B  (A2)+,D0
        MOVE.L  D0,$3C(A1,A0.L)
L000060:
        SUBQ.L  #4,D5
L000061:
        ADDA.W  #$004C,A0
        ADDQ.W  #1,A3
        LSR.L   #1,D3
        BNE.B   L00005E
        TST.L   D5
        BGT.W   L00005D
        BRA.B   L000063                                 ; Ende von cid=0x2500/0x2700
L000062:
        MOVEQ   #$04,D0
        BRA.B   L000066
L000063:
        TST.L   -$0040(A6)
        BGT.W   L000030
L000064:
        ADDQ.L  #1,-$001C(A6)
        MOVE.L  -$001C(A6),D6
        CMP.L   -$0020(A6),D6
        BCS.W   L00002C
L000065:
        MOVEQ   #$08,D0
        TST.L   -$0008(A6)
        BNE.B   L000066
        CLR.L   D0
L000066:
        MOVEM.L -$009C(A6),D2-D7/A2-A5
        UNLK    A6
        RTS


        SECTION "",DATA       ;001 000004

_cvid_strip_num:
        dc.l    $00000000
L000067:

        SECTION "",BSS        ;002 000512

_cvid_2x2_cmap0:
        ds.l    0000015
L000068:
        ds.l    0000001
_cvid_2x2_cmap1:
        ds.l    0000112
