Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; c2p 2 pixel = un octet 4bit 4bit
- ; c2p mirored
- ; 4 segment de 64 seul les 1er 32k sont utilisé + 1 segment de 64k 13 bit utilisé = 8192=8k, le reste du segment est utilisable
- ; 256k decoupé en tranche de 32k = 128k used 128 free + 64k 8k used 56k free
- ;total
- move (a0)+,d0
- add (a1)+,d0
- add (a2)+,d0 ; 2 byte = 2 couleur 1,7,7,1 bit = 32768= 32k = de la place pour l'ecran 1,2,3,4 ou une zone memoire de 32768 a chaque fois
- move.l d0,a6
- move.w (a6)+,d1 ; 0000,%0xxxxyyyy000
- move.l d1,a6
- move.l (a6)+,d2 ; format movep 2bit 16 couleur xy000000
- move.l (a6),d4 ; d4 format movep 00000yx
- move (a0)+,d5
- add (a1)+,d5
- add (a1)+,d5
- move.l d5,a6
- move.w (a6)+,d1 , 0000,%1xxxxyyyy000
- move.l d1,a6
- or.l (a6)+,d2 ; d2= xyxy0000
- or.l (a6),d4 ; d4 = 0000yxyx
- move.w (a0)+,d6
- add (a1)+,d6
- add (a2)+,d6
- move.l d6,a6
- move.w (a6)+,d1 ; 00010xxxxyyyy000
- move.l d1,a6
- or.l (a6)+,d2 ; d2 =xyxyxy00
- or.l (a6),d4 ; d4=00yxyxyx
- move.w (a0)+,d7
- add (a1)+,d7
- add (a2)+,d7
- move.l d7,a6 ;00011xxxxyyyy000 tableau de 13 bit = enorme total 256k de table + 2^13 octet de table = 8192 = 8K
- move.w (a6)+,d1
- move.l d1,a6
- or.l (a6)+,d2 ; d2 = xyxyxyxy
- or.l (a6)+,d4 ; d4 = yxyxyxyx
- movep.l d2,0(a4)
- movep.l d4,64-8+1(a4) 8*TLWORD=4*2
- puis idem et
- movep.l d2,1(a4)
- movep.l d4,64-8(a4)
- puis idem et
- movep.l d2,8(a4)
- movep.l d4,64-16+1(a4)
- puis idem et
- movep.l d2,9(a4)
- movep.l d4,64-16(a4)
- puis idem et
- movep.l d2,16(a4)
- movep.l d4,64-24+1(a4)
- puis idem et
- movep.l d2,16+1(a4)
- movep.l d4,64-24(a4)
- puis idem et
- movep.l d2,16+8(a4)
- movep.l d4,64-32+1(a4)
- puis idem et
- movep.l d2,16+8+1(a4)
- movep.l d4,32(a4)
- ------------------------------------------------------------
- ; c2p 2 pixel = un octet 4bit 4bit
- ; c2p mirored
- ; 4 segment de 64 seul les 1er 32k sont utilisé + 1 segment de 64k 13 bit utilisé = 8192=8k, le reste du segment est utilisable
- ; 256k decoupé en tranche de 32k = 128k used 128 free + 64k 8k used 56k free
- ;total
- makecodegen2
- ; a0 = ram
- lea codepatern2,a3
- moveq #7,d0
- .bcl
- lea codepatern1,a1
- lea fincodepatern1,a2
- .1 move.w (a1)+,(a0)+
- cmp.l a1,a2
- bne.s .1
- move.l (a3)+,(a0)+ ; 1er movep
- move.l (a3)+,(a0)+ ; 2iem movep
- dbf d0,.bcl
- rts
- codepatern1
- move (a0)+,d0
- add (a1)+,d0
- add (a2)+,d0 ; 2 byte = 2 couleur 1,7,7,1 bit = 32768= 32k = de la place pour l'ecran 1,2,3,4 ou une zone memoire de 32768 a chaque fois
- move.l d0,a6
- move.w (a6)+,d1 ; 0000,%0xxxxyyyy000
- move.l d1,a6
- move.l (a6)+,d2 ; format movep 2bit 16 couleur xy000000
- move.l (a6),d4 ; d4 format movep 00000yx
- move (a0)+,d5
- add (a1)+,d5
- add (a2)+,d5
- move.l d5,a6
- move.w (a6)+,d1 , 0000,%1xxxxyyyy000
- move.l d1,a6
- or.l (a6)+,d2 ; d2= xyxy0000
- or.l (a6),d4 ; d4 = 0000yxyx
- move.w (a0)+,d6
- add (a1)+,d6
- add (a2)+,d6
- move.l d6,a6
- move.w (a6)+,d1 ; 00010xxxxyyyy000
- move.l d1,a6
- or.l (a6)+,d2 ; d2 =xyxyxy00
- or.l (a6),d4 ; d4=00yxyxyx
- move.w (a0)+,d7
- add (a1)+,d7
- add (a2)+,d7
- move.l d7,a6 ;00011xxxxyyyy000 tableau de 13 bit = enorme total 256k de 2^13 octet de table = 8192 = 8K
- move.w (a6)+,d1
- move.l d1,a6
- or.l (a6)+,d2 ; d2 = xyxyxyxy
- or.l (a6),d4 ; d4 = yxyxyxyx
- fincodepatern1
- codepatern2
- movep.l d2,0(a4) 4 octet
- movep.l d4,64-8+1(a4) 8*TLWORD=4*2
- movep.l d2,1(a4)
- movep.l d4,64-8(a4)
- movep.l d2,8(a4)
- movep.l d4,64-16+1(a4)
- movep.l d2,9(a4)
- movep.l d4,64-16(a4)
- movep.l d2,16(a4)
- movep.l d4,64-24+1(a4)
- movep.l d2,16+1(a4)
- movep.l d4,64-24(a4)
- movep.l d2,16+8(a4)
- movep.l d4,64-32+1(a4)
- movep.l d2,16+8+1(a4)
- movep.l d4,32(a4)
- fincodepatern2
- ;
- ; format xxxxyyyy000
- ; en movep.l
- ;
- ;
- routine1
- lea c2ptable0,a0
- ; a1 = ram sur segment 64k
- ;.auto1 equ *+2
- ; move.l #$80808080,d0
- ;.auto2 equ *+2
- ; move.w #$01010101,d1
- moveq #4-1,d0
- move.l #$80808080,d1
- move.l #$01010101,d7
- .loopdecal
- move.w d0,-(sp)
- .auto0 equ *+2
- move.l #$40404040,d0
- move.w #0,d2
- ; d1, d7 libre move.w #255,d7
- .loop
- bsr extruded2
- ; d4,d5 = 2 valeur
- move.l (a0,d4),d3 ; couleur format c2p
- move.l d3,d4
- and.l d1,d3 ; 1 bit only
- and.l d7,d4
- move.l (a0,d5),d5
- move.l d5,d6
- and.l d0,d5 ;#$40404040,d5
- .auto4 equ *+2
- and.l #$02020202,d6
- or.l d5,d3
- or.l d6,d4
- move.l d3,(a1)+
- move.l d4,(a1)+
- addq #1,d2 ; on ajoute 1 tout simplement (8 en fait = 8octet)
- and.w #$00FF,d2
- tst.w d2
- bne.s .loop
- ;dbf d7,.loop
- lsr.l #2,d1
- lea .auto0,a2
- move.l (a2),d2
- lsr.l #2,d2
- move.l d2,(a2)
- lsl.l #2,d7
- lea .auto4,a2
- move.l (a2),d2
- lsl.l #2,d2
- move.l d2,(a2)
- lea 32768(a1),a1 ; on va au segment suivant
- move.w (sp)+,d0
- dbf d0,.loopdecal
- rts
- extruded2
- move.w d2,d4
- and.w #%11110000,d4
- lsr #2,d4 ; value 1111 *4
- moveq #0,d5
- move.w d2,d5
- and.w #%1111,d5
- lsl #2,d5
- rts
- c2p
- dc.l $00000000
- dc.l $FF000000
- dc.l $00FF0000
- dc.l $FFFF0000
- dc.l $0000FF00
- dc.l $FF00FF00
- dc.l $00FFFF00
- dc.l $FFFFFF00
- dc.l $000000FF
- dc.l $FF0000FF
- dc.l $00FF00FF
- dc.l $FFFF00FF
- dC.l $0000FFFF
- dc.l $FF00FFFF
- dc.l $00FFFFFF
- dc.l $FFFFFFFF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement