00010 *TEST CASE FOR MODIFYING DLIST 8 WAY SCROLLING 00020 OR $4000 5000: 00030 SCREEN EQ $5000 4900: 00040 NDLIST EQ $4900 4000: 70 70 70 4003: 47 00 50 4006: 47 80 50 00050 DLIST HS 707070470050478050 4009: 47 00 51 400C: 47 80 51 400F: 47 00 52 00060 HS 470051478051470052 4012: 47 80 52 4015: 47 00 53 4018: 47 80 53 00070 HS 478052470053478053 401B: 47 00 54 401E: 47 80 54 4021: 47 00 48 00080 HS 470054478054470048 4024: 47 80 48 4027: 41 00 49 00090 HS 478048410049 00100 *VARIABLES 402A: 00 00110 XS BS 1 402B: 00 00120 YS BS I 402C: 00 00130 SCLO BS 1 402D: 00 00140 SCHI BS 1 402E: 00 00150 TEMPH BS 1 00160 *MAIN PROGRAM 402F: A9 05 00170 START LDA #$05 ;TEST VALUES INPUT YOUR OWN XS,YS 4031: 8D 2A 40 00180 STA XS 4034: A9 03 00190 LDA #$03 4036: 8D 2B 40 00200 STA YS 00210 *MOVE DLIST 4039: A2 00 00220 LDX #$00 403B: BD 00 40 00230 DLOOP LDA DLIST,X 403E: 9D 00 49 00240 STA NDLIST,X 4041: E8 00250 INX 4042: E0 2A 00260 CPX #$2A ;44 ELEMENTS 4044: D0 F5 00270 BNE DLOOP 4046: 20 4C 40 00280 JSR MODLIST ;MODIFY DISPLAY LIST 4049: 4C 49 40 00290 FOREVER JMP FOREVER ;ENDLESS LOOP 00300 * 00310 *SUBROUTINE TO MODIFY DISPLAY LIST FOR 8 WAY SCROLLING 00320 * - 128 (#$80) BYTES WIDE 00330 *INPUT ROUGH SCROLL COORDINATES XS,YS 404C: A9 00 00340 MODLISTLDA #SCREEN 404E: 8D 2C 40 00350 STA SCLO 4051: A9 50 00360 LDA /SCREEN 4053: 8D 2D 40 00370 STA SCHI 4056: AD 2B 40 00380 LDA YS 4059: 4A 00390 LSR ;DIVIDE/2 405A: 8D 2E 40 00400 STA TEMPH 405D: 90 05 00410 BCC .1 ;SKIP IF EVEN 405F: A9 80 00420 LDA #$80 ;ODD THEN LO BYTE ADDRESS BEGINS WITH #$80 4061: 8D 2C 40 00430 STA SCLO 4064; 18 00440 .1 CLC 4065: AD 2D 40 00450 LDA SCHI 4068: 6D 2E 40 00460 ADC TEMPH 406B: 8D 2D 40 00470 STA SCHI ;NEW HI BYTE 406E: 8D 05 49 00480 STA NDLIST+5 4071: 18 00490 CLC 4072: AD 2C 40 00500 LDA SCLO 4075: 6D 2A 40 00510 ADC XS 4078: 8D 2C 40 00520 STA SCLO ;NEW LO BYTE 407B: 8D 04 49 00530 STA NDLIST+4 407E: A0 00 00540 LDY #$00 4080: 18 00550 .2 CLC 4081: AD 2C 40 00560 LDA SCLO ;ADD #$80 TO EACH MODE LINE ADDRESS 4084: 69 80 00570 ADC #$80 ;STARTING WITH SECOND LINE 4086: 8D 2C 40 00580 STA SCLO 4089: 99 07 49 00590 STA NDLIST+7,Y 408C: AD 2D 40 00600 LDA SCHI 408F: 69 00 00610 ADC #$00 4091: 8D 2D 40 00620 STA SCHI 4094: 99 08 49 00630 STA NDLIST+8,Y 4097: C8 00640 INY ;INCREMENT BY 3 TO REACH NEXT ADDRESS PAIR 4098: C8 00650 INY 4099: C8 00660 INY 409A: C0 21 00670 CPY #$21 ;(12ROWS*3)-3 409C: 90 E2 00680 BLT .2 ;DONE? 409E: 60 00690 RTS