home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0600
/
CCE_0657.ZIP
/
CCE_0657.PD
/
BLOCK_BY.GAS
< prev
next >
Wrap
Text File
|
1993-09-09
|
962b
|
65 lines
.globl block_it
.text
| **** Macht den "Nadeldreher": Aufruf: (needle-warp?)
| **** block_it( *dest(4), *src(8), bweite(12), offset(14), bytes_per_spalte(18) )
block_it:
moveml a0-a2/d0-d6,a7@- | ungetestet!
movew a7@(58),d2
subqw #1,d2
movel a7@(54),d1
movew a7@(52),d0
subqw #1,d0
moveal a7@(48),a1
moveal a7@(44),a0
loop1: | i-loop
moveq #7,d3
loop2: | j-loop
movew d2,d4 | Wie viele Bytes?
moveal a1,a2
loop3: | k-loop
moveq #0,d6
btst d3,a2@
beq ns0
bset #7,d6
ns0: addal d1,a2
btst d3,a2@
beq ns1
bset #6,d6
ns1: addal d1,a2
btst d3,a2@
beq ns2
bset #5,d6
ns2: addal d1,a2
btst d3,a2@
beq ns3
bset #4,d6
ns3: addal d1,a2
btst d3,a2@
beq ns4
bset #3,d6
ns4: addal d1,a2
btst d3,a2@
beq ns5
bset #2,d6
ns5: addal d1,a2
btst d3,a2@
beq ns6
bset #1,d6
ns6: addal d1,a2
btst d3,a2@
beq ns7
bset #0,d6
ns7: addal d1,a2
moveb d6,a0@+
dbf d4,loop3
dbf d3,loop2
addql #1,a1
dbf d0,loop1
moveml a7@+,a0-a2/d0-d6
rts