.define .sli2 .sect .text .sect .rom .sect .data .sect .bss .sect .text ! Shift 16 bits integer left ! Expects on stack: number of shifts ! number to be shifted ! Yields in de-reg: result .sli2: pop h shld .retadr pop d !de = number of shifts pop h !hl= number to be shifted mov a,d !if de>15 return zero ora a jnz 2f mov a,e cpi 16 jnc 2f 1: dcr e jm 3f dad h jmp 1b 2: lxi h,0 3: xchg !result in de-registers lhld .retadr pchl