.byte "****************"\r
.byte "****************"\r
.byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
+ .byte "****************"\r
.byte "***********"\r
\r
@jmp_ret1:\r
sta $01\r
jsr print_ln\r
\r
-\r
-;;bit7 N \83l\83K\83e\83B\83u A\82Ìbit7\82ª1\82Ì\8e\9e\82É\83Z\83b\83g\r
-;;bit6 V \83I\81[\83o\81[\83t\83\8d\81[ \89\89\8eZ\8c\8b\89Ê\82ª\83I\81[\83o\81[\83t\83\8d\81[\82ð\8bN\82±\82µ\82½\8e\9e\82É\83Z\83b\83g\r
-;;bit5 R \97\\96ñ\8dÏ\82Ý \8fí\82É\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\r
-;;bit4 B \83u\83\8c\81[\83N\83\82\81[\83h BRK\94\90¶\8e\9e\82É\83Z\83b\83g\81AIRQ\94\90¶\8e\9e\82É\83N\83\8a\83A\r
-;;bit3 D \83f\83V\83}\83\8b\83\82\81[\83h 0:\83f\83t\83H\83\8b\83g\81A1:BCD\83\82\81[\83h (\83t\83@\83~\83R\83\93\82Å\82Í\96¢\8eÀ\91\95)\r
-;;bit2 I IRQ\8bÖ\8e~ 0:IRQ\8b\96\89Â\81A1:IRQ\8bÖ\8e~\r
-;;bit1 Z \83[\83\8d \89\89\8eZ\8c\8b\89Ê\82ª0\82Ì\8e\9e\82É\83Z\83b\83g\r
-;;bit0 C \83L\83\83\83\8a\81[ \83L\83\83\83\8a\81[\94\90¶\8e\9e\82É\83Z\83b\83g\r
-\r
- ;;save status\r
- php\r
-\r
-;;LDA\r
-;;\83\81\83\82\83\8a\82©\82çA\82É\83\8d\81[\83h\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
- ;;set status\r
- lda #$00\r
- pha\r
- plp\r
-\r
- lda #$ea\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$a0\r
- beq :+\r
- jsr test_failure\r
-:\r
- ;;set status\r
- lda #$00\r
- pha\r
- plp\r
-\r
- lda #$00\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$22\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-;;LDX\r
-;;\83\81\83\82\83\8a\82©\82çX\82É\83\8d\81[\83h\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
- ;;set status\r
- lda #00\r
- pha\r
- plp\r
-\r
- ldx #$a4\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$a0\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- lda #00\r
- pha\r
- plp\r
-\r
- ldx #$00\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$22\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-;;LDY\r
-;;\83\81\83\82\83\8a\82©\82çY\82É\83\8d\81[\83h\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
- ;;set status\r
- lda #00\r
- pha\r
- plp\r
-\r
- ldy #$2b\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$20\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ;;set status\r
- lda #00\r
- pha\r
- plp\r
-\r
- ldy #$bb\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$a0\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ;;set status\r
- lda #00\r
- pha\r
- plp\r
-\r
- ldy #$00\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$22\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-;;STA\r
-;;A\82©\82ç\83\81\83\82\83\8a\82É\83X\83g\83A\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-\r
- lda #$fb\r
-\r
- ;;set status\r
- lda #$c3\r
-;;c3 is...1100 0011 = NV00 00ZC\r
- pha\r
- plp\r
-\r
-;;sta test\r
- sta $501\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e3\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-\r
-;;STX\r
-;;X\82©\82ç\83\81\83\82\83\8a\82É\83X\83g\83A\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
- ldx #$fb\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- stx $50f\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e3\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-\r
-;;STY\r
-;;Y\82©\82ç\83\81\83\82\83\8a\82É\83X\83g\83A\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
- ldy #$00\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- sty $510\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e3\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-;;TAX\r
-;;A\82ðX\82Ö\83R\83s\81[\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- tax\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e1\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ;;set status\r
- lda #$00\r
- pha\r
- plp\r
-\r
- tax\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$22\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-\r
-;;TAY\r
-;;A\82ðY\82Ö\83R\83s\81[\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- tay\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e1\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- cpy #$c3\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ;;set status\r
- lda #$00\r
- pha\r
- plp\r
-\r
- tay\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$22\r
- beq :+\r
- jsr test_failure\r
-:\r
-:\r
- cpy #$00\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-;;TSX\r
-;;S\82ðX\82Ö\83R\83s\81[\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- ;;;now sp = 0xfX place...\r
- tsx\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e1\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ;;save sp\r
- tsx\r
- txa\r
- tay ;; now y has the old sp\r
- \r
- lda #$0\r
- tax\r
- txs\r
- \r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- tsx\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$63\r
- beq :+\r
- jsr test_failure\r
-:\r
- cpx #$00\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ;;restore sp\r
- tya\r
- tax\r
- txs\r
-\r
-\r
-;;TXA\r
-;;X\82ðA\82Ö\83R\83s\81[\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
- ldx #$59\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- txa\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$61\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-\r
- ldx #$ac\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- txa\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e1\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ldx #$00\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- txa\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$63\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-;;;;;;;;;;;;;;;;;;;;;;;more tests.....\r
-\r
-;;TXS\r
-;;X\82ðS\82Ö\83R\83s\81[\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-\r
- tsx\r
- stx $50 ;;sp is stored @0x50\r
- \r
- ldx #$d9\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- txs\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e1 ;;;emulator bug!!! status reg is not reflected....\r
- beq :+\r
-; jsr test_failure\r
-:\r
-\r
- ldx #$00\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- txs\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$63 ;;;emulator bug!!! status reg is not reflected....\r
- beq :+\r
-; jsr test_failure\r
-:\r
-\r
- ldx $50\r
- txs ;;sp is restored\r
-\r
-\r
-;;TYA\r
-;;Y\82ðA\82Ö\83R\83s\81[\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-\r
- ldy #$00\r
- lda #$0b\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- tya\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$63\r
- beq :+\r
- jsr test_failure\r
-:\r
- tya\r
- cmp #0\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
- ldy #$b0\r
- lda #$00\r
-\r
- ;;set status\r
- lda #$c3\r
- pha\r
- plp\r
-\r
- tya\r
-\r
- php\r
- pla\r
- and #$ef ;;mask off brk bit...\r
- cmp #$e1\r
- beq :+\r
- jsr test_failure\r
-:\r
- tya\r
- cmp #$b0\r
- beq :+\r
- jsr test_failure\r
-:\r
-\r
-;;ADC\r
-;;(A + \83\81\83\82\83\8a + \83L\83\83\83\8a\81[\83t\83\89\83O) \82ð\89\89\8eZ\82µ\82Ä\8c\8b\89Ê\82ðA\82Ö\95Ô\82µ\82Ü\82·\81B[N:V:0:0:0:0:Z:C]\r
-;;\r
-;;AND\r
-;;A\82Æ\83\81\83\82\83\8a\82ð\98_\97\9dAND\89\89\8eZ\82µ\82Ä\8c\8b\89Ê\82ðA\82Ö\95Ô\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;ASL\r
-;;A\82Ü\82½\82Í\83\81\83\82\83\8a\82ð\8d¶\82Ö\83V\83t\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:C]\r
-;;\r
-;;BIT\r
-;;A\82Æ\83\81\83\82\83\8a\82ð\83r\83b\83g\94ä\8ar\89\89\8eZ\82µ\82Ü\82·\81B[N:V:0:0:0:0:Z:0]\r
-;;\r
-;;\r
-;;CMP\r
-;;A\82Æ\83\81\83\82\83\8a\82ð\94ä\8ar\89\89\8eZ\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:C]\r
-;;\r
-;;CPX\r
-;;X\82Æ\83\81\83\82\83\8a\82ð\94ä\8ar\89\89\8eZ\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:C]\r
-;;\r
-;;CPY\r
-;;Y\82Æ\83\81\83\82\83\8a\82ð\94ä\8ar\89\89\8eZ\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:C]\r
-;;\r
-;;DEC\r
-;;\83\81\83\82\83\8a\82ð\83f\83N\83\8a\83\81\83\93\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;DEX\r
-;;X\82ð\83f\83N\83\8a\83\81\83\93\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;DEY\r
-;;Y\82ð\83f\83N\83\8a\83\81\83\93\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;EOR\r
-;;A\82Æ\83\81\83\82\83\8a\82ð\98_\97\9dXOR\89\89\8eZ\82µ\82Ä\8c\8b\89Ê\82ðA\82Ö\95Ô\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;INC\r
-;;\83\81\83\82\83\8a\82ð\83C\83\93\83N\83\8a\83\81\83\93\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;INX\r
-;;X\82ð\83C\83\93\83N\83\8a\83\81\83\93\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;INY\r
-;;Y\82ð\83C\83\93\83N\83\8a\83\81\83\93\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;LSR\r
-;;A\82Ü\82½\82Í\83\81\83\82\83\8a\82ð\89E\82Ö\83V\83t\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:C]\r
-;;\r
-;;ORA\r
-;;A\82Æ\83\81\83\82\83\8a\82ð\98_\97\9dOR\89\89\8eZ\82µ\82Ä\8c\8b\89Ê\82ðA\82Ö\95Ô\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;ROL\r
-;;A\82Ü\82½\82Í\83\81\83\82\83\8a\82ð\8d¶\82Ö\83\8d\81[\83e\81[\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:C]\r
-;;\r
-;;ROR\r
-;;A\82Ü\82½\82Í\83\81\83\82\83\8a\82ð\89E\82Ö\83\8d\81[\83e\81[\83g\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:C]\r
-;;\r
-;;SBC\r
-;;(A - \83\81\83\82\83\8a - \83L\83\83\83\8a\81[\83t\83\89\83O\82Ì\94½\93]) \82ð\89\89\8eZ\82µ\82Ä\8c\8b\89Ê\82ðA\82Ö\95Ô\82µ\82Ü\82·\81B[N:V:0:0:0:0:Z:C]\r
-;;\r
-;;PHA\r
-;;A\82ð\83X\83^\83b\83N\82É\83v\83b\83V\83\85\83_\83E\83\93\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;PHP\r
-;;P\82ð\83X\83^\83b\83N\82É\83v\83b\83V\83\85\83_\83E\83\93\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;PLA\r
-;;\83X\83^\83b\83N\82©\82çA\82É\83|\83b\83v\83A\83b\83v\82µ\82Ü\82·\81B[N:0:0:0:0:0:Z:0]\r
-;;\r
-;;PLP\r
-;;\83X\83^\83b\83N\82©\82çP\82É\83|\83b\83v\83A\83b\83v\82µ\82Ü\82·\81B[N:V:R:B:D:I:Z:C]\r
-;;\r
-;;JMP\r
-;;\83A\83h\83\8c\83X\82Ö\83W\83\83\83\93\83v\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;JSR\r
-;;\83T\83u\83\8b\81[\83`\83\93\82ð\8cÄ\82Ñ\8fo\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;RTS\r
-;;\83T\83u\83\8b\81[\83`\83\93\82©\82ç\95\9c\8bA\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;RTI\r
-;;\8a\84\82è\8d\9e\82Ý\83\8b\81[\83`\83\93\82©\82ç\95\9c\8bA\82µ\82Ü\82·\81B[N:V:R:B:D:I:Z:C]\r
-;;\r
-;;BCC\r
-;;\83L\83\83\83\8a\81[\83t\83\89\83O\82ª\83N\83\8a\83A\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;BCS\r
-;;\83L\83\83\83\8a\81[\83t\83\89\83O\82ª\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;BEQ\r
-;;\83[\83\8d\83t\83\89\83O\82ª\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;BMI\r
-;;\83l\83K\83e\83B\83u\83t\83\89\83O\82ª\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;BNE\r
-;;\83[\83\8d\83t\83\89\83O\82ª\83N\83\8a\83A\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;BPL\r
-;;\83l\83K\83e\83B\83u\83t\83\89\83O\82ª\83N\83\8a\83A\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;BVC\r
-;;\83I\81[\83o\81[\83t\83\8d\81[\83t\83\89\83O\82ª\83N\83\8a\83A\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;BVS\r
-;;\83I\81[\83o\81[\83t\83\8d\81[\83t\83\89\83O\82ª\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\8e\9e\82É\83u\83\89\83\93\83`\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:0]\r
-;;\r
-;;CLC\r
-;;\83L\83\83\83\8a\81[\83t\83\89\83O\82ð\83N\83\8a\83A\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:C]\r
-;;\r
-;;CLD\r
-;;BCD\83\82\81[\83h\82©\82ç\92Ê\8fí\83\82\81[\83h\82É\96ß\82è\82Ü\82·\81B\83t\83@\83~\83R\83\93\82Å\82Í\8eÀ\91\95\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B[0:0:0:0:D:0:0:0]\r
-;;\r
-;;\r
-;;BCD\83\82\81[\83h\82©\82ç\92Ê\8fí\83\82\81[\83h\82É\96ß\82è\82Ü\82·\81B\83t\83@\83~\83R\83\93\82Å\82Í\8eÀ\91\95\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B[0:0:0:0:D:0:0:0]\r
-;;\r
-;;CLI\r
-;;IRQ\8a\84\82è\8d\9e\82Ý\82ð\8b\96\89Â\82µ\82Ü\82·\81B[0:0:0:0:0:I:0:0]\r
-;;\r
-;;CLV\r
-;;\83I\81[\83o\81[\83t\83\8d\81[\83t\83\89\83O\82ð\83N\83\8a\83A\82µ\82Ü\82·\81B[0:V:0:0:0:0:0:0]\r
-;;\r
-;;SEC\r
-;;\83L\83\83\83\8a\81[\83t\83\89\83O\82ð\83Z\83b\83g\82µ\82Ü\82·\81B[0:0:0:0:0:0:0:C]\r
-;;\r
-;;SED\r
-;;BCD\83\82\81[\83h\82É\90Ý\92è\82µ\82Ü\82·\81B\83t\83@\83~\83R\83\93\82Å\82Í\8eÀ\91\95\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ\81B[0:0:0:0:D:0:0:0]\r
-;;\r
-;;SEI\r
-;;IRQ\8a\84\82è\8d\9e\82Ý\82ð\8bÖ\8e~\82µ\82Ü\82·\81B[0:0:0:0:0:I:0:0]\r
-\r
-\r
- ;;restore status\r
- plp\r
-\r
rts\r
.endproc\r
\r