From ab57c4b04deadb93ad6c69d2a5722590d7613cfa Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Thu, 29 Dec 2022 22:02:25 -0500 Subject: [PATCH] SHR PLOT 69 work-in-progress. --- applecorn.po | Bin 819200 -> 819200 bytes mainmem.shr.s | 836 ++++++++++++++++++++++++++------------------------ 2 files changed, 427 insertions(+), 409 deletions(-) diff --git a/applecorn.po b/applecorn.po index e7e7f0c93a29ae341f134ef1acbace64cfd168f7..be615f9ba934d5ed2d4bba0108fde8f267612420 100644 GIT binary patch delta 5228 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 Y5U!qAYj=I6z8b6J$t{{IYI*Db0%VKufB*mh delta 5197 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 diff --git a/mainmem.shr.s b/mainmem.shr.s index 5e00024..22b9e08 100644 --- a/mainmem.shr.s +++ b/mainmem.shr.s @@ -74,7 +74,7 @@ SHRUSERCHAR >>> ENTMAIN STA A3L ; .. start of table to write LDA #>SHRFONTXPLD STA A3H - LDA #$E1 + LDA #$E1 ; Bank $E1 STA A4L LDA SHRVDUQ+0 ; Character number @@ -217,14 +217,33 @@ SHRCHAR640 PHY ; Preserve Y * SHRPLOT >>> ENTMAIN JSR SHRCOORD ; Convert coordinates + LDX A2L ; Screen row (Y-coord) + LDA SHRROWSL,X ; Look up addr (LS byte) + STA A3L ; Stash in A3L + LDA SHRROWSH,X ; Look up addr (MS byte) + STA A3H ; Stash in A3H + LDA #$E1 ; Bank $E1 + STA A4L + + LDX A1L ; Store X-coord for later + LSR A1H ; Divide by 4 + ROR A1L + LSR A1H + ROR A1L + LDY A1L ; Index into row of pixels * ... +* TODO Handle the bits +* ... + + LDA #$FF ; TEMP + STA [A3L],Y ; Write to screen >>> XF2AUX,GFXPLOTRET RTS * Convert high-resolution screen coordinates * from 1280x1024 to 620x200 or 320x200 -* TODO: Totally untested ... +* On return: X-coordinate in A1L/H, Y-coordinate in A2L (A2H=0) SHRCOORD PHP ; Disable interrupts SEI CLC ; 65816 native mode @@ -240,11 +259,11 @@ SHRCOORD PHP ; Disable interrupts LDA SHRVDUQ+5 LSR ; /2 LSR ; /4 - STA A1L ; TODO: Store somewhere sensible + STA A1L ; Result in A1L/H BRA :Y :MODE0 LDA SHRVDUQ+5 LSR ; /2 - STA A1L ; TODO: Store somewhere sensible + STA A1L ; Resulr in A1L/H * Y-coordinate in SHRVDUQ+7,+8 1024*3/16=192, 1024/128=8, 192+8=200 :Y LDA SHRVDUQ+7 @@ -255,7 +274,7 @@ SHRCOORD PHP ; Disable interrupts LSR ; *3/4 LSR ; *3/8 LSR ; *3/16 - STA A1L ; (A1L and A1H) + STA A2L ; (A1L and A1H) LDA SHRVDUQ+7 LSR ; /2 LSR ; /4 @@ -265,8 +284,8 @@ SHRCOORD PHP ; Disable interrupts LSR ; /64 LSR ; /128 CLC - ADC A1L ; Result - STA A1L ; TODO: Store somewhere sensible + ADC A2L ; Result + STA A2L ; Into A2L/H SEC ; Back to emulation mode XCE @@ -275,406 +294,405 @@ SHRCOORD PHP ; Disable interrupts RTS -* Table of addresses of SHR rows -SHRROWSL DB <$2000 - DB <$20a0 - DB <$2140 - DB <$21e0 - DB <$2280 - DB <$2320 - DB <$23c0 - DB <$2460 - DB <$2500 - DB <$25a0 - DB <$2640 - DB <$26e0 - DB <$2780 - DB <$2820 - DB <$28c0 - DB <$2960 - DB <$2a00 - DB <$2aa0 - DB <$2b40 - DB <$2be0 - DB <$2c80 - DB <$2d20 - DB <$2dc0 - DB <$2e60 - DB <$2f00 - DB <$2fa0 - DB <$3040 - DB <$30e0 - DB <$3180 - DB <$3220 - DB <$32c0 - DB <$3360 - DB <$3400 - DB <$34a0 - DB <$3540 - DB <$35e0 - DB <$3680 - DB <$3720 - DB <$37c0 - DB <$3860 - DB <$3900 - DB <$39a0 - DB <$3a40 - DB <$3ae0 - DB <$3b80 - DB <$3c20 - DB <$3cc0 - DB <$3d60 - DB <$3e00 - DB <$3ea0 - DB <$3f40 - DB <$3fe0 - DB <$4080 - DB <$4120 - DB <$41c0 - DB <$4260 - DB <$4300 - DB <$43a0 - DB <$4440 - DB <$44e0 - DB <$4580 - DB <$4620 - DB <$46c0 - DB <$4760 - DB <$4800 - DB <$48a0 - DB <$4940 - DB <$49e0 - DB <$4a80 - DB <$4b20 - DB <$4bc0 - DB <$4c60 - DB <$4d00 - DB <$4da0 - DB <$4e40 - DB <$4ee0 - DB <$4f80 - DB <$5020 - DB <$50c0 - DB <$5160 - DB <$5200 - DB <$52a0 - DB <$5340 - DB <$53e0 - DB <$5480 - DB <$5520 - DB <$55c0 - DB <$5660 - DB <$5700 - DB <$57a0 - DB <$5840 - DB <$58e0 - DB <$5980 - DB <$5a20 - DB <$5ac0 - DB <$5b60 - DB <$5c00 - DB <$5ca0 - DB <$5d40 - DB <$5de0 - DB <$5e80 - DB <$5f20 - DB <$5fc0 - DB <$6060 - DB <$6100 - DB <$61a0 - DB <$6240 - DB <$62e0 - DB <$6380 - DB <$6420 - DB <$64c0 - DB <$6560 - DB <$6600 - DB <$66a0 - DB <$6740 - DB <$67e0 - DB <$6880 - DB <$6920 - DB <$69c0 - DB <$6a60 - DB <$6b00 - DB <$6ba0 - DB <$6c40 - DB <$6ce0 - DB <$6d80 - DB <$6e20 - DB <$6ec0 - DB <$6f60 - DB <$7000 - DB <$70a0 - DB <$7140 - DB <$71e0 - DB <$7280 - DB <$7320 - DB <$73c0 - DB <$7460 - DB <$7500 - DB <$75a0 - DB <$7640 - DB <$76e0 - DB <$7780 - DB <$7820 - DB <$78c0 - DB <$7960 - DB <$7a00 - DB <$7aa0 - DB <$7b40 - DB <$7be0 - DB <$7c80 - DB <$7d20 - DB <$7dc0 - DB <$7e60 - DB <$7f00 - DB <$7fa0 - DB <$8040 - DB <$80e0 - DB <$8180 - DB <$8220 - DB <$82c0 - DB <$8360 - DB <$8400 - DB <$84a0 - DB <$8540 - DB <$85e0 - DB <$8680 - DB <$8720 - DB <$87c0 - DB <$8860 - DB <$8900 - DB <$89a0 - DB <$8a40 - DB <$8ae0 - DB <$8b80 - DB <$8c20 - DB <$8cc0 - DB <$8d60 - DB <$8e00 - DB <$8ea0 - DB <$8f40 - DB <$8fe0 - DB <$9080 - DB <$9120 - DB <$91c0 - DB <$9260 - DB <$9300 - DB <$93a0 - DB <$9440 - DB <$94e0 - DB <$9580 - DB <$9620 - DB <$96c0 - DB <$9760 - DB <$9800 - DB <$98a0 - DB <$9940 - DB <$99e0 - DB <$9a80 - DB <$9b20 - DB <$9bc0 - DB <$9c60 +* Table of addresses of SHR rows (in reverse order) +SHRROWSL DB <$9c60 + DB <$9bc0 + DB <$9b20 + DB <$9a80 + DB <$99e0 + DB <$9940 + DB <$98a0 + DB <$9800 + DB <$9760 + DB <$96c0 + DB <$9620 + DB <$9580 + DB <$94e0 + DB <$9440 + DB <$93a0 + DB <$9300 + DB <$9260 + DB <$91c0 + DB <$9120 + DB <$9080 + DB <$8fe0 + DB <$8f40 + DB <$8ea0 + DB <$8e00 + DB <$8d60 + DB <$8cc0 + DB <$8c20 + DB <$8b80 + DB <$8ae0 + DB <$8a40 + DB <$89a0 + DB <$8900 + DB <$8860 + DB <$87c0 + DB <$8720 + DB <$8680 + DB <$85e0 + DB <$8540 + DB <$84a0 + DB <$8400 + DB <$8360 + DB <$82c0 + DB <$8220 + DB <$8180 + DB <$80e0 + DB <$8040 + DB <$7fa0 + DB <$7f00 + DB <$7e60 + DB <$7dc0 + DB <$7d20 + DB <$7c80 + DB <$7be0 + DB <$7b40 + DB <$7aa0 + DB <$7a00 + DB <$7960 + DB <$78c0 + DB <$7820 + DB <$7780 + DB <$76e0 + DB <$7640 + DB <$75a0 + DB <$7500 + DB <$7460 + DB <$73c0 + DB <$7320 + DB <$7280 + DB <$71e0 + DB <$7140 + DB <$70a0 + DB <$7000 + DB <$6f60 + DB <$6ec0 + DB <$6e20 + DB <$6d80 + DB <$6ce0 + DB <$6c40 + DB <$6ba0 + DB <$6b00 + DB <$6a60 + DB <$69c0 + DB <$6920 + DB <$6880 + DB <$67e0 + DB <$6740 + DB <$66a0 + DB <$6600 + DB <$6560 + DB <$64c0 + DB <$6420 + DB <$6380 + DB <$62e0 + DB <$6240 + DB <$61a0 + DB <$6100 + DB <$6060 + DB <$5fc0 + DB <$5f20 + DB <$5e80 + DB <$5de0 + DB <$5d40 + DB <$5ca0 + DB <$5c00 + DB <$5b60 + DB <$5ac0 + DB <$5a20 + DB <$5980 + DB <$58e0 + DB <$5840 + DB <$57a0 + DB <$5700 + DB <$5660 + DB <$55c0 + DB <$5520 + DB <$5480 + DB <$53e0 + DB <$5340 + DB <$52a0 + DB <$5200 + DB <$5160 + DB <$50c0 + DB <$5020 + DB <$4f80 + DB <$4ee0 + DB <$4e40 + DB <$4da0 + DB <$4d00 + DB <$4c60 + DB <$4bc0 + DB <$4b20 + DB <$4a80 + DB <$49e0 + DB <$4940 + DB <$48a0 + DB <$4800 + DB <$4760 + DB <$46c0 + DB <$4620 + DB <$4580 + DB <$44e0 + DB <$4440 + DB <$43a0 + DB <$4300 + DB <$4260 + DB <$41c0 + DB <$4120 + DB <$4080 + DB <$3fe0 + DB <$3f40 + DB <$3ea0 + DB <$3e00 + DB <$3d60 + DB <$3cc0 + DB <$3c20 + DB <$3b80 + DB <$3ae0 + DB <$3a40 + DB <$39a0 + DB <$3900 + DB <$3860 + DB <$37c0 + DB <$3720 + DB <$3680 + DB <$35e0 + DB <$3540 + DB <$34a0 + DB <$3400 + DB <$3360 + DB <$32c0 + DB <$3220 + DB <$3180 + DB <$30e0 + DB <$3040 + DB <$2fa0 + DB <$2f00 + DB <$2e60 + DB <$2dc0 + DB <$2d20 + DB <$2c80 + DB <$2be0 + DB <$2b40 + DB <$2aa0 + DB <$2a00 + DB <$2960 + DB <$28c0 + DB <$2820 + DB <$2780 + DB <$26e0 + DB <$2640 + DB <$25a0 + DB <$2500 + DB <$2460 + DB <$23c0 + DB <$2320 + DB <$2280 + DB <$21e0 + DB <$2140 + DB <$20a0 + DB <$2000 -SHRROWSH DB >$2000 - DB >$20a0 - DB >$2140 - DB >$21e0 - DB >$2280 - DB >$2320 - DB >$23c0 - DB >$2460 - DB >$2500 - DB >$25a0 - DB >$2640 - DB >$26e0 - DB >$2780 - DB >$2820 - DB >$28c0 - DB >$2960 - DB >$2a00 - DB >$2aa0 - DB >$2b40 - DB >$2be0 - DB >$2c80 - DB >$2d20 - DB >$2dc0 - DB >$2e60 - DB >$2f00 - DB >$2fa0 - DB >$3040 - DB >$30e0 - DB >$3180 - DB >$3220 - DB >$32c0 - DB >$3360 - DB >$3400 - DB >$34a0 - DB >$3540 - DB >$35e0 - DB >$3680 - DB >$3720 - DB >$37c0 - DB >$3860 - DB >$3900 - DB >$39a0 - DB >$3a40 - DB >$3ae0 - DB >$3b80 - DB >$3c20 - DB >$3cc0 - DB >$3d60 - DB >$3e00 - DB >$3ea0 - DB >$3f40 - DB >$3fe0 - DB >$4080 - DB >$4120 - DB >$41c0 - DB >$4260 - DB >$4300 - DB >$43a0 - DB >$4440 - DB >$44e0 - DB >$4580 - DB >$4620 - DB >$46c0 - DB >$4760 - DB >$4800 - DB >$48a0 - DB >$4940 - DB >$49e0 - DB >$4a80 - DB >$4b20 - DB >$4bc0 - DB >$4c60 - DB >$4d00 - DB >$4da0 - DB >$4e40 - DB >$4ee0 - DB >$4f80 - DB >$5020 - DB >$50c0 - DB >$5160 - DB >$5200 - DB >$52a0 - DB >$5340 - DB >$53e0 - DB >$5480 - DB >$5520 - DB >$55c0 - DB >$5660 - DB >$5700 - DB >$57a0 - DB >$5840 - DB >$58e0 - DB >$5980 - DB >$5a20 - DB >$5ac0 - DB >$5b60 - DB >$5c00 - DB >$5ca0 - DB >$5d40 - DB >$5de0 - DB >$5e80 - DB >$5f20 - DB >$5fc0 - DB >$6060 - DB >$6100 - DB >$61a0 - DB >$6240 - DB >$62e0 - DB >$6380 - DB >$6420 - DB >$64c0 - DB >$6560 - DB >$6600 - DB >$66a0 - DB >$6740 - DB >$67e0 - DB >$6880 - DB >$6920 - DB >$69c0 - DB >$6a60 - DB >$6b00 - DB >$6ba0 - DB >$6c40 - DB >$6ce0 - DB >$6d80 - DB >$6e20 - DB >$6ec0 - DB >$6f60 - DB >$7000 - DB >$70a0 - DB >$7140 - DB >$71e0 - DB >$7280 - DB >$7320 - DB >$73c0 - DB >$7460 - DB >$7500 - DB >$75a0 - DB >$7640 - DB >$76e0 - DB >$7780 - DB >$7820 - DB >$78c0 - DB >$7960 - DB >$7a00 - DB >$7aa0 - DB >$7b40 - DB >$7be0 - DB >$7c80 - DB >$7d20 - DB >$7dc0 - DB >$7e60 - DB >$7f00 - DB >$7fa0 - DB >$8040 - DB >$80e0 - DB >$8180 - DB >$8220 - DB >$82c0 - DB >$8360 - DB >$8400 - DB >$84a0 - DB >$8540 - DB >$85e0 - DB >$8680 - DB >$8720 - DB >$87c0 - DB >$8860 - DB >$8900 - DB >$89a0 - DB >$8a40 - DB >$8ae0 - DB >$8b80 - DB >$8c20 - DB >$8cc0 - DB >$8d60 - DB >$8e00 - DB >$8ea0 - DB >$8f40 - DB >$8fe0 - DB >$9080 - DB >$9120 - DB >$91c0 - DB >$9260 - DB >$9300 - DB >$93a0 - DB >$9440 - DB >$94e0 - DB >$9580 - DB >$9620 - DB >$96c0 - DB >$9760 - DB >$9800 - DB >$98a0 - DB >$9940 - DB >$99e0 - DB >$9a80 - DB >$9b20 - DB >$9bc0 - DB >$9c60 - +SHRROWSH DB >$9c60 + DB >$9bc0 + DB >$9b20 + DB >$9a80 + DB >$99e0 + DB >$9940 + DB >$98a0 + DB >$9800 + DB >$9760 + DB >$96c0 + DB >$9620 + DB >$9580 + DB >$94e0 + DB >$9440 + DB >$93a0 + DB >$9300 + DB >$9260 + DB >$91c0 + DB >$9120 + DB >$9080 + DB >$8fe0 + DB >$8f40 + DB >$8ea0 + DB >$8e00 + DB >$8d60 + DB >$8cc0 + DB >$8c20 + DB >$8b80 + DB >$8ae0 + DB >$8a40 + DB >$89a0 + DB >$8900 + DB >$8860 + DB >$87c0 + DB >$8720 + DB >$8680 + DB >$85e0 + DB >$8540 + DB >$84a0 + DB >$8400 + DB >$8360 + DB >$82c0 + DB >$8220 + DB >$8180 + DB >$80e0 + DB >$8040 + DB >$7fa0 + DB >$7f00 + DB >$7e60 + DB >$7dc0 + DB >$7d20 + DB >$7c80 + DB >$7be0 + DB >$7b40 + DB >$7aa0 + DB >$7a00 + DB >$7960 + DB >$78c0 + DB >$7820 + DB >$7780 + DB >$76e0 + DB >$7640 + DB >$75a0 + DB >$7500 + DB >$7460 + DB >$73c0 + DB >$7320 + DB >$7280 + DB >$71e0 + DB >$7140 + DB >$70a0 + DB >$7000 + DB >$6f60 + DB >$6ec0 + DB >$6e20 + DB >$6d80 + DB >$6ce0 + DB >$6c40 + DB >$6ba0 + DB >$6b00 + DB >$6a60 + DB >$69c0 + DB >$6920 + DB >$6880 + DB >$67e0 + DB >$6740 + DB >$66a0 + DB >$6600 + DB >$6560 + DB >$64c0 + DB >$6420 + DB >$6380 + DB >$62e0 + DB >$6240 + DB >$61a0 + DB >$6100 + DB >$6060 + DB >$5fc0 + DB >$5f20 + DB >$5e80 + DB >$5de0 + DB >$5d40 + DB >$5ca0 + DB >$5c00 + DB >$5b60 + DB >$5ac0 + DB >$5a20 + DB >$5980 + DB >$58e0 + DB >$5840 + DB >$57a0 + DB >$5700 + DB >$5660 + DB >$55c0 + DB >$5520 + DB >$5480 + DB >$53e0 + DB >$5340 + DB >$52a0 + DB >$5200 + DB >$5160 + DB >$50c0 + DB >$5020 + DB >$4f80 + DB >$4ee0 + DB >$4e40 + DB >$4da0 + DB >$4d00 + DB >$4c60 + DB >$4bc0 + DB >$4b20 + DB >$4a80 + DB >$49e0 + DB >$4940 + DB >$48a0 + DB >$4800 + DB >$4760 + DB >$46c0 + DB >$4620 + DB >$4580 + DB >$44e0 + DB >$4440 + DB >$43a0 + DB >$4300 + DB >$4260 + DB >$41c0 + DB >$4120 + DB >$4080 + DB >$3fe0 + DB >$3f40 + DB >$3ea0 + DB >$3e00 + DB >$3d60 + DB >$3cc0 + DB >$3c20 + DB >$3b80 + DB >$3ae0 + DB >$3a40 + DB >$39a0 + DB >$3900 + DB >$3860 + DB >$37c0 + DB >$3720 + DB >$3680 + DB >$35e0 + DB >$3540 + DB >$34a0 + DB >$3400 + DB >$3360 + DB >$32c0 + DB >$3220 + DB >$3180 + DB >$30e0 + DB >$3040 + DB >$2fa0 + DB >$2f00 + DB >$2e60 + DB >$2dc0 + DB >$2d20 + DB >$2c80 + DB >$2be0 + DB >$2b40 + DB >$2aa0 + DB >$2a00 + DB >$2960 + DB >$28c0 + DB >$2820 + DB >$2780 + DB >$26e0 + DB >$2640 + DB >$25a0 + DB >$2500 + DB >$2460 + DB >$23c0 + DB >$2320 + DB >$2280 + DB >$21e0 + DB >$2140 + DB >$20a0 + DB >$2000