Right side ok
This commit is contained in:
commit
78b0881d22
|
@ -10,7 +10,7 @@ BlitFillColor:
|
|||
;; d2 - ypos
|
||||
|
||||
;; movem.l d2-d5/a0,-(sp)
|
||||
mulu.w #SCREEN_WIDTH_BYTES*SCREEN_BIT_DEPTH,d2
|
||||
mulu.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH,d2
|
||||
add.l d2,a0
|
||||
move.b #0,d3 ; bitplane #
|
||||
.loop:
|
||||
|
@ -26,14 +26,14 @@ BlitFillColor:
|
|||
|
||||
move.w #0,BLTCON1(A6)
|
||||
move.w d5,BLTCON0(A6)
|
||||
move.w #SCREEN_WIDTH_BYTES*(SCREEN_BIT_DEPTH-1),BLTDMOD(a6)
|
||||
move.w #BITPLANE_WIDTH_BYTES*(SCREEN_BIT_DEPTH-1),BLTDMOD(a6)
|
||||
move.l a0,BLTDPTH(a6)
|
||||
|
||||
lsl.w #6,d4
|
||||
ori.w #SCREEN_WIDTH_WORDS,d4
|
||||
ori.w #BITPLANE_WIDTH_WORDS,d4
|
||||
move.w d4,BLTSIZE(a6)
|
||||
add.b #1,d3
|
||||
add.w #SCREEN_WIDTH_BYTES,a0
|
||||
add.w #BITPLANE_WIDTH_BYTES,a0
|
||||
cmp.b #SCREEN_BIT_DEPTH,d3 ; all planes for a single line done ?
|
||||
bne .loop ; no ? do the next plane
|
||||
|
||||
|
|
|
@ -22,9 +22,9 @@ DrawText8:
|
|||
move.w #BLIT_SRCB|BLIT_SRCC|BLIT_DEST|BLIT_LF_MINTERM,d6 ; BLTCON0 value
|
||||
endif
|
||||
move.w #FONTMAP_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTBMOD(a6) ; B modulo
|
||||
move.w #SCREEN_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTCMOD(a6) ; C modulo
|
||||
move.w #SCREEN_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTDMOD(a6) ; D modulo
|
||||
mulu.w #SCREEN_WIDTH_BYTES*SCREEN_BIT_DEPTH,d1 ; ypos bytes
|
||||
move.w #BITPLANE_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTCMOD(a6) ; C modulo
|
||||
move.w #BITPLANE_WIDTH_BYTES-BLIT_WIDTH_BYTES,BLTDMOD(a6) ; D modulo
|
||||
mulu.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH,d1 ; ypos bytes
|
||||
move.w #$0000,BLTALWM(a6) ; mask out extra word used for shifting
|
||||
move.w #$ffff,BLTADAT(a6) ; preload source mask so only BLTA?WM mask is used
|
||||
move.l a1,a3 ; character pointer
|
||||
|
|
|
@ -12,6 +12,8 @@ SCREEN_WIDTH equ 320
|
|||
SCREEN_HEIGHT equ 256
|
||||
SCREEN_WIDTH_BYTES equ (SCREEN_WIDTH/8)
|
||||
SCREEN_WIDTH_WORDS equ SCREEN_WIDTH_BYTES/2
|
||||
BITPLANE_WIDTH_BYTES equ (SCREEN_WIDTH_BYTES+2)
|
||||
BITPLANE_WIDTH_WORDS equ (SCREEN_WIDTH_WORDS+1)
|
||||
|
||||
if NUM_COLORS==64
|
||||
SCREEN_BIT_DEPTH equ 6
|
||||
|
@ -37,4 +39,4 @@ RASTER_X_START equ $81 ; hard coded coordinates from hardware manual
|
|||
RASTER_Y_START equ $2c
|
||||
RASTER_X_STOP equ RASTER_X_START+SCREEN_WIDTH
|
||||
RASTER_Y_STOP equ RASTER_Y_START+256
|
||||
IMAGESIZE equ SCREEN_WIDTH_BYTES*SCREEN_BIT_DEPTH*SCREEN_HEIGHT
|
||||
IMAGESIZE equ BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH*SCREEN_HEIGHT
|
|
@ -27,7 +27,7 @@ PokeBitplanePointers:
|
|||
move.w d1,2(a0)
|
||||
swap d1
|
||||
move.w d1,6(a0)
|
||||
lea SCREEN_WIDTH_BYTES(a1),a1
|
||||
lea BITPLANE_WIDTH_BYTES(a1),a1
|
||||
addq #8,a0
|
||||
dbra d0,.bitplaneloop
|
||||
movem.l (sp)+,d0-a6
|
||||
|
|
|
@ -16,11 +16,11 @@ Init:
|
|||
move.w #((RASTER_Y_STOP-256)<<8)|(RASTER_X_STOP-256),DIWSTOP(a6)
|
||||
|
||||
move.w #(RASTER_X_START/2-SCREEN_RES),DDFSTRT(a6)
|
||||
move.w #(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1)),DDFSTOP(a6)
|
||||
move.w #(RASTER_X_START/2-SCREEN_RES)+(8*((BITPLANE_WIDTH_WORDS)-1)),DDFSTOP(a6)
|
||||
|
||||
move.w #(SCREEN_BIT_DEPTH<<12)|COLOR_ON,BPLCON0(a6)
|
||||
move.w #SCREEN_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES,BPL1MOD(a6)
|
||||
move.w #SCREEN_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES,BPL2MOD(a6)
|
||||
move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-BITPLANE_WIDTH_BYTES,BPL1MOD(a6)
|
||||
move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-BITPLANE_WIDTH_BYTES,BPL2MOD(a6)
|
||||
|
||||
;; install copper list, then enable dma and selected interrupts
|
||||
lea copperList,a0
|
||||
|
|
|
@ -75,7 +75,7 @@ MainLoop:
|
|||
|
||||
jsr SwitchBuffers
|
||||
|
||||
cmp.l #SCREEN_WIDTH-1-((endText-text)*FONT_WIDTH),xpos
|
||||
cmp.l #(BITPLANE_WIDTH_WORDS*16)-1-((endText-text)*FONT_WIDTH),xpos
|
||||
ble .notRightEdge
|
||||
move.l direction,d0
|
||||
muls.w #-1,d0
|
||||
|
|
|
@ -75,7 +75,8 @@ The following cross development tools have been developed to support the example
|
|||
external tools
|
||||
--------------
|
||||
The following cross development tools have been sourced from external authors:
|
||||
* [shrinkler](tools/external/shrinkler) # compress executables
|
||||
* [shrinkler](tools/external/shrinkler) # compress for maximum compression, slow decompression
|
||||
* [doynamite68k](tools/external/doynamite68k) # compress for fast decompression
|
||||
|
||||
Each tool has a test to check if any changes you have made have broken basic functionality:
|
||||
|
||||
|
|
Loading…
Reference in New Issue