Mercurial > hg > Members > kono > nitros9-code
changeset 3237:fd4c50256e05
Updated level 1 CoVDG with a mini stack blast for the screen scroll.
author | David Ladd <drencor-xeen@users.sourceforge.net> |
---|---|
date | Tue, 20 Feb 2018 02:04:42 -0600 |
parents | d276fe300c74 |
children | e68c1db27cbe |
files | level1/modules/covdg.asm |
diffstat | 1 files changed, 16 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/level1/modules/covdg.asm Mon Feb 19 21:06:20 2018 -0600 +++ b/level1/modules/covdg.asm Tue Feb 20 02:04:42 2018 -0600 @@ -227,23 +227,28 @@ L00DF bra ShowCrsr ends with a CLRB/RTS anyhow * Screen Scroll Routine -SScrl ldx <V.ScrnA,u get address of screen +SScrl IFNE H6309 + ldx <V.ScrnA,u get address of screen ldd #COLSIZE*256+$60 leay a,x down one line ldw #COLSIZE*ROWSIZE-COLSIZE tfm y+,x+ scroll screen up stx <V.CrsrA,u save new cursor address ELSE - leax <COLSIZE,x move to 2nd line -L00E9 ldd ,x++ copy from this line - std <-COLSIZE-2,x to prevous - cmpx <V.ScrnE,u at end of screen yet? - bcs L00E9 branch if not - leax <-COLSIZE,x else back up one line - stx <V.CrsrA,u save address of cursor (first col of last row) - lda #COLSIZE clear out row... - ldb #$60 ...width spaces + ldy <V.ScrnA,u get address of screen + ldx <V.ScrnE,u get address of end of screen + pshs u,y,x save u y x on stack + leau <COLSIZE,y get address of second line +ScrlLp@ pulu d,x pull D and X off of U stack for line two + std ,y++ write D into new location + stx ,y++ write X into new location + cmpu ,s compare U to end of screen + bls ScrlLp@ check if we reached end of line if not do more + puls x,y,u restore U X and D registers + leax -COLSIZE,x + stx <V.CrsrA,u + ldd #COLSIZE*256+$60 A=clear out row... B= with spaces ENDC L00FD stb ,x+ do it... deca end of rope? @@ -305,7 +310,7 @@ bcs L0162 branch if not leax <-COLSIZE,x else go back up one line pshs x save X - bsr SScrl and scroll the screen + lbsr SScrl and scroll the screen puls x restore pointer L0162 stx <V.CrsrA,u save cursor pointer bra ShowCrsr show cursor