open local file 1st impl

This commit is contained in:
boykovra 2024-08-02 19:14:24 +03:00
parent a540189ec7
commit 6d9428d988
9 changed files with 106 additions and 52 deletions

View File

@ -364,7 +364,7 @@ CMD_LINE_TFTP_D
DB " tftp://tftp.server.ru:1024/file_in.asm c:\\tmp\\file_out.asm"Z DB " tftp://tftp.server.ru:1024/file_in.asm c:\\tmp\\file_out.asm"Z
CMD_LINE_TFTP_D1 CMD_LINE_TFTP_D1
DB " tftp://tftp.server.ru:1024/file_in.asm"Z DB " tftp://tftp.server.ru:1024/file_in.asm local.asm"Z
CMD_LINE_TFTP_U CMD_LINE_TFTP_U
DB " file_up.txt tftp://tftp.server.ru:9999/file_in.asm "Z DB " file_up.txt tftp://tftp.server.ru:9999/file_in.asm "Z

View File

@ -66,4 +66,9 @@ FA_LABEL EQU 0x08
FA_DIRECTORY EQU 0x10 FA_DIRECTORY EQU 0x10
FA_ARCHIVE EQU 0x20 FA_ARCHIVE EQU 0x20
; File Access mode
FM_READ_WRITE EQU 0x00
FM_READ EQU 0x01
FM_WRITE EQU 0x02
ENDIF ENDIF

View File

@ -14,14 +14,11 @@ CHECK
PRINT PRINT
CALL GET_ERR_MSG CALL GET_ERR_MSG
LD C,DSS_PCHARS DSS_EXEC DSS_PCHARS
RST DSS
LD C,DSS_PCHARS
LD HL, WCOMMON.LINE_END LD HL, WCOMMON.LINE_END
RST DSS DSS_EXEC DSS_PCHARS
POP BC ; clear add from stack POP BC ; clear add from stack
LD BC,0x0141 ; and exit DSS_EXEC 0x0200+DSS_EXIT ; and exit
RST DSS
; ------------------------------------------------------ ; ------------------------------------------------------
; Return pointer to DSS error message ; Return pointer to DSS error message

View File

@ -6,12 +6,11 @@
; ====================================================== ; ======================================================
; Set to 1 to turn debug ON with DeZog VSCode plugin ; define to turn debug ON with DeZog VSCode plugin
; Set to 0 to compile .EXE ;DEFINE DEBUG
DEBUG EQU 0
; Set to 1 to output TRACE messages ; define to output TRACE messages
TRACE EQU 1 DEFINE TRACE
; Version of EXE file, 1 for DSS 1.70+ ; Version of EXE file, 1 for DSS 1.70+
EXE_VERSION EQU 0 EXE_VERSION EQU 0
@ -23,7 +22,7 @@ DEFAULT_TIMEOUT EQU 2000
DEVICE NOSLOT64K DEVICE NOSLOT64K
IF DEBUG == 1 IFDEF DEBUG
INCLUDE "dss.asm" INCLUDE "dss.asm"
DB 0 DB 0
ALIGN 16384, 0 ALIGN 16384, 0
@ -59,7 +58,7 @@ EXE_HEADER
; ------------------------------------------------------ ; ------------------------------------------------------
START START
IF DEBUG == 1 IFDEF DEBUG
; LD IX,CMD_LINE1 ; LD IX,CMD_LINE1
LD SP, STACK_TOP LD SP, STACK_TOP
ENDIF ENDIF
@ -226,7 +225,7 @@ MSG_ENT_NO
; ------------------------------------------------------ ; ------------------------------------------------------
; Debug messages ; Debug messages
; ------------------------------------------------------ ; ------------------------------------------------------
IF TRACE IFDEF TRACE
MSG_ECHO_OFF MSG_ECHO_OFF
DB "Echo off",0 DB "Echo off",0
@ -277,7 +276,7 @@ LINE_END
IF DEBUG == 1 IFDEF DEBUG
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
ENDIF ENDIF

View File

@ -51,7 +51,7 @@ EXE_HEADER
; ------------------------------------------------------ ; ------------------------------------------------------
START START
IF DEBUG == 1 IFDEF DEBUG
; LD IX,CMD_LINE1 ; LD IX,CMD_LINE1
LD SP, STACK_TOP LD SP, STACK_TOP
JP MAIN_LOOP JP MAIN_LOOP

View File

@ -34,7 +34,7 @@
; Print data ASCIIZ string to screen if TRACE enabled ; Print data ASCIIZ string to screen if TRACE enabled
MACRO TRACELN data MACRO TRACELN data
IF TRACE == 1 IFDEF TRACE
PUSH BC,DE PUSH BC,DE
PRINTLN data PRINTLN data
POP DE,BC POP DE,BC

View File

@ -26,12 +26,9 @@ CHECK_ERROR
; ------------------------------------------------------ ; ------------------------------------------------------
; Program exit point ; Program exit point
; ------------------------------------------------------ ; ------------------------------------------------------
IFUSED EXIT
EXIT EXIT
CALL REST_VMODE CALL REST_VMODE
LD C,DSS_EXIT DSS_EXEC DSS_EXIT
RST DSS
ENDIF
; ------------------------------------------------------ ; ------------------------------------------------------
; Search Sprinter WiFi card ; Search Sprinter WiFi card
; ------------------------------------------------------ ; ------------------------------------------------------
@ -57,7 +54,7 @@ NO_TL_FOUND
; Dump all UTL16C550 registers to screen for debug ; Dump all UTL16C550 registers to screen for debug
; ------------------------------------------------------ ; ------------------------------------------------------
IFUSED DUMP_UART_REGS IFUSED DUMP_UART_REGS
IF TRACE IFDEF TRACE
DUMP_UART_REGS DUMP_UART_REGS
; Dump, DLAB=0 registers ; Dump, DLAB=0 registers
LD BC, 0x0800 LD BC, 0x0800
@ -231,7 +228,7 @@ SAVE_VMODE
; ------------------------------------------------------ ; ------------------------------------------------------
; Debug messages ; Debug messages
; ------------------------------------------------------ ; ------------------------------------------------------
IF TRACE IFDEF TRACE
MSG_DR MSG_DR
DB "Reg[0x" DB "Reg[0x"
MSG_DR_RN MSG_DR_RN

View File

@ -6,12 +6,11 @@
; License: BSD 3-Clause ; License: BSD 3-Clause
; ====================================================== ; ======================================================
; Set to 1 to turn debug ON with DeZog VSCode plugin ; Define to turn debug ON with DeZog VSCode plugin
; Set to 0 to compile .EXE ;DEFINE EQU 0
DEBUG EQU 0
; Set to 1 to output TRACE messages ; Define to output TRACE messages
TRACE EQU 1 DEFINE TRACE
; Version of EXE file, 1 for DSS 1.70+ ; Version of EXE file, 1 for DSS 1.70+
@ -26,7 +25,7 @@ DEFAULT_TIMEOUT EQU 2000
DEVICE SPRINTER ;NOSLOT64K DEVICE SPRINTER ;NOSLOT64K
IF DEBUG == 1 IFDEF DEBUG
INCLUDE "dss.asm" INCLUDE "dss.asm"
DB 0 DB 0
ALIGN 16384, 0 ALIGN 16384, 0
@ -61,7 +60,7 @@ EXE_HEADER
; ------------------------------------------------------ ; ------------------------------------------------------
START START
IF DEBUG == 1 IFDEF DEBUG
; LD IX,CMD_LINE1 ; LD IX,CMD_LINE1
LD SP, STACK_TOP LD SP, STACK_TOP
JP MAIN_LOOP JP MAIN_LOOP
@ -239,7 +238,7 @@ CMD_QUIT
RX_ERR RX_ERR
DB 0 DB 0
IF DEBUG == 1 IFDEF DEBUG
CMD_TEST1 DB "ATE0\r\n"Z CMD_TEST1 DB "ATE0\r\n"Z
BUFF_TEST1 DS RS_BUFF_SIZE,0 BUFF_TEST1 DS RS_BUFF_SIZE,0
ENDIF ENDIF

View File

@ -8,10 +8,10 @@
; Set to 1 to turn debug ON with DeZog VSCode plugin ; Set to 1 to turn debug ON with DeZog VSCode plugin
; Set to 0 to compile .EXE ; Set to 0 to compile .EXE
DEBUG EQU 1 DEFINE DEBUG
; Set to 1 to output TRACE messages ; Set to 1 to output TRACE messages
TRACE EQU 1 DEFINE TRACE
WM_DOWNLOAD EQU 0 WM_DOWNLOAD EQU 0
@ -27,13 +27,7 @@ DEFAULT_TIMEOUT EQU 2000
DEVICE NOSLOT64K DEVICE NOSLOT64K
; DEFDEVICE SPRINTER, 0x4000, 256, 0,1,2,3 IFDEF DEBUG
; SLDOPT COMMENT WPMEM, LOGPOINT, ASSERTION
; DEVICE SPRINTER ;NOSLOT64K
IF DEBUG == 1
INCLUDE "dss.asm" INCLUDE "dss.asm"
DB 0 DB 0
ALIGN 16384, 0 ALIGN 16384, 0
@ -68,18 +62,20 @@ EXE_HEADER
; ------------------------------------------------------ ; ------------------------------------------------------
START START
IF DEBUG == 1 IFDEF DEBUG
LD IX,CMD_LINE_TFTP_D LD IX,CMD_LINE_TFTP_D1
LD SP, STACK_TOP LD SP, STACK_TOP
ENDIF ENDIF
CALL PARSE_CMD_LINE CALL PARSE_CMD_LINE
;CALL OPEN_LOCAL_FILE CALL OPEN_LOCAL_FILE
CALL DISPLAY_MODE CALL DISPLAY_MODE
CALL CLOSE_LOCAL_FILE
IF DEBUG == 1 IFDEF DEBUG
JP MAIN_LOOP JP MAIN_LOOP
ENDIF ENDIF
@ -308,6 +304,9 @@ COPY_LFN
RET NZ ; ok, it is not empty RET NZ ; ok, it is not empty
CALL UTIL.GET_CUR_DIR CALL UTIL.GET_CUR_DIR
//LD DE,HL //LD DE,HL
LD IX,HAVE_PATH
INC (IX+0)
LD DE,REM_FILE LD DE,REM_FILE
.CLFN_NXT .CLFN_NXT
LD A,(DE) LD A,(DE)
@ -327,9 +326,67 @@ COPY_LFN
; WR - for download ; WR - for download
; ------------------------------------------------------ ; ------------------------------------------------------
OPEN_LOCAL_FILE OPEN_LOCAL_FILE
LD HL,LOC_FILE
LD A,(HAVE_PATH)
OR A
JR NZ,.OLF_SKP_CP
LD HL, WIFI.RS_BUFF
PUSH HL
CALL UTIL.GET_CUR_DIR
LD DE,LOC_FILE
LD B,128
.OLF_NXT
LD A, (DE)
LD (HL),A
OR A
JR Z, .OLF_EFN
INC HL
INC DE
DJNZ .OLF_NXT
.OLF_EFN
POP HL
; HL - points to file path name
.OLF_SKP_CP
LD A, (WORK_MODE) LD A, (WORK_MODE)
CP WM_UPLOAD CP WM_UPLOAD
JR Z,.OLF_UPL
; create new file for write
XOR A
LD C,DSS_CREATE_FILE
RST DSS
JR NC,.OLF_END
CP 0x07 ; file exists?
JP NZ,DSS_ERROR.PRINT ; print error and exit
LD A,FM_WRITE
JR .OLF_FOW
; open existing file for read
.OLF_UPL
LD A,FM_READ
.OLF_FOW
LD C,DSS_OPEN_FILE
RST DSS
CALL DSS_ERROR.CHECK
.OLF_END
LD (LOC_FH),A
TRACELN MSG_LFN_OPEN
RET
IFDEF TRACE
MSG_LFN_OPEN
DB "Local file succes open/created."Z
ENDIF
CLOSE_LOCAL_FILE
LD A,(LOC_FH)
OR A
RET Z
DSS_EXEC DSS_CLOSE_FILE
CALL DSS_ERROR.CHECK
RET RET
; ------------------------------------------------------ ; ------------------------------------------------------
@ -459,10 +516,10 @@ HAVE_PATH
RX_ERR RX_ERR
DB 0 DB 0
IF DEBUG == 1 ; IFDEF DEBUG
CMD_TEST1 DB "ATE0\r\n"Z ; CMD_TEST1 DB "ATE0\r\n"Z
BUFF_TEST1 DS RS_BUFF_SIZE,0 ; BUFF_TEST1 DS RS_BUFF_SIZE,0
ENDIF ; ENDIF
ENDMODULE ENDMODULE