SHR PLOT 69 work-in-progress.

This commit is contained in:
Bobbi Webber-Manners 2022-12-29 22:02:25 -05:00
parent b3e1108bdd
commit ab57c4b04d
2 changed files with 427 additions and 409 deletions

Binary file not shown.

View File

@ -74,7 +74,7 @@ SHRUSERCHAR >>> ENTMAIN
STA A3L ; .. start of table to write STA A3L ; .. start of table to write
LDA #>SHRFONTXPLD LDA #>SHRFONTXPLD
STA A3H STA A3H
LDA #$E1 LDA #$E1 ; Bank $E1
STA A4L STA A4L
LDA SHRVDUQ+0 ; Character number LDA SHRVDUQ+0 ; Character number
@ -217,14 +217,33 @@ SHRCHAR640 PHY ; Preserve Y
* *
SHRPLOT >>> ENTMAIN SHRPLOT >>> ENTMAIN
JSR SHRCOORD ; Convert coordinates 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 >>> XF2AUX,GFXPLOTRET
RTS RTS
* Convert high-resolution screen coordinates * Convert high-resolution screen coordinates
* from 1280x1024 to 620x200 or 320x200 * 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 SHRCOORD PHP ; Disable interrupts
SEI SEI
CLC ; 65816 native mode CLC ; 65816 native mode
@ -240,11 +259,11 @@ SHRCOORD PHP ; Disable interrupts
LDA SHRVDUQ+5 LDA SHRVDUQ+5
LSR ; /2 LSR ; /2
LSR ; /4 LSR ; /4
STA A1L ; TODO: Store somewhere sensible STA A1L ; Result in A1L/H
BRA :Y BRA :Y
:MODE0 LDA SHRVDUQ+5 :MODE0 LDA SHRVDUQ+5
LSR ; /2 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-coordinate in SHRVDUQ+7,+8 1024*3/16=192, 1024/128=8, 192+8=200
:Y LDA SHRVDUQ+7 :Y LDA SHRVDUQ+7
@ -255,7 +274,7 @@ SHRCOORD PHP ; Disable interrupts
LSR ; *3/4 LSR ; *3/4
LSR ; *3/8 LSR ; *3/8
LSR ; *3/16 LSR ; *3/16
STA A1L ; (A1L and A1H) STA A2L ; (A1L and A1H)
LDA SHRVDUQ+7 LDA SHRVDUQ+7
LSR ; /2 LSR ; /2
LSR ; /4 LSR ; /4
@ -265,8 +284,8 @@ SHRCOORD PHP ; Disable interrupts
LSR ; /64 LSR ; /64
LSR ; /128 LSR ; /128
CLC CLC
ADC A1L ; Result ADC A2L ; Result
STA A1L ; TODO: Store somewhere sensible STA A2L ; Into A2L/H
SEC ; Back to emulation mode SEC ; Back to emulation mode
XCE XCE
@ -275,406 +294,405 @@ SHRCOORD PHP ; Disable interrupts
RTS RTS
* Table of addresses of SHR rows * Table of addresses of SHR rows (in reverse order)
SHRROWSL DB <$2000 SHRROWSL DB <$9c60
DB <$20a0 DB <$9bc0
DB <$2140 DB <$9b20
DB <$21e0 DB <$9a80
DB <$2280 DB <$99e0
DB <$2320 DB <$9940
DB <$23c0 DB <$98a0
DB <$2460 DB <$9800
DB <$2500 DB <$9760
DB <$25a0 DB <$96c0
DB <$2640 DB <$9620
DB <$26e0 DB <$9580
DB <$2780 DB <$94e0
DB <$2820 DB <$9440
DB <$28c0 DB <$93a0
DB <$2960 DB <$9300
DB <$2a00 DB <$9260
DB <$2aa0 DB <$91c0
DB <$2b40 DB <$9120
DB <$2be0 DB <$9080
DB <$2c80 DB <$8fe0
DB <$2d20 DB <$8f40
DB <$2dc0 DB <$8ea0
DB <$2e60 DB <$8e00
DB <$2f00 DB <$8d60
DB <$2fa0 DB <$8cc0
DB <$3040 DB <$8c20
DB <$30e0 DB <$8b80
DB <$3180 DB <$8ae0
DB <$3220 DB <$8a40
DB <$32c0 DB <$89a0
DB <$3360 DB <$8900
DB <$3400 DB <$8860
DB <$34a0 DB <$87c0
DB <$3540 DB <$8720
DB <$35e0 DB <$8680
DB <$3680 DB <$85e0
DB <$3720 DB <$8540
DB <$37c0 DB <$84a0
DB <$3860 DB <$8400
DB <$3900 DB <$8360
DB <$39a0 DB <$82c0
DB <$3a40 DB <$8220
DB <$3ae0 DB <$8180
DB <$3b80 DB <$80e0
DB <$3c20 DB <$8040
DB <$3cc0 DB <$7fa0
DB <$3d60 DB <$7f00
DB <$3e00 DB <$7e60
DB <$3ea0 DB <$7dc0
DB <$3f40 DB <$7d20
DB <$3fe0 DB <$7c80
DB <$4080 DB <$7be0
DB <$4120 DB <$7b40
DB <$41c0 DB <$7aa0
DB <$4260 DB <$7a00
DB <$4300 DB <$7960
DB <$43a0 DB <$78c0
DB <$4440 DB <$7820
DB <$44e0 DB <$7780
DB <$4580 DB <$76e0
DB <$4620 DB <$7640
DB <$46c0 DB <$75a0
DB <$4760 DB <$7500
DB <$4800 DB <$7460
DB <$48a0 DB <$73c0
DB <$4940 DB <$7320
DB <$49e0 DB <$7280
DB <$4a80 DB <$71e0
DB <$4b20 DB <$7140
DB <$4bc0 DB <$70a0
DB <$4c60 DB <$7000
DB <$4d00 DB <$6f60
DB <$4da0 DB <$6ec0
DB <$4e40 DB <$6e20
DB <$4ee0 DB <$6d80
DB <$4f80 DB <$6ce0
DB <$5020 DB <$6c40
DB <$50c0 DB <$6ba0
DB <$5160 DB <$6b00
DB <$5200 DB <$6a60
DB <$52a0 DB <$69c0
DB <$5340 DB <$6920
DB <$53e0 DB <$6880
DB <$5480 DB <$67e0
DB <$5520 DB <$6740
DB <$55c0 DB <$66a0
DB <$5660 DB <$6600
DB <$5700 DB <$6560
DB <$57a0 DB <$64c0
DB <$5840 DB <$6420
DB <$58e0 DB <$6380
DB <$5980 DB <$62e0
DB <$5a20 DB <$6240
DB <$5ac0 DB <$61a0
DB <$5b60 DB <$6100
DB <$5c00 DB <$6060
DB <$5ca0 DB <$5fc0
DB <$5d40 DB <$5f20
DB <$5de0 DB <$5e80
DB <$5e80 DB <$5de0
DB <$5f20 DB <$5d40
DB <$5fc0 DB <$5ca0
DB <$6060 DB <$5c00
DB <$6100 DB <$5b60
DB <$61a0 DB <$5ac0
DB <$6240 DB <$5a20
DB <$62e0 DB <$5980
DB <$6380 DB <$58e0
DB <$6420 DB <$5840
DB <$64c0 DB <$57a0
DB <$6560 DB <$5700
DB <$6600 DB <$5660
DB <$66a0 DB <$55c0
DB <$6740 DB <$5520
DB <$67e0 DB <$5480
DB <$6880 DB <$53e0
DB <$6920 DB <$5340
DB <$69c0 DB <$52a0
DB <$6a60 DB <$5200
DB <$6b00 DB <$5160
DB <$6ba0 DB <$50c0
DB <$6c40 DB <$5020
DB <$6ce0 DB <$4f80
DB <$6d80 DB <$4ee0
DB <$6e20 DB <$4e40
DB <$6ec0 DB <$4da0
DB <$6f60 DB <$4d00
DB <$7000 DB <$4c60
DB <$70a0 DB <$4bc0
DB <$7140 DB <$4b20
DB <$71e0 DB <$4a80
DB <$7280 DB <$49e0
DB <$7320 DB <$4940
DB <$73c0 DB <$48a0
DB <$7460 DB <$4800
DB <$7500 DB <$4760
DB <$75a0 DB <$46c0
DB <$7640 DB <$4620
DB <$76e0 DB <$4580
DB <$7780 DB <$44e0
DB <$7820 DB <$4440
DB <$78c0 DB <$43a0
DB <$7960 DB <$4300
DB <$7a00 DB <$4260
DB <$7aa0 DB <$41c0
DB <$7b40 DB <$4120
DB <$7be0 DB <$4080
DB <$7c80 DB <$3fe0
DB <$7d20 DB <$3f40
DB <$7dc0 DB <$3ea0
DB <$7e60 DB <$3e00
DB <$7f00 DB <$3d60
DB <$7fa0 DB <$3cc0
DB <$8040 DB <$3c20
DB <$80e0 DB <$3b80
DB <$8180 DB <$3ae0
DB <$8220 DB <$3a40
DB <$82c0 DB <$39a0
DB <$8360 DB <$3900
DB <$8400 DB <$3860
DB <$84a0 DB <$37c0
DB <$8540 DB <$3720
DB <$85e0 DB <$3680
DB <$8680 DB <$35e0
DB <$8720 DB <$3540
DB <$87c0 DB <$34a0
DB <$8860 DB <$3400
DB <$8900 DB <$3360
DB <$89a0 DB <$32c0
DB <$8a40 DB <$3220
DB <$8ae0 DB <$3180
DB <$8b80 DB <$30e0
DB <$8c20 DB <$3040
DB <$8cc0 DB <$2fa0
DB <$8d60 DB <$2f00
DB <$8e00 DB <$2e60
DB <$8ea0 DB <$2dc0
DB <$8f40 DB <$2d20
DB <$8fe0 DB <$2c80
DB <$9080 DB <$2be0
DB <$9120 DB <$2b40
DB <$91c0 DB <$2aa0
DB <$9260 DB <$2a00
DB <$9300 DB <$2960
DB <$93a0 DB <$28c0
DB <$9440 DB <$2820
DB <$94e0 DB <$2780
DB <$9580 DB <$26e0
DB <$9620 DB <$2640
DB <$96c0 DB <$25a0
DB <$9760 DB <$2500
DB <$9800 DB <$2460
DB <$98a0 DB <$23c0
DB <$9940 DB <$2320
DB <$99e0 DB <$2280
DB <$9a80 DB <$21e0
DB <$9b20 DB <$2140
DB <$9bc0 DB <$20a0
DB <$9c60 DB <$2000
SHRROWSH DB >$2000 SHRROWSH DB >$9c60
DB >$20a0 DB >$9bc0
DB >$2140 DB >$9b20
DB >$21e0 DB >$9a80
DB >$2280 DB >$99e0
DB >$2320 DB >$9940
DB >$23c0 DB >$98a0
DB >$2460 DB >$9800
DB >$2500 DB >$9760
DB >$25a0 DB >$96c0
DB >$2640 DB >$9620
DB >$26e0 DB >$9580
DB >$2780 DB >$94e0
DB >$2820 DB >$9440
DB >$28c0 DB >$93a0
DB >$2960 DB >$9300
DB >$2a00 DB >$9260
DB >$2aa0 DB >$91c0
DB >$2b40 DB >$9120
DB >$2be0 DB >$9080
DB >$2c80 DB >$8fe0
DB >$2d20 DB >$8f40
DB >$2dc0 DB >$8ea0
DB >$2e60 DB >$8e00
DB >$2f00 DB >$8d60
DB >$2fa0 DB >$8cc0
DB >$3040 DB >$8c20
DB >$30e0 DB >$8b80
DB >$3180 DB >$8ae0
DB >$3220 DB >$8a40
DB >$32c0 DB >$89a0
DB >$3360 DB >$8900
DB >$3400 DB >$8860
DB >$34a0 DB >$87c0
DB >$3540 DB >$8720
DB >$35e0 DB >$8680
DB >$3680 DB >$85e0
DB >$3720 DB >$8540
DB >$37c0 DB >$84a0
DB >$3860 DB >$8400
DB >$3900 DB >$8360
DB >$39a0 DB >$82c0
DB >$3a40 DB >$8220
DB >$3ae0 DB >$8180
DB >$3b80 DB >$80e0
DB >$3c20 DB >$8040
DB >$3cc0 DB >$7fa0
DB >$3d60 DB >$7f00
DB >$3e00 DB >$7e60
DB >$3ea0 DB >$7dc0
DB >$3f40 DB >$7d20
DB >$3fe0 DB >$7c80
DB >$4080 DB >$7be0
DB >$4120 DB >$7b40
DB >$41c0 DB >$7aa0
DB >$4260 DB >$7a00
DB >$4300 DB >$7960
DB >$43a0 DB >$78c0
DB >$4440 DB >$7820
DB >$44e0 DB >$7780
DB >$4580 DB >$76e0
DB >$4620 DB >$7640
DB >$46c0 DB >$75a0
DB >$4760 DB >$7500
DB >$4800 DB >$7460
DB >$48a0 DB >$73c0
DB >$4940 DB >$7320
DB >$49e0 DB >$7280
DB >$4a80 DB >$71e0
DB >$4b20 DB >$7140
DB >$4bc0 DB >$70a0
DB >$4c60 DB >$7000
DB >$4d00 DB >$6f60
DB >$4da0 DB >$6ec0
DB >$4e40 DB >$6e20
DB >$4ee0 DB >$6d80
DB >$4f80 DB >$6ce0
DB >$5020 DB >$6c40
DB >$50c0 DB >$6ba0
DB >$5160 DB >$6b00
DB >$5200 DB >$6a60
DB >$52a0 DB >$69c0
DB >$5340 DB >$6920
DB >$53e0 DB >$6880
DB >$5480 DB >$67e0
DB >$5520 DB >$6740
DB >$55c0 DB >$66a0
DB >$5660 DB >$6600
DB >$5700 DB >$6560
DB >$57a0 DB >$64c0
DB >$5840 DB >$6420
DB >$58e0 DB >$6380
DB >$5980 DB >$62e0
DB >$5a20 DB >$6240
DB >$5ac0 DB >$61a0
DB >$5b60 DB >$6100
DB >$5c00 DB >$6060
DB >$5ca0 DB >$5fc0
DB >$5d40 DB >$5f20
DB >$5de0 DB >$5e80
DB >$5e80 DB >$5de0
DB >$5f20 DB >$5d40
DB >$5fc0 DB >$5ca0
DB >$6060 DB >$5c00
DB >$6100 DB >$5b60
DB >$61a0 DB >$5ac0
DB >$6240 DB >$5a20
DB >$62e0 DB >$5980
DB >$6380 DB >$58e0
DB >$6420 DB >$5840
DB >$64c0 DB >$57a0
DB >$6560 DB >$5700
DB >$6600 DB >$5660
DB >$66a0 DB >$55c0
DB >$6740 DB >$5520
DB >$67e0 DB >$5480
DB >$6880 DB >$53e0
DB >$6920 DB >$5340
DB >$69c0 DB >$52a0
DB >$6a60 DB >$5200
DB >$6b00 DB >$5160
DB >$6ba0 DB >$50c0
DB >$6c40 DB >$5020
DB >$6ce0 DB >$4f80
DB >$6d80 DB >$4ee0
DB >$6e20 DB >$4e40
DB >$6ec0 DB >$4da0
DB >$6f60 DB >$4d00
DB >$7000 DB >$4c60
DB >$70a0 DB >$4bc0
DB >$7140 DB >$4b20
DB >$71e0 DB >$4a80
DB >$7280 DB >$49e0
DB >$7320 DB >$4940
DB >$73c0 DB >$48a0
DB >$7460 DB >$4800
DB >$7500 DB >$4760
DB >$75a0 DB >$46c0
DB >$7640 DB >$4620
DB >$76e0 DB >$4580
DB >$7780 DB >$44e0
DB >$7820 DB >$4440
DB >$78c0 DB >$43a0
DB >$7960 DB >$4300
DB >$7a00 DB >$4260
DB >$7aa0 DB >$41c0
DB >$7b40 DB >$4120
DB >$7be0 DB >$4080
DB >$7c80 DB >$3fe0
DB >$7d20 DB >$3f40
DB >$7dc0 DB >$3ea0
DB >$7e60 DB >$3e00
DB >$7f00 DB >$3d60
DB >$7fa0 DB >$3cc0
DB >$8040 DB >$3c20
DB >$80e0 DB >$3b80
DB >$8180 DB >$3ae0
DB >$8220 DB >$3a40
DB >$82c0 DB >$39a0
DB >$8360 DB >$3900
DB >$8400 DB >$3860
DB >$84a0 DB >$37c0
DB >$8540 DB >$3720
DB >$85e0 DB >$3680
DB >$8680 DB >$35e0
DB >$8720 DB >$3540
DB >$87c0 DB >$34a0
DB >$8860 DB >$3400
DB >$8900 DB >$3360
DB >$89a0 DB >$32c0
DB >$8a40 DB >$3220
DB >$8ae0 DB >$3180
DB >$8b80 DB >$30e0
DB >$8c20 DB >$3040
DB >$8cc0 DB >$2fa0
DB >$8d60 DB >$2f00
DB >$8e00 DB >$2e60
DB >$8ea0 DB >$2dc0
DB >$8f40 DB >$2d20
DB >$8fe0 DB >$2c80
DB >$9080 DB >$2be0
DB >$9120 DB >$2b40
DB >$91c0 DB >$2aa0
DB >$9260 DB >$2a00
DB >$9300 DB >$2960
DB >$93a0 DB >$28c0
DB >$9440 DB >$2820
DB >$94e0 DB >$2780
DB >$9580 DB >$26e0
DB >$9620 DB >$2640
DB >$96c0 DB >$25a0
DB >$9760 DB >$2500
DB >$9800 DB >$2460
DB >$98a0 DB >$23c0
DB >$9940 DB >$2320
DB >$99e0 DB >$2280
DB >$9a80 DB >$21e0
DB >$9b20 DB >$2140
DB >$9bc0 DB >$20a0
DB >$9c60 DB >$2000