User Tools

Site Tools


base:4_ways_scroll

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

base:4_ways_scroll [2015-04-17 04:30] (current)
Line 1: Line 1:
 +4 Way Scroll by Malcolm Bamber
 +[[http://​www.dark-well.pwp.blueyonder.co.uk/​]]
 +
 +How I scrolled a 2 by 2 tiled map
 +I hope it is a help to some one trying to scroll the screen ​
 +
 +This first part here will show you what the irq is doing when called
 +
 +
 +
 +__SCROLL UP__ 
 +
 +IF YSCROLL=3
 +
 +    ADD ONE TO UDFLAG
 +    IF UDFLAG NOT 1 OR 2 THEN THEN QUIT OUT OF IRQ
 +    IF UDFLAG=1 THEN SO MOVE MAP POINTER UP ONE LINE IF WE CAN
 +    IF UDFLAG=2 THEN COPY SCREEN DOWN ONE LINE
 +    SET $D011 TO 3
 +    SET YSCROLL TO 5 FOR NEXT TIME IRQ IS CALLED
 +
 +IF YSCROLL=5
 +    SET $D011 TO 5
 +    SET YSCROLL TO 7 FOR NEXT TIME IRQ IS CALLED
 +    DRAW TILE AT THE TOP OF THE SCREEN
 +    IF UDFLAG=1 THEN DRAW BOTTOM PART OF TILE
 +    IF UDFLAG=2 THEN DRAW TOP PART OF TILE
 +
 +IF YSCROLL=7
 +    SET $D011 TO 7
 +    SET YSCROLL TO 1 FOR NEXT TIME IRQ IS CALLED
 +    WE SCROLL EACH WAY TWO TIMES
 +    IF UDFLAG=1 THEN COPY EVEN COLOURS LINES TO SCREEN COLOUR MAP FROM SPARE COLOUR MAP 
 +    AND SWAP SCREEN
 +    IF UDFLAG=1 THEN COPY ODD COLOURS LINES TO SCREEN COLOUR MAP FROM SPARE COLOUR MAP 
 +    AND SWAP SCREEN ​
 +
 +IF YSCROLL=1 ​
 +    SET YSCROLL TO 3 FOR NEXT TIME IRQ IS CALLED
 +
 +__SCROLL DOWN__
 +
 +IF YSCROLL=4 ​
 +    ADD ONE TO UDFLAG
 +    IF UDFLAG NOT 1 OR 2 THEN QUIT OUT OF IRQ
 +    IF UDFLAG=1 THEN COPY SCREEN AND COLOUR UP ONE LINE
 +    IF UDFLAG=2 THEN SO MOVE MAP POINTER DOWN ONE LINE IF WE CAN
 +    SET $D011 TO 4
 +    SET YSCROLL TO 2 FOR NEXT TIME IRQ IS CALLED
 +
 +IF YSCROLL=2
 +    IF UDFLAG=1 THEN DRAW TOP PART OF TILE AT BOTTOM OF SCREEN
 +    IF UDFLAG=2 THEN DRAW BOTTOM PART OF TILE AT BOTTOM OF SCREEN
 +    SET $D011 TO 2
 +    SET YSCROLL TO 0 FOR NEXT TIME IRQ IS CALLED
 +
 +IF YSCROLL=0
 +    SET $D011 TO 0
 +    SET YSCROLL TO 6 NEXT TIME IRQ IS CALLED
 +    IF UDFLAG=1 THEN COPY COLOUR ODD LINE TO SCREEN COLOUR MAP AND SWAP SCREEN
 +    IF UDFLAG=2 THEN COPE COLOUR EVEN LINE TO SCREEN COLOUR MAP AND SWAP SCREEN
 +
 +IF YSCROLL=6 ​
 +   SET YSCROLL TO 4 FOR NEXT TIME IRQ IS CALLED
 +
 +__SCROLL LEFT__ ​
 +
 +IF xscroll=3
 +    ADD ONE TO LRFLAG
 +    SET XSCROLL TO 5 FOR NEXT TIME IRQ IS CALLED
 +    SET $D016 TO 3 FOR SMOOTH SCROLL DOT POSITION
 +    IF LRFLAG NOT 1 OR 2 THEN THEN QUIT OUT OF IRQ
 +    IF LRFLAG=1 THEN SO MOVE MAP POINTER LEFT ONE POSITION IF WE CAN
 +    IF LRFLAG=2 THEN COPY SCREEN RIGHT ONE POSITION ​
 +
 +IF xscroll=5
 +    SET XSCROLL TO 7 FOR NEXT TIME IRQ IS CALLED
 +    SET $D016 TO 5 FOR SMOOTH SCROLL DOT POSITION
 +    DRAW A SIDE OF THE TILE ON THE LEFT SIDE OF THE SCREEN
 +
 +IF xscroll=7
 +    SET XSCROLL TO 1 FOR NEXT TIME IRQ IS CALLED
 +    SET $D016 TO 7 FOR SMOOTH SCROLL DOT POSITION
 +    IF LRFLAG=1 THEN COPY COLOUR EVEN POSIION TO SCREEN COLOUR MAP AND SWAP SCREEN
 +    IF LRFLAG=2 THEN COPY COLOUR ODD POSITION TO SCREEN COLOUR MAP AND SWAP SCREEN
 +
 +IF xscroll=1
 +    SET XSCROLL TO 3 FOR NEXT TIME IRQ IS CALLED
 +
 +__SCROLL RIGHT__ ​
 +
 +IF xscroll=4
 +    ADD ONE TO LRFLAG
 +    IF LRFLAG NOT 1 OR 2 THEN QUIT OUT IRQ
 +    IF LRFLAG=1 THEN SO MOVE MAP POINTER RIGHT ONE POSITION IF WE CAN
 +    IF LRFLAG=2 THEN COPY SCREEN LEFT ONE POSITION ​
 +    SET XSCROLL TO 0 FOR NEXT TIME IRQ IS CALLED
 +    SET $D016 TO 0 FOR SMOOTH SCROLL DOT POSITION
 +
 +IF xscroll=2
 +    DRAW LEFT OR RIGHT SIDE OF TILE TO RIGHT SIDE OF SCREEN
 +    SET XSCROLL TO 0 FOR NEXT TIME IRQ IS CALLED
 +    SET $D016 TO 2 FOR SMOOTH SCROLL DOT POSITION
 +
 +IF xscroll=0
 +    SET XSCROLL TO 6 FOR NEXT TIME IRQ IS CALLED
 +    SET $D016 TO 0 FOR SMOOTH SCROLL DOT POSITION
 +    IF LRFLAG=1 THEN COPY COLOUR ODD POSIION TO SCREEN COLOUR MAP AND SWAP SCREEN
 +    IF LRFLAG=2 THEN COPY COLOUR EVEN POSIION TO SCREEN COLOUR MAP AND SWAP SCREEN
 +
 +IF xscroll=6
 +    SET XSCROLL TO 4 FOR NEXT TIME IRQ IS CALLED
 +
 +
 +See Part 1 & 2 For Source Code
 +Part1 and Part2 Needs To Be Run Together
 +
  
base/4_ways_scroll.txt ยท Last modified: 2015-04-17 04:30 (external edit)