mirror of
https://frontier.innolan.net/github/amigaos-cross-toolchain6.git
synced 2024-10-19 10:29:55 +00:00
160 lines
2.4 KiB
ArmAsm
160 lines
2.4 KiB
ArmAsm
#NO_APP
|
|
.text
|
|
.align 2
|
|
.globl _star_add
|
|
_star_add:
|
|
movem.l #15416,-(sp)
|
|
move.l a0,a2
|
|
move.l d0,d2
|
|
move.l _star_cycle.1013,d0
|
|
moveq #1,d1
|
|
cmp.l d0,d1
|
|
jeq .L3
|
|
moveq #2,d1
|
|
cmp.l d0,d1
|
|
jeq .L4
|
|
tst.l d0
|
|
jeq .L11
|
|
.L2:
|
|
addq.l #1,d0
|
|
moveq #2,d1
|
|
cmp.l d0,d1
|
|
jge .L12
|
|
.L6:
|
|
clr.l _star_cycle.1013
|
|
move.w d2,d0
|
|
ext.l d0
|
|
movem.l (sp)+,#7228
|
|
rts
|
|
.L11:
|
|
move.w 16(a0),d5
|
|
add.w #22,d5
|
|
move.w 18(a0),d4
|
|
add.w #-40,d4
|
|
lea _star_getFree,a4
|
|
jsr (a4)
|
|
move.l d0,a0
|
|
move.w #42,22(a0)
|
|
move.w d2,d3
|
|
add.w d2,d3
|
|
move.w d3,d0
|
|
add.w d3,d0
|
|
move.w d0,12(a0)
|
|
move.w #-10,14(a0)
|
|
move.w d5,8(a0)
|
|
move.w d4,10(a0)
|
|
move.w 18(a2),d0
|
|
add.w #-10,d0
|
|
move.w d0,24(a0)
|
|
lea _star_addToActive,a3
|
|
jsr (a3)
|
|
move.w 16(a2),d5
|
|
add.w #22,d5
|
|
move.w 18(a2),d4
|
|
add.w #-42,d4
|
|
jsr (a4)
|
|
move.l d0,a0
|
|
move.w #42,22(a0)
|
|
move.w d2,d0
|
|
neg.w d0
|
|
add.w d0,d0
|
|
add.w d0,d0
|
|
move.w d0,12(a0)
|
|
move.w #-8,14(a0)
|
|
move.w d5,8(a0)
|
|
move.w d4,10(a0)
|
|
move.w 18(a2),d1
|
|
add.w #-10,d1
|
|
move.w d1,24(a0)
|
|
jsr (a3)
|
|
move.w 16(a2),d5
|
|
add.w #22,d5
|
|
move.w 18(a2),d4
|
|
add.w #-50,d4
|
|
jsr (a4)
|
|
move.l d0,a0
|
|
move.w #42,22(a0)
|
|
move.w d3,12(a0)
|
|
move.w #-10,14(a0)
|
|
move.w d5,8(a0)
|
|
move.w d4,10(a0)
|
|
move.w 18(a2),a2
|
|
lea (-10,a2),a2
|
|
move.w a2,24(a0)
|
|
jsr (a3)
|
|
move.l _star_cycle.1013,d0
|
|
.L13:
|
|
addq.l #1,d0
|
|
moveq #2,d1
|
|
cmp.l d0,d1
|
|
jlt .L6
|
|
.L12:
|
|
move.l d0,_star_cycle.1013
|
|
move.w d2,d0
|
|
ext.l d0
|
|
movem.l (sp)+,#7228
|
|
rts
|
|
.L4:
|
|
move.w 16(a0),d4
|
|
add.w #22,d4
|
|
move.w 18(a0),d3
|
|
add.w #-42,d3
|
|
lea _star_getFree,a4
|
|
jsr (a4)
|
|
move.l d0,a0
|
|
move.w #42,22(a0)
|
|
move.w d2,d0
|
|
neg.w d0
|
|
add.w d0,d0
|
|
add.w d0,d0
|
|
move.w d0,12(a0)
|
|
move.w #-8,14(a0)
|
|
move.w d4,8(a0)
|
|
move.w d3,10(a0)
|
|
move.w 18(a2),d0
|
|
add.w #-10,d0
|
|
move.w d0,24(a0)
|
|
lea _star_addToActive,a3
|
|
jsr (a3)
|
|
move.w 16(a2),d4
|
|
add.w #22,d4
|
|
move.w 18(a2),d3
|
|
add.w #-50,d3
|
|
jsr (a4)
|
|
move.l d0,a0
|
|
move.w #42,22(a0)
|
|
move.w d2,d0
|
|
add.w d2,d0
|
|
move.w d0,12(a0)
|
|
move.w #-10,14(a0)
|
|
move.w d4,8(a0)
|
|
move.w d3,10(a0)
|
|
move.w 18(a2),a2
|
|
lea (-10,a2),a2
|
|
move.w a2,24(a0)
|
|
jsr (a3)
|
|
move.l _star_cycle.1013,d0
|
|
jra .L13
|
|
.L3:
|
|
move.w 16(a0),d4
|
|
add.w #22,d4
|
|
move.w 18(a0),d3
|
|
add.w #-40,d3
|
|
jsr _star_getFree
|
|
move.l d0,a0
|
|
move.w #42,22(a0)
|
|
move.w d2,d0
|
|
add.w d2,d0
|
|
add.w d0,d0
|
|
move.w d0,12(a0)
|
|
move.w #-10,14(a0)
|
|
move.w d4,8(a0)
|
|
move.w d3,10(a0)
|
|
move.w 18(a2),a2
|
|
lea (-10,a2),a2
|
|
move.w a2,24(a0)
|
|
jsr _star_addToActive
|
|
move.l _star_cycle.1013,d0
|
|
jra .L2
|
|
.lcomm _star_cycle.1013,4
|