


















































































































































































































setbaud 1,1200,8,n,1
mode_reco
setrts	off

call	init_b0



movd	" Alcatel 4400 (DHS 3) to 5200 BCN - BCS SMDR-Koverter V4.0/n",s7,100
out	s7,100,c4
movd	" for DHS3-BCN                      BY HOERHAGER JOSEF VTE /n",s7,100
out	s7,100,c4
movd	" Ready for working !/l/n",s7,100
out	s7,100,c4
error_main:
mode_reco
jmp	main




main:
movd	"                                                                                    ",s9,0
movd    "C                                                  /n",s6,0
main1:
sett	200
setl	9,1	
setrts	on	
wait	rx_sign,im_sign,cntl_sign
setl	9,2
case	cntl_sign,test_rx_sign
compc	14,255
jz	overrun
jmp	main1
overrun:
movd	"ERROR Buffer overrun on input CHANNEL 1/n",s7,100
writeb	s7,100,0
jmp	error_main
test_rx_sign:
case	rx_sign,test_im_sign



setrts	off

rds	s9,0      
jz	main1
compc	15,0
jz	read_okay
movd	"ERROR          on input CHANNEL 1/n",s7,100
movc	15,s7,106
writeb	s7,100,0
compc	15,128		
jz	read_okay
jmp	error_main
read_okay:
compd	"/n",s9,80  
jz	read1_okay
movd	"reco_end is not okay on channel 1/n",s7,100
writeb	s7,100,0
writeb	s9,0,0
compd	"??//??//",s9,0               

jnz	main

movs	s9,0,s7,200,10		

jmp	main

read1_okay:

writeb	s9,0,0	











compd	"----------",s9,0           
jz	main
compd	"|User    | Username",s9,0  
jz	main
compd	"|  Trsf. |Tr.|N.|",s9,0    
jz	main
compd	"|Teiln.  | Name ",s9,0     
jz	main
compd	"|Umgelegt|Ltg|Kn|",s9,0    
jz	main
compd	"|VerbNr  |Amt|Kn|",s9,0    
jz   main






compd	"??//??//",s9,0               

jnz	dhs3_no_date_line
movs	s9,0,s7,200,10		
jmp	main

dhs3_no_date_line:





compd	"|????????|???|??|",s9,0
jz	dhs3_second_line




movs	s9,0,s7,0,85
jmp	main




dhs3_second_line:
movs	s9,0,s8,0,85 	











movd	"C                                                  /n",s6,0	   




movd	"              ",s14,100
movs    s7,1,s14,100,8
setc	10,100
setc    11,8
find_non_space:
compd	" ",s14,c10
jnz	no_space
incc	10
decc	11
jnz	find_non_space
no_space:
movs	s14,c10,s6,1,4




movs	s8,38,s6,26,2
movs	s8,41,s6,28,2




movs	s7,200,s6,30,2
movs	s7,203,s6,32,2




movs	s8,10,s6,43,3




compd	"    ",s8,1
jz	no_transfered_call

movs	s8,1,s6,47,4
movd	"F",s6,46

no_transfered_call:




compd	"   ",s8,74
jz	non_isdn_call
movd    "I",s6,0

non_isdn_call:




movs	s7,41,s6,35,3




compd	"P",s8,67
jnz	no_privat_call
movd	"P",s6,34

no_privat_call:










compd   "E",s8,78
jz	incoming_call
compd   "F",s8,78
jz	incoming_call
compd   "J",s8,78
jz	incoming_call
compd   "K",s8,78
jz	incoming_call
compd   "M",s8,78
jz	incoming_call
compd   "N",s8,78
jz	incoming_call







movs	s8,17,s6,5,16





compd	".",s8,59
jnz	impulse_cost

movd	"        ",s15,210      
movd	"        ",s15,220      
movd	"80 ",s15,220
movs	s8,54,s15,210,5
movs	s8,60,s15,215,2
acall	div
acall	cut_lz
movs	s15,233,s6,21,5
jmp	cost_end
impulse_cost:
movs	s8,57,s6,21,5
cost_end:




movs	s8,46,s6,38,1
movs	s8,48,s6,39,2
movs	s8,51,s6,41,2


















save_call:
movd    "/n",s6,51
buffwr s6,0
loop_buffer_test:
buffst			


jnz	main		





movd	"ERROR SMDR-Buffer is full !!!!!!!!!/n",s7,100
writeb	s7,100,0
setl	14,2
setl	15,2
sett	20
wait	tf_sign
jmp	loop_buffer_test




incoming_call:




movd	"INCOMING",s6,5












movd	"    0",s6,21




movd	"      ",s15,210

movs	s8,44,s15,210,3
movd	"3600  ",s15,220
acall	mull
movs    s15,230,s15,140,8

movs    s8,48,s15,210,2
movd	"60  ",s15,220
acall	mull

movs	s15,230,s15,220,8
movs    s8,51,s15,210,2
acall	add

movs	s15,230,s15,220,8
movs	s15,140,s15,210,8
acall	add
movs	s15,233,s6,38,5

jmp	save_call




test_im_sign:
case	im_sign,default_test
in	s6,100
out	s6,100,c4
movd	"1ERR_CMD/n",s6,100
out	s6,100,c4
anss	s6,100
jmp	main



default_test:
jmp	main






init_b0:
setp	0XD300,0x20	
setp	0XD301,0x00		

setp	0Xd302,0x40	
setp	0XD303,0x00		

setp	0Xd304,0x40	
setp	0XD305,0x00		

setp	0Xd306,0x20	
setp	0XD307,0x00		

setp	0Xd308,0x40	
setp	0XD309,0x00		

setp	0Xd30A,0x20	
setp	0XD30B,0x00		

setp	0Xd30C,0x40	
setp	0XD30D,0x00		

setp	0XD30E,0x00 	

ret

zzz:
end

