From 53c351e3531427e1e09cca53c8fbf55f7ab01f9a Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 29 Dec 2022 20:10:21 -0500 Subject: [PATCH] Graphics refactoring in preparation for SHR gfx --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.hgr.s | 18 ------------------ auxmem.shr.s | 3 +-- auxmem.vdu.s | 25 ++++++++++++++++++++++++- mainmem.shr.s | 20 ++++++++++++++++++++ 5 files changed, 45 insertions(+), 21 deletions(-) diff --git a/applecorn.po b/applecorn.po index 0be3bd7d97fcfed30de73f73a089c7ade09202aa..8a6d8d1d780edb97b9014d2345d6d634502fe21c 100644 GIT binary patch delta 11656 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 VI{IU1bKnONL4msh8$x?N{$IMk-SGeb delta 11464 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 ENTAUX >>> WRTAUX RTS -* TEMP * -HGRPLOTTER LDX #3 -HGRPLOTTER1 LDA VDUQ+5,X - PHA - DEX - BPL HGRPLOTTER1 - JSR HGRPLOT - LDX #0 -HGRPLOTTER2 LDA VDUQ+5,X - STA PIXELPLOTX,X - PLA - STA VDUQ+5,X - INX - CPX #4 - BCC HGRPLOTTER2 - RTS -* TEMP * - * Plot actions, PLOT k,x,y * k is in VDUQ+4 * x is in VDUQ+5,VDUQ+6 diff --git a/auxmem.shr.s b/auxmem.shr.s index ecce73b..5780f8d 100644 --- a/auxmem.shr.s +++ b/auxmem.shr.s @@ -301,8 +301,7 @@ SHRPRCH640 SEC * Apply colour masks to 16 bit word of character data * Called in 65816 native mode, 16 bit - MX %00 ; Tell Merlin 16 bit M & X -SHRCOLWORD +SHRCOLWORD MX %00 ; Tell Merlin 16 bit M & X PHA ; Keep A AND SHRCOLMASK ; Mask to set foreground colour STA ZP1 ; Keep foreground diff --git a/auxmem.vdu.s b/auxmem.vdu.s index 5bfe345..a0f2119 100644 --- a/auxmem.vdu.s +++ b/auxmem.vdu.s @@ -1152,13 +1152,36 @@ VDU25BACKUP2 LDA GFXPOSNX,X ; POSN becomes LAST BPL VDU25BACKUP2 LDA VDUPIXELS BEQ :S2 - JSR HGRPLOTTER + JSR GFXPLOTTER :S2 LDA KEYBOARD ; This and PRCHRC need to be EOR #$80 ; made more generalised BMI VDU25EXIT ; No key pressed JSR KBDCHKESC ; Ask KBD to test if Escape VDU25EXIT RTS +* Wrapper around call to HGR/SHR plotting routine +GFXPLOTTER LDX #3 +:L1 LDA VDUQ+5,X + PHA + DEX + BPL :L1 + BIT VDUSCREEN + BPL :S1 + JSR HGRPLOT + BRA GFXPLOTTER2 +:S1 BVC GFXPLOTTER2 + >>> XF2MAIN,SHRPLOT +GFXPLOTRET >>> ENTAUX +GFXPLOTTER2 LDX #0 +:L1 LDA VDUQ+5,X + STA PIXELPLOTX,X + PLA + STA VDUQ+5,X + INX + CPX #4 + BCC :L1 + RTS + * Adjust graphics origin ADJORIG CLC LDA GFXORIGX+0 diff --git a/mainmem.shr.s b/mainmem.shr.s index c710fc0..dcd1e73 100644 --- a/mainmem.shr.s +++ b/mainmem.shr.s @@ -202,6 +202,26 @@ SHRCHAR640 PHY ; Preserve Y RTS +* Plot actions: PLOT k,x,y +* k is in SHRVDUQ+4 +* x is in SHRVDUQ+5,SHRVDUQ+6 +* y is in SHRVDUQ+7,SHRVDUQ+8 +* +* Plot actions: +* $00+x - move/draw lines +* $40+x - plot point +* $50+x - fill triangle +* $60+x - fill rectangle +* $90+x - draw circle +* $98+x - fill circle +* +SHRPLOT >>> ENTMAIN + JSR SHRCOORD ; Convert coordinates +* ... + >>> XF2AUX,GFXPLOTRET + RTS + + * Convert high-resolution screen coordinates * from 1280x1024 to 620x200 or 320x200 * TODO: Totally untested ...