X-Git-Url: http://cloudbase.mooo.com/gitweb/avrcpm.git/blobdiff_plain/f24b3c790fd048b43b1d72e63a8a615a47f17cd9..e7a0f4030d1a41cb3e95ce226ba3ab0fc73c158f:/avr/8080int-t3.asm?ds=inline diff --git a/avr/8080int-t3.asm b/avr/8080int-t3.asm index 724c0cd..705f356 100644 --- a/avr/8080int-t3.asm +++ b/avr/8080int-t3.asm @@ -33,7 +33,6 @@ z_e: .byte 1 z_h: .byte 1 z_l: .byte 1 - .cseg ;Init z80 @@ -70,7 +69,6 @@ main: notraceon: .endif - .if PRINT_PC cpi z_pch,DBG_TRACE_BOTTOM brlo noprintpc @@ -433,7 +431,6 @@ do_store_am: ret - ; ------------ Operation phase stuff ----------------- ;.org (PC+255) & 0xff00 @@ -444,10 +441,10 @@ opjumps: gen_opjmp op_dec gen_opjmp op_inc16 gen_opjmp op_dec16 - gen_opjmp op_rlc - gen_opjmp op_rrc - gen_opjmp op_rr - gen_opjmp op_rl + gen_opjmp op_rlca + gen_opjmp op_rrca + gen_opjmp op_rra + gen_opjmp op_rla gen_opjmp op_adda gen_opjmp op_adca gen_opjmp op_subfa @@ -673,7 +670,6 @@ opjumps: .equ ZFL_N = 1 .equ ZFL_C = 0 - .equ AVR_T = SREG_T .equ AVR_H = SREG_H .equ AVR_S = SREG_S @@ -1232,6 +1228,53 @@ do_op_rmem8: ; Z: Set if Acc. is Zero after operation, reset otherwise. ; S: Set if most significant bit of Acc. is 1 after operation, reset otherwise. +#if 1 + +do_op_da: + +#if EM_Z80 + sbrc z_flags,ZFL_N ;if add-op + rjmp op_da_sub ;then +#endif + +op_da_add: + ldi temp2,0 ; new C and H flag + sbrc z_flags,ZFL_H ; | + rjmp op_da_a01 ; if (H flag ... + mov temp,opl ; | + andi temp,0x0f ; | + cpi temp,0x0a ; or (lower nibble >= 0x0A)) + brlo op_da_a10 ; | +op_da_a01: ; then + ldi oph,0x06 ; add 6 to lower nibble + add opl,oph ; + brhc op_da_02 ; if + ori temp2,(1<= 0xA0) + brlo op_da_a13 ; +op_da_a12: ; + ldi oph,0x60 ; add 6 to lower nibble + add opl,oph ; + ori temp2,(1<