From 65ad48c6e1eaed111264cf090f5de0d810ca4610 Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 29 Dec 2022 15:54:26 -0500 Subject: [PATCH] Refactoring font explode code. --- applecorn.po | Bin 819200 -> 819200 bytes auxmem.shr.s | 25 +++++++++++++---- auxmem.vdu.s | 78 ++++++++++++++++++++++++++++----------------------- 3 files changed, 62 insertions(+), 41 deletions(-) diff --git a/applecorn.po b/applecorn.po index f533ec082c1d63a973c47eea9fec12b6e75ba82c..1d9d7365f27f937410006e10f7c6e0cd65cb9665 100644 GIT binary patch delta 11180 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 KY7FcC?0*3(kadj! delta 11145 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 diff --git a/auxmem.shr.s b/auxmem.shr.s index d4a2a7c..8878ebf 100644 --- a/auxmem.shr.s +++ b/auxmem.shr.s @@ -163,7 +163,24 @@ SHRXPLDCHAR PHA :L1 >>> RDMAIN LDA (ZP1),Y ; Load row of font >>> RDAUX - LDX VDUPIXELS ; Pixels per byte + JSR SHRXPLDROW + INY ; Next row of font + CPY #$08 ; Last row? + BNE :L1 + PLA + RTS + + +* Explode one pixel row of user define graphics char +* On entry: A contains row of font data +SHRUSERCHAR LDA VDUQ+4 ; Character number + + RTS + + +* Explode one row of pixels. Used by SHRXPLDCHAR & SHRUSERCHAR +* On entry: A contains row of font data +SHRXPLDROW LDX VDUPIXELS ; Pixels per byte CPX #$02 ; 2 is 320-mode (MODE 1) BNE :S1 JSR SHRCHAR320 @@ -187,11 +204,7 @@ SHRXPLDCHAR PHA LDA VDUADDR+1 ADC #$00 STA VDUADDR+1 -:S4 INY ; Next row of font - CPY #$08 ; Last row? - BNE :L1 - PLA - RTS +:S4 RTS * Explode one pixel row of font in 320 mode diff --git a/auxmem.vdu.s b/auxmem.vdu.s index 868df4c..5ace2c1 100644 --- a/auxmem.vdu.s +++ b/auxmem.vdu.s @@ -1,7 +1,7 @@ * AUXMEM.VDU.S -* (c) Bobbi 2021 GPLv3 +* (c) Bobbi 2021-2022 GPLv3 * -* Apple //e VDU Driver for 40/80 column mode (PAGE2) +* Apple //e, //c & IIGS VDU Driver for 40/80 column mode (PAGE2) * * 15-Aug-2021 Optimised address calculations and PRCHRC. * Entry point to move copy cursor. @@ -1159,42 +1159,50 @@ VDU25BACKUP2 LDA GFXPOSNX,X ; POSN becomes LAST VDU25EXIT RTS * Adjust graphics origin -ADJORIG CLC - LDA GFXORIGX+0 - ADC VDUQ+5 - STA VDUQ+5 - LDA GFXORIGX+1 - ADC VDUQ+6 - STA VDUQ+6 - CLC - LDA GFXORIGY+0 - ADC VDUQ+7 - STA VDUQ+7 - LDA GFXORIGY+1 - ADC VDUQ+8 - STA VDUQ+8 - RTS +ADJORIG CLC + LDA GFXORIGX+0 + ADC VDUQ+5 + STA VDUQ+5 + LDA GFXORIGX+1 + ADC VDUQ+6 + STA VDUQ+6 + CLC + LDA GFXORIGY+0 + ADC VDUQ+7 + STA VDUQ+7 + LDA GFXORIGY+1 + ADC VDUQ+8 + STA VDUQ+8 + RTS * Add coordinates to GFXPOSNX, GFXPOSNY -RELCOORD CLC - LDA GFXPOSNX+0 - ADC VDUQ+5 - STA VDUQ+5 - LDA GFXPOSNX+1 - ADC VDUQ+6 - STA VDUQ+6 - CLC - LDA GFXPOSNY+0 - ADC VDUQ+7 - STA VDUQ+7 - LDA GFXPOSNY+1 - ADC VDUQ+8 - STA VDUQ+8 - RTS +RELCOORD CLC + LDA GFXPOSNX+0 + ADC VDUQ+5 + STA VDUQ+5 + LDA GFXPOSNX+1 + ADC VDUQ+6 + STA VDUQ+6 + CLC + LDA GFXPOSNY+0 + ADC VDUQ+7 + STA VDUQ+7 + LDA GFXPOSNY+1 + ADC VDUQ+8 + STA VDUQ+8 + RTS * Program video system and define characters -******************************************** -VDU23 RTS +* VDU 23,charnum,row1,row2,row3,row4,row5,row6,row7,row8 +VDU23 BIT VDUSCREEN ; Check we are in SHR mode + BVC :NOTSHR + LDY #$00 +:L1 LDA VDUQ+5,Y ; Row of pixels + JSR SHRUSERCHAR + INY + CPY #$08 + BNE :L1 +:NOTSHR RTS * Read from VDU system @@ -1215,7 +1223,7 @@ WORD0C RTS WORD0D RTS * OSBYTE &A0 - Read VDU variable -BYTEA0 CPX #$40 ; Index into VDU variables +BYTEA0 CPX #$40 ; Index into VDU variables BCC BYTEA02 TXA SBC #$20