Added left and right buffers for over scroll

This commit is contained in:
alpine9000 2016-03-31 10:53:44 +11:00
parent 78b0881d22
commit 160b78f30a
4 changed files with 19 additions and 14 deletions

View File

@ -6,14 +6,19 @@ BACKGROUND_COLOR equ 4
BACKGROUND_COLOR equ 3
endif
FONT_WIDTH equ 8
FONT_HEIGHT equ 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)
FONT_WIDTH equ 8
FONT_HEIGHT equ 8
SCREEN_WIDTH equ 320
SCREEN_HEIGHT equ 256
SCREEN_WIDTH_BYTES equ (SCREEN_WIDTH/8)
SCREEN_WIDTH_WORDS equ SCREEN_WIDTH_BYTES/2
LEFT_SCREEN_BUFFER equ 16
RIGHT_SCREEN_BUFFER equ 16
LEFT_SCREEN_BUFFER_BYTES equ LEFT_SCREEN_BUFFER/8
RIGHT_SCREEN_BUFFER_BYTES equ RIGHT_SCREEN_BUFFER/8
BITPLANE_WIDTH equ SCREEN_WIDTH+LEFT_SCREEN_BUFFER+RIGHT_SCREEN_BUFFER
BITPLANE_WIDTH_BYTES equ BITPLANE_WIDTH/8
BITPLANE_WIDTH_WORDS equ BITPLANE_WIDTH_BYTES/2
if NUM_COLORS==64
SCREEN_BIT_DEPTH equ 6

View File

@ -8,7 +8,7 @@ SwitchBuffers:
move.l offscreen,a0
move.l onscreen,offscreen
move.l a0,onscreen
moveq.l #0,d0
moveq.l #LEFT_SCREEN_BUFFER_BYTES,d0
move.l a0,a1
lea copperListBplPtr,a0
jsr PokeBitplanePointers

View File

@ -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*((BITPLANE_WIDTH_WORDS)-1)),DDFSTOP(a6)
move.w #(RASTER_X_START/2-SCREEN_RES)+(8*((SCREEN_WIDTH/16)-1)),DDFSTOP(a6)
move.w #(SCREEN_BIT_DEPTH<<12)|COLOR_ON,BPLCON0(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)
move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES,BPL1MOD(a6)
move.w #BITPLANE_WIDTH_BYTES*SCREEN_BIT_DEPTH-SCREEN_WIDTH_BYTES,BPL2MOD(a6)
;; install copper list, then enable dma and selected interrupts
lea copperList,a0

View File

@ -75,7 +75,7 @@ MainLoop:
jsr SwitchBuffers
cmp.l #(BITPLANE_WIDTH_WORDS*16)-1-((endText-text)*FONT_WIDTH),xpos
cmp.l #(BITPLANE_WIDTH)-1-((endText-text)*FONT_WIDTH),xpos
ble .notRightEdge
move.l direction,d0
muls.w #-1,d0