               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
