Subversion Repositories pentevo

Rev

Rev 352 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1. ; 3                                             9
  2. ;┌───────────────────────────────────────────────┐
  3. ;│      ┌──────────┬─────────────────────┐       │
  4. ;│      │ pc/win32 │  TESTCOM            │       │
  5. ;│      ├──────────┘                     │       │
  6. ;│      │ Bit rate 115200   No parity    │       │
  7. ;│      │ Data bits 8       Flow control │       │
  8. ;│      │ Stop bits 2        √ RTS/CTS   │       │
  9. ;│      │                   DSR - Ignored│       │
  10. ;│      │           Start BERT           │       │
  11. ;│      └───────────────┬────────────────┘       │
  12. ;│                      │COM port                │
  13. ;│                      │                        │
  14. ;│                RS-232│                        │
  15. ;│┌────────┬────────────┴───────────────────────┐│
  16. ;││ ZX-Evo │   Last sec        65535 sec        ││16
  17. ;│├────────┘     10472            10472         ││17
  18. ;││ RxBuff ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ RTS ││18
  19. ;││ TxBuff ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ CTS ││19
  20. ;│└─────────────────────────────────────────────┘│20
  21. ;└───────────────────────────────────────────────┘
  22. ; 3                                             9
  23. ;
  24. ;--------------------------------------
  25. ;
  26. .EQU    TRS_TIMEOUT     =0
  27. .EQU    TRS_SECONDS     =2
  28. .EQU    TRS_COUNT_LAST  =4
  29. .EQU    TRS_COUNT_TOTAL =6
  30. ;                        10
  31. ;--------------------------------------
  32. ;
  33. MSG_TRS_1:
  34.         .DB     $16,20, 3,$C2
  35.         .DB     $16,11, 4,"pc/win32 "
  36.         .DB     $16,23, 4,"TESTCOM"
  37.         .DB     $16, 9, 5,$C3
  38.         .DB     $16,11, 6,"Bit rate 115200   No parity"
  39.         .DB     $16,11, 7,"Data bits 8"
  40.         .DB     $16,29, 7,"Flow control "
  41.         .DB     $16,11, 8,"Stop bits 2"
  42.         .DB     $16,30, 8,$FB," RTS/CTS"
  43.         .DB     $16,29, 9,"DSR - Ignored"
  44.         .DB     $16,21,10,"Start BERT "
  45.         .DB     $16,25,11,$C2
  46.         .DB     $16,25,12,$B3,"COM port"
  47.         .DB     $16,25,13,$B3
  48.         .DB     $16,19,14,"RS-232",$B3
  49.         .DB     $16,12,15,$C2
  50.         .DB     $16,25,15,$C1
  51.         .DB     $16, 5,16,"ZX Evo",$16,16,16,"Last sec"
  52.         .DB     $16,38,16,"sec"
  53.         .DB     $16, 3,17,$C3
  54.         .DB     $16, 5,18,"RxBuff",$16,45,18,"RTS",$16, 5,19,"TxBuff",$16,45,19,"CTS",0,0
  55. ;
  56. ;--------------------------------------
  57. ;
  58. WIND_T_RS_1:
  59.         .DB     2,2,49,20,$DF,$01
  60. WIND_T_RS_2:
  61.         .DB     9,3,34,9,$DF,$00
  62. WIND_T_RS_3:
  63.         .DB     9,3,12,3,$DF,$00
  64. WIND_T_RS_4:
  65.         .DB     3,15,47,6,$DF,$00
  66. WIND_T_RS_5:
  67.         .DB     3,15,10,3,$DF,$00
  68. ;
  69. ;--------------------------------------
  70. ;
  71. TESTRS232:
  72.         ANDI    FLAGS1,0B11111100
  73.         ORI     FLAGS1,0B00000100
  74.         GETMEM  10
  75.  
  76.         LDIZ    WIND_T_RS_1*2
  77.         CALL    WINDOW
  78.         LDIZ    WIND_T_RS_2*2
  79.         CALL    WINDOW
  80.         LDIZ    WIND_T_RS_3*2
  81.         CALL    WINDOW
  82.         LDIZ    WIND_T_RS_4*2
  83.         CALL    WINDOW
  84.         LDIZ    WIND_T_RS_5*2
  85.         CALL    WINDOW
  86.         LDIZ    MSG_TRS_1*2
  87.         CALL    SCR_PRINTSTRZ
  88.  
  89. T_RS_0: STH     TRS_SECONDS+0,FF
  90.         STH     TRS_SECONDS+1,FF
  91.         ORI     FLAGS1,0B00010000
  92.         RCALL   T_RS_CLRBUFFS
  93.         MOVW    ZL,YL
  94.         RCALL   T_RS_STATUS
  95.  
  96. T_RS_1: CALL    INKEY
  97.         BREQ    T_RS_2
  98.         CPI     DATA,KEY_SPACE
  99.         BREQ    T_RS_0
  100.         SBRC    TEMP,PS2K_BIT_EXTKEY
  101.         RJMP    T_RS_2
  102.         CPI     DATA,KEY_ESC
  103.         BRNE    T_RS_2
  104.         RCALL   T_RS_CLRBUFFS
  105.         CBR     FLAGS1,0B00010000
  106.  
  107.         FREEMEM 10
  108.         RET
  109.  
  110. T_RS_2: MOVW    ZL,YL
  111.         CALL    CHECK_TIMEOUT_MS
  112.         BRCC    T_RS_3
  113.         RCALL   T_RS_STATUS
  114. T_RS_3: RCALL   T_RS_BUFFBAR
  115. T_RS_5: CALL    UART_CHK_CTS
  116.         LDS     TEMP,UART_TX_LN
  117.         CPI     TEMP,UART_TXBSIZE
  118.         BRCC    T_RS_1
  119.         CALL    UART_GETCHAR
  120.         BREQ    T_RS_1
  121.         CALL    UART_PUTCHAR
  122.         LDH     XL,TRS_COUNT_TOTAL+0
  123.         LDH     XH,TRS_COUNT_TOTAL+1
  124.         LDH     ZL,TRS_COUNT_TOTAL+2
  125.         LDH     ZH,TRS_COUNT_TOTAL+3
  126.         ADIW    XL,1
  127.         ADC     ZL,NULL
  128.         ADC     ZH,NULL
  129.         STH     TRS_COUNT_TOTAL+0,XL
  130.         STH     TRS_COUNT_TOTAL+1,XH
  131.         STH     TRS_COUNT_TOTAL+2,ZL
  132.         STH     TRS_COUNT_TOTAL+3,ZH
  133.         LDH     XL,TRS_COUNT_LAST+0
  134.         LDH     XH,TRS_COUNT_LAST+1
  135.         ADIW    XL,1
  136.         STH     TRS_COUNT_LAST+0,XL
  137.         STH     TRS_COUNT_LAST+1,XH
  138.         RJMP    T_RS_5
  139. ;
  140. ;--------------------------------------
  141. ;
  142. T_RS_BUFFBAR:
  143.         LDI     XL,12
  144.         LDI     XH,18
  145.         CALL    SCR_SET_CURSOR
  146.         LDS     COUNT,UART_RX_LN
  147. .IF (UART_RXBSIZE>128)
  148.         LSR     COUNT
  149. .ENDIF
  150. .IF (UART_RXBSIZE>64)
  151.         LSR     COUNT
  152. .ENDIF
  153. .IF (UART_RXBSIZE>32)
  154.         INC     COUNT
  155.         LSR     COUNT
  156. .ENDIF
  157.         RCALL   T_RSBAR0
  158.         LDI     TEMP,$AE
  159.         SBIS    PORTD,5
  160.         LDI     TEMP,$C0
  161.         LDI     COUNT,3
  162.         CALL    SCR_FILL_ATTR
  163.         LDI     TEMP,$DF
  164.         CALL    SCR_SET_ATTR
  165.  
  166.         LDI     XL,12
  167.         LDI     XH,19
  168.         CALL    SCR_SET_CURSOR
  169.         LDS     COUNT,UART_TX_LN
  170. .IF (UART_TXBSIZE>128)
  171.         LSR     COUNT
  172. .ENDIF
  173. .IF (UART_TXBSIZE>64)
  174.         LSR     COUNT
  175. .ENDIF
  176. .IF (UART_TXBSIZE>32)
  177.         INC     COUNT
  178.         LSR     COUNT
  179. .ENDIF
  180.         RCALL   T_RSBAR0
  181.         LDI     TEMP,$AE
  182.         SBIS    PINB,6
  183.         LDI     TEMP,$C0
  184.         LDI     COUNT,3
  185.         CALL    SCR_FILL_ATTR
  186.         LDI     TEMP,$DF
  187.         JMP     SCR_SET_ATTR
  188. ;
  189. ;--------------------------------------
  190. ;
  191. T_RSBAR0:
  192.         LDI     DATA,32
  193.         SUB     DATA,COUNT
  194.         TST     COUNT
  195.         BREQ    T_RSBAR1
  196.         PUSH    DATA
  197.         LDI     DATA,$DB ;"█"
  198.         CALL    SCR_FILL_CHAR
  199.         POP     DATA
  200. T_RSBAR1:
  201.         TST     DATA
  202.         BREQ    T_RSBAR2
  203.         MOV     COUNT,DATA
  204.         LDI     DATA,$B0 ;"░"
  205.         CALL    SCR_FILL_CHAR
  206. T_RSBAR2:
  207.         LDI     DATA,$20 ;" "
  208.         JMP     SCR_PUTCHAR
  209. ;
  210. ;--------------------------------------
  211. ;
  212. T_RS_STATUS:
  213.         LDIW    1000
  214.         CALL    SET_TIMEOUT_MS
  215.  
  216.         LDI     XL,32
  217.         LDI     XH,16
  218.         CALL    SCR_SET_CURSOR
  219.         LDH     XL,TRS_SECONDS+0
  220.         LDH     XH,TRS_SECONDS+1
  221.         ADIW    XL,1
  222.         BRNE    T_RSSTAT1
  223.         STH     TRS_COUNT_LAST+0,NULL
  224.         STH     TRS_COUNT_LAST+1,NULL
  225.         STH     TRS_COUNT_TOTAL+0,NULL
  226.         STH     TRS_COUNT_TOTAL+1,NULL
  227.         STH     TRS_COUNT_TOTAL+2,NULL
  228.         STH     TRS_COUNT_TOTAL+3,NULL
  229. T_RSSTAT1:
  230.         STH     TRS_SECONDS+0,XL
  231.         STH     TRS_SECONDS+1,XH
  232.         CALL    DECWORD
  233.  
  234.         LDI     XL,18
  235.         LDI     XH,17
  236.         CALL    SCR_SET_CURSOR
  237.         LDH     XL,TRS_COUNT_LAST+0
  238.         LDH     XH,TRS_COUNT_LAST+1
  239.         CALL    DECWORD
  240.         STH     TRS_COUNT_LAST+0,NULL
  241.         STH     TRS_COUNT_LAST+1,NULL
  242.  
  243.         LDI     XL,35
  244.         LDI     XH,17
  245.         CALL    SCR_SET_CURSOR
  246.         LDH     WL,TRS_SECONDS+0
  247.         LDH     WH,TRS_SECONDS+1
  248.         TST     WL
  249.         BRNE    T_RSSTAT2
  250.         TST     WH
  251.         BRNE    T_RSSTAT2
  252.         MOVW    XL,WL
  253.         RJMP    T_RSSTAT3
  254. T_RSSTAT2:
  255.         LDH     XL,TRS_COUNT_TOTAL+0
  256.         LDH     XH,TRS_COUNT_TOTAL+1
  257.         LDH     ZL,TRS_COUNT_TOTAL+2
  258.         LDH     ZH,TRS_COUNT_TOTAL+3
  259.         CALL    DIV3216U
  260. T_RSSTAT3:
  261.         JMP     DECWORD
  262. ;
  263. ;--------------------------------------
  264. ;
  265. T_RS_CLRBUFFS:
  266. .IFNDEF DEBUG_FPGA_OUT
  267.         CLI
  268.         LDS     TEMP,UART_TX_HD
  269.         STS     UART_TX_TL,TEMP
  270.         STS     UART_TX_LN,NULL
  271.         LDS     TEMP,UART_RX_HD
  272.         STS     UART_RX_TL,TEMP
  273.         STS     UART_RX_LN,NULL
  274.         RTS_CLR
  275.         SEI
  276. .ENDIF
  277.         RET
  278. ;
  279. ;--------------------------------------
  280. ;
  281.