; [DE..DE+BC-1] = [HL..HL+BC-1] / IX (IX < 8000H) MPDIV15: DEC BC INC C INC B LD A,C LD C,B LD B,A PUSH IX EXX POP DE LD HL,0 EXX MPDIV15_L1: LD A,(HL) INC HL EXX ADD A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB1 ADD HL,DE MPDIV15_LB1: ADC A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB2 ADD HL,DE MPDIV15_LB2: ADC A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB3 ADD HL,DE MPDIV15_LB3: ADC A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB4 ADD HL,DE MPDIV15_LB4: ADC A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB5 ADD HL,DE MPDIV15_LB5: ADC A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB6 ADD HL,DE MPDIV15_LB6: ADC A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB7 ADD HL,DE MPDIV15_LB7: ADC A,A ADC HL,HL SBC HL,DE JR NC,MPDIV15_LB8 ADD HL,DE MPDIV15_LB8: ADC A,A CPL EXX LD (DE),A INC DE DJNZ MPDIV15_L1 DEC C JR NZ,MPDIV15_L1 RET ; [DE..DE+BC-1] = [HL..HL+BC-1] / IX MPDIV16: DEC BC INC C INC B LD A,C LD C,B LD B,A PUSH IX EXX POP DE LD A,E CPL LD C,A LD A,D CPL LD B,A INC BC LD HL,0 EXX MPDIV16_L1: LD A,(HL) INC HL EXX ADD A,A ADC HL,HL JR NC,MPDIV16_LB1_1 ADD HL,BC JP MPDIV16_LB1_2 MPDIV16_LB1_1: SBC HL,DE JR NC,MPDIV16_LB1_2 ADD HL,DE MPDIV16_LB1_2: ADC A,A ADC HL,HL JR NC,MPDIV16_LB2_1 ADD HL,BC JP MPDIV16_LB2_2 MPDIV16_LB2_1: SBC HL,DE JR NC,MPDIV16_LB2_2 ADD HL,DE MPDIV16_LB2_2: ADC A,A ADC HL,HL JR NC,MPDIV16_LB3_1 ADD HL,BC JP MPDIV16_LB3_2 MPDIV16_LB3_1: SBC HL,DE JR NC,MPDIV16_LB3_2 ADD HL,DE MPDIV16_LB3_2: ADC A,A ADC HL,HL JR NC,MPDIV16_LB4_1 ADD HL,BC JP MPDIV16_LB4_2 MPDIV16_LB4_1: SBC HL,DE JR NC,MPDIV16_LB4_2 ADD HL,DE MPDIV16_LB4_2: ADC A,A ADC HL,HL JR NC,MPDIV16_LB5_1 ADD HL,BC JP MPDIV16_LB5_2 MPDIV16_LB5_1: SBC HL,DE JR NC,MPDIV16_LB5_2 ADD HL,DE MPDIV16_LB5_2: ADC A,A ADC HL,HL JR NC,MPDIV16_LB6_1 ADD HL,BC JP MPDIV16_LB6_2 MPDIV16_LB6_1: SBC HL,DE JR NC,MPDIV16_LB6_2 ADD HL,DE MPDIV16_LB6_2: ADC A,A ADC HL,HL JR NC,MPDIV16_LB7_1 ADD HL,BC JP MPDIV16_LB7_2 MPDIV16_LB7_1: SBC HL,DE JR NC,MPDIV16_LB7_2 ADD HL,DE MPDIV16_LB7_2: ADC A,A ADC HL,HL JR NC,MPDIV16_LB8_1 ADD HL,BC JP MPDIV16_LB8_2 MPDIV16_LB8_1: SBC HL,DE JR NC,MPDIV16_LB8_2 ADD HL,DE MPDIV16_LB8_2: ADC A,A CPL EXX LD (DE),A INC DE DJNZ MPDIV16_L1 DEC C JR NZ,MPDIV16_L1 RET