.define .sli4 .sect .text .sect .rom .sect .data .sect .bss .sect .text ! Shift 32 bits integer left ! Expects on stack: number of shifts ! number to be shifted ! Yields on stack: result .sli4: pop h shld .retadr mov h,b mov l,c shld .bcreg pop b !number of shifts pop d !low-order bytes of number to be shifted pop h !high-order bytes mov a,b !if bc>=32 return 0 ora a jnz 2f mov a,c cpi 32 jnc 2f 1: dcr c jm 3f dad h xchg dad h xchg jnc 1b inx h jmp 1b 2: lxi h,0 lxi d,0 3: push h push d lhld .bcreg mov b,h mov c,l lhld .retadr pchl