From 2e8dfde2904e5cc7ec5e4827c030749c5bb48502 Mon Sep 17 00:00:00 2001 From: blondie7575 Date: Sat, 29 Jul 2017 14:47:17 -0700 Subject: [PATCH] Fast graphics path screen fill working --- Makefile | 2 +- V2Make.scpt | Bin 2462 -> 2462 bytes equates.s | 14 ++++--- graphics.s | 45 +++++++++++++++++------ gscats.2mg | Bin 819264 -> 819264 bytes gscats.s | 45 +++++++++++++++++++++-- macros.s | 104 +++++++++++++++++++++++++++++++++++++++++++--------- 7 files changed, 171 insertions(+), 39 deletions(-) diff --git a/Makefile b/Makefile index b6a348d..4e2e63f 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ CL65=cl65 AC=AppleCommander.jar -ADDR=6000 +ADDR=800 PGM=gscats diff --git a/V2Make.scpt b/V2Make.scpt index 274dd79d26988fcdfc490c50cd3b8ef30063a3b2..cdcc6ea32183ceca9a0ec53f23a2d33f0f2fddf1 100644 GIT binary patch delta 22 ecmbOyJWqH-J{!}$?~@DJ{Fss=HXmfW%LD*rz6i_! delta 22 ecmbOyJWqH-J{!|-@yUg3eoS>0n-8+xWdZ2NYty>AOt)UgvM$;p3m{Y7{2C5H{HSY}jOrgQ3gv`wo4m5880p sgPZQ_rIl42Mqg*sZs&OY!tmOLrxBejkrYXj49OBCj4VGI-paxB4}#IdsQ>@~ delta 189 zcmX@mV056tXhRmO;4TJ+KS~^e3=D@E55$&O4%H#@Mg)cLIZz|gC7K%p|>k-=Kc z1DpqYH4hvzSm~Y6%C?e$L1AvfN@HV%>;wfHh`gpfSl;4yg2nH(3B$?KWG8pGYO$XbV7TzH>eu9nx$?~yTH7zQG6FFZ5HkZY3lOscF&hxG X12G2>a{@8f_6x1t1-~W-Fzo;Uj(<;v diff --git a/gscats.s b/gscats.s index 7ff91bc..aff6e36 100644 --- a/gscats.s +++ b/gscats.s @@ -10,13 +10,49 @@ .include "equates.s" -.org $6000 +.org $800 main: NATIVE +mainCopyStart: + ldx #0 + lda #mainBank2 + sta mainCopyDest+1 + +mainCopyLoop: + lda mainBank2,x + +mainCopyDest: + sta $020800,x + inx + cpx #endMainBank2-mainBank2 + bne mainCopyLoop + + lda #returnToProDOS + sta proDOSLongJump + lda #mainBank2 + sta mainLongJump + jml (mainLongJump) + +returnToProDOS: + SYNCDBR + EMULATION + rts + +mainLongJump: + .byte 00,08,02 +proDOSLongJump: + .byte 00,00,00 + + +mainBank2: + SYNCDBR + + BITS8 lda #$f0 sta TEXTCOLOR + BITS16 jsr initSCBs SHRVIDEO @@ -26,14 +62,13 @@ main: lda #0 jsr setPalette - lda #$3333 + ldx #$1111 jsr colorFill jsr kbdWait CLASSICVIDEO - EMULATION - rts + jml (proDOSLongJump) @@ -62,6 +97,8 @@ basePalette: .include "graphics.s" +endMainBank2: + ; Suppress some linker warnings - Must be the last thing in the file ; This is because Quinn doesn't really know how to use ca65 properly diff --git a/macros.s b/macros.s index 67c1dee..31a1f58 100644 --- a/macros.s +++ b/macros.s @@ -1,44 +1,114 @@ +.macro OP8 + .i8 + .a8 +.endmacro + + +.macro OP16 + .i16 + .a16 +.endmacro + + +.macro BITS8 + sep #%00110000 + OP8 +.endmacro + + +.macro BITS16 + rep #%00110000 + OP16 +.endmacro + + +.macro DBR bankNum + BITS8 + lda bankNum + pha + plb + BITS16 +.endmacro + + +.macro SYNCDBR + phk + plb +.endmacro + + .macro EMULATION sec ; Enable 8-bit mode xce - .i8 - .a8 + OP8 .endmacro .macro NATIVE clc ; Enable 16-bit mode xce - rep #$30 - .i16 - .a16 + BITS16 .endmacro + .macro SHRVIDEO - sep #$30 - .i8 - .a8 + BITS8 lda NEWVIDEO ora #%11000001 sta NEWVIDEO - rep #$30 - .i16 - .a16 + BITS16 .endmacro + .macro CLASSICVIDEO - sep #$30 - .i8 - .a8 + BITS8 lda NEWVIDEO and #%00111111 sta NEWVIDEO - rep #$30 - .i16 - .a16 + BITS16 .endmacro +.macro FASTGRAPHICS + sei + sep #%00100000 ; 16-bit A only, to preserve X/Y + .a8 + + lda SHADOW + sta shadowRegister + lda #0 + sta SHADOW + + lda STACKCTL + sta stackRegister + ora #$30 + sta STACKCTL + + rep #%00100000 + .a16 + tsc + sta stackPtr +.endmacro + + +.macro SLOWGRAPHICS + sep #%00100000 ; 16-bit A only, to preserve X/Y + .a8 + + lda shadowRegister + sta SHADOW + + lda stackRegister + sta STACKCTL + + rep #%00100000 + .a16 + lda stackPtr + tcs + + cli +.endmacro + ;;;;;;;;;;