mirror of
https://github.com/romychs/ESPKit.git
synced 2025-12-19 15:23:19 +03:00
wterm first beta release
This commit is contained in:
parent
52a14654c8
commit
0e1722207b
@ -287,8 +287,13 @@ _FIND_FIRST
|
|||||||
|
|
||||||
|
|
||||||
_SCANKEY
|
_SCANKEY
|
||||||
XOR A
|
POP BC
|
||||||
JP NORM_EXIT
|
POP HL
|
||||||
|
LD A,1
|
||||||
|
AND A
|
||||||
|
LD E, 'x'
|
||||||
|
LD B, KB_ALT | KB_L_ALT
|
||||||
|
RET
|
||||||
|
|
||||||
|
|
||||||
; Выходные значения:
|
; Выходные значения:
|
||||||
|
|||||||
@ -41,3 +41,12 @@ DSS_VMOD_G640 EQU 0x82 ; graphics 640x256, 16 colors
|
|||||||
E_FILE_EXISTS EQU 7
|
E_FILE_EXISTS EQU 7
|
||||||
E_FILE_NOT_FOUND EQU 3
|
E_FILE_NOT_FOUND EQU 3
|
||||||
|
|
||||||
|
; Keyboard Shift key status bits
|
||||||
|
KB_R_ALT EQU 0x01
|
||||||
|
KB_R_CTRL EQU 0x02
|
||||||
|
KB_L_ALT EQU 0x04
|
||||||
|
KB_L_CTRL EQU 0x08
|
||||||
|
KB_ALT EQU 0x10
|
||||||
|
KB_CTRL EQU 0x20
|
||||||
|
KB_R_SHIFT EQU 0x40
|
||||||
|
KB_L_SHIFT EQU 0x80
|
||||||
|
|||||||
@ -202,7 +202,8 @@ UART_WAIT_TR
|
|||||||
; Wait, without open/close ISA
|
; Wait, without open/close ISA
|
||||||
;
|
;
|
||||||
UART_WAIT_TR_INT
|
UART_WAIT_TR_INT
|
||||||
PUSH AF, BC, HL
|
PUSH BC, HL, DE
|
||||||
|
LD D,A
|
||||||
LD BC, 500
|
LD BC, 500
|
||||||
LD HL, REG_LSR
|
LD HL, REG_LSR
|
||||||
WAIT_TR_BZY
|
WAIT_TR_BZY
|
||||||
@ -216,7 +217,8 @@ WAIT_TR_BZY
|
|||||||
JR NZ,WAIT_TR_BZY
|
JR NZ,WAIT_TR_BZY
|
||||||
SCF
|
SCF
|
||||||
WAIT_TR_RDY
|
WAIT_TR_RDY
|
||||||
POP HL, BC, AF
|
LD A,D
|
||||||
|
POP DE, HL, BC
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
@ -225,12 +227,14 @@ WAIT_TR_RDY
|
|||||||
; Out: CF=1 - Not ready
|
; Out: CF=1 - Not ready
|
||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
UART_TX_BYTE
|
UART_TX_BYTE
|
||||||
|
PUSH DE
|
||||||
CALL UART_WAIT_TR
|
CALL UART_WAIT_TR
|
||||||
JP C, UTB_NOT_R
|
JP C, UTB_NOT_R
|
||||||
LD HL, REG_THR
|
LD HL, REG_THR
|
||||||
CALL UART_WRITE
|
CALL UART_WRITE
|
||||||
XOR A
|
XOR A
|
||||||
UTB_NOT_R
|
UTB_NOT_R
|
||||||
|
POP DE
|
||||||
RET
|
RET
|
||||||
|
|
||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
|
|||||||
@ -61,6 +61,7 @@ START
|
|||||||
IF DEBUG == 1
|
IF DEBUG == 1
|
||||||
; LD IX,CMD_LINE1
|
; LD IX,CMD_LINE1
|
||||||
LD SP, STACK_TOP
|
LD SP, STACK_TOP
|
||||||
|
JP MAIN_LOOP
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
CALL ISA.ISA_RESET
|
CALL ISA.ISA_RESET
|
||||||
@ -83,8 +84,8 @@ START
|
|||||||
|
|
||||||
CALL WIFI.UART_EMPTY_RS
|
CALL WIFI.UART_EMPTY_RS
|
||||||
|
|
||||||
XOR A
|
; XOR A
|
||||||
LD (Q_POS),A
|
; LD (Q_POS),A
|
||||||
|
|
||||||
MAIN_LOOP
|
MAIN_LOOP
|
||||||
; handle key pressed
|
; handle key pressed
|
||||||
@ -92,65 +93,67 @@ MAIN_LOOP
|
|||||||
RST DSS
|
RST DSS
|
||||||
JP Z,HANDLE_RECEIVE ; if no key pressed
|
JP Z,HANDLE_RECEIVE ; if no key pressed
|
||||||
|
|
||||||
; check for QUIT command
|
; Check for Alt+x
|
||||||
LD A,(Q_POS)
|
; IF TRACE
|
||||||
CP 4
|
; LD D,A
|
||||||
JP P,NO_QUIT
|
; LD A,B
|
||||||
|
; AND KB_ALT
|
||||||
|
; JP Z, NO_QUIT
|
||||||
|
; LD C,D
|
||||||
|
; PUSH BC,DE,HL
|
||||||
|
; LD DE, MSG_ALT_KEY
|
||||||
|
; CALL UTIL.HEXB
|
||||||
|
; PRINTLN MSG_ALT
|
||||||
|
; POP HL,DE,BC
|
||||||
|
|
||||||
LD IX, CMD_QUIT
|
; ELSE
|
||||||
Q_POS EQU $+2
|
LD A,D
|
||||||
LD A,(IX+0x00)
|
;AND 0xDF
|
||||||
; compare current char with "QUIT" str
|
CP 0xAB
|
||||||
CP E
|
|
||||||
JR NZ, NO_QUIT
|
JR NZ, NO_QUIT
|
||||||
|
LD A,B
|
||||||
LD HL,Q_POS
|
AND KB_ALT
|
||||||
INC (HL)
|
JP NZ, OK_EXIT
|
||||||
LD A,(HL)
|
;ENDIF
|
||||||
CP 5
|
|
||||||
JP Z,OK_EXIT
|
|
||||||
JR OUT_CHAR
|
|
||||||
|
|
||||||
NO_QUIT
|
NO_QUIT
|
||||||
XOR A
|
|
||||||
LD (Q_POS), A
|
|
||||||
|
|
||||||
OUT_CHAR
|
OUT_CHAR
|
||||||
LD A, E
|
LD A, E
|
||||||
CP CR
|
CP CR
|
||||||
JR Z, PUT_CHAR
|
JR NZ, CHK_PRINTABLE
|
||||||
CP 0x20
|
CALL PUT_A_CHAR
|
||||||
JP M, HANDLE_CR_LF
|
LD A,LF
|
||||||
|
CALL PUT_A_CHAR
|
||||||
|
JR TX_SYMBOL
|
||||||
|
|
||||||
PUT_CHAR
|
CHK_PRINTABLE
|
||||||
|
CP 0x20
|
||||||
|
JP M, HANDLE_RECEIVE ; do not print < ' '
|
||||||
CALL PUT_A_CHAR
|
CALL PUT_A_CHAR
|
||||||
|
|
||||||
HANDLE_CR_LF
|
; transmitt symbol
|
||||||
|
TX_SYMBOL
|
||||||
CALL WIFI.UART_TX_BYTE
|
CALL WIFI.UART_TX_BYTE
|
||||||
JP C,TX_WARN
|
JP C,TX_WARN
|
||||||
LD A, E
|
LD A, E
|
||||||
CP CR
|
CP CR
|
||||||
JR NZ,NO_TX_LF
|
|
||||||
LD E,LF
|
|
||||||
CALL WIFI.UART_TX_BYTE
|
|
||||||
JP C,TX_WARN
|
|
||||||
JR HANDLE_RECEIVE
|
|
||||||
|
|
||||||
NO_TX_LF
|
|
||||||
CP LF
|
|
||||||
JR NZ,HANDLE_RECEIVE
|
JR NZ,HANDLE_RECEIVE
|
||||||
LD E,CR
|
; Transmitt LF after CR
|
||||||
|
LD E,LF
|
||||||
CALL WIFI.UART_TX_BYTE
|
CALL WIFI.UART_TX_BYTE
|
||||||
JP C,TX_WARN
|
JP C,TX_WARN
|
||||||
|
|
||||||
; check receiver and handle received bytes
|
; check receiver and handle received bytes
|
||||||
HANDLE_RECEIVE
|
HANDLE_RECEIVE
|
||||||
; check receiver status
|
; check receiver status
|
||||||
LD HL,REG_LCR
|
LD HL,REG_LSR
|
||||||
CALL WIFI.UART_READ
|
CALL WIFI.UART_READ
|
||||||
CP LSR_RCVE
|
LD D,A
|
||||||
|
AND LSR_RCVE
|
||||||
JP NZ, RX_WARN
|
JP NZ, RX_WARN
|
||||||
CP LSR_DR
|
LD A,D
|
||||||
|
AND LSR_DR
|
||||||
JP Z, CHECK_FOR_END
|
JP Z, CHECK_FOR_END
|
||||||
; rx queue is not empty, read
|
; rx queue is not empty, read
|
||||||
LD HL,REG_RBR
|
LD HL,REG_RBR
|
||||||
@ -167,11 +170,16 @@ HANDLE_RECEIVE
|
|||||||
CHK_1F
|
CHK_1F
|
||||||
CP 0x20
|
CP 0x20
|
||||||
CALL P, PUT_A_CHAR
|
CALL P, PUT_A_CHAR
|
||||||
|
; reset error counter if received symbol withoud error
|
||||||
|
XOR A
|
||||||
|
LD (RX_ERR),A
|
||||||
|
|
||||||
CHECK_FOR_END
|
CHECK_FOR_END
|
||||||
LD A,(Q_POS)
|
; LD A,(Q_POS)
|
||||||
CP 5
|
; CP 5
|
||||||
JP Z, OK_EXIT
|
; JP Z, OK_EXIT
|
||||||
|
|
||||||
|
|
||||||
JP MAIN_LOOP
|
JP MAIN_LOOP
|
||||||
|
|
||||||
RX_WARN
|
RX_WARN
|
||||||
@ -179,7 +187,18 @@ RX_WARN
|
|||||||
LD DE,MSG_LSR_VALUE
|
LD DE,MSG_LSR_VALUE
|
||||||
CALL UTIL.HEXB
|
CALL UTIL.HEXB
|
||||||
PRINTLN MSG_RX_ERROR
|
PRINTLN MSG_RX_ERROR
|
||||||
JP MAIN_LOOP
|
CALL WIFI.UART_EMPTY_RS
|
||||||
|
LD HL,RX_ERR
|
||||||
|
INC (HL)
|
||||||
|
LD A,(HL)
|
||||||
|
CP 100
|
||||||
|
JP M,MAIN_LOOP
|
||||||
|
; too many RX errors
|
||||||
|
PRINTLN MSG_MANY_RX_ERROR
|
||||||
|
LD B,5
|
||||||
|
JP WCOMMON.EXIT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
TX_WARN
|
TX_WARN
|
||||||
PRINTLN MSG_TX_ERROR
|
PRINTLN MSG_TX_ERROR
|
||||||
@ -207,9 +226,10 @@ OK_EXIT
|
|||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
|
|
||||||
MSG_START
|
MSG_START
|
||||||
DB "Terminal for Sprinter-WiFi by Sprinter Team. v1.0.1, ", __DATE__, "\r\n", 0
|
DB "Terminal for Sprinter-WiFi by Sprinter Team. v1.0 beta1, ", __DATE__, "\r\n", 0
|
||||||
MSG_HLP
|
MSG_HLP
|
||||||
DB"\r\nEnter ESP AT command or QUIT to close terminal.",0
|
DB"\r\nEnter ESP AT command or Alt+x to close terminal.",0
|
||||||
|
MSG_EXIT
|
||||||
|
|
||||||
MSG_TX_ERROR
|
MSG_TX_ERROR
|
||||||
DB "Transmitter not ready",0
|
DB "Transmitter not ready",0
|
||||||
@ -219,6 +239,15 @@ MSG_RX_ERROR
|
|||||||
MSG_LSR_VALUE
|
MSG_LSR_VALUE
|
||||||
DB "xx",0
|
DB "xx",0
|
||||||
|
|
||||||
|
MSG_MANY_RX_ERROR
|
||||||
|
DB "Too many receiver errors!",0
|
||||||
|
|
||||||
|
|
||||||
|
MSG_ALT
|
||||||
|
DB "Pressed ALT+"
|
||||||
|
MSG_ALT_KEY
|
||||||
|
DB "xx",0
|
||||||
|
|
||||||
; TX_DATA
|
; TX_DATA
|
||||||
; DB " ",0
|
; DB " ",0
|
||||||
; ------------------------------------------------------
|
; ------------------------------------------------------
|
||||||
@ -227,6 +256,9 @@ MSG_LSR_VALUE
|
|||||||
CMD_QUIT
|
CMD_QUIT
|
||||||
DB "QUIT\r",0
|
DB "QUIT\r",0
|
||||||
|
|
||||||
|
RX_ERR
|
||||||
|
DB 0
|
||||||
|
|
||||||
IF DEBUG == 1
|
IF DEBUG == 1
|
||||||
CMD_TEST1 DB "ATE0\r\n",0
|
CMD_TEST1 DB "ATE0\r\n",0
|
||||||
BUFF_TEST1 DS RS_BUFF_SIZE,0
|
BUFF_TEST1 DS RS_BUFF_SIZE,0
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user