; 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