**************************************************************** * * TRANSLATION LIBRARY FOR CSC 6502-TO-6809 TRANSLATOR * * cc0902 EQU * PSHS CC,B Save Registers TFR CC,A CLRB Zero 6502 Register BITA #$10 I Flag BEQ *+4 ORAB #$04 BITA #$08 N Flag BEQ *+4 ORAB #$80 BITA #$04 Z Flag BEQ *+4 ORAB #$02 TST sevflg V Flag BEQ *+4 ORAB #$40 BITA #$01 C Flag BEQ *+4 ORAB #$01 TST sedflg D Flag BEQ *+4 ORAB #$80 TFR B,A 6502 CC in A Register PULS CC,B Restore Registers RTS . cc0209 EQU * PSHS A,B Save Registers LDAB #$C0 Reset 6809 CC Register BITA #$04 I Flag BEQ *+4 ORAB #$10 BITA #$80 N Flag BEQ *+4 ORAB #$08 BITA #$02 Z Flag BEQ *+4 ORAB #$04 BITA #$01 C Flag BEQ *+4 ORAB #$01 ANDA #$02 V Flag STA sevflg PULS A D Flag ANDA #$04 STA sedflg TFR B,CC Set 6809 CC Register PULS B,PC adcsub EQU * PSHS CC Save CC Register TFR CC,A ANDA #$02 STA sevflg Set V Flag Byte TST sedflg Check D Flag BEQ *+9 PULS CC Restore CC Register TFR B,A DAA . Convert to Decimal TFR A,B PSHS CC PULS CC,PC Restore Registers sbcsub EQU * STA svareg Save It TST sedflg Check D Flag BEQ *+17 SBCB svareg Subtract With Borrow TFR CC,DP Save CC Register TFR CC,A ANDA #$02 STA sevflg Set V Flag Byte TFR DP,CC Restore CC Register RTS Skip Decimal Mode Case TFR DP,A Check C Flag BITA #$01 BNE *+11 LDA svareg Perform Borrow ADDA #$99 DAA . Convert to Decimal STA svareg Save Result EXG A,B LDB #$99 Form 10's Complement SUBB svareg STB svareg ADDA svareg Add Original Value DAA . Convert to Decimal TFR A,B Restore Result TFR CC,A Flip C Flag EORA #$01 TFR A,CC Restore CC Register RTS . jmpind EQU * PSHS A,B,CC Save Registers LDB ,U Get Pointer LDA $01,U TFR D,U PULS A,B,CC Restore Registers JMP ,U Jump Indirect inxind EQU * PSHS A,B,CC Save Registers TFR CC,DP TFR U,D Wrap Address CLRA TFR D,U LDB ,U Get Pointer LDA $01,U TFR D,U PULS A,B,CC,PC Restore Registers indinx EQU * PSHS A,B,DP Save Registers EXG D,U Add Y Register EXG A,B EXG D,Y LEAY D,Y EXG D,Y EXG D,U PULS A,B,CC,PC Restore Registers zropag EQU * TFR CC,DP Save CC Register EXG D,U Swap Hi and Lo CLRA EXG D,U TFR DP,CC Restore CC Register RTS . initil EQU * LDA #$D0 Initialize Registers TFR A,CC LDS #$01FF LDD #$0000 TFR D,X TFR D,Y TFR A,DP LBRA startr Begin Execution sedflg FCB $00 D Flag sevflg FCB $00 V Flag svareg FCB $00 Work Area END initil