X-Git-Url: http://cloudbase.mooo.com/gitweb/avrcpm.git/blobdiff_plain/f24b3c790fd048b43b1d72e63a8a615a47f17cd9..f1deeee3217eb8143c1754ce60c1f015a5a47b57:/avr/8080int.asm diff --git a/avr/8080int.asm b/avr/8080int.asm index b660a3c..f3967bb 100644 --- a/avr/8080int.asm +++ b/avr/8080int.asm @@ -43,7 +43,6 @@ z_e: .byte 1 z_h: .byte 1 z_l: .byte 1 - .cseg ;Init z80 @@ -80,7 +79,6 @@ main: notraceon: .endif - .if PRINT_PC cpi z_pch,DBG_TRACE_BOTTOM brlo noprintpc @@ -371,7 +369,6 @@ do_store_am: ret - ; ------------ Operation phase stuff ----------------- ;---------------------------------------------------------------- @@ -563,7 +560,6 @@ do_store_am: .equ ZFL_N = 1 .equ ZFL_C = 0 - .equ AVR_T = SREG_T .equ AVR_H = SREG_H .equ AVR_S = SREG_S @@ -1122,6 +1118,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<