2025-05-30 08:35:57 +03:00
|
|
|
|
|
2025-07-25 16:01:19 +03:00
|
|
|
|
; LAST UPDATE: 18.07.2025 savelij
|
2025-05-30 08:35:57 +03:00
|
|
|
|
|
|
|
|
|
|
; !FIXIT <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> ࠧ<><E0A0A7><EFBFBD> ⥪<>⮬ <20><><EFBFBD> <20>訡<EFBFBD><E8A8A1> <20><><EFBFBD> <20><>⮬<EFBFBD><E2AEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>楤<EFBFBD><E6A5A4><EFBFBD>
|
|
|
|
|
|
;[]===========================================================[]
|
|
|
|
|
|
DOSErrorR ;[x] 30/07/23 -bug <20>뫥<EFBFBD> <20><> <20>।<EFBFBD><E0A5A4><EFBFBD> ⠡<><E2A0A1><EFBFBD><EFBFBD> <20>訡<EFBFBD><E8A8A1>
|
2025-07-25 16:01:19 +03:00
|
|
|
|
CP (.UNKerror - .ErrorWins) / 4
|
|
|
|
|
|
JR C,.calc_addr
|
|
|
|
|
|
CP 0xF0
|
|
|
|
|
|
JR NC,.FNerror
|
|
|
|
|
|
LD HL,.UNKerror
|
|
|
|
|
|
JR .goto_addr
|
|
|
|
|
|
|
|
|
|
|
|
; <20><><EFBFBD> <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD><EFBFBD> <20>訡<EFBFBD><E8A8A1> FN
|
|
|
|
|
|
.FNerror SUB FNinternal.PlugNotFound
|
|
|
|
|
|
LD HL,.PlugNotFound
|
|
|
|
|
|
JR .INT_ERR
|
|
|
|
|
|
|
|
|
|
|
|
.calc_addr: LD HL,.ErrorWins
|
|
|
|
|
|
.INT_ERR ADD A,A ; *2
|
|
|
|
|
|
ADD A,A ; *4
|
|
|
|
|
|
ADD A,L
|
|
|
|
|
|
LD L,A
|
|
|
|
|
|
ADC A,H
|
|
|
|
|
|
SUB L
|
|
|
|
|
|
LD H,A
|
|
|
|
|
|
.goto_addr LD E,(HL)
|
|
|
|
|
|
INC HL
|
|
|
|
|
|
LD D,(HL) ; <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD> <20> <20> <20><><EFBFBD><EFBFBD>樥<EFBFBD>
|
|
|
|
|
|
INC HL
|
|
|
|
|
|
LD A,(DE)
|
|
|
|
|
|
INC DE
|
|
|
|
|
|
LD C,A ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訩 <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
LD A,(DE)
|
|
|
|
|
|
INC DE
|
|
|
|
|
|
LD (.WINTYPE),A
|
|
|
|
|
|
RES 7,A
|
|
|
|
|
|
LD B,A ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>訩 <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
LD (.XPOSTXT),BC ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
LD (.XPOSTXT2),BC ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
LD (.ADRTXT),DE ; <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|
|
|
|
|
LD (.ADRTXT2),DE ; <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|
|
|
|
|
LD A,(HL)
|
|
|
|
|
|
INC HL
|
|
|
|
|
|
LD H,(HL)
|
|
|
|
|
|
LD L,A ; <20><><EFBFBD><EFBFBD><EFBFBD> <20>㤠 <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
OR H
|
|
|
|
|
|
RET Z ; <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>室<EFBFBD> 0, <20><>室<EFBFBD><E5AEA4>
|
|
|
|
|
|
LD (.ADRJUMP),HL
|
|
|
|
|
|
LD (.ADRJUMP2),HL
|
|
|
|
|
|
CALL SetMouse
|
|
|
|
|
|
LD A,0
|
|
|
|
|
|
.WINTYPE EQU $-1
|
|
|
|
|
|
BIT 7,A
|
|
|
|
|
|
JR NZ,.TYPE2
|
|
|
|
|
|
; <20><><EFBFBD><EFBFBD> <20> ⥪<>⮬ <20>訡<EFBFBD><E8A8A1>
|
|
|
|
|
|
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_ADRTEXT 0,18,COLORP.HIGHGRAY,0
|
|
|
|
|
|
.XPOSTXT EQU $-7 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
.ADRTXT EQU $-2 ; <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
|
|
|
|
|
W_BUTTON 60,30,72,14
|
|
|
|
|
|
W_TEXT 88,33,COLORP.HIGHGRAY,"Ok"
|
|
|
|
|
|
W_END
|
|
|
|
|
|
JP 0
|
|
|
|
|
|
.ADRJUMP EQU $-2
|
|
|
|
|
|
|
|
|
|
|
|
; <20><><EFBFBD><EFBFBD> <20> ⥪<>⮬ <20>訡<EFBFBD><E8A8A1> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>㪢<EFBFBD> <20><>᪠
|
|
|
|
|
|
.TYPE2
|
|
|
|
|
|
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_ADRTEXT 0,18,COLORP.HIGHGRAY,0
|
|
|
|
|
|
.XPOSTXT2 EQU $-7 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
.ADRTXT2 EQU $-2 ; <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD>
|
2025-05-30 08:35:57 +03:00
|
|
|
|
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
|
2025-07-25 16:01:19 +03:00
|
|
|
|
JP 0
|
|
|
|
|
|
.ADRJUMP2 EQU $-2
|
|
|
|
|
|
|
|
|
|
|
|
; <20><><EFBFBD><EFBFBD><EFBFBD> ⥪<><E2A5AA><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD> <20>㤠 <20><><EFBFBD><EFBFBD>室<EFBFBD><E5AEA4><EFBFBD>
|
|
|
|
|
|
.ErrorWins DW 0, 0 ; 00
|
|
|
|
|
|
DW 0, 0 ; 01
|
|
|
|
|
|
DW TXTERR.InvDrive, InputDrive ;InvDrive ; 02
|
|
|
|
|
|
DW TXTERR.FileNFound, ErrorLp ;FileNFound ; 03
|
|
|
|
|
|
DW TXTERR.InvPath, ErrorLp0 ;InvPath ; 04
|
|
|
|
|
|
DW 0, 0 ; 05
|
|
|
|
|
|
DW TXTERR.FileNFound, ErrorLp ;FileNFound ; 06
|
|
|
|
|
|
DW TXTERR.FILEexists, ErrorLp ;FILEexists ; 07
|
|
|
|
|
|
DW 0, 0 ; 08
|
|
|
|
|
|
DW TXTERR.ROOToverflow, ErrorLp ;ROOToverflow ; 09
|
|
|
|
|
|
DW TXTERR.NoDiskSpace, ErrorLp ;NoDiskSpace ; 0A
|
|
|
|
|
|
DW TXTERR.DIRnotEmpty, ErrorLp ;DIRnotEmpty ; 0B
|
|
|
|
|
|
DW 0, 0 ; 0C
|
|
|
|
|
|
DW TXTERR.InvMedia, InputDrive ;InvMedia ; 0D
|
|
|
|
|
|
DW 0, 0 ; 0E
|
|
|
|
|
|
DW TXTERR.DIRexists, ErrorLp ;DIRexists ; 0F
|
|
|
|
|
|
DW TXTERR.InvName, ErrorLp ;InvName ; 10
|
|
|
|
|
|
DW TXTERR.InvEXEfile, ErrorLp ;InvEXEfile ; 11
|
|
|
|
|
|
DW TXTERR.InvEXEver, ErrorLp ;InvEXEver ; 12
|
|
|
|
|
|
DW 0, 0 ; 13
|
|
|
|
|
|
DW TXTERR.NotReady, InputDrive ;NotReady ; 14
|
|
|
|
|
|
DW 0, 0 ; 15
|
|
|
|
|
|
DW 0, 0 ; 16
|
|
|
|
|
|
DW 0, 0 ; 17
|
|
|
|
|
|
DW TXTERR.WriteProtect, ErrorLp ;WriteProtect ; 18 ; [ ] 26/06/2024
|
|
|
|
|
|
DW 0, 0 ; 19
|
|
|
|
|
|
DW 0, 0 ; 1A
|
|
|
|
|
|
DW 0, 0 ; 1B
|
|
|
|
|
|
DW TXTERR.NotReady, InputDrive ;NotReady ; 1C
|
|
|
|
|
|
DW 0, 0 ; 1D
|
|
|
|
|
|
DW TXTERR.NoMemory, ErrorLp ;NoMemory ; 1E
|
|
|
|
|
|
DW 0, 0 ; 1F
|
|
|
|
|
|
DW 0, 0 ; 20
|
|
|
|
|
|
DW 0, 0 ; 21
|
|
|
|
|
|
DW 0, 0 ; 22
|
|
|
|
|
|
DW TXTERR.ToManyFilesDir,ErrorLp ;ToManyFilesDir ; 23
|
|
|
|
|
|
; always last in the table:
|
|
|
|
|
|
.UNKerror: DW TXTERR.UnknownError, ErrorLp ;UnknownError ; if no ERROR in this table then will show this message
|
|
|
|
|
|
; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>७<EFBFBD><E0A5AD><EFBFBD> <20>訡<EFBFBD><E8A8A1> FN
|
|
|
|
|
|
.PlugNotFound DW TXTERR.PlugNotFound, ErrorLp
|
2025-05-30 08:35:57 +03:00
|
|
|
|
|
2025-07-25 16:01:19 +03:00
|
|
|
|
;--------------------------------------------------------------
|
|
|
|
|
|
SETERRTEXT MACRO X,TEXT
|
|
|
|
|
|
DW X ; X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
DB TEXT,0 ; <20><>ப<EFBFBD> <20><><EFBFBD> 0 <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
|
|
|
|
TXTERR
|
|
|
|
|
|
.PlugNotFound SETERRTEXT 56,"Plugin not found"
|
|
|
|
|
|
.InvDrive SETERRTEXT 24 | 0x8000,"Invalid drive letter:"
|
|
|
|
|
|
.FileNFound SETERRTEXT 60,"File not found"
|
|
|
|
|
|
.InvPath SETERRTEXT 70,"Invalid path"
|
|
|
|
|
|
.FILEexists SETERRTEXT 72,"File exists"
|
|
|
|
|
|
.ROOToverflow SETERRTEXT 64,"ROOT overflow"
|
|
|
|
|
|
.NoDiskSpace SETERRTEXT 62,"No disk space"
|
|
|
|
|
|
.DIRnotEmpty SETERRTEXT 40,"Directory is not empty"
|
|
|
|
|
|
.InvMedia SETERRTEXT 46 | 0x8000,"Invalid media:"
|
|
|
|
|
|
.DIRexists SETERRTEXT 56,"Directory exists"
|
|
|
|
|
|
.InvName SETERRTEXT 66,"Invalid name"
|
|
|
|
|
|
.InvEXEfile SETERRTEXT 60,"Invalid EXE file"
|
|
|
|
|
|
.InvEXEver SETERRTEXT 40,"Unsupport EXE version"
|
|
|
|
|
|
.NotReady SETERRTEXT 36 | 0x8000,"Drive not ready:"
|
|
|
|
|
|
.WriteProtect SETERRTEXT 37,"Drive is write protected"
|
|
|
|
|
|
.NoMemory SETERRTEXT 52,"No memory space"
|
|
|
|
|
|
.ToManyFilesDir SETERRTEXT 30,"Too many directory entries"
|
|
|
|
|
|
.UnknownError SETERRTEXT 60,"Unknown Error"
|
2025-05-30 08:35:57 +03:00
|
|
|
|
|
|
|
|
|
|
InputDrive PUSH IY
|
|
|
|
|
|
SPDSS DSSF.CURDISK
|
|
|
|
|
|
POP IY
|
2025-07-25 16:01:19 +03:00
|
|
|
|
ADD A,'A'
|
2025-05-30 08:35:57 +03:00
|
|
|
|
LD (CurDrv),A
|
|
|
|
|
|
LD IX,DriveStr
|
|
|
|
|
|
LD HL,ErrorTab1
|
|
|
|
|
|
CALL InputLine
|
|
|
|
|
|
WINDOWCLOSE
|
|
|
|
|
|
CALL SetClock
|
|
|
|
|
|
LD A,(CurDrv)
|
|
|
|
|
|
RES 5,A
|
2025-07-25 16:01:19 +03:00
|
|
|
|
SUB 'A'
|
2025-05-30 08:35:57 +03:00
|
|
|
|
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
|
|
|
|
|
|
|
2025-07-25 16:01:19 +03:00
|
|
|
|
ErrorTab1 DEFW 284,356,118,132,%0000000000000001,%0000000000000000,InputLine.InpLnExtN,0
|
2025-05-30 08:35:57 +03:00
|
|
|
|
DEFW 0x8000
|
|
|
|
|
|
|
|
|
|
|
|
DriveStr DEFB 0x01,0x00,0x00,0x00
|
|
|
|
|
|
DEFB 0x01
|
|
|
|
|
|
DEFW 0x015C,0x006A
|
|
|
|
|
|
DEFW 0x000A
|
|
|
|
|
|
DEFB 0xF0
|
|
|
|
|
|
CurDrv DUPL 0x02,0x00
|
|
|
|
|
|
|
|
|
|
|
|
;--------------------------------------------------------------
|
|
|
|
|
|
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
|
|
|
|
|
|
|
2025-07-25 16:01:19 +03:00
|
|
|
|
ErrorTab2 DEFW 284,356,118,132,%0000000000100001,%0000000000000000,ErrorExt0,0
|
2025-05-30 08:35:57 +03:00
|
|
|
|
DEFW 0x8000
|
|
|
|
|
|
|
|
|
|
|
|
;--------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
2025-07-25 16:01:19 +03:00
|
|
|
|
ErrorTab3 DEFW 284,356,118,132,%0000000000100001,%0000000000000000,ErrorExt,0
|
2025-05-30 08:35:57 +03:00
|
|
|
|
DEFW 0x8000
|