home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
625.lha
/
STScan_v2.0
/
scnplane.asm
< prev
next >
Wrap
Assembly Source File
|
1992-02-22
|
6KB
|
435 lines
;Screen and File Routines
cseg
xref _asmlines
xdef _p64to16
_p64to16:
movem.l d0-d7/a0-a6,-(a7)
move.l 64(a7),a0
move.l 68(a7),d7
subq.w #1,d7
move.l a0,a1
slp: move.w (a0)+,d0
lsr.w #2,d0
lsl.b #4,d0
lsr.w #4,d0
move.b d0,(a1)+
dbra d7,slp
movem.l (a7)+,d0-d7/a0-a6
rts
xdef _clrscr
_clrscr:
movem.l d0-d7/a0-a6,-(a7)
move.l 64(a7),a1
move.l 68(a7),a2
move.l 72(a7),a3
move.l 76(a7),a4
move.w _asmlines,d5
clrlp0: move.w #38,d7
clrlp1: clr.w (a1)+
clr.w (a2)+
clr.w (a3)+
clr.w (a4)+
dbra d7,clrlp1
lea.l 2(a1),a1
lea.l 2(a2),a2
lea.l 2(a3),a3
lea.l 2(a4),a4
dbra d5,clrlp0
movem.l (a7)+,d0-d7/a0-a6
rts
xdef _bwview
_bwview:
movem.l d0-d7/a0-a6,-(a7)
move.l 64(a7),a0
move.l 68(a7),a1
move.l 72(a7),a2
move.l 76(a7),a3
move.l 80(a7),a4
move.l 84(a7),a5
move.w _asmlines,d5
bwlp0: move.l a0,a6
move.w #38,d7
bwlp1: move.w (a6)+,d6
move.w d6,(a1)+
clr.w (a2)+
clr.w (a3)+
clr.w (a4)+
dbra d7,bwlp1
lea.l 2(a1),a1
lea.l 2(a2),a2
lea.l 2(a3),a3
lea.l 2(a4),a4
adda.l a5,a0
dbra d5,bwlp0
movem.l (a7)+,d0-d7/a0-a6
rts
xdef _grayview
_grayview:
movem.l d0-d7/a0-a6,-(a7)
move.l 64(a7),a0
move.l 68(a7),a1
move.l 72(a7),a2
move.l 76(a7),a3
move.l 80(a7),a4
move.l 84(a7),a5
move.l #$10000000,d6
move.w _asmlines,d5
grlp0: move.l a0,a6
move.w #77,d7
grlp1: move.l (a6)+,d0
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
move.b d1,(a1)+
move.b d2,(a2)+
move.b d3,(a3)+
move.b d4,(a4)+
dbra d7,grlp1
lea.l 2(a1),a1
lea.l 2(a2),a2
lea.l 2(a3),a3
lea.l 2(a4),a4
adda.l a5,a0
dbra d5,grlp0
movem.l (a7)+,d0-d7/a0-a6
rts
xdef _vplanesep
_vplanesep:
movem.l d0-d7/a0-a6,-(a7)
move.l 64(a7),a0
move.l 68(a7),a1
move.l 72(a7),a2
move.l 76(a7),a3
move.l 80(a7),a4
move.l 84(a7),d7
move.l #$10000000,d6
subq.w #1,d7
vplp: move.l (a0)+,d0
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
add.l d6,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
move.b d1,(a1)+
move.b d2,(a2)+
move.b d3,(a3)+
move.b d4,(a4)+
dbra d7,vplp
movem.l (a7)+,d0-d7/a0-a6
rts
xdef _fplanesep
_fplanesep:
movem.l d0-d7/a0-a6,-(a7)
move.l 64(a7),a0
move.l 68(a7),a1
move.l 72(a7),a2
move.l 76(a7),a3
move.l 80(a7),a4
move.l 84(a7),d7
subq.w #1,d7
fplp: move.l (a0)+,d0
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
lsl.l #1,d0
roxl.b #1,d4
lsl.l #1,d0
roxl.b #1,d3
lsl.l #1,d0
roxl.b #1,d2
lsl.l #1,d0
roxl.b #1,d1
not.b d1
not.b d2
not.b d3
not.b d4
move.b d1,(a1)+
move.b d2,(a2)+
move.b d3,(a3)+
move.b d4,(a4)+
dbra d7,fplp
movem.l (a7)+,d0-d7/a0-a6
rts
xdef _fplanegen
_fplanegen:
movem.l d0-d7/a0-a6,-(a7)
move.l 64(a7),a0
move.l 68(a7),a1
move.l 72(a7),a2
move.l 76(a7),a3
move.l 80(a7),a4
move.l 84(a7),d7
subq.w #1,d7
fpglp: move.b (a1)+,d1
not.b d1
move.b (a2)+,d2
not.b d2
move.b (a3)+,d3
not.b d3
move.b (a4)+,d4
not.b d4
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
lsl.b #1,d4
roxl.l #1,d0
lsl.b #1,d3
roxl.l #1,d0
lsl.b #1,d2
roxl.l #1,d0
lsl.b #1,d1
roxl.l #1,d0
move.l d0,(a0)+
dbra d7,fpglp
movem.l (a7)+,d0-d7/a0-a6
rts