




































































































































































































































































































































setbaud 1,9600,8,n,1
mode_reco
setc    1,3
call    init_b0
call    init_b1
call    init_b2
call    init_b3

sett    10
wait    tf_sign
movd    "00000000  ",s14,200
movd    "@D/n",s14,250



setl	9,2





movd    " NEW VOICE Genprinter Interface V1.0/n",s1,100
out     s1,100,c4
movd    " * nvgen10.dw1 *   BY HOERHAGER JOSEF AOHE       03//2007/n",s1,100
out     s1,100,c4
movd    " Ready for working !/l/n",s1,100
out     s1,100,c4
error_main:
mode_reco

jmp     main


main:
main_loop:
setl    9,1
sett    50                             
setl    9,1
wait    im_sign,tf_sign,rx_sign,ans_sign,cntl_sign

setl    9,2
case    tf_sign,test_rx_state
decc    1                 
jnz     main_loop
movd    "1",s14,240
movd    " NVGENPRINTER-Timeout on request/n",s1,100
out     s1,100,c4
setc    1,3
jmp     main_loop

test_rx_state:
case    rx_sign,test_cntl_state
jmp     main_loop

test_cntl_state:
case    cntl_sign,test_ans_state
compc 14,5                             
jnz     no_enq
setc    1,3
movd    "0",s14,240
movd    "M0 reading buffer_notify:                            /n",s1,0
readb   s1,25,0   
jnz     send_data               
wrchar  enq                     
jmp     main_loop
no_enq:
movd    "Received from NVS:xxx /n",s1,100
movc    14,s1,118
out     s1,100,c4
jmp     main_loop

test_ans_state:
case    ans_sign,test_im_state
movd    "Data written to BUFFER_NOTIFY/n",s1,100
out     s1,100,c4

jmp     main_loop

send_data:
out     s1,0,c4
compd   "TEST_channel",s1,29
jz      send_observe_answer

compd   "RX330E",s1,25
jz      send_e_mess

compd   "RX330A",s1,25
jz      send_a_mess

compd   "RX220E",s1,25
jz      send_e_mess

compd   "RX220A",s1,25
jz      send_a_mess

compd   "RX110E",s1,25
jz      send_e_mess

compd   "RX110A",s1,25
jz      send_a_mess

compd   "RX000E",s1,25
jz      send_e_mess

compd   "RX000C",s1,25
jz      send_c_mess

compd   "RX000A",s1,25
jz      send_a_mess






out     s1,100,c4
movd    "M0: WRONG Message from buffer *buffer_notify*/n",s1,100
out     s1,100,c4
jmp     main





alarm_ack:
movd    "      Message from Notification Server  ",s1,61
out     s1,61,c4

jmp     main




send_e_mess:










movd    "TX110E;fff;nnnnnnnn;P;Text16tttttttttt;textrest/n",s5,0

movs    s1,29,s5,4,2		
movs    s14,200,s15,230,8
movs    s15,235,s5,7,3       
acall   inc_erg
movs    s15,230,s14,200,8
movs    s1,34,s5,11,8	
movs    s1,42,s5,20,1	
movs    s1,59,s5,22,16	
movs    s1,75,s5,39,80	



movs    s5,11,s15,0,8   
movd    "002 000 ",s15,100
acall   pfirst_dbs
acall   find_dbs
jnz     skip_emess
acall   read_dbs
movs    s14,8,s5,11,8
skip_emess:
wrs     s5,4,200
out     s5,0,c4
out     s14,250,c4
jmp     main





send_a_mess:










movd    "TX110A;fff;nnnn    ;P;Text16tttttttttt;textrest/n",s5,0

movs    s1,29,s5,4,2		
movs    s14,200,s15,230,8
movs    s15,235,s5,7,3       
acall   inc_erg
movs    s15,230,s14,200,8
movs    s1,34,s5,11,4	

movs    s1,38,s5,22,16	
movs    s1,54,s5,39,80	



movs    s5,11,s15,0,8   
movd    "002 000 ",s15,100
acall   pfirst_dbs
acall   find_dbs
jnz     skip_amess
acall   read_dbs
movs    s14,8,s5,11,8
skip_amess:
wrs     s5,4,200
out     s5,0,c4
out     s14,250,c4
jmp     main


send_c_mess:










movd    "TX110C;fff;nnnnnnnn;P;Text16tttttttttt;textrest/n",s5,0

movs    s1,29,s5,4,2		
movs    s14,200,s15,230,8
movs    s15,235,s5,7,3       
acall   inc_erg
movs    s15,230,s14,200,8
movs    s1,34,s5,11,8	
movs    s1,46,s5,20,1	
movs    s1,47,s5,22,16	
movs    s1,63,s5,39,80	



movs    s5,11,s15,0,8   
movd    "002 000 ",s15,100
acall   pfirst_dbs
acall   find_dbs
jnz     skip_cmess
acall   read_dbs
movs    s14,8,s5,11,8
skip_cmess:
wrs     s5,4,200
out     s5,0,c4
out     s14,250,c4
jmp     main







send_observe_answer:
movd    "TX00                                       /n",s5,0
movd    "OK_channel/n",s5,4
wrs     s5,4,200
out     s5,0,c4
out     s14,250,c4
movd    "0",s14,241

setc    1,10
jmp     main











z_ret:
setc    0,255
incc    0
ret

nz_ret:
setc    0,0
incc    0
ret



test_im_state:
case    im_sign,main_loop      


in      s1,0
out     s1,0,c4





compd   "init dbs ??? ",s1,0
jz      go_init_dbs



compd   "disp dbs ???/n",s1,0
jz      go_dbs_display

compd   "set dbs ??? ",s1,0
jz      go_dbs_input

compd   "setr dbs ??? ??? ",s1,0
jz      go_dbsreco_input

compd   ";",s1,0
jz      main_message

compd   "test0e",s1,0
jz      send_testm0e

compd   "tests0e",s1,0
jz      send_testsm0e

compd   "test0a",s1,0
jz      send_testm0a

compd   "tests0a",s1,0
jz      send_testsm0a

compd   "test0c",s1,0
jz      send_testm0c

movd    " command not found/n",s1,100
out     s1,100,c4
movd    "OK#/n",s1,0
anss    s1,100
jmp     main

main_message:
movd    "OK#/n",s1,0
anss    s1,0
jmp     main

main_error:
movd    "Error/n",s1,0
out     s1,0,c4
movd    "OK#/n",s1,0
anss    s1,0
jmp     main



send_testm0e:
movd    "RX220Efff7999    P~~~~~~~~~~~~~~~~Test Alarm1234567890abcdefghijklmnopqrstuvwxyz/n",s1,0
writeb  s1,0,0
sendsig ans_sign,c1
out     s1,0,c4
jmp     main_message

send_testsm0e:
movd    "RX220Efff7998    P~~~~~~~~~~~~~~~~Test Alarm1234/n",s1,0
writeb  s1,0,0
sendsig ans_sign,c1
out     s1,0,c4
jmp     main_message

send_testm0a:
movd    "RX220Afff7997Test Alarm1234567890abcdefghijklmnopqrstuvwxyz/n",s1,0
writeb  s1,0,0
sendsig ans_sign,c1
out     s1,0,c4
jmp     main_message

send_testsm0a:
movd    "RX220Afff7996Test Alarm1234/n",s1,0
writeb  s1,0,0
sendsig ans_sign,c1
out     s1,0,c4
jmp     main_message

send_testm0c:

movd    "RX220CfffGN7995      ATest Alarm1234567890abcdefghijklmnopqrstuvwxyz/n",s1,0
writeb  s1,0,0
sendsig ans_sign,c1
out     s1,0,c4
jmp     main_message

go_init_dbs:



movd    "004 0 280 8 6 2 2 3 3 3 1 92 /n",s15,100
movs    s1,9,s15,100,40
acall   open_dbs



movd    "                                                                                                                /n",s14,0
acall   pfirst_dbs
acall   init_dbs
acall   pfirst_dbs
jmp     main_message

go_dbs_display:
movd    "         /n",s15,100
movs    s1,9,s15,100,3
acall   pfirst_dbs
movd    ";  Begin of DBS       /n",s1,0
movs    s15,100,s1,16,3
out     s1,0,c4

movd    "m1setr dbs nnn rrr ttttttt                                                     /n",s1,0
movs    s15,100,s1,11,3
setc    2,0
dbs_dis_loop:
acall   read_dbs
jnz     dbs_aus_dis
compd   "            ",s14,0
jz      dbs_aus_dis
movc    2,s1,15
movd    "/n",s14,112
movs    s14,0,s1,19,60
out     s1,0,c4
incc    2
acall   pnext_dbs
jz      dbs_dis_loop
dbs_aus_dis:
movd    "; End of DBS     /n",s1,0
movs    s15,100,s1,13,3
out     s1,0,c4
jmp     main_message

go_dbs_input:
movd    "004 0      /n",s15,100
movs    s1,8,s15,100,3
acall   pfirst_dbs
movd    "        ",s15,0
acall   find_dbs
jnz     dbs_no_space





movs    s1,12,s14,0,100
acall   write_dbs
jz      main_message
movd    " DBS    Error on write to dbs!/n",s1,0
movs    s15,100,s1,5,3
out     s1,0,c4
jmp     main_error
dbs_no_space:
movd    " DBS     Error DBS is full !!!!/n",s1,0
movs    s15,100,s1,5,3
out     s1,0,c4
jmp     main_error


go_dbsreco_input:
movd    "004 0      /n",s15,100
movs    s1,8,s15,100,8
acall   preco_dbs
jnz     dbs_no_space





movs    s1,17,s14,0,100
acall   write_dbs
jmp      main_message







init_b0:
setp    0XD300,0x50      
setp    0XD301,0x00             

setp    0Xd302,0x20     
setp    0XD303,0x00             

setp    0Xd304,0x20     
setp    0XD305,0x00             

setp    0Xd306,0x50      
setp    0XD307,0x00             

setp    0Xd308,0x20     
setp    0XD309,0x00             

setp    0Xd30A,0x50      
setp    0XD30B,0x00             

setp    0Xd30C,0x20     
setp    0XD30D,0x00             

setp    0XD30E,0x00         

ret






init_b1:
setp    0Xd310,0x94      
setp    0Xd311,0x00             

setp    0Xd312,0x04     
setp    0Xd313,0x00             

setp    0Xd314,0x04     
setp    0Xd315,0x00             

setp    0Xd316,0x94      
setp    0Xd317,0x00             

setp    0Xd318,0x04     
setp    0Xd319,0x00             

setp    0Xd31A,0x94      
setp    0Xd31B,0x00             

setp    0Xd31C,0x04     
setp    0Xd31D,0x00             

setp    0Xd31E,0x01         

ret






init_b2:
setp    0Xd320,0x98      
setp    0Xd321,0x00             

setp    0Xd322,0x04     
setp    0Xd323,0x00             

setp    0Xd324,0x04     
setp    0Xd325,0x00             

setp    0Xd326,0x98      
setp    0Xd327,0x00             

setp    0Xd328,0x04     
setp    0Xd329,0x00             

setp    0Xd32A,0x98      
setp    0Xd32B,0x00             

setp    0Xd32C,0x04     
setp    0Xd32D,0x00             

setp    0Xd32E,0x02         

ret






init_b3:
setp    0Xd330,0x10      
setp    0Xd331,0x00             

setp    0Xd332,0x50     
setp    0Xd333,0x00             

setp    0Xd334,0x50     
setp    0Xd335,0x00             

setp    0Xd336,0x10      
setp    0Xd337,0x00             

setp    0Xd338,0x50     
setp    0Xd339,0x00             

setp    0Xd33A,0x10      
setp    0Xd33B,0x00             

setp    0Xd33C,0x50     
setp    0Xd33D,0x00             

setp    0Xd33E,0x03         

ret



zzzz:

end


