;
;**********************************************************
;  COMMON AFS DEFINES
;

























;




;
;**********************************************************
; MODEM definition
;









;
;**********************************************************
; MODEM system parameter
;







;
;**********************************************************
; MODEM result messages
;






;
;**********************************************************
; MODEM result errors
;


;
;**********************************************************
; ERROR NUMBER
;


;
;**********************************************************
; DATABASE definitionen
;













;













;
;**********************************************************
; PARAMETER permanent storage string
;




;
;**********************************************************




;**********************************************************






;
;**********************************************************

;









;
;**********************************************************
; MESSAGES laenge einer message ist max 40 Zeichen
;

;
;                               "----------------------------------------"







;**********************************************************
; ERROR MESSAGES NUMBER 1 -20
;





















;
;**********************************************************
;  AFS - RESET LABEL:
;
setbaud 1,9600,8,n,1
mode_reco
setrts  off
jmp     main
;
;**********************************************************
; MAIN PROGRAMM FOR AKTIV MODEM MODUL 1
;
main:
call    configuration
sett    200
setl    9,1
;
main_for_ever:
wait    tf_sign,im_sign
case    tf_sign,main_im_test
setl    9,2
call    task_time
setl    9,1
sett    255
jmp     main_for_ever
;
main_im_test:
case    im_sign,main_for_ever
call    task_monitor
jmp     main_for_ever
;
;**********************************************************
; TASK TIME
;
task_time:
call    calc_current_time
comps   s3,220,s15,230,8
jnz     task_1_time
ret                                     ;same time
;
task_1_time:
movs    s15,230,s3,220,8     ;save new time
comps   s3,230,s15,186,2
jz      task_2_time                     ;same day
movs    s15,186,s3,230,2        ;save new one
;**************************************
;
; subb from dbs 1 reco 0-e time_next_call - 24x60
; if erg<0 set time_next_call=0
;
movd    "1  ",s15,100
acall   pfirst_dbs
;
task_1l1_time:
acall   read_dbs
compd   "Y",s14,0      ;reco enabled
jnz     task_1l2_time
movs    s14,107,s15,210,8
movd    "1440  ",s15,220
acall   subb
compd   "O",s15,204
jnz     task_1l3_time
movd    "00000000",s15,230
;
task_1l3_time:
movs    s15,230,s14,107,8
acall   write_dbs
;
task_1l2_time:
acall   pnext_dbs
jz      task_1l1_time
;**************************************
; test time_next_call
;
task_2_time:
acall   pfirst_dbs
;
task_2l1_time:
acall   read_dbs
compd   "Y",s14,0      ;reco enabled
jnz     task_2l2_time
;
; test time to call
;
movs    s3,220,s15,210,8
movs    s14,107,s15,220,8
acall   comp
compd   "GT",s15,204
jnz     task_2l2_time
;
;**************************************
; call AFS
;
; setup number of recos transfered
; (clear)
movd    "00000000",s15,210
movd    "00000000",s15,230
movd    "1 ",s15,220
;
;create message
;
acall   fread_dt
movs    s15,150,s3,6,21
movd    "                                        ",s3,30
movs    s14,1,s3,30,20
call    write_history
;
; setup starting baudrate
;
compd   "9600",s14,66
jnz     test_4800
call    br_set_9600
jmp     task_3_time
;
test_4800:
compd   "4800",s14,66
jnz     test_2400
call    br_set_4800
jmp     task_3_time
;
test_2400:
compd   "2400",s14,66
jnz     test_1200
call    br_set_2400
jmp     task_3_time
;
test_1200:
compd   "1200",s14,66
jnz     test_set_def
call    br_set_1200
jmp     task_3_time
;
test_set_def:
call   br_set_2400
;
task_3_time:
;
; init modem
;
setc    12,3
call    modem_init
compc   12,0
jz      task_ok1_time
call    error_handler
jmp     task_2l2_time
;
task_ok1_time:
;
; send dialing string to modem
;
movs    s14,21,s2,0,35
replace " /n",s2,0,35
wrs     s2,0,80
;
; waiting for connect 60 sec
;
setc    12,60
call    modem_wait_connect
compc   12,0
jz      task_ok2_time
call    error_handler
call    modem_hangup
jmp     task_2l2_time
;
;**************************************
; MODEM CONNECT TO AFS
;
task_ok2_time:
acall   fread_dt
movs    s15,150,s3,6,21
movd    "CONNECT to AFS                          ",s3,30
call    write_history
;
; change rx mode
;
mode_stx
sett    20
wait    tf_sign
movc    s14,95,11
;
; start request with "O/n"
;
setc    12,3            ;number of retrys
loop_1_request:
movd	"O/n",s2,200
wrs	s2,200,20
out	s2,200,c4
wait_1_reco:
sett    60
wait    tf_sign,rx_sign
case    rx_sign,reco_timeout
stxrds  s2,0                ;read string
jz      wait_1_reco
compc	15,0
jz      test_1_messnum
;
out	s2,0,c4
movd	"Sending NAK/n",s2,200
out	s2,200,c4
;
wrchar  nak
decc    12
jnz     loop_1_request
setc    12,10
terminate_error:
wrd     "E/n"
call    error_handler
mode_reco
call    modem_hangup
jmp     task_2l2_time
;
;**************************************
;
reco_timeout:
decc    12
jnz     loop_1_request
setc    12,11
jmp     terminate_error
;
test_1_messnum:
;
out	s2,0,c4
movd	"Sending ACK/n",s2,200
out	s2,200,c4
;
wrchar  ack
;
; test mess_number receive with expected
;
movc    11,s2,100
comps   s2,0,s2,100,3
jz      send_request
;
; message different message number
;
movd    "MOD 1>                                                                /n",s3,0
acall   fread_dt
movs    s15,150,s3,6,21
movd    "MESS-NUM different                      ",s3,30
movs    s2,0,s3,60,3
movs    s2,100,s3,65,3
call    write_history
;
;setup new message number
;
movc    s2,0,11
;
;**************************************
;
send_request:
;
; start request with "R/n"
;
incc    11
send_rq_mess:
wrd     "R/n"
;
movd	"Sending R/n",s2,200
out	s2,200,c4
;
setc	12,3		;number of retrys
jmp     wait_2_reco
mode_stx
;
loop_2_request:
wrd     "O/n"
;
movd	"Sending O/n",s2,200
out	s2,200,c4
;
setc	12,3		;number of retrys
wait_2_reco:
sett    60
wait    tf_sign,rx_sign
case    rx_sign,reco_2_timeout
stxrds  s2,0                ;read string
jz	wait_2_reco
compc	15,0
jz      test_2_messnum
;
out	s2,0,c4
movd	"Sending NAK/n",s2,200
out	s2,200,c4
;
wrchar	nak
decc    12
jnz     loop_2_request
setc    12,10
terminate2_error:
wrd     "E/n"
call    error_handler
mode_reco
call    modem_hangup
;
; save connect parameter
;
acall   fread_dt
movs    s15,150,s14,70,21
movc    11,s14,95
movs    s15,230,s14,99,8
acall   write_dbs
jmp     task_2l2_time
;
;**************************************
;
reco_2_timeout:
setc    12,11
jmp     terminate2_error
;
test_2_messnum:
;
out	s2,0,c4
movd	"Sending ACK/n",s2,200
out	s2,200,c4
;
wrchar  ack
;
; test mess_number receive with expected
;
compd	"ERR",s2,0
jz	send_rq_mess
movc	11,s2,100
comps   s2,0,s2,100,3
jz      save_reco
;
; message different message number
;
movd    "MOD 1>                                                                /n",s3,0
acall   fread_dt
movs    s15,150,s3,6,21
movd    "MESS-NUM different                      ",s3,30
movs    s2,0,s3,60,3
movs    s2,100,s3,65,3
call    write_history
;
;setup new message number
;
movc    s2,0,11
;
; analyse and save reco
;
save_reco:
compd   "E/n",s2,3
jz      receive_end
;
compd	"C",s2,3
jz	no_error
out     s2,0,c4
jmp     send_request
;
; svae reco in buffer
; first test if insert is aktive and insert
;
no_error:
compd   "Y",s14,56
jnz     no_insert
compd   "??? ",s2,4
jz      do_insert
movd    "MOD 1>                                                                /n",s3,0
acall   fread_dt
movs    s15,150,s3,6,21
movd    "ERROR on INSERT > EXT# is 4 digit       ",s3,30
call    write_history
jmp     no_insert
;
do_insert:
movs    s2,4,s2,100,4
movs    s14,57,s2,4,1
movs    s2,100,s2,5,3
;
no_insert:
call    trans_reco_inc          ;number of transfered reco +1
buffwr  s2,3
buffst                          ;
jnz     send_request
;
receive_end:
;
out	s2,0,c4
movd	"Sending E/n",s2,200
out	s2,200,c4
;
wrd     "E/n"                   ;terminate
mode_reco
call    modem_hangup
;
; save connect parameter
;
acall   fread_dt
movs    s15,150,s14,70,21
movc    11,s14,95
movs    s15,230,s14,99,8
call    calc_next_call
movs    s15,230,s14,107,8
acall   write_dbs
;
;**********************************************************
; create END_MESS
movd	"MOD 1>                                                                /n",s3,0
acall   fread_dt
movs    s15,150,s3,6,21
movd	"END lrn:     tr:          tnc:          ",s3,30
movs	s14,95,s3,38,4
movs	s14,99,s3,46,8
movs	s14,107,s3,60,8
call    write_history
;
jmp     task_2l2_time
;
;**************************************
;
task_2l2_time:
acall   pnext_dbs
jz      task_2l1_time
ret
;
;**********************************************************
; ERROR HANDLER
;
error_handler:
movd    "MOD 1>                                                                /n",s3,0
acall   fread_dt
movs    s15,150,s3,6,21
;
movd    "    ",s3,100
movc    12,s3,100
jr      s3,100
;
jmp     error_error
jmp     error_1
jmp     error_2
jmp     error_3
jmp     error_4
jmp     error_5
jmp     error_6
jmp     error_7
jmp     error_8
jmp     error_9
jmp     error_10
jmp     error_11
jmp     error_12
jmp     error_13
jmp     error_14
jmp     error_15
jmp     error_16
jmp     error_17
jmp     error_18
jmp     error_19
jmp     error_20
jmp     error_error
jmp     error_error
jmp     error_error
jmp     error_error
jmp     error_error
jmp     error_error
jmp     error_error
jmp     error_error
jmp     error_error
jmp     error_error
;
error_error:
movd    "ERROR IN ERROR NUMBER                   ",s3,30
jmp     error_hand_exit
;
error_1:
movd    "MODEM RING                              ",s3,30
jmp     error_hand_exit
;
error_2:
movd    "MODEM NO RING                           ",s3,30
jmp     error_hand_exit
;
error_3:
movd    "MODEM NO DIALTONE                       ",s3,30
jmp     error_hand_exit
;
error_4:
movd    "MODEM BUSY                              ",s3,30
jmp     error_hand_exit
;
error_5:
movd    "MODEM ERROR                             ",s3,30
jmp     error_hand_exit
;
error_6:
movd    "MODEM INIT ERROR                        ",s3,30
jmp     error_hand_exit
;
error_7:
movd    "MODEM TIMEOUT WAITING CONNECT           ",s3,30
jmp     error_hand_exit
;
error_8:
movd    "ERROR 8                                 ",s3,30
jmp     error_hand_exit
;
error_9:
movd    "ERROR 9                                 ",s3,30
jmp     error_hand_exit
;
error_10:
movd    "RECEIVEING ERROR (NAK)                  ",s3,30
jmp     error_hand_exit
;
error_11:
movd    "TIMEOUT ERROR ON WAITING FOR RECO       ",s3,30
jmp     error_hand_exit
;
error_12:
movd    "ERROR 12                                ",s3,30
jmp     error_hand_exit
;
error_13:
movd    "ERROR 13                                ",s3,30
jmp     error_hand_exit
;
error_14:
movd    "ERROR 14                                ",s3,30
jmp     error_hand_exit
;
error_15:
movd    "ERROR 15                                ",s3,30
jmp     error_hand_exit
;
error_16:
movd    "ERROR 16                                ",s3,30
jmp     error_hand_exit
;
error_17:
movd    "ERROR 17                                ",s3,30
jmp     error_hand_exit
;
error_18:
movd    "ERROR 18                                ",s3,30
jmp     error_hand_exit
;
error_19:
movd    "ERROR 19                                ",s3,30
jmp     error_hand_exit
;
error_20:
movd    "ERROR 20                                ",s3,30
jmp     error_hand_exit
;
error_hand_exit:
call    write_history
ret
;
;
;**********************************************************
;
trans_reco_inc:
acall   add
movs    s15,230,s15,210,8
ret
;
;**********************************************************
; CALC time for next call
;
calc_next_call:
movs	s14,58,s15,210,8
movs	s3,220,s15,220,8
acall	add
ret
;
;**********************************************************
; CONFIGURATION
;
configuration:
call    init_mess_str
compd   "Config",s3,240
jz      afs_is_config
;
movd    "Config",s3,240               ;set config
call    init_history
call    dbs_init
acall   fread_dt
movs    s15,150,s3,6,21
movd    "AFS INIT > clear HISTORY and DATABASE   ",s3,30
call    write_history
movs    s15,186,s3,230,2
call    calc_current_time
movs    s15,230,s3,220,8
;
afs_is_config:
acall   fread_dt
movs    s15,150,s3,6,21
movd    "AFS RESET > Startup Modul 1 V2.0        ",s3,30
call    write_history
call    br_set_9600
ret
;
init_mess_str:
movd    "MOD 1>                                                                /n",s3,0
ret
;
;**********************************************************
; WRITE TO HISTORY-BUFFER
;       input:  s3,0
;       output: -
;               write s3,0 into history_buffer and to ch4
;               if history_buffer is full read one reco and write
;               it to ch5
;
write_history:
writeb  s3,0,0
jz      wr_hist_end
readb   s3,100,0
out     s3,100,c5
jmp     write_history
;
wr_hist_end:
out     s3,0,c4
ret
;
;**********************************************************
; CALCULATE current time in minuts of day
;
calc_current_time:
;
; current_time = hour x 60 + minute
;
acall   read_dt
movd    "        ",s15,210              ;clear parameter 1
movd    "60      ",s15,220              ;faktor for hour multiply
movs    s15,188,s15,210,2
acall   mul
movs    s15,190,s15,210,2
movs    s15,230,s15,220,8
acall   add
ret
;
;**********************************************************
;**********************************************************
; DATABASE init
;
dbs_init:
movd    "1 27648 10 12 1 20 35 2 8 4 25 4 8 8 4 4  ",s15,100
acall   open_dbs
clear   s14,0
movd    "N",s14,0
acall   init_dbs
ret
;
;**********************************************************
; INIT HISTORY - BUFFER  Buffer in modul 0
;
; begin = inp = outp = 0x1000
; buffl = free = inpl = outpl = 0x6d00
;
init_history:
;
setp    0XD300,0x10     ;beginn adresse high
setp    0XD301,0x00     ;beginn adresse low
;
setp    0Xd302,0x6d     ;bufferlaenge high
setp    0XD303,0x00     ;bufferlaenge low
;
setp    0Xd304,0x6d     ;anzahl bytes free high
setp    0XD305,0x00     ;anzahl bytes free low
;
setp    0Xd306,0x10     ;input zeiger high
setp    0XD307,0x00     ;input zeiger low
;
setp    0Xd308,0x6d     ;input laenge bis bufferende high
setp    0XD309,0x00     ;input laenge bis bufferende low
;
setp    0Xd30A,0x10     ;output zeiger high
setp    0XD30B,0x00     ;output zeiger low
;
setp    0Xd30C,0x6d     ;output laenge bis bufferende high
setp    0XD30D,0x00     ;output laenge bis bufferende low
;
setp    0XD30E,0x00     ;modulnummer falls in modulmem
;
ret
;

;**********************************************************
; TASK MONITOR
;
task_monitor:
; call from main task
;
movd    "                                                            ",s4,0
in      s4,0
compd   "init/n",s4,0
jnz     mon_dr
movd    "    ",s3,240
ansd    "OK init/n"
call    configuration
ret
;
mon_dr:
compd   "dr",s4,0
jnz     mon_sr
movd    "1     ",s15,100
movs    s4,3,s15,102,1
acall   preco_dbs
jnz     mon_sr_reco_err
acall   read_dbs
;
; display reco of configuration
;
clear   s4,0
movd    "/n",s4,75
movd    "0:ENABLE",s4,0
movs    s14,0,s4,20,1
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "1:AFS NAME",s4,0
movs    s14,1,s4,20,20
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "2:CALLING STR",s4,0
movs    s14,21,s4,20,35
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "3:NUMBER INSERT",s4,0
movs    s14,56,s4,20,2
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "4:CALLING TIMEOUT",s4,0
movs    s14,58,s4,20,8
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "5:START BAUDRATE",s4,0
movs    s14,66,s4,20,4
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "6:LAST CONNECT",s4,0
movs    s14,70,s4,20,21
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "7:LAST RECO NUM",s4,0
movs    s14,95,s4,20,4
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "8:TRANSFERED RECO",s4,0
movs    s14,99,s4,20,8
out     s4,0,c4
;
clear   s4,0
movd    "/n",s4,75
movd    "9:TIME NEXT CALL",s4,0
movs    s14,107,s4,20,8
out     s4,0,c4
;
ansd    "/n"
ret
;
mon_sr:
compd   "sr",s4,0
jnz     mon_dh
replace "/n ",s4,0,50
compd   "? ? ",s4,3
jnz     mon_sr_err
movd    "1     ",s15,100
movs    s4,3,s15,102,1
acall   preco_dbs
jnz     mon_sr_reco_err
acall   read_dbs
movc    s4,5,12
incc    12
decc    12
jnz     reco_e1
movs    s4,7,s14,0,1
jmp     mon_sr_exit
;
reco_e1:
decc    12
jnz     reco_e2
movs    s4,7,s14,1,20
jmp     mon_sr_exit
;
reco_e2:
decc    12
jnz     reco_e3
movs    s4,7,s14,21,35
jmp     mon_sr_exit
;
reco_e3:
decc    12
jnz     reco_e4
movs    s4,7,s14,56,2
jmp     mon_sr_exit
;
reco_e4:
decc    12
jnz     reco_e5
movs    s4,7,s14,58,8
jmp     mon_sr_exit
;
reco_e5:
decc    12
jnz     reco_e6
movs    s4,7,s14,66,4
jmp     mon_sr_exit
;
reco_e6:
decc    12
jnz     reco_e7
movs    s4,7,s14,70,21
jmp     mon_sr_exit
;
reco_e7:
decc    12
jnz     reco_e8
movs    s4,7,s14,95,4
jmp     mon_sr_exit
;
reco_e8:
decc    12
jnz     reco_e9
movs    s4,7,s14,99,8
jmp     mon_sr_exit
;
reco_e9:
decc    12
jnz     reco_e_error
movs    s4,7,s14,107,8
jmp     mon_sr_exit
;
reco_e_error:
ansd    "ERROR WRONG ELEMENT!/n"
ret
;
mon_sr_exit:
acall   write_dbs
ansd    "OK!/n"
ret
;
mon_sr_err:
ansd    "ERROR PARAMETER!/n"
ret
;
mon_sr_reco_err:
ansd    "ERROR RECO not found!"
ret
;
;
mon_dh:
compd   "dh",s4,0
jnz     mon_da
movc    s4,3,12
;
dh_loop:
readb   s4,0,0
jz      dh_emty
out     s4,0,c4
decc    12
jnz     dh_loop
ansd    "MORE data/n"
ret
;
dh_emty:
ansd    "HISTORY BUFFER EMTY!/n"
ret
;
mon_da:
compd   "da",s4,0
jnz     mon_err
movd    "TIME:               /n",s4,0
movs    s3,220,s4,6,8
anss    s4,0
ret
;
mon_err:
ansd    "ERROR CMD MODUL 1/n"
ret
;
;
;**********************************************************
;
;  MODEM HANGUP !
;  input : -
;  output: -
;
modem_hangup:
mode_reco
sett    20
wait    tf_sign
wrd     "+++"
sett    20
wait    tf_sign
;
wrd     "ATH/n"
;
;        setrts  off
;        sett    20
;        wait    tf_sign
;        setrts  on
hangup_wait:
sett    20
wait    tf_sign,rx_sign
case    rx_sign,hangup_to
rds     s2,100
jz      hangup_wait
out     s2,100,c4
jmp     hangup_wait
;
hangup_to:
ret
;
;
;**********************************************************
;
;  MODEM INIT !
;  INIT MODEM at current baudrate
;   mode must be set to mode_reco
;
;  input : 12 = anzahl der versuche
;  output: Z-flag wenn okay sonst NZ
;
modem_init:
;        call    modem_hangup
wrd     "ATX3/n"
lmodem_init:
sett    100
wait    rx_sign,tf_sign
case    rx_sign,modem_init_timeout
rds     s2,100
jz      lmodem_init
;
out     s2,100,c4
compd   "OK/n",s2,100
jnz     lmodem_init
setc    12,0            ;return z
sett	10
wait	tf_sign
ret
;
modem_init_timeout:
decc    12
jnz     modem_init
setc    12,6
ret
;
;
;**********************************************************
;
;  WAIT RING !
;  input : 12 =  wartezeit in 10 sec einheit
;  output: 12: ring 1
;                      no ring after timeout
;                           2
;
wait_ring:
sett    100     ;10 sec warten auf
wait    rx_sign,tf_sign
case    rx_sign,wait_ring_timeout
rds     s2,100
jz      wait_ring
out     s2,100,c4         ;send input c4
compd   "RING",s2,100
jnz     wait_ring
setc    12,1
ret
;
wait_ring_timeout:
decc    12
jnz     wait_ring
setc    12,2
ret
;
;
;**********************************************************
;
;  MODEM ANSWER RING AND WAIT CONNECT !
;  input : 12 timeout for waiting connect in 1 sec einheit
;  output: 12 : modem_mess_no_carrier
;                       0
;
modem_answer:
modem1_offh:
sett    10
wait    tf_sign
wrd     "ATA/n"         ;write string answer
;
modem_wait_connect:
l_modem_offh:
sett    10
wait    rx_sign,tf_sign
case    rx_sign,modem_offh_timeout
rds     s2,100
jz      l_modem_offh
out     s2,100,c4
;
compd   "CONNECT 1200/n",s2,100
jnz     test_br_2400
call    br_set_1200
setc    12,0
ret
;
test_br_2400:
compd   "CONNECT 2400/n",s2,100
jnz     test_br_300
call    br_set_2400
setc    12,0
ret
;
test_br_300:
compd   "CONNECT/n",s2,100
jnz     test_br_v42
call    br_set_300
setc    12,0
ret
;
test_br_v42:
compd   "CONNECT",s2,100
jnz     test_dialtone
setc    12,0
ret
;
test_dialtone:
compd   "NO DIALTONE",s2,100
jnz     test_busy
setc    12,3
ret
;
test_busy:
compd   "BUSY",s2,100
jnz     test_modem_error
setc    12,4
ret
;
test_modem_error:
compd   "ERROR",s2,100
jnz     test_ring
setc    12,5
ret
;
test_ring:
compd   "RING",s2,100
jnz     l_modem_offh
jmp     modem1_offh
;        
modem_offh_timeout:
decc    12
jnz     l_modem_offh
setc    12,7
ret
;
;

;**********************************************************
;
;  CHANNEL 1 BAUDRATE 300 !
;
br_set_300:
setp    0Xfc8a,0x2a        ;reset rx and disable rx and tx
setp    0Xfc8a,0x3a        ;reset tx
setp    0Xfc8a,0x4a        ;reset error status
setp    0Xfc89,0X44   ;set baudrate
mode_reco
setp    0Xfc8a,0x05        ;enable rx and tx
sett    2
wait    tf_sign
ret
;
;**********************************************************
;
;  CHANNEL 1 BAUDRATE 1200 !
;
br_set_1200:
setp    0Xfc8a,0x2a        ;reset rx and disable rx and tx
setp    0Xfc8a,0x3a        ;reset tx
setp    0Xfc8a,0x4a        ;reset error status
setp    0Xfc89,0X66  ;set baudrate
mode_reco
setp    0Xfc8a,0x05        ;enable rx and tx
sett    2
wait    tf_sign
ret
;
;**********************************************************
;
;  CHANNEL 1 BAUDRATE 2400 !
;
br_set_2400:
setp    0Xfc8a,0x2a        ;reset rx and disable rx and tx
setp    0Xfc8a,0x3a        ;reset tx
setp    0Xfc8a,0x4a        ;reset error status
setp    0Xfc89,0X88  ;set baudrate
mode_reco
setp    0Xfc8a,0x05        ;enable rx and tx
sett    2
wait    tf_sign
ret
;
;**********************************************************
;
;  CHANNEL 1 BAUDRATE 4800 !
;
br_set_4800:
setp    0Xfc8a,0x2a        ;reset rx and disable rx and tx
setp    0Xfc8a,0x3a        ;reset tx
setp    0Xfc8a,0x4a        ;reset error status
setp    0Xfc89,0X99  ;set baudrate
mode_reco
setp    0Xfc8a,0x05        ;enable rx and tx
sett    2
wait    tf_sign
ret
;
;**********************************************************
;
;  CHANNEL 1 BAUDRATE 9600 !
;
br_set_9600:
setp    0Xfc8a,0x2a        ;reset rx and disable rx and tx
setp    0Xfc8a,0x3a        ;reset tx
setp    0Xfc8a,0x4a        ;reset error status
setp    0Xfc89,0Xbb  ;set baudrate
mode_reco
setp    0Xfc8a,0x05        ;enable rx and tx
sett    2
wait    tf_sign
ret
;

;
;**********************************************************













































































;
;**********************************************************
zzz_end:
;
end


