2
0
mirror of https://frontier.innolan.net/github/amigaos-cross-toolchain6.git synced 2024-10-19 10:29:55 +00:00
Files
amigaos-cross-toolchain6/test/test7/testno.s
2017-05-27 00:00:48 +02:00

617 lines
8.3 KiB
ArmAsm

#NO_APP
.text
.align 2
.globl _object_collision
_object_collision:
movem.l #16190,-(sp)
move.l a0,a3
move.l a1,a5
move.w 50(sp),d4
move.w 28(a0),a1
move.w 26(a0),a0
cmp.w #2,d0
jeq .L13
.L2:
move.l _object_activeList,a2
clr.l 12(a5)
clr.l 8(a5)
clr.l 4(a5)
clr.l (a5)
move.w 24(a3),a4
lea (a4,a1.w),a4
move.l a4,d0
jpl .L15
addq.l #1,d0
.L15:
asr.l #1,d0
move.l d0,a4
move.w d0,d5
move.w 22(a3),a1
lea (a1,a0.w),a0
move.l a0,d0
jpl .L16
addq.l #1,d0
.L16:
asr.l #1,d0
move.w 90(a3),a0
move.w a0,d6
sub.w d1,d6
add.w d0,d6
move.w 92(a3),d2
add.w d1,d2
sub.w a0,d2
add.w d0,d2
clr.w d7
cmp.w #0,a2
jeq .L1
lea _abs,a6
and.l #65535,d4
.L8:
tst.w 94(a2)
jeq .L4
cmp.l a3,a2
jeq .L4
move.w 18(a2),d3
move.l a4,a0
sub.w d3,a0
move.l a0,d0
jsr (a6)
cmp.l d0,d4
jlt .L4
move.w 16(a2),d1
move.w 90(a2),a0
move.w d1,d0
sub.w a0,d0
add.w 92(a2),d0
cmp.w d6,d0
jle .L4
add.w a0,d1
cmp.w d2,d1
jge .L4
cmp.w d5,d3
jlt .L5
move.l a2,(a5)
cmp.w d6,d1
jlt .L7
.L14:
move.l a2,12(a5)
moveq #1,d7
.L4:
move.l 8(a2),a2
cmp.w #0,a2
jne .L8
.L1:
move.w d7,d0
movem.l (sp)+,#31996
rts
.L13:
add.w a0,a0
add.w a1,a1
jra .L2
.L5:
move.l a2,4(a5)
cmp.w d6,d1
jge .L14
.L7:
move.l a2,8(a5)
moveq #1,d7
move.l 8(a2),a2
cmp.w #0,a2
jne .L8
jra .L1
.align 2
.globl _enemy_closestPlayer
_enemy_closestPlayer:
movem.l #12336,-(sp)
move.l a0,a2
move.l _game_player2,d0
jeq .L29
move.l _game_player1,a1
cmp.w #0,a1
jeq .L17
move.l d0,a0
cmp.w #1,76(a1)
jeq .L34
cmp.w #1,76(a0)
jeq .L35
move.w 16(a2),a0
lea _abs,a3
sub.w 16(a1),a0
move.l a0,d0
jsr (a3)
move.l d0,d3
move.w 18(a2),a1
move.l _game_player1,a0
sub.w 18(a0),a1
move.l a1,d0
jsr (a3)
add.l d0,d3
move.w 16(a2),a1
move.l _game_player2,a0
sub.w 16(a0),a1
move.l a1,d0
jsr (a3)
move.l d0,d2
move.w 18(a2),a1
move.l _game_player2,a0
sub.w 18(a0),a1
move.l a1,d0
jsr (a3)
add.l d2,d0
cmp.l d3,d0
jgt .L29
move.l _game_player2,d0
.L17:
movem.l (sp)+,#3084
rts
.L29:
move.l _game_player1,d0
movem.l (sp)+,#3084
rts
.L34:
cmp.w #1,76(a0)
jne .L17
moveq #0,d0
movem.l (sp)+,#3084
rts
.L35:
move.l a1,d0
movem.l (sp)+,#3084
rts
.align 2
.globl _level1_doorIntelligence
_level1_doorIntelligence:
lea (-16,sp),sp
movem.l #15420,-(sp)
move.l d0,d3
move.l a0,a2
move.l a1,a3
move.w 18(a0),d0
cmp.w #63,d0
jeq .L78
cmp.w #65,d0
jle .L38
move.w 76(a0),d2
jne .L62
move.w 24(a1),d0
jle .L41
sub.w d3,d0
move.w d0,24(a1)
.L36:
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L62:
clr.w d2
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L78:
cmp.w #1456,16(a0)
jgt .L79
.L38:
clr.w 26(a2)
move.w #1,28(a2)
clr.w d2
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L79:
move.w #-1,26(a0)
clr.w d2
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L41:
move.l _game_player2,a4
cmp.w #0,a4
jeq .L74
move.l _game_player1,a0
cmp.w #0,a0
jeq .L43
cmp.w #1,76(a0)
jeq .L80
cmp.w #1,76(a4)
jeq .L81
move.w 16(a2),a1
lea _abs,a4
sub.w 16(a0),a1
move.l a1,d0
jsr (a4)
move.l d0,d5
move.w 18(a2),a1
move.l _game_player1,a0
sub.w 18(a0),a1
move.l a1,d0
jsr (a4)
add.l d0,d5
move.w 16(a2),a1
move.l _game_player2,a0
sub.w 16(a0),a1
move.l a1,d0
jsr (a4)
move.l d0,d4
move.w 18(a2),a1
move.l _game_player2,a0
sub.w 18(a0),a1
move.l a1,d0
jsr (a4)
add.l d4,d0
cmp.l d5,d0
jgt .L74
move.l _game_player2,a4
cmp.w #0,a4
jeq .L45
.L43:
move.w 16(a2),a0
sub.w _game_cameraX,a0
cmp.w #0,a0
jle .L82
.L48:
cmp.w #319,a0
jle .L50
move.w #50,24(a3)
move.w #-1,26(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L82:
move.w #50,24(a3)
move.w #1,26(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L80:
cmp.w #1,76(a4)
jne .L43
.L45:
clr.w 26(a2)
clr.w 28(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L74:
move.l _game_player1,a4
cmp.w #0,a4
jne .L43
jra .L45
.L50:
pea 1.w
moveq #1,d1
lea (36,sp),a1
move.l a2,a0
move.w d3,d0
ext.l d0
jsr _object_collision
move.w d0,d4
addq.l #4,sp
jeq .L51
tst.l 40(sp)
jeq .L52
move.w #1,26(a2)
clr.w 28(a2)
move.w #50,24(a3)
.L84:
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L81:
move.l a0,a4
move.w 16(a2),a0
sub.w _game_cameraX,a0
cmp.w #0,a0
jgt .L48
jra .L82
.L51:
move.l 38(a4),a0
move.w 4(a0),a1
move.w a1,d0
asr.w #2,d0
move.w d0,a1
add.w 16(a4),a1
move.w a1,a1
move.l 38(a2),a0
move.w 4(a0),d0
asr.w #2,d0
add.w 16(a2),d0
lea _abs,a5
sub.w d0,a1
move.l a1,d0
jsr (a5)
moveq #31,d1
cmp.l d0,d1
jge .L56
move.w 16(a2),d0
cmp.w 16(a4),d0
sge d4
ext.w d4
or.w #1,d4
.L56:
move.w d4,26(a2)
move.w 18(a2),a0
sub.w 18(a4),a0
move.l a0,d0
jsr (a5)
move.w 14(a3),a0
cmp.l d0,a0
jlt .L57
tst.w 26(a2)
jne .L58
move.w 40(a3),d0
jle .L83
sub.w d3,d0
move.w d0,40(a3)
.L58:
clr.w 28(a2)
.L85:
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L57:
move.w 18(a2),d1
move.w 18(a4),d0
cmp.w d1,d0
jle .L60
move.w 48(a3),28(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L52:
tst.l 44(sp)
jeq .L54
move.w #-1,26(a2)
clr.w 28(a2)
move.w #50,24(a3)
jra .L84
.L60:
cmp.w d1,d0
jge .L36
move.w 48(a3),d1
neg.w d1
move.w d1,28(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L83:
move.w 42(a3),40(a3)
moveq #1,d2
clr.w 28(a2)
jra .L85
.L54:
tst.l 32(sp)
jeq .L55
clr.w 26(a2)
move.w #1,28(a2)
move.w #50,24(a3)
jra .L84
.L55:
clr.w 26(a2)
move.w #-1,28(a2)
move.w #50,24(a3)
jra .L84
.align 2
.globl _enemy_intelligence
_enemy_intelligence:
lea (-16,sp),sp
movem.l #15420,-(sp)
move.l d0,d3
move.l a0,a2
move.l a1,a3
move.w 76(a0),d2
jne .L109
move.w 24(a1),d0
jle .L88
sub.w d3,d0
move.w d0,24(a1)
.L86:
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L109:
clr.w d2
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L88:
move.l _game_player2,a4
cmp.w #0,a4
jeq .L121
move.l _game_player1,a0
cmp.w #0,a0
jeq .L90
cmp.w #1,76(a0)
jeq .L125
cmp.w #1,76(a4)
jeq .L126
move.w 16(a2),a1
lea _abs,a4
sub.w 16(a0),a1
move.l a1,d0
jsr (a4)
move.l d0,d5
move.w 18(a2),a1
move.l _game_player1,a0
sub.w 18(a0),a1
move.l a1,d0
jsr (a4)
add.l d0,d5
move.w 16(a2),a1
move.l _game_player2,a0
sub.w 16(a0),a1
move.l a1,d0
jsr (a4)
move.l d0,d4
move.w 18(a2),a1
move.l _game_player2,a0
sub.w 18(a0),a1
move.l a1,d0
jsr (a4)
add.l d4,d0
cmp.l d5,d0
jgt .L121
move.l _game_player2,a4
cmp.w #0,a4
jeq .L92
.L90:
move.w 16(a2),a0
sub.w _game_cameraX,a0
cmp.w #0,a0
jle .L127
cmp.w #319,a0
jle .L97
move.w #50,24(a3)
move.w #-1,26(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L121:
move.l _game_player1,a4
cmp.w #0,a4
jne .L90
jra .L92
.L125:
cmp.w #1,76(a4)
jne .L90
.L92:
clr.w 26(a2)
clr.w 28(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L127:
move.w #50,24(a3)
move.w #1,26(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L97:
pea 1.w
moveq #1,d1
lea (36,sp),a1
move.l a2,a0
move.w d3,d0
ext.l d0
jsr _object_collision
move.w d0,d4
addq.l #4,sp
jeq .L98
tst.l 40(sp)
jeq .L99
move.w #1,26(a2)
clr.w 28(a2)
move.w #50,24(a3)
.L129:
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L126:
move.l a0,a4
jra .L90
.L98:
move.l 38(a4),a0
move.w 4(a0),a1
move.w a1,d0
asr.w #2,d0
move.w d0,a1
add.w 16(a4),a1
move.w a1,a1
move.l 38(a2),a0
move.w 4(a0),d0
asr.w #2,d0
add.w 16(a2),d0
lea _abs,a5
sub.w d0,a1
move.l a1,d0
jsr (a5)
moveq #31,d1
cmp.l d0,d1
jge .L103
move.w 16(a2),d0
cmp.w 16(a4),d0
sge d4
ext.w d4
or.w #1,d4
.L103:
move.w d4,26(a2)
move.w 18(a2),a0
sub.w 18(a4),a0
move.l a0,d0
jsr (a5)
move.w 14(a3),a0
cmp.l d0,a0
jlt .L104
tst.w 26(a2)
jne .L105
move.w 40(a3),d0
jle .L128
sub.w d3,d0
move.w d0,40(a3)
.L105:
clr.w 28(a2)
.L130:
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L104:
move.w 18(a2),d1
move.w 18(a4),d0
cmp.w d1,d0
jle .L107
move.w 48(a3),28(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L99:
tst.l 44(sp)
jeq .L101
move.w #-1,26(a2)
clr.w 28(a2)
move.w #50,24(a3)
jra .L129
.L107:
cmp.w d1,d0
jge .L86
move.w 48(a3),d1
neg.w d1
move.w d1,28(a2)
move.w d2,d0
movem.l (sp)+,#15420
lea (16,sp),sp
rts
.L128:
move.w 42(a3),40(a3)
moveq #1,d2
clr.w 28(a2)
jra .L130
.L101:
tst.l 32(sp)
jeq .L102
clr.w 26(a2)
move.w #1,28(a2)
move.w #50,24(a3)
jra .L129
.L102:
clr.w 26(a2)
move.w #-1,28(a2)
move.w #50,24(a3)
jra .L129