; division routine
; 1. calculate flag if result is negate and convert operands to positiv
; 2. second "divide" with unsigned suczessive Approximation
; 3. fix the sign of result
.MACRO INTdivide
LDR R2,%2
LDR R3,%3
MOV R0,#0
CMP R2,#0
RSBLT R2,R2,#0
SUBLT R0,R0,#1
CMP R3,#0
RSBLT R3,R3,#0
MVNLT R0,R0
MOV R1,#0
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l2
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l3
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l4
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l5
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l6
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l7
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l8
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l9
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l10
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l11
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l12
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l13
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l14
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l15
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l16
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l17
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l18
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l19
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l20
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l21
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l22
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l23
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l24
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l25
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l26
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l27
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l28
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l29
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l30
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l31
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
\l32
ADDS R2,R2,R2
ADCS R1,R1,R1
CMP R1,R3
SUBGE R1,R1,R3
ADDGE R2,R2,#1
CMP R0,#0
RSBNE R2,R2,#0
STR R2,%1
.ENDM