347 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			347 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| ; LAST UPDATE: 25.03.2025 savelij
 | |
| 
 | |
| ; !FIXIT ¯¥à¥¤¥« âì ®¤¨ ª®¢ë¥ ®ª  á à §ë¬ â¥ªá⮬ ¤«ï ®è¨¡®ª ¯®¤  ¢â®¬ â¨ç¥áªãî ¯à®æ¥¤ãàã
 | |
| ;[]===========================================================[]
 | |
| DOSErrorR	;[x]	30/07/23 -bug ¢ë«¥â §  ¯à¥¤¥«ë â ¡«¨æë ®è¨¡®ª
 | |
| 	 	CP	(.error - .ErrorWins)/2
 | |
| 	 	JR	C,.calc_addr
 | |
| 	 	LD	HL,.error
 | |
| 	 	JR	.goto_addr
 | |
| 
 | |
| .calc_addr:	LD	HL,.ErrorWins
 | |
| 		ADD	A,A
 | |
| 		ADD	A,L
 | |
| 		LD	L,A
 | |
| 		JR	NC,.goto_addr
 | |
| 		INC	H
 | |
| .goto_addr:	LD	A,(HL)
 | |
| 		INC	HL
 | |
| 		LD	H,(HL)
 | |
| 		LD	L,A
 | |
| 		LD	A,H
 | |
| 		OR	L
 | |
| 		RET	Z
 | |
| 		CALL	SetMouse
 | |
| 		JP	(HL)
 | |
| 
 | |
| .ErrorWins	DEFW	0x0000			; 00
 | |
| 		DEFW	0x0000			; 01
 | |
| 		DEFW	InvDrive		; 02
 | |
| 		DEFW	FileNFound		; 03
 | |
| 		DEFW	InvPath			; 04
 | |
| 		DEFW	0x0000			; 05
 | |
| 		DEFW	FileNFound		; 06
 | |
| 		DEFW	FILEexists		; 07
 | |
| 		DEFW	0x0000			; 08
 | |
| 		DEFW	ROOToverflow		; 09
 | |
| 		DEFW	NoDiskSpace		; 0A
 | |
| 		DEFW	DIRnotEmpty		; 0B
 | |
| 		DEFW	0x0000			; 0C
 | |
| 		DEFW	InvMedia		; 0D
 | |
| 		DEFW	0x0000			; 0E
 | |
| 		DEFW	DIRexists		; 0F
 | |
| 		DEFW	InvName			; 10
 | |
| 		DEFW	InvEXEfile		; 11
 | |
| 		DEFW	InvEXEver		; 12
 | |
| 		DEFW	0x0000			; 13
 | |
| 		DEFW	NotReady		; 14
 | |
| 		DEFW	0x0000			; 15
 | |
| 		DEFW	0x0000			; 16
 | |
| 		DEFW	0x0000			; 17
 | |
| 		DEFW	WriteProtect		; 18	; [ ] 26/06/2024
 | |
| 		DEFW	0x0000			; 19
 | |
| 		DEFW	0x0000			; 1A
 | |
| 		DEFW	0x0000			; 1B
 | |
| 		DEFW	NotReady		; 1C
 | |
| 		DEFW	0x0000			; 1D
 | |
| 		DEFW	NoMemory		; 1E
 | |
| 		DEFW	0x0000			; 1F
 | |
| 		DEFW	0x0000			; 20
 | |
| 		DEFW	0x0000			; 21
 | |
| 		DEFW	0x0000			; 22
 | |
| 		DEFW	ToManyFilesInDir	; 23
 | |
| ; always last in the table:
 | |
| .error:		DW	UnknownError	; if no ERROR in this table then will show this message
 | |
| 
 | |
| ;--------------------------------------------------------------
 | |
| WriteProtect:
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 37,18,COLORP.HIGHGRAY,"Drive is write protected"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| InvDrive
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 24,18,COLORP.HIGHGRAY,"Invalid drive letter:"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_BORDER 120,15,16,12
 | |
| 	W_FILL 122,16,12,10,COLORI.WHITE
 | |
| 	W_END
 | |
| 		JP	InputDrive
 | |
| 
 | |
| InvMedia
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 46,18,COLORP.HIGHGRAY,"Invalid media:"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_BORDER 120,15,16,12
 | |
| 	W_FILL 122,16,12,10,COLORI.WHITE
 | |
| 	W_END
 | |
| 		JR	InputDrive
 | |
| 
 | |
| NotReady
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 36,18,COLORP.HIGHGRAY,"Drive not ready:"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_BORDER 120,15,16,12
 | |
| 	W_FILL 122,16,12,10,COLORI.WHITE
 | |
| 	W_END
 | |
| InputDrive	PUSH	IY
 | |
| 	SPDSS DSSF.CURDISK
 | |
| 		POP	IY
 | |
| 		ADD	A,"A"
 | |
| 		LD	(CurDrv),A
 | |
| 		LD	IX,DriveStr
 | |
| 		LD	HL,ErrorTab1
 | |
| 		CALL	InputLine
 | |
| 	WINDOWCLOSE
 | |
| 		CALL	SetClock
 | |
| 		LD	A,(CurDrv)
 | |
| 		RES	5,A
 | |
| 		SUB	"A"
 | |
| 		PUSH	IY
 | |
| 	SPDSS DSSF.CHDISK
 | |
| 		POP	IY
 | |
| 		JP	C,DOSErrorR
 | |
| 		LD	HL,BegDIR
 | |
| 		PUSH	IY
 | |
| 	SPDSS DSSF.CHDIR
 | |
| 		POP	IY
 | |
| 		JP	C,DOSErrorR
 | |
| 		CALL	SetMouse
 | |
| 		LD	A,0x01
 | |
| 		RET 
 | |
| 
 | |
| ErrorTab1	DEFW 0x011C,0x0164,0x0076,0x0084,0x01,0x0000,InputLine.InpLnExtN,0x0000
 | |
| 		DEFW 0x8000
 | |
| 
 | |
| DriveStr	DEFB	0x01,0x00,0x00,0x00
 | |
| 		DEFB	0x01
 | |
| 		DEFW	0x015C,0x006A
 | |
| 		DEFW	0x000A
 | |
| 		DEFB	0xF0
 | |
| CurDrv		DUPL	0x02,0x00
 | |
| 
 | |
| ;--------------------------------------------------------------
 | |
| InvPath
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 70,18,COLORP.HIGHGRAY,"Invalid path"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| ErrorLp0	LD	IX,ErrorTab2
 | |
| 		CALL	TestCoords
 | |
| 	SPDSS DSSF.SCANKEY
 | |
| 		JR	Z,ErrorLp0
 | |
| 		LD	A,B
 | |
| 		OR	A
 | |
| 		JR	NZ,ErrorLp0
 | |
| 		LD	A,E
 | |
| 		CP	0x1B
 | |
| 		JR	Z,ErrorExt0
 | |
| 		CP	0x0D
 | |
| 		JR	Z,ErrorExt0
 | |
| 		RES	5,A
 | |
| 		CP	"O"
 | |
| 		JR	NZ,ErrorLp0
 | |
| ErrorExt0
 | |
| 	WINDOWCLOSE
 | |
| 		CALL	SetClock
 | |
| 		LD	HL,BegDIR
 | |
| 		PUSH	IY
 | |
| 	SPDSS DSSF.CHDIR
 | |
| 		POP	IY
 | |
| 		JP	C,DOSErrorR
 | |
| 		CALL	SetMouse
 | |
| 		LD	A,0x01
 | |
| 		RET 
 | |
| 
 | |
| ErrorTab2	DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt0,0x0000
 | |
| 		DEFW 0x8000
 | |
| 
 | |
| ;--------------------------------------------------------------
 | |
| FileNFound
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 60,18,COLORP.HIGHGRAY,"File not found"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| ROOToverflow
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 64,18,COLORP.HIGHGRAY,"ROOT overflow"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| NoDiskSpace
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 62,18,COLORP.HIGHGRAY,"No disk space"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| DIRnotEmpty
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 40,18,COLORP.HIGHGRAY,"Directory is not empty"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| FILEexists
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 72,18,COLORP.HIGHGRAY,"File exists"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| DIRexists
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 56,18,COLORP.HIGHGRAY,"Directory exists"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| InvName
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 66,18,COLORP.HIGHGRAY,"Invalid name"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| InvEXEfile
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 60,18,COLORP.HIGHGRAY,"Invalid EXE file"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| InvEXEver
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 40,18,COLORP.HIGHGRAY,"Unsupport EXE version"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| NoMemory
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 52,18,COLORP.HIGHGRAY,"No memory space"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| ToManyFilesInDir:
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 30,18,COLORP.HIGHGRAY,"Too many directory entries"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		JP	ErrorLp
 | |
| 
 | |
| UnknownError:	;[x]	30/07/23 -bug ¢ë«¥â §  ¯à¥¤¥«ë â ¡«¨æë ®è¨¡®ª
 | |
| 	MAKEWINDOW WINSUBOBJ.STORE
 | |
| 	W_MAIN 224,88,192,48
 | |
| 	W_FILL 4,2,184,10,COLORI.RED
 | |
| 	W_TEXT 86,3,COLORI.WHITE + COLORP.RED,"Error"
 | |
| 	W_TEXT 60,18,COLORP.HIGHGRAY,"Unknown Error"
 | |
| 	W_BUTTON 60,30,72,14
 | |
| 	W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
 | |
| 	W_END
 | |
| 		;JP	ErrorLp
 | |
| 
 | |
| ErrorLp		LD	IX,ErrorTab3
 | |
| 		CALL	TestCoords
 | |
| 	SPDSS DSSF.SCANKEY
 | |
| 		JR	Z,ErrorLp
 | |
| 		LD	A,B
 | |
| 		OR	A
 | |
| 		JR	NZ,ErrorLp
 | |
| 		LD	A,E
 | |
| 		CP	0x1B
 | |
| 		JR	Z,ErrorExt
 | |
| 		CP	0x0D
 | |
| 		JR	Z,ErrorExt
 | |
| 		RES	5,A
 | |
| 		CP	'O'
 | |
| 		JR	NZ,ErrorLp
 | |
| ErrorExt
 | |
| 	WINDOWCLOSE
 | |
| 		SUB	A
 | |
| 		RET 
 | |
| 
 | |
| ErrorTab3	DEFW 0x011C,0x0164,0x0076,0x0084,0x21,0x0000,ErrorExt,0x0000
 | |
| 		DEFW 0x8000
 |