misc/prwbit2.s
;========================================================================================
; prwbit2.s
; Copyright (C) 2003-2025 Makoto Kamada
;
; This file is part of the XEiJ (X68000 Emulator in Java).
; You can use, modify and redistribute the XEiJ if the conditions are met.
; Read the XEiJ License for more details.
; https://stdkmd.net/xeij/
;========================================================================================
;--------------------------------------------------------------------------------
;スプライトスクロールレジスタの4ワード目(プライオリティ)のビット2の動作を確認します
;--------------------------------------------------------------------------------
PALET_BLOCK equ 8
.include doscall.mac
.include iocscall.mac
clr.l -(sp)
DOS _SUPER
move.l d0,(sp)
moveq.l #2,d1 ;256x256
IOCS _CRTMOD
IOCS _SP_INIT
IOCS _SP_ON
move.l #0,d1 ;バックグラウンド0
move.l #0,d2 ;テキストエリア0
move.l #1,d3 ;表示あり
IOCS _BGCTRLST
move.l #1,d1 ;バックグラウンド1
move.l #1,d2 ;テキストエリア1
move.l #1,d3 ;表示あり
IOCS _BGCTRLST
;青1
move.l #1,d1 ;パレットコード1
move.l #PALET_BLOCK,d2 ;パレットブロック
move.l #$003E,d3 ;カラーコード青
IOCS _SPALET
;赤2
move.l #2,d1 ;パレットコード2
move.l #PALET_BLOCK,d2 ;パレットブロック
move.l #$07C0,d3 ;カラーコード赤
IOCS _SPALET
;緑3
move.l #3,d1 ;パレットコード3
move.l #PALET_BLOCK,d2 ;パレットブロック
move.l #$F800,d3 ;カラーコード緑
IOCS _SPALET
;明るい灰色15
move.l #15,d1 ;パレットコード15
move.l #PALET_BLOCK,d2 ;パレットブロック
move.l #%10101_10101_10101_0,d3 ;カラーコード明るい灰色
IOCS _SPALET
;パターン1
move.l #1,d1 ;パターン1
move.l #1,d2 ;16x16
lea.l pattern_1,a1 ;パターンデータ1
IOCS _SP_DEFCG
;パターン2
move.l #2,d1 ;パターン2
move.l #1,d2 ;16x16
lea.l pattern_2,a1 ;パターンデータ2
IOCS _SP_DEFCG
;パターン3
move.l #3,d1 ;パターン3
move.l #1,d2 ;16x16
lea.l pattern_3,a1 ;パターンデータ3
IOCS _SP_DEFCG
;バックグラウンド0
move.l #0,d1 ;テキストエリア0
move.l #0,d2 ;X座標
move.l #2,d3 ;Y座標
move.l #PALET_BLOCK<<8|4*1,d4 ;パレットブロック,パターン1
@@:
IOCS _BGTEXTST
addq.l #1,d2
cmp.l #16,d2
blo @b
;バックグラウンド1
move.l #1,d1 ;テキストエリア1
move.l #0,d2 ;X座標
move.l #3,d3 ;Y座標
move.l #PALET_BLOCK<<8|4*2,d4 ;パレットブロック,パターン2
@@:
IOCS _BGTEXTST
add.l #1,d2
cmp.l #16,d2
blo @b
;スプライト
move.l #1,d1 ;スプライト1
move.l #16,d2 ;X座標
move.l #32+4,d3 ;Y座標
move.l #PALET_BLOCK<<8|3,d4 ;パレットブロック、パターン3
move.l #0,d5 ;プライオリティ
@@:
.if 0
IOCS _SP_REGST
.else
movem.l d1/a0,-(sp)
lea.l $00EB0000,a0
lsl.w #3,d1
movem.w d2-d5,(a0,d1.w)
movem.l (sp)+,d1/a0
.endif
add.l #1,d1
add.l #16,d2
add.l #1,d5
cmp.l #8,d5
blo @b
DOS _SUPER
addq.l #4,sp
DOS _EXIT
pattern_1:
.rept 8
.dc.l $00110011
.dc.l $00110011
.dc.l $11001100
.dc.l $11001100
.endm
pattern_2:
.rept 8
.dc.l $00220022
.dc.l $00220022
.dc.l $22002200
.dc.l $22002200
.endm
pattern_3:
.rept 4
.dc.l $00003333
.dc.l $00003333
.dc.l $00003333
.dc.l $00003333
.dc.l $33330000
.dc.l $33330000
.dc.l $33330000
.dc.l $33330000
.endm