;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.1.8Ia Tue Jul 27 21:55:30 1999

;--------------------------------------------------------
	.module _mululong
;--------------------------------------------------------
; publics variables in this module
;--------------------------------------------------------
	.globl __mululong_PARM_2
	.globl __mululong_PARM_1
	.globl __mululong
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
;--------------------------------------------------------
; special function bits 
;--------------------------------------------------------
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
	.area	DSEG    (DATA)
__mululong_sloc0_1_0:
	.ds	0x0004
__mululong_sloc1_1_0:
	.ds	0x0001
__mululong_sloc2_1_0:
	.ds	0x0001
__mululong_sloc3_1_0:
	.ds	0x0004
__mululong_sloc4_1_0:
	.ds	0x0004
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
	.area	OSEG	(OVR,DATA)
;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
	.area	ISEG    (DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
	.area	BSEG    (BIT)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
	.area	XSEG    (XDATA)
__mululong_PARM_1:
	.ds	0x0004
__mululong_PARM_2:
	.ds	0x0004
__mululong_p_1_1:
	.ds	0x0004
__mululong_s_1_1:
	.ds	0x0004
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
	.area GSINIT (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG (CODE)
;  _mululong.c 25
;  -----------------------------------------
;   function _mululong
;  -----------------------------------------
__mululong:
	ar2 = 0x02
	ar3 = 0x03
	ar4 = 0x04
	ar5 = 0x05
	ar6 = 0x06
	ar7 = 0x07
	ar0 = 0x00
	ar1 = 0x01
;  _mululong.c 27
	mov  dptr,#__mululong_p_1_1
	clr  a
	inc  dptr
	inc  dptr
	inc  dptr
	movx  @dptr,a
	lcall  __decdptr
	movx  @dptr,a
	lcall  __decdptr
	movx  @dptr,a
	lcall  __decdptr
	movx  @dptr,a
	mov  dptr,#__mululong_s_1_1
	clr  a
	inc  dptr
	inc  dptr
	inc  dptr
	movx  @dptr,a
	lcall  __decdptr
	movx  @dptr,a
	lcall  __decdptr
	movx  @dptr,a
	lcall  __decdptr
	movx  @dptr,a
;  _mululong.c 33
	mov  dptr,#__mululong_PARM_2
	movx  a,@dptr
	mov  r6,a
	inc  dptr
	movx  a,@dptr
	mov  r7,a
	inc  dptr
	movx  a,@dptr
	mov  r0,a
	inc  dptr
	movx  a,@dptr
	mov  r1,a
	mov  __mululong_sloc2_1_0,#0x20
00101$:
	push  ar6
	push  ar7
	push  ar0
	push  ar1
	mov  dptr,#__mululong_PARM_1
	movx  a,@dptr
	mov  r3,a
	inc  dptr
	movx  a,@dptr
	mov  r4,a
	inc  dptr
	movx  a,@dptr
	mov  r5,a
	inc  dptr
	movx  a,@dptr
	mov  r6,a
	mov  ar7,r3
	anl  ar7,#0x01
;  _mululong.c 34
	clr  c
	mov  a,r6
	rrc  a
	mov  (__mululong_sloc0_1_0 + 3),a
	mov  a,r5
	rrc  a
	mov  (__mululong_sloc0_1_0 + 2),a
	mov  a,r4
	rrc  a
	mov  (__mululong_sloc0_1_0 + 1),a
	mov  a,r3
	rrc  a
; Peephole 100
	mov  __mululong_sloc0_1_0,a
	mov  dptr,#__mululong_PARM_1
	movx @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc0_1_0 + 1)
	movx  @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc0_1_0 + 2)
	movx  @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc0_1_0 + 3)
	movx  @dptr,a
;  _mululong.c 35
	mov  a,r7
	pop  ar1
	pop  ar0
	pop  ar7
	pop  ar6
; Peephole 110
	jz  00103$
00116$:
;  _mululong.c 36
	mov  dptr,#__mululong_s_1_1
	movx  a,@dptr
	mov  r3,a
	inc  dptr
	movx  a,@dptr
	mov  r4,a
	inc  dptr
	movx  a,@dptr
	mov  r5,a
	inc  dptr
	movx  a,@dptr
	mov  r2,a
	mov  dptr,#__mululong_s_1_1
	mov  a,r6
	add  a,r3
	movx  @dptr,a
	mov  a,r7
	addc  a,r4
	inc  dptr
	movx  @dptr,a
	mov  a,r0
	addc  a,r5
	inc  dptr
	movx  @dptr,a
	mov  a,r1
	addc  a,r2
	inc  dptr
	movx  @dptr,a
;  _mululong.c 49
;  _mululong.c 36
00103$:
;  _mululong.c 38
	push  ar6
	push  ar7
	push  ar0
	push  ar1
	mov  dptr,#__mululong_s_1_1
	movx  a,@dptr
	mov  r3,a
	inc  dptr
	movx  a,@dptr
	mov  r4,a
	inc  dptr
	movx  a,@dptr
	mov  r5,a
	inc  dptr
	movx  a,@dptr
	mov  r6,a
	mov  ar7,r3
	mov  a,#0x01
	anl  a,r7
	mov  __mululong_sloc1_1_0,a
	mov  dptr,#__mululong_p_1_1
	movx  a,@dptr
	mov  __mululong_sloc3_1_0,a
	inc  dptr
	movx  a,@dptr
	mov  (__mululong_sloc3_1_0 + 1),a
	inc  dptr
	movx  a,@dptr
	mov  (__mululong_sloc3_1_0 + 2),a
	inc  dptr
	movx  a,@dptr
	mov  (__mululong_sloc3_1_0 + 3),a
	mov  r2,__mululong_sloc1_1_0
; Peephole 3.c
; Peephole 3.b
	clr  a
	mov  r7,a
	mov  r0,a
	mov  r1,a
	mov  a,__mululong_sloc3_1_0
	orl  ar2,a
	mov  a,(__mululong_sloc3_1_0 + 1)
	orl  ar7,a
	mov  a,(__mululong_sloc3_1_0 + 2)
	orl  ar0,a
	mov  a,(__mululong_sloc3_1_0 + 3)
	orl  ar1,a
;  _mululong.c 40
	clr  c
	mov  a,r6
	rrc  a
	mov  (__mululong_sloc3_1_0 + 3),a
	mov  a,r5
	rrc  a
	mov  (__mululong_sloc3_1_0 + 2),a
	mov  a,r4
	rrc  a
	mov  (__mululong_sloc3_1_0 + 1),a
	mov  a,r3
	rrc  a
; Peephole 100
	mov  __mululong_sloc3_1_0,a
	mov  dptr,#__mululong_s_1_1
	movx @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc3_1_0 + 1)
	movx  @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc3_1_0 + 2)
	movx  @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc3_1_0 + 3)
	movx  @dptr,a
;  _mululong.c 41
	clr  c
	mov  a,r1
	rrc  a
	mov  (__mululong_sloc4_1_0 + 3),a
	mov  a,r0
	rrc  a
	mov  (__mululong_sloc4_1_0 + 2),a
	mov  a,r7
	rrc  a
	mov  (__mululong_sloc4_1_0 + 1),a
	mov  a,r2
	rrc  a
	mov  __mululong_sloc4_1_0,a
	mov  a,(__mululong_sloc4_1_0 + 3)
	mov  acc.7,c
	mov  (__mululong_sloc4_1_0 + 3),a
	mov  dptr,#__mululong_p_1_1
	mov  a,__mululong_sloc4_1_0
	movx  @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc4_1_0 + 1)
	movx  @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc4_1_0 + 2)
	movx  @dptr,a
	inc  dptr
	mov  a,(__mululong_sloc4_1_0 + 3)
	movx  @dptr,a
;  _mululong.c 42
	dec  __mululong_sloc2_1_0
;  _mululong.c 43
	pop  ar1
	pop  ar0
	pop  ar7
	pop  ar6
	mov  a,__mululong_sloc0_1_0
	orl  a,(__mululong_sloc0_1_0 + 1)
	orl  a,(__mululong_sloc0_1_0 + 2)
	orl  a,(__mululong_sloc0_1_0 + 3)
	jz  00117$
	ljmp  00101$
00117$:
;  _mululong.c 45
	mov  dptr,#__mululong_p_1_1
	mov  a,__mululong_sloc3_1_0
	orl  a,__mululong_sloc4_1_0
	movx  @dptr,a
	mov  a,(__mululong_sloc3_1_0 + 1)
	orl  a,(__mululong_sloc4_1_0 + 1)
	inc  dptr
	movx  @dptr,a
	mov  a,(__mululong_sloc3_1_0 + 2)
	orl  a,(__mululong_sloc4_1_0 + 2)
	inc  dptr
	movx  @dptr,a
	mov  a,(__mululong_sloc3_1_0 + 3)
	orl  a,(__mululong_sloc4_1_0 + 3)
	inc  dptr
	movx  @dptr,a
;  _mululong.c 46
	mov  r2,__mululong_sloc2_1_0
00106$:
	mov  ar3,r2
	dec  r2
	mov  a,r3
; Peephole 110
	jz  00108$
00118$:
;  _mululong.c 47
	push  ar2
	mov  dptr,#__mululong_p_1_1
	movx  a,@dptr
	mov  r3,a
	inc  dptr
	movx  a,@dptr
	mov  r4,a
	inc  dptr
	movx  a,@dptr
	mov  r5,a
	inc  dptr
	movx  a,@dptr
	mov  r2,a
	mov  dptr,#__mululong_p_1_1
	clr  c
	mov  a,r2
	rrc  a
	inc  dptr
	inc  dptr
	inc  dptr
	movx  @dptr,a
	mov  a,r5
	rrc  a
	lcall  __decdptr
	movx  @dptr,a
	mov  a,r4
	rrc  a
	lcall  __decdptr
	movx  @dptr,a
	mov  a,r3
	rrc  a
	lcall  __decdptr
	movx  @dptr,a
	inc  dptr
	inc  dptr
	inc  dptr
	movx  a,@dptr
	mov  acc.7,c
	movx  @dptr,a
	pop  ar2
; Peephole 132
	sjmp 00106$
00108$:
;  _mululong.c 49
	mov  dptr,#__mululong_p_1_1
	movx  a,@dptr
	mov  r2,a
	inc  dptr
	movx  a,@dptr
	mov  r3,a
	inc  dptr
	movx  a,@dptr
	mov  r4,a
	inc  dptr
	movx  a,@dptr
; Peephole 191
	mov  r5,a
	mov  dpl,r2
	mov  dph,r3
	mov  b,r4
00109$:
	ret  
	.area	CSEG    (CODE)
