mirror of
				https://github.com/romychs/SprinterESP.git
				synced 2025-10-31 06:55:58 +03:00 
			
		
		
		
	Refactoring code for best reuse in other utilities
This commit is contained in:
		
							parent
							
								
									8d5f374035
								
							
						
					
					
						commit
						0a3eb0225e
					
				| @ -1,3 +1,9 @@ | ||||
| ; ====================================================== | ||||
| ; DSS Estex dumb for debug code in VSC with DEZOG plugin  | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; ====================================================== | ||||
| 
 | ||||
|     ORG 0x0000 | ||||
| 
 | ||||
| RESET: | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| ; ====================================================== | ||||
| ; Defines for DSS Estex for Sprinter computer | ||||
| ; By Romych, 2024 | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; ====================================================== | ||||
| 
 | ||||
|  | ||||
| @ -1,7 +1,8 @@ | ||||
| ; ====================================================== | ||||
| ; Library for Sprinter-WiFi ESP ISA Card | ||||
| ;  | ||||
| ; By Romych's, 2024 (c) | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; License: BSD 3-Clause | ||||
| ; ====================================================== | ||||
| 
 | ||||
| ;ISA_BASE_A		EQU 0xC000        						; Базовый адрес портов ISA в памяти | ||||
|  | ||||
| @ -1,83 +0,0 @@ | ||||
| #pragma nonrec | ||||
| 
 | ||||
| #define port_isa 0x9FBD | ||||
| #define port_system 0x1FFD | ||||
| #define isa_addr_base 0xC000 | ||||
| #define com3_addr_base 0x3E8 | ||||
| #define emm_win_p3 0xE2 | ||||
| #define port_serial 0xC3E8 | ||||
| 
 | ||||
| #define RBR port_serial | ||||
| #define THR port_serial | ||||
| #define IER port_serial+1 | ||||
| #define IIR port_serial+2 | ||||
| #define FCR port_serial+2 | ||||
| #define LCR port_serial+3 | ||||
| #define MCR port_serial+4 | ||||
| #define LSR port_serial+5 | ||||
| #define MSR port_serial+6 | ||||
| #define SCR port_serial+7 | ||||
| #define DLL port_serial | ||||
| #define DLM port_serial+1 | ||||
| #define AFR port_serial+2 | ||||
| 
 | ||||
| #define BAUD_RATE 115200 | ||||
| #define XIN_FREQ 14745600 | ||||
| #define DIVISOR XIN_FREQ / (BAUD_RATE * 16) | ||||
| 
 | ||||
|     | ||||
| /**
 | ||||
|  * Small delay | ||||
|  */ | ||||
| void delay(); | ||||
| 
 | ||||
| /**
 | ||||
|  * Reset ISA device | ||||
|  */ | ||||
| void reset_isa(); | ||||
| 
 | ||||
| /*
 | ||||
|  * Open access to ISA ports as memory | ||||
|  */ | ||||
| void open_isa(); | ||||
|     | ||||
| /*
 | ||||
|  * Close access to ISA ports | ||||
|  */ | ||||
| void close_isa(); | ||||
| 
 | ||||
| /*
 | ||||
|  *  Init ISA device | ||||
|  */ | ||||
| void init_isa(); | ||||
| 
 | ||||
| /*
 | ||||
|  * Init UART device TL16C550 | ||||
|  */ | ||||
| void init_serial(); | ||||
| 
 | ||||
| /*
 | ||||
|  * Read TL16C550 register | ||||
|  */ | ||||
| char read_reg(); | ||||
| 
 | ||||
| /*
 | ||||
|  * Write TL16C550 register | ||||
|  */ | ||||
| void write_reg(); | ||||
| 
 | ||||
| /*
 | ||||
|  * Wait for transmitter ready | ||||
|  */ | ||||
| void wait_tr(); | ||||
| 
 | ||||
| /*
 | ||||
|  * Clear receiver FIFO buffer | ||||
|  */ | ||||
| void empty_rs(); | ||||
| 
 | ||||
| /*
 | ||||
|  * Wait byte in receiver fifo | ||||
|  */ | ||||
| void wait_rs(); | ||||
| 
 | ||||
| @ -1,9 +1,11 @@ | ||||
| ; ====================================================== | ||||
| ; ESPSET for SprinterWiFi for Sprinter computer | ||||
| ; By Romych, 2024 | ||||
| ; ESPSET for Sprinter-WiFi for Sprinter computer | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; License: BSD 3-Clause | ||||
| ; ====================================================== | ||||
| 
 | ||||
| 
 | ||||
| ; Set to 1 to turn debug ON with DeZog VSCode plugin | ||||
| ; Set to 0 to compile .EXE | ||||
| DEBUG               EQU 0 | ||||
| @ -198,7 +200,7 @@ SMM_L1 | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| MSG_START | ||||
| 	DB "ESP-Setup for Sprinter-WiFi by Romych's, (c) 2024\r\n", 0 | ||||
| 	DB "Setup for Sprinter-WiFi by Sprinter Team, ", __DATE__ ,"\r\n", 0 | ||||
| 
 | ||||
| MSG_SWF_NOF | ||||
| 	DB "Sprinter-WiFi not found!",0 | ||||
|  | ||||
| @ -1,6 +1,8 @@ | ||||
| ; ====================================================== | ||||
| ; ISA Library for Sprinter | ||||
| ; By Romych's, 2024 (c) | ||||
| ; ISA Library for Sprinter computer | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; License: BSD 3-Clause | ||||
| ; ====================================================== | ||||
| 
 | ||||
| PORT_ISA		EQU 0x9FBD | ||||
| @ -18,8 +20,6 @@ ISA_A19  		EQU	0x20 | ||||
| ISA_AEN  		EQU	0x40 | ||||
| ISA_RST			EQU	0x80 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 	MODULE	ISA | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| @ -74,33 +74,7 @@ ISA_CLOSE | ||||
| 	POP		BC,AF | ||||
| 	RET | ||||
| 
 | ||||
| 
 | ||||
| ; DELAY_20 | ||||
| ; 	;IN		A,(PAGE1) | ||||
| ; 	LD		A, CTC_CR_VEC | CTC_CR_SWR					; stop timer | ||||
| ; 	OUT		(CTC_CH1), A | ||||
| ; 	; Init Ch2 CTC - clk source for Ch3 | ||||
| ; 	LD		A,CTC_CT_PRE | CTC_CR_TCF | CTC_CR_SWR | CTC_CR_VEC | ||||
| ; 	OUT		(CTC_CH2), A | ||||
| ; 	LD		A, 4 | ||||
| ; 	; TO2->TRG3 = 875kHz / 256 / 4 = 854,5 Hz | ||||
| ; 	OUT		(CTC_CH2), A | ||||
| 	 | ||||
| ; 	LD		A, CTC_CT_EI | CTC_CT_CTR | CTC_CR_TCF | CTC_CR_SWR | CTC_CR_VEC | ||||
| ; 	OUT		(CTC_CH3), A | ||||
| ; 	LD		A, 17 | ||||
| ; 	OUT		(CTC_CH3), A | ||||
| 
 | ||||
| 
 | ||||
| ; it vector defined in bit 73,bit 21 don't care, bit 0 = 0 | ||||
| ; and loaded into channel 0	 | ||||
| 
 | ||||
| ; To save memory page 0 | ||||
| SAVE_MMU0		DB	0 | ||||
| ; To save memory page 3 | ||||
| SAVE_MMU3		DB	0									 | ||||
| 
 | ||||
| ;	ALIGN 256,0 | ||||
| 
 | ||||
| 
 | ||||
| 	ENDMODULE | ||||
| @ -1,15 +1,25 @@ | ||||
| ; ====================================================== | ||||
| ; Macros for Sprinter-WiFi utilities | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; License: BSD 3-Clause | ||||
| ; ====================================================== | ||||
| 
 | ||||
| 	; Transmit data|command via UART and check response | ||||
| 	MACRO	SEND_CMD	data | ||||
| 	LD		HL, data | ||||
| 	CALL	WIFI.UART_TX_CMD | ||||
| 	CALL	CHECK_ERROR | ||||
| 	ENDM	 | ||||
| 
 | ||||
| 	; Print data ASCIIZ string to screen | ||||
| 	MACRO 	PRINT	data | ||||
| 	LD		HL,data | ||||
|     LD      C,DSS_PCHARS | ||||
|     RST     DSS | ||||
| 	ENDM | ||||
| 
 | ||||
| 	; Print data ASCIIZ string to screen and CR+LF | ||||
| 	MACRO 	PRINTLN	data | ||||
| 	LD		HL,data | ||||
|     LD      C,DSS_PCHARS | ||||
| @ -19,6 +29,7 @@ | ||||
| 	RST     DSS | ||||
| 	ENDM | ||||
| 
 | ||||
| 	; Print data ASCIIZ string to screen if TRACE enabled | ||||
| 	MACRO 	TRACELN	data | ||||
| 		IF  TRACE == 1 | ||||
| 			PUSH BC,DE | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| ; ====================================================== | ||||
| ; Defines for Sprinter computer hardware | ||||
| ; By Romych, 2024 | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; ====================================================== | ||||
| 
 | ||||
|  | ||||
| @ -1,4 +1,9 @@ | ||||
| 
 | ||||
| ; ====================================================== | ||||
| ; Utility code for Sprinter-WiFi utilities | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; License: BSD 3-Clause | ||||
| ; ====================================================== | ||||
| 
 | ||||
| 	MODULE UTIL | ||||
| 	 | ||||
| @ -151,6 +156,28 @@ STCH_FOUND | ||||
| 	POP		BC | ||||
| 	RET | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| ; Convert Byte to hex | ||||
| ;	Inp: C | ||||
| ;	Out: (DE) | ||||
| ; ------------------------------------------------------ | ||||
| HEXB | ||||
|    LD		A,C | ||||
|    RRA | ||||
|    RRA | ||||
|    RRA | ||||
|    RRA | ||||
|    CALL		CONV_NIBLE | ||||
|    LD		A,C | ||||
| CONV_NIBLE | ||||
|    AND		0x0f | ||||
|    ADD		A,0x90 | ||||
|    DAA | ||||
|    ADC		A,0x40 | ||||
|    DAA | ||||
|    LD		(DE), A | ||||
|    INC		DE | ||||
|    RET | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -1,3 +1,10 @@ | ||||
| ; ====================================================== | ||||
| ; Common code for Sprinter-WiFi utilities | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; License: BSD 3-Clause | ||||
| ; ====================================================== | ||||
| 
 | ||||
| 	MODULE WCOMMON | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| @ -9,6 +16,7 @@ CHECK_ERROR | ||||
| 	ADD		A,'0' | ||||
| 	LD		(COMM_ERROR_NO), A | ||||
| 	PRINTLN	MSG_COMM_ERROR | ||||
| 	CALL	DUMP_UART_REGS | ||||
| 	LD		B,3 | ||||
| 	POP		HL											; ret addr reset | ||||
| 
 | ||||
| @ -37,6 +45,52 @@ NO_TL_FOUND | ||||
| 	JP		EXIT | ||||
| 
 | ||||
| 
 | ||||
| 	IF TRACE | ||||
| ; ------------------------------------------------------ | ||||
| ; Dump all UTL16C550 registers to screen for debug | ||||
| ; ------------------------------------------------------ | ||||
| DUMP_UART_REGS | ||||
| 		; Dump, DLAB=0 registers | ||||
| 		LD		BC, 0x0800 | ||||
| 		CALL	DUMP_REGS | ||||
| 
 | ||||
| 		; Dump, DLAB=1 registers | ||||
| 		LD		HL, REG_LCR | ||||
| 		LD		E, LCR_DLAB | LCR_WL8 | ||||
| 		CALL	WIFI.UART_WRITE | ||||
| 		 | ||||
| 		LD		BC, 0x0210 | ||||
| 		CALL	DUMP_REGS | ||||
| 
 | ||||
| 		LD		HL, REG_LCR | ||||
| 		LD		E, LCR_WL8 | ||||
| 		CALL	WIFI.UART_WRITE | ||||
| 		RET | ||||
| 
 | ||||
| DUMP_REGS | ||||
| 		LD		HL, PORT_UART_A | ||||
| 	 | ||||
| DR_NEXT	 | ||||
| 		LD		DE,MSG_DR_RN | ||||
| 		CALL	UTIL.HEXB | ||||
| 		INC		C	 | ||||
| 
 | ||||
| 		CALL    WIFI.UART_READ | ||||
| 		PUSH    BC | ||||
| 		LD		C,A | ||||
| 		LD		DE,MSG_DR_RV | ||||
| 		CALL	UTIL.HEXB | ||||
| 		PUSH 	HL	 | ||||
| 		 | ||||
| 		PRINTLN MSG_DR | ||||
| 
 | ||||
| 		POP		HL,BC | ||||
| 		INC		HL | ||||
| 		DJNZ	DR_NEXT | ||||
| 		RET	 | ||||
| 	ENDIF | ||||
| 
 | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| ; Store old video mode, set 80x32 and clear | ||||
| ; ------------------------------------------------------ | ||||
| @ -158,6 +212,13 @@ SAVE_VMODE | ||||
| ; ------------------------------------------------------ | ||||
| 	IF TRACE | ||||
| 
 | ||||
| MSG_DR | ||||
| 	DB	"Reg[0x" | ||||
| MSG_DR_RN	 | ||||
| 	DB	"vv]=0x" | ||||
| MSG_DR_RV	 | ||||
| 	DB	"vv",0 | ||||
| 
 | ||||
| MSG_ECHO_OFF  | ||||
| 	DB "Echo off",0 | ||||
| 
 | ||||
|  | ||||
| @ -1,7 +1,9 @@ | ||||
| ; ====================================================== | ||||
| ; WTERM for SprinterWiFi for Sprinter computer | ||||
| ; By Romych, 2024 | ||||
| ; WTERM terminal for Sprinter-WiFi ISA Card | ||||
| ; For Sprinter computer DSS | ||||
| ; By Roman Boykov. Copyright (c) 2024 | ||||
| ; https://github.com/romychs | ||||
| ; License: BSD 3-Clause | ||||
| ; ====================================================== | ||||
| 
 | ||||
| ; Set to 1 to turn debug ON with DeZog VSCode plugin | ||||
| @ -32,7 +34,7 @@ DEFAULT_TIMEOUT		EQU	2000 | ||||
| 	INCLUDE "dss.inc" | ||||
| 	INCLUDE "sprinter.inc" | ||||
| 
 | ||||
| 	MODULE MAIN | ||||
| 	MODULE	MAIN | ||||
| 
 | ||||
|     ORG	0x8080 | ||||
| ; ------------------------------------------------------ | ||||
| @ -57,8 +59,8 @@ EXE_HEADER | ||||
| START | ||||
| 	 | ||||
|     IF DEBUG == 1 | ||||
|     ; LD 		IX,CMD_LINE1 | ||||
| 	LD		SP, STACK_TOP | ||||
|     	; LD 		IX,CMD_LINE1 | ||||
| 		LD		SP, STACK_TOP | ||||
|     ENDIF | ||||
| 
 | ||||
| 	CALL 	ISA.ISA_RESET | ||||
| @ -77,29 +79,10 @@ START | ||||
| 
 | ||||
| 	CALL	WIFI.UART_EMPTY_RS | ||||
| 
 | ||||
| 	; IF TRACE | ||||
| 	; 	; Dump, DLB=0 registers | ||||
| 	; 	LD		BC, 0x0800 | ||||
| 	; 	CALL	DUMP_REGS | ||||
| 
 | ||||
| 	; 	; Dump, DLAB=1 registers | ||||
| 	; 	LD		HL, REG_LCR | ||||
| 	; 	LD		E, LCR_DLAB | LCR_WL8 | ||||
| 	; 	CALL	WIFI.UART_WRITE | ||||
| 		 | ||||
| 	; 	LD		BC, 0x0210 | ||||
| 	; 	CALL	DUMP_REGS | ||||
| 
 | ||||
| 	; 	LD		HL, REG_LCR | ||||
| 	; 	LD		E, LCR_WL8 | ||||
| 	; 	CALL	WIFI.UART_WRITE | ||||
| 	; ENDIF | ||||
| 
 | ||||
| 	; Turn local echo Off | ||||
| 	CALL	WCOMMON.INIT_ESP | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| ;	Do Some | ||||
| ; Do Some | ||||
| ; ------------------------------------------------------ | ||||
| 
 | ||||
| OK_EXIT | ||||
| @ -107,64 +90,11 @@ OK_EXIT | ||||
| 	JP		WCOMMON.EXIT | ||||
| 
 | ||||
| 
 | ||||
| DUMP_REGS | ||||
| 	LD		HL, PORT_UART_A | ||||
| 	 | ||||
| 
 | ||||
| DR_NEXT	 | ||||
| 	LD		DE,MSG_DR_RN | ||||
| 	CALL	HEXB | ||||
| 	INC		C	 | ||||
| 
 | ||||
| 	CALL    WIFI.UART_READ | ||||
| 	PUSH    BC | ||||
| 	LD		C,A | ||||
| 	LD		DE,MSG_DR_RV | ||||
| 	CALL	HEXB | ||||
| 	PUSH 	HL	 | ||||
| 	 | ||||
| 	PRINTLN MSG_DR | ||||
| 
 | ||||
| 	POP		HL,BC | ||||
| 	INC		HL | ||||
| 	DJNZ	DR_NEXT | ||||
| 	RET	 | ||||
| 
 | ||||
| MSG_DR | ||||
| 	DB	"Reg[0x" | ||||
| MSG_DR_RN	 | ||||
| 	DB	"vv]=0x" | ||||
| MSG_DR_RV	 | ||||
| 	DB	"vv",0 | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| ; Byte to hex,  | ||||
| ;	Inp: C | ||||
| ;	Out: (DE) | ||||
| ; ------------------------------------------------------ | ||||
| HEXB | ||||
|    LD		A,C | ||||
|    RRA | ||||
|    RRA | ||||
|    RRA | ||||
|    RRA | ||||
|    CALL		CONV_NIBLE | ||||
|    LD		A,C | ||||
| CONV_NIBLE | ||||
|    AND		0x0f | ||||
|    ADD		A,0x90 | ||||
|    DAA | ||||
|    ADC		A,0x40 | ||||
|    DAA | ||||
|    LD		(DE), A | ||||
|    INC		DE | ||||
|    RET | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| ; Custom messages | ||||
| ; ------------------------------------------------------ | ||||
| MSG_START | ||||
| 	DB "WTerm terminal for Sprinter-WiFi by Romych's, (c) 2024\r\n", 0 | ||||
| 	DB "Terminal for Sprinter-WiFi by Sprinter Team. v1.0.1, ", __DATE__, "\r\n", 0 | ||||
| 
 | ||||
| ; ------------------------------------------------------ | ||||
| ; Custom commands | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 boykovra
						boykovra