












































































































































































































































































































































































































































































































































































































































































































































setbaud 1,9600,8,n,1
setp	0x7f02,0x02
mode_reco




call	init_b0
call	init_b1
call	init_b2
call	init_b3
call	init_b4
call	init_b5
movd    "11110000111100001111000011110000",0xd0c0,0
movd    "11110000n",0xcfc0,0

compd	"init ",s14,195
jz	skip_init


movd	"000000201100",s14,242
call	dbs_tln_init
skip_init:
movd	"init ",s14,195
movd	"000 ",s12,200
movd	"000 ",s12,210
movd	"                    ",s14,200
movd	"                    >/n",s14,220

setrts	off
sett	10
wait	tf_sign
movd    " 4200eAHL V3.2 (4200ah32.DW3) by J. Hoerhager AOCE/n",s7,0
out	s7,0,c4



error_main:
setp	0x7f02,0x02
mode_reco
movd    " 4200eAHL V3.2 Modul 3 Ready/n",s7,100
out	s7,100,c4



main:
sett	100

main_1:

setrts	on
wait	ans_sign,tf_sign,im_sign
case	ans_sign,test_im_sign





readb	s3,0,2
jnz	process_ticket		
readb	s3,0,3	
jnz	process_ahl
readb	s3,0,4	
jnz	mess_send
jmp	main_1



mess_send:
wrs	s3,0,150
movd	"/l/n",s3,0
wrs	s3,0,10

jmp	main_send_sig



process_ahl:

out	s3,0,c4

compd	"1",s14,242
jnz	ahl_in1
movd	" RdB:    /n",s10,0
movs	s3,0,s10,5,100
writeb	s10,0,4
sendsig ans_sign,c3
ahl_in1:
compd	"I",s3,0
jz	ahl_interogation
compd	"A",s3,0
jz	ahl_incheck
compd	"M",s3,0
jz	ahl_modifikation
compd	"D",s3,0
jz	ahl_outcheck
movd	"R     INV  J/n",s7,0
movs	s3,1,s7,1,5
compd	"1",s14,242
jnz	ahl_in2
movd	"WrB:    /n",s10,0
movs	s7,0,s10,5,100
writeb	s10,0,4
sendsig ans_sign,c3
ahl_in2:
writeb	s7,0,5
sendsig ans_sign,c2	
jmp	main_send_sig

process_ticket:

out	s3,0,c4

compd	"1",s14,246
jnz	dhs_out1
movd	"    /n",s10,0
movs	s3,0,s10,0,160
compd	"1",s14,247
jnz	test_p2
movs	s10,123,s10,106,16
movd	"/n",s10,122
jmp	proto_end
test_p2:
proto_end:
writeb	s10,0,4
sendsig ans_sign,c3
dhs_out1:

compd	"/n",s3,0          
jz     main_send_sig

jr	s12,200
jmp	state_0 	
jmp	state_1 	
jmp	state_2
jmp	state_3
jmp	state_4
jmp	state_5
jmp	state_6
jmp	state_7
jmp	state_8
jmp	state_9
jmp	state_10	
jmp	state_11	
jmp	state_12	
jmp	state_13	
jmp	state_14	
jmp	state_15	
jmp	state_16	
jmp	state_17	
jmp	state_18
jmp	state_19
jmp	state_20	


state_0:

movd	" State_0_modul_3/n",s7,200
out	s7,200,c4

movd	"000 ",s12,200
compd	"-----",s3,0
jz	head_line1

compd	"^L/n",s3,0
jz	main_send_sig





compd	" ????? A???? -->",s3,0
jz	smdr_r31_out
compd	" ????? A???? |->",s3,0
jz	smdr_r31_out
compd	" ????? A???? CS?",s3,0
jz	smdr_r31_out

compd	" ????? A???? <--",s3,0
jz	smdr_r31_in
compd	" ????? A???? <-|",s3,0
jz	smdr_r31_in

compd	" ????? A????     ZI",s3,0
jz	termin_r31

compd   " ????? A????     RO",s3,0
jz	termin_r31

compd   " ????? A????     CH",s3,0
jz	termin_r31

compd   " ????? A????     CA",s3,0
jz	termin_r31

compd	" ????? A????    ",s3,0
jz	room_r31_state


jmp	main_send_sig



state_1:
state_2:
state_3:
state_4:
state_5:
state_6:
state_7:
state_8:
state_9:
state_18:
state_19:
jmp	main_send_sig




termin_r31:
call	r31terminruf
jmp	main_send_sig



room_r31_state:
call	t_zusatzkosten
jz	smdr_r31_out



call	r31data_entry
jmp	main_send_sig




head_line1:
compd	"---/n",s3,58
jnz	main_send_sig





movd	" State_010_modul_3/n",s7,200
out	s7,200,c4

movd	"010 ",s12,200      
movd	"                                                                              /n",s8,0
movd	"                                                                              /n",s8,70
main_send_sig:
sendsig ans_sign,c3
jmp	main




state_10:
compd	"  |/n",s3,58
jnz	state_0
movd	"011 ",s12,200
jmp	main_send_sig



state_11:
compd	"  |/n",s3,58
jnz	state_0

movd	"012 ",s12,200
call    t_ti_save_time

movd	"01",s8,32
call    t_ti_jan
jz      main_send_sig

movd	"02",s8,32
call    t_ti_feb
jz	main_send_sig

movd	"03",s8,32
call    t_ti_maerz
jz	main_send_sig

movd	"04",s8,32
call    t_ti_april
jz	main_send_sig

movd	"05",s8,32
call    t_ti_mai
jz	main_send_sig

movd	"06",s8,32
call    t_ti_juni
jz	main_send_sig

movd	"07",s8,32
call    t_ti_juli
jz	main_send_sig

movd	"08",s8,32
call    t_ti_august
jz	main_send_sig

movd	"09",s8,32
call    t_ti_september
jz	main_send_sig

movd	"10",s8,32
call    t_ti_oktober
jz	main_send_sig

movd	"11",s8,32
call    t_ti_november
jz	main_send_sig

movd	"12",s8,32
call    t_ti_dezember
jz	main_send_sig

jmp	main_send_sig



state_12:
compd	"  |/n",s3,58
jnz	state_0
movd	"013 ",s12,200
jmp	main_send_sig



state_13:
compd	"  |/n",s3,58
jnz	state_0
call    t_ti_name
jnz	test_st_17		

movs	s3,34,s8,6,20

movd	"014 ",s12,200
jmp	main_send_sig

test_st_17:
call    t_ti_cabin_set
jnz	state_0
movd	"017 ",s12,200
jmp	main_send_sig

state_17:
compd	"---/n",s3,58
jnz	main_send_sig
movd	"000 ",s12,200
jmp	main_send_sig





state_14:
compd	"  |/n",s3,58
jnz	state_0
call    t_ti_room_number
jnz	state_0

movs	s3,34,s8,1,4

movd	"015",s12,200
jmp	main_send_sig






state_15:
compd	"  |/n",s3,58
jnz	state_0

call    t_ti_language
jnz	test_checkout

movs	s3,34,s8,42,1

movd	"016",s12,200
jmp	main_send_sig

test_checkout:
call    t_ti_deposit
jnz	test_anzahl

movs	s3,34,s8,61,7
jmp	main_send_sig

test_anzahl:
call    t_ti_calls              
jnz	test_empty_line

movs	s3,34,s8,38,3

movd	"020 ",s12,200
jmp	main_send_sig

test_empty_line:
compd	"| ?   ",s3,0
jz     sk_e10_state
compd	"! ?   ",s3,0
jnz	state_0
sk_e10_state:

jmp	main_send_sig





state_16:
compd	"---/n",s3,58
jz	state_16skip

call    t_ti_password
jnz	st16_n1

movs	s3,34,s8,43,4

jmp	main_send_sig
st16_n1:
call    t_ti_ddi_number
jnz	st16_n2

movs	s3,34,s8,47,4

jmp	main_send_sig
st16_n2:
call    t_ti_calls
jnz	st16_n3

movs	s3,34,s8,38,3

jmp	main_send_sig
st16_n3:
call    t_ti_dnd
jnz	st16_n4

movs	s3,34,s8,52,1

jmp	main_send_sig
st16_n4:
call    t_ti_message
jnz	st16_n5

movs	s3,34,s8,53,1

jmp	main_send_sig
st16_n5:
call    t_ti_deposit
jnz	st16_n6

movs	s3,34,s8,61,7

jmp	main_send_sig
st16_n6:
call    t_ti_costs
jnz	st16_n7

movs	s3,34,s8,71,7

jmp	main_send_sig
st16_n7:
call    t_ti_external_calls
jnz	st16_n8

movs	s3,34,s8,54,1

jmp	main_send_sig
st16_n8:
jmp	main_send_sig
state_16skip:









movs	s8,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext
jnz	else_inotfound


compd	"I",s14,5
jnz	else_iextstate

call	send_m_mess
jmp	eif_iextstate

else_iextstate:
call	send_a_mess
movd	"I",s14,5
acall	write_dbs

eif_iextstate:

jmp	eif_onotfound

else_inotfound:
call	find_free
jnz	skip_idef
movd	"     I /n",s14,0
movs	s8,1,s14,200,5
call	to_left
movs	s14,220,s14,0,5
acall	write_dbs
skip_idef:
call	send_a_mess

eif_inotfound:
movd	"000 ",s12,200
jmp	main_send_sig












state_20:


compd	"---/n",s3,58
jz	state_20skip
call    t_ti_total_costs
jnz	st20_n1

movs	s3,34,s8,71,7
jmp	main_send_sig
st20_n1:
call    t_ti_debit
jnz	st20_n2

movs	s3,34,s8,81,7
jmp	main_send_sig
st20_n2:
call    t_ti_credit
jnz	st20_n3

movs	s3,34,s8,91,7
jmp	main_send_sig
st20_n3:
jmp	main_send_sig
state_20skip:









movs	s8,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext
jnz	else_onotfound



compd	"T",s14,6
jnz	else_osub_t

call	send_t_mess
movd	" ",s14,6
acall	write_dbs
jmp	eif_osub_t

else_osub_t:
compd	"I",s14,5
jnz	else_oextstate

call	send_t_mess
call	send_d_mess
movd	"O",s14,5
acall	write_dbs
jmp	eif_oextstate

else_oextstate:
call	send_t_mess
call	send_d_mess
movd	"O",s14,5
acall	write_dbs

eif_oextstate:

eif_osub_t:

jmp	eif_onotfound

else_onotfound:
call	find_free
jnz	skip_odef
movd	"     O /n",s14,0
movs	s8,1,s14,200,5
call	to_left
movs	s14,220,s14,0,5
acall	write_dbs
skip_odef:
call	send_t_mess
call	send_d_mess

eif_onotfound:
movd	"000 ",s12,200
jmp	main_send_sig



send_t_mess:
movd	"Tnnnnnccccsssssssssdddddddddbbbbbbbbb/n",s7,0
movs	s8,1,s14,200,5
call	to_right
movs	s14,235,s7,1,5
movs	s8,38,s14,200,4
call	to_right
movs	s14,236,s7,6,4
movs	s8,71,s14,200,9
call	up_to_space
movs	s14,220,s7,10,9
movs	s8,61,s14,200,9
call	up_to_space
movs	s14,220,s7,19,9
compd	"0",s8,81
jnz	open_soll
movs	s8,91,s14,200,9
call	up_to_space
movs	s14,220,s7,28,9
jmp	send_buffer

open_soll:
movs	s8,81,s14,200,9
call	up_to_space
movd	"-",s7,28
movs	s14,220,s7,29,8



send_buffer:
buffst			
jnz	send_1_b
movd	"Delete FIFO:  /n",s10,0
buffrd	s10,13

compd	"1",s14,245
jnz	fifo_old1
writeb	s10,0,4
sendsig ans_sign,c3
fifo_old1:
out	s10,0,c4

jmp	send_buffer	
send_1_b:
compd	"1",s14,243
jnz	ahl_out1
movd	"WrB:    /n",s10,0
movs	s7,0,s10,5,100
writeb	s10,0,4
sendsig ans_sign,c3
ahl_out1:

buffwr	s7,0

out	s7,0,c4
ret


send_d_mess:
movd	"Dnnnnn/n",s7,0
movs	s8,1,s14,200,5
call	to_right
movs	s14,235,s7,1,5
jmp	send_buffer


send_a_mess:

movd	"Annnnn nnnnnnnnnnnnnnnnnnnnl    pppp  dddddddddm     d/n",s7,0
movs	s8,1,s14,200,5
call	to_right
movs	s14,235,s7,1,5
movs	s8,6,s7,7,20

movd	"1",s7,27
compd	"Deu",s8,42
jz	lang_end
movd	"2",s7,27
compd	"Eng",s8,42
jz	lang_end
movd	"3",s7,27
compd	"Fr",s8,42
jz	lang_end
movd	"4",s7,27
compd	"It",s8,42
jz	lang_end
movd	" ",s7,27
lang_end:

movs	s8,43,s7,32,4
movs	s8,61,s14,200,9
call	up_to_space
movs	s14,220,s7,38,9

movd	"0",s7,53
compd	"aus",s8,52
jz	dnd_end
movd	"1",s7,53
compd	"ein",s8,52
jz	dnd_end
movd	" ",s7,53
dnd_end:

movd	"0",s7,47
compd	"nein",s8,53
jz	mess_end
movd	"1",s7,47
compd	"ja",s8,53
jz	mess_end
movd	" ",s7,47
mess_end:

jmp	send_buffer


send_m_mess:




movd	"Mnnnnn nnnnnnnnnnnnnnnnnnnnl    pppp  dddddddddm     d/n",s7,0
movs	s8,1,s14,200,5
call	to_right
movs	s14,235,s7,1,5
movs	s8,6,s7,7,20

movd	"1",s7,27
compd	"Deu",s8,42
jz	lang_mend
movd	"2",s7,27
compd	"Eng",s8,42
jz	lang_mend
movd	"3",s7,27
compd	"Fr",s8,42
jz	lang_mend
movd	"4",s7,27
compd	"It",s8,42
jz	lang_mend
movd	" ",s7,27
lang_mend:

movs	s8,43,s7,32,4
movs	s8,61,s14,200,9
call	up_to_space
movs	s14,220,s7,38,9

movd	"0",s7,53
compd	"aus",s8,52
jz	dnd_mend
movd	"1",s7,53
compd	"ein",s8,52
jz	dnd_mend
movd	" ",s7,53
dnd_mend:

movd	"0",s7,47
compd	"nein",s8,53
jz	mess_mend
movd	"1",s7,47
compd	"ja",s8,53
jz	mess_mend
movd	" ",s7,47
mess_mend:

jmp	send_buffer






smdr_r31_out:
call	r31outgoing_call
jmp	main_send_sig




smdr_r31_in:
call	r31incomming_call
jmp	main_send_sig






r31terminruf:
compd "PROG",s3,60
jz    r31wakeup_w
compd "PROG",s3,60
jz    r31wakeup_w
compd "PROG",s3,60
jz    r31wakeup_w
compd "PROG",s3,60
jz    r31wakeup_w

compd "GEL",s3,60
jz    r31wakeup_q
compd "CANC",s3,60
jz    r31wakeup_q
compd "ANNU",s3,60
jz    r31wakeup_q
compd "ANNU",s3,60
jz    r31wakeup_q

compd "UNB",s3,60
jz    r31wakeup_n
compd "NOT ",s3,60
jz    r31wakeup_n
compd "NON ",s3,60
jz    r31wakeup_n
compd "NON ",s3,60
jz    r31wakeup_n

compd "BE",s3,60
jz    r31wakeup_a
compd "ACKN",s3,60
jz    r31wakeup_a
compd "ACQU",s3,60
jz    r31wakeup_a
compd "EFFE",s3,60
jz    r31wakeup_a
ret



r31ext_replace:
replace "A ",s3,7,5
movs	s3,7,s14,200,5
call	to_right
movs	s14,235,s7,1,5
ret


r31wakeup_a:


movd  "P     W  c                     /n",s7,0
call  r31ext_replace
movd  "A",s7,9




movs  s3,30,s7,17,2
movs  s3,33,s7,19,2
movs  s3,21,s7,11,2
movs  s3,24,s7,13,2
movs  s3,27,s7,15,2

jmp	send_buffer




r31wakeup_n:

movd  "P     W  c                     /n",s7,0
call  r31ext_replace
movd  "N",s7,9
compd	"F",s3,74       
jz	skip_busy_noanswer
compd   "F",s3,79     
jz	skip_busy_noanswer
compd   "L",s3,75     
jz	skip_busy_noanswer
compd   "L",s3,77     
jz	skip_busy_noanswer
movd	"B",s7,9      
skip_busy_noanswer:



movs  s3,30,s7,17,2
movs  s3,33,s7,19,2
movs  s3,21,s7,11,2
movs  s3,24,s7,13,2
movs  s3,27,s7,15,2

jmp	send_buffer




r31wakeup_w:

movd  "P     W  c                     /n",s7,0
call  r31ext_replace
movd  "P",s7,9



movs  s3,30,s7,17,2
movs  s3,33,s7,19,2
movs  s3,21,s7,11,2
movs  s3,24,s7,13,2
movs  s3,27,s7,15,2



movs  s3,36,s7,26,2
movs  s3,39,s7,28,2

jmp	send_buffer





r31wakeup_q:

movd  "P     W  c                     /n",s7,0
call  r31ext_replace
movd  "C",s7,9



movs  s3,30,s7,17,2
movs  s3,33,s7,19,2
movs  s3,21,s7,11,2
movs  s3,24,s7,13,2
movs  s3,27,s7,15,2

jmp	send_buffer




r31data_entry:
compd	"0",s14,248
jz	r31_do_data_entry
compd	"1",s14,248
jz	rstate_t1
rstate_t2:
movd	"C          /n",s7,0
call	r31ext_replace
movs	s3,83,s7,6,3
movs	s3,82,s7,10,1
replace "- ",s7,6,4

jmp	send_buffer

rstate_t1:
movd	"C          /n",s7,0
call  r31ext_replace
movs  s3,82,s7,6,4
replace "- ",s7,6,4

jmp	send_buffer

r31_do_data_entry:

movd  "P     4200                      /n",s7,0
call  r31ext_replace
movs  s3,82,s7,11,4
replace "- ",s7,11,4

jmp	send_buffer






r31outgoing_call:



movd	"J        00     DDMMYYhhmm mmmss00000000  00                    /n",s7,0
call	r31ext_replace




movs  s3,60,s7,44,20
replace ". ",s7,44,20
replace "- ",s7,44,20




compd	"0",s14,250
jz	out_cost

movd	"        ",s7,32
movd	"        ",s15,210
movs	s3,45,s15,210,4
movd	"0 ",s15,220
acall	add
movs	s15,230,s7,32,8
jmp	out_sw_end
out_cost:
movs	s3,95,s7,32,8
out_sw_end:




movs  s3,30,s7,22,2
movs  s3,33,s7,24,2




movs  s3,21,s7,16,2
movs  s3,24,s7,18,2
movs  s3,27,s7,20,2




movs	s3,42,s7,30,2
movd	"        ",s15,210
movs	s3,36,s15,210,2
movd	"60 ",s15,220
acall	mul
movs	s15,230,s15,220,8
movs	s3,39,s15,210,2
acall	add

movs	s15,235,s7,27,3
compd	"00000???",s15,230
jz	smdr_dur_end
movd	"999999",s7,27
smdr_dur_end:









movs	s3,18,s7,42,2
compd	"0",s14,251               
jz	skip_business
compd	"....",s3,106  
jz	skip_business
movs	s3,106,s7,40,4
replace ".0",s7,40,4
skip_business:










jmp	send_buffer




r31incomming_call:



movd	"J        00     DDMMYYhhmm mmmss00000000  00                    /n",s7,0
call	r31ext_replace
movd	"4",s7,10




movs  s3,60,s7,44,20
replace ". ",s7,44,20
replace "- ",s7,44,20




movs	s3,95,s7,32,8




movs  s3,30,s7,22,2
movs  s3,33,s7,24,2




movs  s3,21,s7,16,2
movs  s3,24,s7,18,2
movs  s3,27,s7,20,2




movs	s3,42,s7,30,2
movd	"        ",s15,210
movs	s3,36,s15,210,2
movd	"60 ",s15,220
acall	mul
movs	s15,230,s15,220,8
movs	s3,39,s15,210,2
acall	add
acall	cut_lz
movs	s15,235,s7,27,3
compd	"     ???",s15,230
jz	smdr_indur_end
movd	"999999",s7,27
smdr_indur_end:









movs	s3,18,s7,42,2










jmp	send_buffer




test_im_sign:
case	im_sign,test_tf_sign




in	s7,100
movd	"Okay wait/n",s7,0
out	s7,0,c4




compd	"init default",s7,100
jz	go_init_def
compd	"init ext_dbs",s7,100
jz	go_init_tln
compd	"init buffers",s7,100
jz	go_buff_init



compd	"disp ext_dbs",s7,100
jz	go_tln_display
compd	"disp config",s7,100
jz	go_cfg_display

movd	" command not found/n",s7,100
out	s7,100,c4


main_message:
movd	" 4200eAHL V2.0 Modul 3 Ready/n",s7,100
anss	s7,100
jmp	main


test_tf_sign:

jmp	main










go_buff_init:
call	init_b0
call	init_b1
call	init_b2
call	init_b3
call	init_b4
jmp	main_message

go_init_tln:
call	dbs_tln_init
jmp	main_message

go_init_def:
movd	"noin",s14,195
jmp	main_message
go_tln_display:
call	tln_display
jmp	main_message

go_cfg_display:
call	cfg_display
jmp	main_message



z_ret:
setc	2,1
decc	2
ret


nz_ret:
setc	2,0
decc	2
ret






init_b0:
setp	0XD300,0x70	
setp	0XD301,0x00		

setp	0Xd302,0x04	
setp	0XD303,0x00		

setp	0Xd304,0x04	
setp	0XD305,0x00		

setp	0Xd306,0x70	
setp	0XD307,0x00		

setp	0Xd308,0x04	
setp	0XD309,0x00		

setp	0Xd30A,0x70	
setp	0XD30B,0x00		

setp	0Xd30C,0x04	
setp	0XD30D,0x00		

setp	0XD30E,0x00 	

ret






init_b1:
setp	0Xd310,0x74	
setp	0Xd311,0x00		

setp	0Xd312,0x04	
setp	0Xd313,0x00		

setp	0Xd314,0x04	
setp	0Xd315,0x00		

setp	0Xd316,0x74	
setp	0Xd317,0x00		

setp	0Xd318,0x04	
setp	0Xd319,0x00		

setp	0Xd31A,0x74	
setp	0Xd31B,0x00		

setp	0Xd31C,0x04	
setp	0Xd31D,0x00		

setp	0Xd31E,0x00 	

ret






init_b2:
setp	0Xd320,0x10	
setp	0Xd321,0x00		

setp	0Xd322,0x60	
setp	0Xd323,0x00		

setp	0Xd324,0x60	
setp	0Xd325,0x00		

setp	0Xd326,0x10	
setp	0Xd327,0x00		

setp	0Xd328,0x60	
setp	0Xd329,0x00		

setp	0Xd32A,0x10	
setp	0Xd32B,0x00		

setp	0Xd32C,0x60	
setp	0Xd32D,0x00		

setp	0Xd32E,0x01 	

ret






init_b3:
setp	0Xd330,0x10	
setp	0Xd331,0x00		

setp	0Xd332,0x60	
setp	0Xd333,0x00		

setp	0Xd334,0x60	
setp	0Xd335,0x00		

setp	0Xd336,0x10	
setp	0Xd337,0x00		

setp	0Xd338,0x60	
setp	0Xd339,0x00		

setp	0Xd33A,0x10	
setp	0Xd33B,0x00		

setp	0Xd33C,0x60	
setp	0Xd33D,0x00		

setp	0Xd33E,0x02 	

ret






init_b4:
setp	0Xd340,0x30	
setp	0Xd341,0x00		

setp	0Xd342,0x40	
setp	0Xd343,0x00		

setp	0Xd344,0x40	
setp	0Xd345,0x00		

setp	0Xd346,0x30	
setp	0Xd347,0x00		

setp	0Xd348,0x40	
setp	0Xd349,0x00		

setp	0Xd34A,0x30	
setp	0Xd34B,0x00		

setp	0Xd34C,0x40	
setp	0Xd34D,0x00		

setp	0Xd34E,0x03 	

ret






init_b5:
setp	0Xd350,0x70	
setp	0Xd351,0x00		

setp	0Xd352,0x04	
setp	0Xd353,0x00		

setp	0Xd354,0x04	
setp	0Xd355,0x00		

setp	0Xd356,0x70	
setp	0Xd357,0x00		

setp	0Xd358,0x04	
setp	0Xd359,0x00		

setp	0Xd35A,0x70	
setp	0Xd35B,0x00		

setp	0Xd35C,0x04	
setp	0Xd35D,0x00		

setp	0Xd35E,0x02 	

ret





































cfg_display:
ret



tln_display:
movd	"3 ",s15,100
acall	pfirst_dbs
movd	" Extension table /n",s7,0
out	s7,0,c4
movd	"                 /n",s14,0

tln_ldisplay:
acall	read_dbs
compd	"     ",s14,0
jz	tln_skipdisplay
compd	"    D",s14,0
jz	tln_skipdisplay
movd	"/n",s14,7
out	s14,0,c4
tln_skipdisplay:
acall	pnext_dbs
jz	tln_ldisplay

tln_edisplay:
movd	" END OF TABLE/n",s7,0
out    s7,0,c4

ret











dbs_tln_init:
movd	"3 28672 150 4 5 1 1 1  ",s15,100
acall	open_dbs
movd	"       /n",s14,0
acall	init_dbs
acall	pfirst_dbs

ret




find_ext:
movd	"3 0  ",s15,100
acall	pfirst_dbs
acall	find_dbs
jnz	nz_ret
acall	read_dbs
jmp z_ret






find_free:
movd	"3 0  ",s15,100
movd	"    ?",s15,0
acall	pfirst_dbs
acall	find_dbs
ret








to_right:

movd	"                    >/n",s14,220

setc	12,20	
setc	10,219	
setc	11,239	
lto_right:
compd	" ",s14,c10
jnz	mto_right
decc	10
decc	12
jnz	lto_right

movd	"                    ",s14,200

ret

mto_right:
movs	s14,c10,s14,c11,1
decc	10
decc	11
decc	12
jnz	mto_right

movd	"                    ",s14,200

ret







to_left:

movd	"                    >/n",s14,220
setc	12,20	
setc	10,200	
setc	11,220	
lto_left:
compd	" ",s14,c10
jnz	mto_left
incc	10
decc	12
jnz	lto_left

movd	"                    ",s14,200
ret

mto_left:
movs	s14,c10,s14,c11,1
incc	10
incc	11
decc	12
jnz	mto_left

movd	"                    ",s14,200
ret









up_to_space:

movd	"                    >/n",s14,220
setc	12,20	
setc	10,200	
setc	11,220	
lup_to_space:
compd	" ",s14,c10
jnz	mup_to_space
incc	10
decc	12
jnz	lup_to_space

movd	"                    ",s14,200
ret

mup_to_space:
movs	s14,c10,s14,c11,1
incc	10
incc	11
decc	12
jz	eup_to_space
compd	" ",s14,c10
jnz	mup_to_space
eup_to_space:

movd	"                    ",s14,200
ret




ahl_interogation:
movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext
jnz	no_ext_intero
compd	"I",s14,5
jnz	no_in_intero
movs	s14,220,s3,1,5
movd	"T",s14,6
acall	write_dbs
writeb	s3,0,0 	
sendsig ans_sign,c0
call	c0_wait_answer
jz	err_reply


send_reply:
writeb	s7,0,5
out	s7,0,c4
sendsig ans_sign,c2	
jmp	main_send_sig

no_in_intero:
movd	"RnnnnnINV RA/n",s7,0
movs	s3,1,s7,1,5
jmp	send_reply

no_ext_intero:
movd	"RnnnnnINV RG/n",s7,0
movs	s3,1,s7,1,5
jmp	send_reply

err_reply:
movd	"RerrorINV EE/n",s7,0
jmp	send_reply



ahl_incheck:
movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext
jnz	no_ext_arrive
compd	"I",s14,5


movs	s14,220,s3,1,5
writeb	s3,0,0 	
sendsig ans_sign,c0
call	c0_wait_answer
jz	err_reply


movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext

compd	"INV ",s7,6
jnz	in_arrive_save
compd	"U",s7,11
jnz	testin_s
movd	"G",s7,11
movd	"    D",s14,0
acall	write_dbs
jmp	send_reply

testin_s:
compd	"S",s7,11
jnz	testin_a
movd	"G",s7,11
movd	"S",s14,5
acall	write_dbs
jmp	send_reply

testin_a:
movd	"A",s7,11
movd	"I",s14,5
acall	write_dbs
jmp	send_reply

in_arrive_save:
movd	"I",s14,5
acall	write_dbs
jmp	send_reply

no_in_arrive:
movd	"RnnnnnINV JA/n",s7,0
movs	s3,1,s7,1,5
jmp	send_reply

no_ext_arrive:
movs	s14,220,s3,1,5
writeb	s3,0,0 	
sendsig ans_sign,c0
call	c0_wait_answer
jz	err_reply


movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext

compd	"INV ",s7,6
jnz	sin_arrive_save

compd	"U",s7,11
jnz	stestin_s
movd	"G",s7,11
jmp	send_reply

stestin_s:
compd	"S",s7,11
jnz	stestin_a
movd	"G",s7,11

call	find_free
jnz	send_reply
movs	s7,1,s14,200,5
call	to_left
movs	s14,220,s14,0,5
movd	"S /n",s14,5
acall	write_dbs
jmp	send_reply

stestin_a:
movd	"A",s7,11

sin_arrive_save:
call	find_free
jnz	send_reply
movs	s7,1,s14,200,5
call	to_left
movs	s14,220,s14,0,5
movd	"I /n",s14,5
acall	write_dbs
jmp	send_reply



ahl_modifikation:
movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext
jnz	no_ext_modify
compd	"I",s14,5


movs	s14,220,s3,1,5
writeb	s3,0,0 	
sendsig ans_sign,c0
call	c0_wait_answer
jz	err_reply


movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext

compd	"INV ",s7,6
jnz	in_modify_save
compd	"U",s7,11
jnz	testmodif_s
movd	"G",s7,11
movd	"    D",s14,0
acall	write_dbs
jmp	send_reply

testmodif_s:
compd	"S",s7,11
jnz	testmodif_a
movd	"G",s7,11
movd	"S",s14,5
acall	write_dbs
jmp	send_reply

testmodif_a:
movd	"A",s7,11
movd	"O",s14,5
acall	write_dbs
jmp	send_reply

in_modify_save:
jmp	send_reply

no_in_modify:
compd	"O",s14,5
jnz	modify_glob_err
movd	"RnnnnnINV NA/n",s7,0
movs	s3,1,s7,1,5
jmp	send_reply

modify_glob_err:
movd	"RnnnnnINV NG/n",s7,0
movs	s3,1,s7,1,5
jmp	send_reply

no_ext_modify:
movs	s14,220,s3,1,5
writeb	s3,0,0 	
sendsig ans_sign,c0
call	c0_wait_answer
jz	err_reply




jmp	send_reply



ahl_outcheck:
movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext
jnz	no_ext_outcheck

movs	s14,220,s3,1,5
writeb	s3,0,0 	
sendsig ans_sign,c0
call	c0_wait_answer
jz	err_reply


movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext

compd	"INV ",s7,6
jnz	outcheck_save
compd	"U",s7,11
jnz	testout_s
movd	"G",s7,11
movd	"    D",s14,0
acall	write_dbs
jmp	send_reply

testout_s:
compd	"S",s7,11
jnz	testout_a
movd	"G",s7,11
movd	"S",s14,5
acall	write_dbs
jmp	send_reply

testout_a:
movd	"A",s7,11
movd	"O",s14,5
acall	write_dbs
jmp	send_reply

outcheck_save:
movd	"O",s14,5
acall	write_dbs
jmp	send_reply

no_ext_outcheck:
movs	s14,220,s3,1,5
writeb	s3,0,0 	
sendsig ans_sign,c0
call	c0_wait_answer
jz	err_reply


movs	s3,1,s14,200,5
call	to_left
movs	s14,220,s15,0,5
call	find_ext

compd	"INV ",s7,6
jnz	sin_outcheck_save

compd	"U",s7,11
jnz	stestout_s
movd	"G",s7,11
jmp	send_reply

stestout_s:
compd	"S",s7,11
jnz	stestout_a
movd	"G",s7,11

call	find_free
jnz	send_reply
movs	s7,1,s14,200,5
call	to_left
movs	s14,220,s14,0,5
movd	"S /n",s14,5
acall	write_dbs
jmp	send_reply

stestout_a:
movd	"A",s7,11

sin_outcheck_save:
call	find_free
jnz	send_reply
movs	s7,1,s14,200,5
call	to_left
movs	s14,220,s14,0,5
movd	"O /n",s14,5
acall	write_dbs
jmp	send_reply




c0_wait_answer:
sett	250
wait	ans_sign,tf_sign
case	ans_sign,test_c0tf_sign
readb	s7,0,1
jz	c0_wait_answer
ret
test_c0tf_sign:
case	tf_sign,c0_wait_answer
c1_wait_answer:
sett	250
wait	ans_sign,tf_sign
case	ans_sign,test_c1tf_sign
readb	s7,0,1
jz	c1_wait_answer
ret
test_c1tf_sign:
case	tf_sign,c1_wait_answer
c2_wait_answer:
sett	250
wait	ans_sign,tf_sign
case	ans_sign,test_c2tf_sign
readb	s7,0,1
jz	c2_wait_answer
ret
test_c2tf_sign:
case	tf_sign,c2_wait_answer
jmp	z_ret



t_ti_name:
compd	"| Name :",s3,0
jz	t_ti_exit

compd	"| Nom :",s3,0
jz	t_ti_exit

compd	"| Name :",s3,0
jz	t_ti_exit

compd	"| Nome :",s3,0
jz	t_ti_exit

t_ti_exit:
ret



t_ti_cabin_set:
compd	"| Cabin set no. :",s3,0
jz	t_ti_exit

compd	"| Num?ro de Cabine",s3,0
jz	t_ti_exit

compd	"| Telefonzellennummer",s3,0
jz	t_ti_exit

compd	"| Numero apparecchio",s3,0
jz	t_ti_exit

ret



t_ti_room_number:
compd	"| Room number :",s3,0
jz      t_ti_exit

compd   "| Num?ro de chambre :",s3,0
jz      t_ti_exit

compd	"| Zimmernummer :",s3,0
jz      t_ti_exit

compd   "| Camera numero",s3,0
jz      t_ti_exit

ret



t_ti_language:
compd	"| Language :",s3,0
jz	t_ti_exit

compd   "| Langue :",s3,0
jz	t_ti_exit

compd	"| Sprache :",s3,0
jz	t_ti_exit

compd	"| Lingua :",s3,0
jz	t_ti_exit

ret



t_ti_deposit:
compd	"| Deposit",s3,0
jz	t_ti_exit

compd	"| Cr?dit :",s3,0
jz	t_ti_exit

compd	"| Vorkasse :",s3,0
jz	t_ti_exit

compd	"| Deposito",s3,0
jz	t_ti_exit

ret



t_ti_calls:
compd	"| Number",s3,0
jz	t_ti_exit

compd	"| Nombre",s3,0
jz	t_ti_exit

compd	"| Anzahl",s3,0
jz	t_ti_exit

compd	"| Numero",s3,0
jz	t_ti_exit

ret


t_ti_password:
compd   "| Password",s3,0
jz	t_ti_exit

compd   "| Mot de p",s3,0
jz	t_ti_exit

compd   "| Passwort",s3,0
jz	t_ti_exit

compd   "| Password",s3,0
jz	t_ti_exit

ret


t_ti_ddi_number:
compd   "| DDI number",s3,0
jz	t_ti_exit

compd   "| Num?ro SDA",s3,0
jz	t_ti_exit

compd   "| Durch",s3,0
jz	t_ti_exit

compd   "| N. passante",s3,0
jz	t_ti_exit

ret


t_ti_dnd:
compd   "| Do not",s3,0
jz	t_ti_exit

compd   "| Ne Pas D",s3,0
jz	t_ti_exit

compd   "| Ruhe",s3,0
jz	t_ti_exit

compd   "| Non distur",s3,0
jz	t_ti_exit

ret


t_ti_message:
compd   "| Message w",s3,0
jz	t_ti_exit

compd   "| Pr?sence d",s3,0
jz	t_ti_exit

compd   "| Nachr",s3,0
jz	t_ti_exit

compd   "| Messaggio",s3,0
jz	t_ti_exit

ret


t_ti_costs:
compd   "| Balance t",s3,0
jz	t_ti_exit

compd   "| Solde",s3,0
jz	t_ti_exit

compd   "| Gespr",s3,0
jz	t_ti_exit

compd   "| Saldo",s3,0
jz	t_ti_exit

ret


t_ti_external_calls:
compd   "| External c",s3,0
jz	t_ti_exit

compd   "| Appels Ex",s3,0
jz	t_ti_exit

compd   "| Amts",s3,0
jz	t_ti_exit

compd   "| Chiamate",s3,0
jz	t_ti_exit

ret


t_ti_total_costs:
compd   "| Total c",s3,0
jz	t_ti_exit

compd   "| Co?t Total",s3,0
jz	t_ti_exit

compd   "| Gesamt",s3,0
jz	t_ti_exit

compd   "| Costo tot",s3,0
jz	t_ti_exit

ret


t_ti_debit:
compd   "| Debit",s3,0
jz	t_ti_exit

compd   "| D?bit",s3,0
jz	t_ti_exit

compd   "| Soll",s3,0
jz	t_ti_exit

compd   "| Debito",s3,0
jz	t_ti_exit

ret


t_ti_credit:
compd   "| Credit",s3,0
jz	t_ti_exit

compd   "| Cr?dit",s3,0
jz	t_ti_exit

compd   "| Gutha",s3,0
jz	t_ti_exit

compd   "| Credito",s3,0
jz	t_ti_exit

ret


t_ti_jan:
compd   "Jan",s3,6
jz      t_ti_exit

compd   "Jan",s3,6
jz      t_ti_exit

compd   "Jan",s3,6
jz      t_ti_exit

compd   "Gen",s3,6
jz      t_ti_exit



t_ti_feb:
compd   "Feb",s3,6
jz      t_ti_exit

compd   "F?v",s3,6
jz      t_ti_exit

compd   "Feb",s3,6
jz      t_ti_exit

compd   "Feb",s3,6
jz      t_ti_exit



t_ti_maerz:
compd   "Mar",s3,6
jz      t_ti_exit

compd   "Mar",s3,6
jz      t_ti_exit

compd   "M?r",s3,6
jz      t_ti_exit

compd   "Mar",s3,6
jz      t_ti_exit



t_ti_april:
compd   "Apr",s3,6
jz      t_ti_exit

compd   "Avr",s3,6
jz      t_ti_exit

compd   "Apr",s3,6
jz      t_ti_exit

compd   "Apr",s3,6
jz      t_ti_exit



t_ti_mai:
compd   "May",s3,6
jz      t_ti_exit

compd   "Mai",s3,6
jz      t_ti_exit

compd   "Mai",s3,6
jz      t_ti_exit

compd   "Mag",s3,6
jz      t_ti_exit



t_ti_juni:
compd   "Jun",s3,6
jz      t_ti_exit

compd   "Jun",s3,6
jz      t_ti_exit

compd   "Jun",s3,6
jz      t_ti_exit

compd   "Giu",s3,6
jz      t_ti_exit



t_ti_juli:
compd   "Jul",s3,6
jz      t_ti_exit

compd   "Jul",s3,6
jz      t_ti_exit

compd   "Jul",s3,6
jz      t_ti_exit

compd   "Lug",s3,6
jz      t_ti_exit



t_ti_august:
compd   "Aug",s3,6
jz      t_ti_exit

compd   "Aou",s3,6
jz      t_ti_exit

compd   "Aug",s3,6
jz      t_ti_exit

compd   "Ago",s3,6
jz      t_ti_exit



t_ti_september:
compd   "Sep",s3,6
jz      t_ti_exit

compd   "Sep",s3,6
jz      t_ti_exit

compd   "Sep",s3,6
jz      t_ti_exit

compd   "Set",s3,6
jz      t_ti_exit



t_ti_oktober:
compd   "Oct",s3,6
jz      t_ti_exit

compd   "Oct",s3,6
jz      t_ti_exit

compd   "Okt",s3,6
jz      t_ti_exit

compd   "Ott",s3,6
jz      t_ti_exit



t_ti_november:
compd   "Nov",s3,6
jz      t_ti_exit

compd   "Nov",s3,6
jz      t_ti_exit

compd   "Nov",s3,6
jz      t_ti_exit

compd   "Nov",s3,6
jz      t_ti_exit



t_ti_dezember:
compd   "Dec",s3,6
jz      t_ti_exit

compd   "D?c",s3,6
jz      t_ti_exit

compd   "Dez",s3,6
jz      t_ti_exit

compd   "Dic",s3,6
jz      t_ti_exit



t_ti_save_time:

compd   " ",s3,15
jz      save_en_time
movs    s3,23,s8,26,2
movs	s3,26,s8,27,2
movs	s3,10,s8,30,2
movs	s3,15,s8,34,4
ret
save_en_time:
movs    s3,24,s8,26,2
movs    s3,27,s8,27,2
movs	s3,10,s8,30,2
movs    s3,16,s8,34,4
ret



t_zusatzkosten:
compd	"Zusatzkosten",s3,60
jz	e_t_lang

e_t_lang:
ret



zzz:
end

