home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
back2roots/padua
/
padua.7z
/
padua
/
ftp.vapor.com
/
microdot-1
/
md1_src_02.lzx
/
makerlinks.a
< prev
next >
Wrap
Text File
|
1989-08-24
|
963b
|
57 lines
section "text",code
xdef _makerlinks ; a0 = mix
_makerlinks:
movem.l d2-d4/a2-a3,-(sp)
move.l $10(a0),a0 ; current
; first, clear all links in mindex
moveq #0,d2
moveq #0,d3
moveq #0,d4
move.l a0,a1
clr1:
move.l (a1),d1
beq.s clr2
movem.l d2/d3/d4,8(a1)
move.l d1,a1
bra.s clr1
clr2:
move.l a0,a1
mr1:
move.l (a1),d0
beq.s exmr
move.l d2,a2 ; a2 = FIRSTBEZ = NULL
move.l $28(a1),d3 ; d3 = current->m.midcrc
move.l a0,d1 ; (d1) = a3 = bez
bezl:
move.l d1,a3
move.l (a3),d1
beq.s exbez
tst.l $8(a3) ; bez->parent != NULL?
bne.s bezl
cmp.l $2c(a3),d3 ; Bezcrc
bne.s bezl
bezfound:
move.l a1,$8(a3) ; bez->parent = current
move.l a2,d4 ; FIRSTBEZ?
beq.s nofirstbez
move.l a3,$c(a2) ; firstbez->bezlink = bez
move.l a3,a2 ; firstbez = bez
bra.s bezl
nofirstbez:
move.l a3,$10(a1) ; current->firstbez = bez;
move.l a3,a2 ; firstbez = bez
bra.s bezl
exbez:
move.l d0,a1
bra.s mr1
exmr:
movem.l (sp)+,d2-d4/a2-a3
rts
END