mirror of
https://frontier.innolan.net/github/amigaos-cross-toolchain6.git
synced 2024-10-19 10:29:55 +00:00
311 lines
4.3 KiB
ArmAsm
311 lines
4.3 KiB
ArmAsm
#NO_APP
|
|
.text
|
|
.align 2
|
|
.globl _gfx_fillRectSmallScreen
|
|
_gfx_fillRectSmallScreen:
|
|
movem.l #16190,-(sp)
|
|
move.l 48(sp),d4
|
|
move.l 52(sp),d3
|
|
moveq #15,d5
|
|
and.l d0,d5
|
|
move.l d5,d2
|
|
add.l d5,d2
|
|
lea _startBitPatterns.1038,a2
|
|
move.w (a2,d2.l),d7
|
|
move.w a1,d2
|
|
add.w d0,d2
|
|
moveq #15,d6
|
|
and.l d6,d2
|
|
add.l d2,d2
|
|
lea _endBitPatterns.1039,a2
|
|
move.w (a2,d2.l),a4
|
|
moveq #0,d2
|
|
move.w a1,d2
|
|
move.l d5,a1
|
|
lea 15(a1,d2.l),a1
|
|
move.l a1,d5
|
|
asr.l #4,d5
|
|
moveq #1,d2
|
|
cmp.l d5,d2
|
|
jeq .L19
|
|
mulu.w #200,d1
|
|
lsr.w #3,d0
|
|
and.l #65535,d0
|
|
add.l d1,d0
|
|
lea (a0,d0.l),a5
|
|
and.l #65535,d3
|
|
move.w d4,d2
|
|
lsl.w #6,d2
|
|
or.w #1,d2
|
|
move.l d5,d6
|
|
subq.l #1,d6
|
|
add.l d6,d6
|
|
move.w d5,d0
|
|
subq.w #2,d0
|
|
move.w d0,a0
|
|
add.w d0,a0
|
|
move.w #200,a1
|
|
sub.w a0,a1
|
|
move.w a1,a3
|
|
lsl.w #6,d4
|
|
or.w d0,d4
|
|
move.w d4,a6
|
|
moveq #1,d0
|
|
cmp.l d5,d0
|
|
jge .L20
|
|
.L3:
|
|
subq.l #2,d5
|
|
jeq .L21
|
|
moveq #0,d4
|
|
lea _hw_waitBlitter,a2
|
|
.L9:
|
|
moveq #1,d5
|
|
lsl.l d4,d5
|
|
and.l d3,d5
|
|
jsr (a2)
|
|
move.l #14676032,a0
|
|
move.w #970,(a0)+
|
|
clr.w (a0)+
|
|
move.w #-1,(a0)+
|
|
move.w #-1,(a0)+
|
|
move.w #198,30(a0)
|
|
move.w #198,24(a0)
|
|
clr.w 26(a0)
|
|
clr.w 28(a0)
|
|
move.w d7,44(a0)
|
|
tst.l d5
|
|
sne d0
|
|
ext.w d0
|
|
move.w d0,42(a0)
|
|
move.l a5,(a0)
|
|
move.l a5,12(a0)
|
|
move.w d2,16(a0)
|
|
jsr (a2)
|
|
move.l #14676032,a0
|
|
move.w #970,(a0)
|
|
move.w a4,52(a0)
|
|
move.l a5,d0
|
|
add.l d6,d0
|
|
move.l d0,8(a0)
|
|
move.l d0,20(a0)
|
|
move.w d2,24(a0)
|
|
jsr (a2)
|
|
move.w #256,d0
|
|
tst.l d5
|
|
jeq .L8
|
|
move.w #511,d0
|
|
.L8:
|
|
move.l #14676032,a0
|
|
move.w d0,(a0)
|
|
move.w a3,38(a0)
|
|
move.l a5,d0
|
|
addq.l #2,d0
|
|
move.l d0,20(a0)
|
|
move.w a6,24(a0)
|
|
lea (40,a5),a5
|
|
addq.l #1,d4
|
|
moveq #5,d0
|
|
cmp.l d4,d0
|
|
jne .L9
|
|
.L1:
|
|
movem.l (sp)+,#31996
|
|
rts
|
|
.L19:
|
|
move.w a4,d2
|
|
and.w d2,d7
|
|
mulu.w #200,d1
|
|
lsr.w #3,d0
|
|
and.l #65535,d0
|
|
add.l d1,d0
|
|
lea (a0,d0.l),a5
|
|
and.l #65535,d3
|
|
move.w d4,d2
|
|
lsl.w #6,d2
|
|
or.w #1,d2
|
|
move.l d5,d6
|
|
subq.l #1,d6
|
|
add.l d6,d6
|
|
move.w d5,d0
|
|
subq.w #2,d0
|
|
move.w d0,a0
|
|
add.w d0,a0
|
|
move.w #200,a1
|
|
sub.w a0,a1
|
|
move.w a1,a3
|
|
lsl.w #6,d4
|
|
or.w d0,d4
|
|
move.w d4,a6
|
|
moveq #1,d0
|
|
cmp.l d5,d0
|
|
jlt .L3
|
|
.L20:
|
|
moveq #0,d4
|
|
lea _hw_waitBlitter,a2
|
|
moveq #1,d6
|
|
.L4:
|
|
move.l d6,d5
|
|
lsl.l d4,d5
|
|
and.l d3,d5
|
|
jsr (a2)
|
|
move.l #14676032,a3
|
|
move.w #970,(a3)
|
|
clr.w 2(a3)
|
|
move.w #-1,4(a3)
|
|
move.w #-1,6(a3)
|
|
move.w #198,38(a3)
|
|
move.w #198,32(a3)
|
|
clr.w 34(a3)
|
|
clr.w 36(a3)
|
|
move.w d7,52(a3)
|
|
tst.l d5
|
|
sne d0
|
|
ext.w d0
|
|
move.w d0,50(a3)
|
|
move.l a5,8(a3)
|
|
move.l a5,20(a3)
|
|
move.w d2,24(a3)
|
|
lea (40,a5),a5
|
|
addq.l #1,d4
|
|
moveq #5,d1
|
|
cmp.l d4,d1
|
|
jeq .L1
|
|
move.l d6,d5
|
|
lsl.l d4,d5
|
|
and.l d3,d5
|
|
jsr (a2)
|
|
move.w #970,(a3)+
|
|
clr.w (a3)+
|
|
move.w #-1,(a3)+
|
|
move.w #-1,(a3)+
|
|
move.w #198,30(a3)
|
|
move.w #198,24(a3)
|
|
clr.w 26(a3)
|
|
clr.w 28(a3)
|
|
move.w d7,44(a3)
|
|
tst.l d5
|
|
sne d0
|
|
ext.w d0
|
|
move.w d0,42(a3)
|
|
move.l a5,(a3)
|
|
move.l a5,12(a3)
|
|
move.w d2,16(a3)
|
|
lea (40,a5),a5
|
|
addq.l #1,d4
|
|
moveq #5,d1
|
|
cmp.l d4,d1
|
|
jne .L4
|
|
jra .L1
|
|
.L21:
|
|
moveq #0,d5
|
|
lea _hw_waitBlitter,a2
|
|
moveq #1,d4
|
|
.L7:
|
|
move.l d4,d0
|
|
lsl.l d5,d0
|
|
and.l d3,d0
|
|
move.l d0,a3
|
|
jsr (a2)
|
|
move.l #14676032,a6
|
|
move.w #970,(a6)
|
|
clr.w 2(a6)
|
|
move.w #-1,4(a6)
|
|
move.w #-1,6(a6)
|
|
move.w #198,38(a6)
|
|
move.w #198,32(a6)
|
|
clr.w 34(a6)
|
|
clr.w 36(a6)
|
|
move.w d7,52(a6)
|
|
cmp.w #0,a3
|
|
sne d0
|
|
ext.w d0
|
|
move.w d0,50(a6)
|
|
move.l a5,8(a6)
|
|
move.l a5,20(a6)
|
|
move.w d2,24(a6)
|
|
jsr (a2)
|
|
move.w #970,(a6)
|
|
move.w a4,52(a6)
|
|
move.l a5,d0
|
|
add.l d6,d0
|
|
move.l d0,8(a6)
|
|
move.l d0,20(a6)
|
|
move.w d2,24(a6)
|
|
lea (40,a5),a5
|
|
addq.l #1,d5
|
|
moveq #5,d1
|
|
cmp.l d5,d1
|
|
jeq .L1
|
|
move.l d4,d0
|
|
lsl.l d5,d0
|
|
and.l d3,d0
|
|
move.l d0,a3
|
|
jsr (a2)
|
|
move.w #970,(a6)
|
|
clr.w 2(a6)
|
|
move.w #-1,4(a6)
|
|
move.w #-1,6(a6)
|
|
move.w #198,38(a6)
|
|
move.w #198,32(a6)
|
|
clr.w 34(a6)
|
|
clr.w 36(a6)
|
|
move.w d7,52(a6)
|
|
cmp.w #0,a3
|
|
sne d0
|
|
ext.w d0
|
|
move.w d0,50(a6)
|
|
move.l a5,8(a6)
|
|
move.l a5,20(a6)
|
|
move.w d2,24(a6)
|
|
jsr (a2)
|
|
move.w #970,(a6)
|
|
move.w a4,52(a6)
|
|
move.l a5,d0
|
|
add.l d6,d0
|
|
move.l d0,8(a6)
|
|
move.l d0,20(a6)
|
|
move.w d2,24(a6)
|
|
lea (40,a5),a5
|
|
addq.l #1,d5
|
|
moveq #5,d1
|
|
cmp.l d5,d1
|
|
jne .L7
|
|
jra .L1
|
|
.align 2
|
|
_endBitPatterns.1039:
|
|
.word -1
|
|
.word -32768
|
|
.word -16384
|
|
.word -8192
|
|
.word -4096
|
|
.word -2048
|
|
.word -1024
|
|
.word -512
|
|
.word -256
|
|
.word -128
|
|
.word -64
|
|
.word -32
|
|
.word -16
|
|
.word -8
|
|
.word -4
|
|
.word -2
|
|
.word -1
|
|
.align 2
|
|
_startBitPatterns.1038:
|
|
.word -1
|
|
.word 32767
|
|
.word 16383
|
|
.word 8191
|
|
.word 4095
|
|
.word 2047
|
|
.word 1023
|
|
.word 511
|
|
.word 255
|
|
.word 127
|
|
.word 63
|
|
.word 31
|
|
.word 15
|
|
.word 7
|
|
.word 3
|
|
.word 1
|
|
.word 0
|