following test failed....
other tests all passed!!!


a2

;;    ;;a.2.4 indirect,x is not implemented...
;;
;;    ;;abs,x/y test...
;;    ldx #$17
;;    ldy #$a1
;;    lda #$2f
;;    sta $359        ;;@359=2f
;;    lda #$90
;;    sta $0190, y    ;;@231=90
;;    txa
;;    ora $0190, y    ;;@231(page cross), 90 | 17 = 97
;;    sec
;;    sbc $0342, x    ;;@359, 97-2f=68
;;    tay
;;    cpy #$68
;;    beq :+
;;    jsr test_failure
;;:
;;
;;    ;;zp,xy test
;;    ldx #$cd
;;    lda #$f1
;;    sta $35     ;;@35=f1
;;    lda #$ac
;;    sta $bc     ;;@bc=ac
;;
;;    lda #$8d
;;    and $68,x   ;;@35, 8d & f1=81
;;    ldy #$9a
;;    eor $22,y   ;;@bc, ac^81=2d
;;    tax
;;    cpx #$2d
;;    beq :+
;;    jsr test_failure
;;:
;;
;;    ;;(ind),y test...
;;    lda #$38
;;    sta $90
;;    lda #$08
;;    sta $91
;;    lda #$d9
;;    sta $0902       ;@0902=d9
;;    lda #$0a
;;    ldy #$ca
;;    clc
;;    adc ($90),y      ;@0902, 0a+d9=e3
;;    cmp #$e3
;;    beq :+
;;    jsr test_failure
;;:

;    jsr a4_inst_test



http://hp.vector.co.jp/authors/VA042397/nes/6502.html

アドレッシングモード

6502のアドレッシングモードを紹介します。IM8は8bit値、IM16は16bit値を意味します。【N】は「アドレスN」と言う意味になります。6502アセンブラは、大抵16進数を表記する際に数字の頭に"$"を付けて"$2e"のように書く事が多いです。また、ゼロページ用の記号等も多くの場合"<"等の記号が必要なことが多いですが、処理系によって異なるので詳細はアセンブラのマニュアルを参照してください。

名称	表記例	動作
Implied	TAX	AをXにコピー
Accumulator	LSR A	Aを左に1bitシフト
Immediate	LDA #IM8	即値IM8をAにロード
Zeropage	LDA IM8	【IM8】の8bit値をAにロード
Zeropage, X	LDA IM8, X	【IM8 + X】の8bit値をAにロード
Zeropage, Y	LDA IM8, Y	【IM8 + Y】の8bit値をAにロード
Relative	BEQ IM8	P[Z]がセットの時【PC + IM8】へジャンプ
Absolute	LDA IM16	【IM16】の8bit値をAにロード
Absolute, X	LDA IM16, X	【IM16 + X】の8bit値をAにロード
Absolute, Y	LDA IM16, Y	【IM16 + Y】の8bit値をAにロード
Indirect	JMP (IM16)	【【IM16】の16bit値】へジャンプ
(Indirect, X)	LDA (IM8, X)	【【IM8 + X】の16bit値】の8bit値をAにロード
(Indirect), Y	LDA (IM8), Y	【【IM8】の16bit値 + Y】の8bit値をAにロード
