SPO600 Lab2 - 실험

2857 단어
이 섹션에서는 비트맵으로 몇 가지 실험을 수행하기 위해 시작 코드를 수정합니다.

시작 코드

    LDA #$00    ; set a pointer at $40 to point to $0200
    STA $40
    LDA #$02
    STA $41

    LDA #$07    ; colour number

    LDY #$00    ; set index to 0

loop:   
    STA ($40),y ; set pixel at the address (pointer)+Y

    INY         ; increment index
    BNE loop    ; continue until done the page

    INC $41     ; increment 1 page
    LDX $41     ; get current page number
    CPX #$06    ; compare with 6
    BNE loop    ; continue until done the page




실험 1

    LDA #$00    ; set a pointer at $40 to point to $0200
    STA $40
    LDA #$02
    STA $41

    LDA #$07    ; colour number

    LDY #$00    ; set index to 0

loop:   
    TYA     ; experiment 1
    STA ($40),y ; set pixel at the address (pointer)+Y

    INY         ; increment index
    BNE loop    ; continue until done the page

    INC $41     ; increment 1 page
    LDX $41     ; get current page number
    CPX #$06    ; compare with 6
    BNE loop    ; continue until done the page




"loop"레이블 뒤에 "STA ($40),y"앞에 "TYA"를 추가하면 비트맵에 16가지 색상이 표시된 32개의 수직선이 있습니다.

이것은 "TYA"가 "Y를 A로 전송"을 의미하고 축적기(A)가 색상을 유지하기 때문입니다. "TYA"다음에 Y 레지스터를 증가시키므로 Y 레지스터 값이 증가할 때마다 색상이 변경됩니다. 또한 사용 가능한 색상은 16개뿐이고 비트맵에는 32개의 열이 있으므로 수직선이 표시됩니다.

실험 2

    LDA #$00    ; set a pointer at $40 to point to $0200
    STA $40
    LDA #$02
    STA $41

    LDA #$07    ; colour number

    LDY #$00    ; set index to 0

loop:   
    TYA     ; experiment 1
    LSR         ; experiment 2
    STA ($40),y ; set pixel at the address (pointer)+Y

    INY         ; increment index
    BNE loop    ; continue until done the page

    INC $41     ; increment 1 page
    LDX $41     ; get current page number
    CPX #$06    ; compare with 6
    BNE loop    ; continue until done the page




명령 "LSR"은 모든 비트를 오른쪽으로 한 위치 이동하는 "논리적 우측 이동"을 의미하며, 이로 인해 수직선이 한 픽셀 더 넓어집니다.



더 많은 "LSR"명령을 추가할수록 픽셀이 더 넓어집니다.

좋은 웹페이지 즐겨찾기