From 248fe0baf82d0d5e90adf6bc9854fd303d60dd26 Mon Sep 17 00:00:00 2001 From: alpine9000 Date: Sun, 17 Apr 2016 14:46:29 +1000 Subject: [PATCH] slightly more advanced sprite handling --- 028.game2/Makefile | 15 +++- 028.game2/assets/pig.pal | 4 + 028.game2/assets/sprite_pig_down.png | Bin 0 -> 1265 bytes 028.game2/assets/sprite_pig_left.png | Bin 0 -> 1273 bytes 028.game2/assets/sprite_pig_right.png | Bin 0 -> 1263 bytes 028.game2/assets/sprite_pig_up.png | Bin 0 -> 1262 bytes 028.game2/game1.s | 113 ++++++++++++++++---------- 028.game2/init.s | 3 +- 8 files changed, 88 insertions(+), 47 deletions(-) create mode 100644 028.game2/assets/pig.pal create mode 100644 028.game2/assets/sprite_pig_down.png create mode 100644 028.game2/assets/sprite_pig_left.png create mode 100644 028.game2/assets/sprite_pig_right.png create mode 100644 028.game2/assets/sprite_pig_up.png diff --git a/028.game2/Makefile b/028.game2/Makefile index d5d943b..4b8bf91 100644 --- a/028.game2/Makefile +++ b/028.game2/Makefile @@ -11,7 +11,7 @@ NUM_COLORS=8 BOOTBLOCK_ASM=alpine_bootblock.s OBJS=out/init.o out/utils.o out/image.o out/blit.o out/joystick.o -IMAGES=foreground.png background.png panel.png sprite.png +IMAGES=foreground.png background.png panel.png sprite_pig_up.png sprite_pig_down.png sprite_pig_left.png sprite_pig_right.png IMAGEDATA=$(addprefix out/, $(IMAGES:.png=.bin)) VASM_EXTRA_ARGS=-DNUM_COLORS=$(NUM_COLORS) @@ -40,8 +40,17 @@ out/tilemap-palette.s: assets/tilemap.png out/panel.bin: assets/panel.png $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 16 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/panel --use-palette=assets/panel.pal -out/sprite.bin: assets/sprite.png - $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite --palette-offset 16 +out/sprite_pig_up.bin: assets/sprite_pig_up.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_up --palette-offset 16 --use-palette=assets/pig.pal + +out/sprite_pig_down.bin: assets/sprite_pig_down.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_down --palette-offset 16 --use-palette=assets/pig.pal + +out/sprite_pig_left.bin: assets/sprite_pig_left.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_left --palette-offset 16 --use-palette=assets/pig.pal + +out/sprite_pig_right.bin: assets/sprite_pig_right.png + $(IMAGECON) --input $< $(IMAGECON_ARGS) --colors 4 --output-bitplanes --output-palette --full-color-palette-file --output-palette-asm --output-palette --output-png --output-copperlist --output out/sprite_pig_right --palette-offset 16 --use-palette=assets/pig.pal out/foreground-map.s: foreground.tmx diff --git a/028.game2/assets/pig.pal b/028.game2/assets/pig.pal new file mode 100644 index 0000000..179fe64 --- /dev/null +++ b/028.game2/assets/pig.pal @@ -0,0 +1,4 @@ +000 000 000 255 +252 114 100 255 +232 174 100 255 +171 049 027 255 diff --git a/028.game2/assets/sprite_pig_down.png b/028.game2/assets/sprite_pig_down.png new file mode 100644 index 0000000000000000000000000000000000000000..1c4414047fd0b50c6363d6e4710d2ecaa799883a GIT binary patch literal 1265 zcmV4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%Q zpGibPR5%f1WME+U55!~xCbD%xHL{=^u-Z@>T?mCAdj2U2pJEpb0|QV35fp%dj-Dui zgw9#bu$=)pAQ^!Q{=Zn4f}&332nrX@d1C`-f*BG)a~Qw|APfH~LNyFo4#Z~Zn}Z^R zH5S(I-_8KSFo4d7iGygAFn~$e)J@Z8OdU=G(8B7dav@WnR4Z00000NkvXXu0mjfS9Dx# literal 0 HcmV?d00001 diff --git a/028.game2/assets/sprite_pig_left.png b/028.game2/assets/sprite_pig_left.png new file mode 100644 index 0000000000000000000000000000000000000000..741f011607c17d6e95054542738f610f46e5db0c GIT binary patch literal 1273 zcmV4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%Q zr%6OXR5%f1WME+U55!~xCVV{$pvz+z0J1gE(Gy)APCkYKI91}1 zz%T$g3~=Z{5ymh8MV1H-h5^W70CEj60F(}}VqjAK4@^i{;D1%$)_8j&vaPz%k*00000NkvXXu0mjfOkrJG literal 0 HcmV?d00001 diff --git a/028.game2/assets/sprite_pig_right.png b/028.game2/assets/sprite_pig_right.png new file mode 100644 index 0000000000000000000000000000000000000000..bd4c343d2c3a9458666a3f92e0cbb028793076cf GIT binary patch literal 1263 zcmV4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%Q zok>JNR5%f1WME+U55!~xCPF%2tV_YGgrEUnvi}5MxY9C7+_Nz=;+Dt z#)g4G6G=cyq3}7(=5kZikbbu8D)5d>bQpPF=(}ULqq353>tii#;YXA;CD8lfhj3P<` Z2LMWGE8?S_w4?w4002ovPDHLkV1mweUQGZ1 literal 0 HcmV?d00001 diff --git a/028.game2/assets/sprite_pig_up.png b/028.game2/assets/sprite_pig_up.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c07e5cc0537c78bd9e1726ac7ee0017547f98d GIT binary patch literal 1262 zcmV4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%Q zoJmAMR5%f1WME+U55!~xCbD%xHL{=^@TVvRT?mEG(l-Z%Pq7QI8t}%3fdPbJ0G$sL z2hkW_00|y$-VUM|0v$cUG&&zF2qhSSG)gRx8U|nkUaUh6IFTdBb|Bcu-U5kA1kGVU zalvXsX}Gfy+E7{R_itwiJ^vIgh++Up6l4fKfUFs$4r?snGXPy~7#M&Ni0FPK#HTn6 Y0Fi7YX%yX50ssI207*qoM6N<$f+(9;UjP6A literal 0 HcmV?d00001 diff --git a/028.game2/game1.s b/028.game2/game1.s index 50a3677..93c711a 100644 --- a/028.game2/game1.s +++ b/028.game2/game1.s @@ -52,13 +52,36 @@ Reset: MainLoop: MOVE.W #$0024,BPLCON2(a6) + +SetupBoardLoop: add.l #1,frameCount move.l frameCount,d6 - ;; cmp.l #FOREGROUND_PLAYAREA_WIDTH_WORDS,frameCount - ;; bge GameLoop - ;; bra SetupBoardLoop + move.l #FOREGROUND_SCROLL_PIXELS*15,foregroundScrollPixels + ;; jsr WaitVerticalBlank + bsr HoriScrollPlayfield + jsr SwitchBuffers ; takes bitplane pointer offset in d0 + move.l foregroundScrollX,d0 + move.w #1,moving + bsr Update + bsr RenderNextForegroundFrame + bsr RenderNextBackgroundFrame + cmp.l #FOREGROUND_PLAYAREA_WIDTH_WORDS,frameCount + bge .gotoGameLoop + bra SetupBoardLoop +.gotoGameLoop: + jsr WaitVerticalBlank + bra GameLoop + GameLoop: + add.l #1,frameCount + move.l frameCount,d6 + + cmp.l #FOREGROUND_PLAYAREA_WIDTH_WORDS+25,d6 + bne .c1 + move.w #(DMAF_SPRITE|DMAF_BLITTER|DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a6) + move.w #$c0,spriteX +.c1: bsr InstallNextGreyPalette move.l #FOREGROUND_SCROLL_PIXELS,foregroundScrollPixels jsr WaitVerticalBlank @@ -73,7 +96,6 @@ GameLoop: move.w #0,moving .s2: - bsr ProcessJoystick bsr Update @@ -81,7 +103,7 @@ GameLoop: bsr RenderNextBackgroundFrame move.w #$f00,COLOR00(a6) - bra MainLoop + bra GameLoop ProcessJoystick: ;; 812 @@ -101,36 +123,28 @@ ProcessJoystick: cmp.b #3,joystickpos bne .notRight move.w #8,spriteR + move.l #spritePigRight,currentSprite .notRight: cmp.b #1,joystickpos bne .notUp move.w #8,spriteU + move.l #spritePigUp,currentSprite .notUp: cmp.b #5,joystickpos bne .notDown move.w #8,spriteD + move.l #spritePigDown,currentSprite .notDown: cmp.b #7,joystickpos bne .notLeft move.w #8,spriteL + move.l #spritePigLeft,currentSprite .notLeft: .skip: rts -SetupBoardLoop: - move.l #FOREGROUND_SCROLL_PIXELS*15,foregroundScrollPixels - ;; jsr WaitVerticalBlank - bsr HoriScrollPlayfield - jsr SwitchBuffers ; takes bitplane pointer offset in d0 - move.l foregroundScrollX,d0 - move.w #1,moving - bsr Update - bsr RenderNextForegroundFrame - bsr RenderNextBackgroundFrame - bra MainLoop - Update: @@ -143,15 +157,15 @@ Update: ;; up cmp.w #0,spriteU beq .notUp - sub.w #FOREGROUND_SCROLL_PIXELS*2,spriteY - sub.w #FOREGROUND_SCROLL_PIXELS*2,spriteYEnd + sub.w #2,spriteY + sub.w #2,spriteYEnd sub.w #1,spriteU .notUp: ;; down cmp.w #0,spriteD beq .notDown - add.w #FOREGROUND_SCROLL_PIXELS*2,spriteY - add.w #FOREGROUND_SCROLL_PIXELS*2,spriteYEnd + add.w #2,spriteY + add.w #2,spriteYEnd sub.w #1,spriteD .notDown: ;; left @@ -391,20 +405,21 @@ Level3InterruptHandler: move.w #INTF_VERTB,INTREQ(a6) ; clear interrupt bit add.l #1,verticalBlankCount - + + + move.l currentSprite,a0 move.w spriteX,d0 move.w d0,d1 andi #1,d1 - move.b d1,spriteControl + move.b d1,3(a0) ;spriteControl lsr.l #1,d0 - move.b d0,spriteHStart + move.b d0,1(a0) ;spriteHStart move.w spriteY,d0 - lsr.l #4,d0 - move.b d0,spriteVStart + move.b d0,(a0) ;spriteVStart move.w spriteYEnd,d0 - lsr.l #4,d0 - move.b d0,spriteVStop - move.l #sprite,SPR0PTH(a6) + move.b d0,2(a0) ;spriteVStop + move.l a0,SPR0PTH(a6) + move.l #deadSprite,SPR1PTH(a6) move.l #deadSprite,SPR2PTH(a6) move.l #deadSprite,SPR3PTH(a6) @@ -482,7 +497,7 @@ tileMapCopperPalettePtr: dc.l $fffffffe InstallSpriteColorPalette: - include "out/sprite-palette.s" + include "out/sprite_pig_up-palette.s" rts InstallColorPalette: @@ -548,17 +563,29 @@ tilemap: backgroundTilemap: incbin "out/background.bin" -sprite: -spriteVStart: - dc.b 0 -spriteHStart: - dc.b 0 -spriteVStop: - dc.b 0 -spriteControl: - dc.b 0 - incbin "out/sprite.bin" +spritePigUp: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_up.bin" dc.l 0 +spritePigDown: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_down.bin" + dc.l 0 +spritePigLeft: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_left.bin" + dc.l 0 +spritePigRight: + dc.w 0,0 + dc.w 0,0 + incbin "out/sprite_pig_right.bin" + dc.l 0 + +currentSprite: + dc.l spritePigRight deadSprite: dc.l 0 panel: @@ -590,11 +617,11 @@ spriteU: spriteD: dc.w 0 spriteX: - dc.w $c0 + dc.w $0 spriteY: - dc.w $e4*FOREGROUND_SCROLL_PIXELS + dc.w $e4 spriteYEnd: - dc.w $f4*FOREGROUND_SCROLL_PIXELS + dc.w $f5 joystick: dc.b 0 joystickpos: diff --git a/028.game2/init.s b/028.game2/init.s index 2fa312e..d770adb 100644 --- a/028.game2/init.s +++ b/028.game2/init.s @@ -32,7 +32,8 @@ Init: lea copperList,a0 move.l a0,COP1LC(a6) move.w COPJMP1(a6),d0 - move.w #(DMAF_SPRITE|DMAF_BLITTER|DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a6) + ;; move.w #(DMAF_SPRITE|DMAF_BLITTER|DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a6) + move.w #(DMAF_BLITTER|DMAF_SETCLR!DMAF_COPPER!DMAF_RASTER!DMAF_MASTER),DMACON(a6) ;; move.w #PF2PRI,BPLCON2(a6) ;; move.w #(INTF_SETCLR|INTF_VERTB|INTF_INTEN),INTENA(a6) movem.l (sp)+,d0-a6