+;----------------------------------------------------------------
+;|Mnemonic |SZHPNC|Description |Notes |
+;----------------------------------------------------------------
+;|INI |?*??1-|Input and Increment |[HL]=[C],HL=HL+1,B=B-1|
+;|IND |?*??1-|Input and Decrement |[HL]=[C],HL=HL-1,B=B-1|
+;|INIR |?1??1-|Input, Inc., Repeat |INI till B=0 |
+;|INDR |?1??1-|Input, Dec., Repeat |IND till B=0 |
+
+op_INxx_common:
+ cbr z_flags,(1<<ZFL_Z)
+ sbr z_flags,(1<<ZFL_N)
+ ldd temp2,y+oz_c ;C
+ lcall portRead
+ ldd xh,y+oz_h ;H
+ ldd xl,y+oz_l ;L
+ lcall dram_write
+ ldd temp,y+oz_b ;B
+ dec temp
+ std y+oz_b,oph ;B
+ brne PC+2
+ sbr z_flags,(1<<ZFL_Z)
+ ret
+
+do_op_INI:
+ rcall op_INxx_common
+ adiw x,1
+ std y+oz_l,xl ;L
+ std y+oz_h,xh ;H
+ ret
+
+do_op_IND:
+ rcall op_INxx_common
+ sbiw x,1
+ std y+oz_l,xl ;L
+ std y+oz_h,xh ;H
+ ret
+
+do_op_INIR:
+ rcall do_op_INI
+ sbrc z_flags,ZFL_Z
+ ret
+ sbiw z_pcl,2
+ ret
+
+do_op_INDR:
+ rcall do_op_IND
+ sbrs z_flags,ZFL_P
+ ret
+ sbiw z_pcl,2
+ ret
+
+;----------------------------------------------------------------
+;|Mnemonic |SZHPNC|Description |Notes |
+;----------------------------------------------------------------
+;|OUTI |?*??1-|Output and Increment |[C]=[HL],HL=HL+1,B=B-1|
+;|OUTD |?*??1-|Output and Decrement |[C]=[HL],HL=HL-1,B=B-1|
+;|OTIR |?1??1-|Output, Inc., Repeat |OUTI till B=0 |
+;|OTDR |?1??1-|Output, Dec., Repeat |OUTD till B=0 |
+
+op_OUTxx_common:
+ cbr z_flags,(1<<ZFL_Z)
+ sbr z_flags,(1<<ZFL_N)
+ lcall dram_read ;temp = (z)
+ ldd temp2,y+oz_c ;C
+ lcall portWrite
+ ldd temp,y+oz_b ;B
+ dec temp
+ std y+oz_b,temp ;B
+ brne PC+2
+ sbr z_flags,(1<<ZFL_Z)
+ ret
+
+do_op_OUTI:
+ ldd xh,y+oz_h ;H
+ ldd xl,y+oz_l ;L
+ adiw x,1
+ std y+oz_l,xl ;L
+ std y+oz_h,xh ;H
+ sbiw x,1
+ rcall op_OUTxx_common
+ ret
+
+do_op_OUTD:
+ ldd xh,y+oz_h ;H
+ ldd xl,y+oz_l ;L
+ sbiw x,1
+ std y+oz_l,xl ;L
+ std y+oz_h,xh ;H
+ adiw x,1
+ rcall op_OUTxx_common
+ ret
+
+do_op_OTIR:
+ rcall do_op_OUTI
+ sbrc z_flags,ZFL_Z
+ ret
+ sbiw z_pcl,2
+ ret
+
+do_op_OTDR:
+ rcall do_op_OUTD
+ sbrs z_flags,ZFL_P
+ ret
+ sbiw z_pcl,2
+ ret
+