.export vec_reset, vec_irq, vec_nmi .ZEROPAGE result: .res 1 zp0: .res 1 zp1: .res 4 zp2: .res 8 zp3: .res 4 good_count: .res 1 .CODE data1: .byte 1 data2: .byte 2 data3: .byte 3 data4: .byte 4 data5: .byte 5 data6: .res 4 .byte 6 data7: .res 2 .byte 7 vec_nmi: vec_reset: vec_irq: prepare_test: lda data1 sta zp0 lda #.LOBYTE(data2) sta zp1 lda #.HIBYTE(data2) sta zp1+1 lda #.BANKBYTE(data2) sta zp1+2 lda #.TOPBYTE(data2) sta zp1+3 lda #.LOBYTE(data4) sta zp2+4 lda #.HIBYTE(data4) sta zp2+5 lda #.BANKBYTE(data4) sta zp2+6 lda #.TOPBYTE(data4) sta zp2+7 lda #.LOBYTE(data5-2) sta zp3 lda #.HIBYTE(data5-2) sta zp3+1 lda #.BANKBYTE(data5-2) sta zp3+2 lda #.TOPBYTE(data5-2) sta zp3+3 stz good_count lda_test: @test1: lda zp0 ; data 1 cmp #$1 bne @test2 inc good_count @test2: lda (zp1) ; data 2 cmp #$2 bne @test3 inc good_count @test3: lda data3 ; data 3 cmp #$3 bne @test4 inc good_count @test4: ldx #$4 ldy #$2 lda (zp2,x) ; data 4 cmp #$4 bne @test5 inc good_count @test5: lda (zp3),y ; data 5 cmp #$5 bne @test6 inc good_count @test6: lda data6,x ; data 6 cmp #$6 bne @test7 inc good_count @test7: lda data7,y ; data 7 cmp #$7 bne @done inc good_count @done: lda good_count cmp #$7 bne @fail lda #$1 sta result wai @fail: lda #$ff sta result wai