;[BEGIN] ;//MODULE: DOS_X ;//CREATE: 19-05-1998 AUTHOR: Denis Parinov ;//UPDATE: 24-10-1999 DNS Restore module ;--------------------------------------------------------------- ;Rev Date Name Description ;--------------------------------------------------------------- ;R011 17-04-2023 BAO Временный костыль для недопускания переполнения буфера пути каталога ;R010 15-04-2023 BAO FIXED BUG WITH CHANGE DISK WITHOUT CHANGE PATH ;R009 13-04-2023 BAO FIX BUG WITH PARSING DIRECTORY BUFFER ;R13 06-04-2023 BAO Функцию SETBOOT можно вызвать только раз (если завершится корректно) ;R12 03-04-2023 BAO Добавлена функция рескана драйвов LD C,8 : RST #10 ;R008 - 15-04-2003 DNS SAVE AND RESTORE CUR-PATH MACROS ;R11 - 15-04-2003 DNS ROUTINE FOR STORE CURDISK AND CURDIR ;R10 - 03-04-2003 DNS IMPROVED FN. VERSION ;R09 27-03-2003 DNS PASTED SET/GET BOOT FN. ;R007 06-02-2003 DNS FIX BUG IN MASK ROUTINE, IT ALLOW NAMES WHICH BEGAN FROM "." ".NAM" ;R006 29-01-2003 DNS FIX BUG WITH SET FILE DATE AND TIME ;R005 26-11-2002 DNS FIX ERROR IN CHDIR, DON'T ALLOWED "." FOR ROOT ;R004 19-11-2002 DNS DON'T ALLOW DIR & LABEL ATTR FOR FILES ;R003 19-11-2002 DNS ADD RESET OF VOLUME LABEL ATTRIBUT ;R002 19-11-2002 DNS FIX GET/SET ATTRIBUTES ;R001 16-12-1999 DNS Y2K fix ;R06 21-11-1999 DNS FN. DISKINF SUPPORT ALL DISKS ;R05 21-11-1999 DNS BUG FIX SIGNATURE #55AA IN BOOT SECTOR ;R04 08-11-1999 DNS KILL OLD FUNCTIONS ;R03 23-11-1998 DNS BUG FIX (IX+28) -> (IY+28) ;R02 21-11-1998 DNS CHANGE FUNCTION "MAKE FAT" ;R01 20-11-1998 DNS REPAIR FUNCTION "SAVE" ; ;--------------------------------------------------------------- include 'API/Version.asm' include 'API/bootDsk.asm' include 'API/curDisk.asm' include 'API/diskINF.asm' include 'API/ScanDRV.asm' include 'API/Attribute.asm' include 'API/Create.asm' include 'API/Delete.asm' include 'API/Rename.asm' include 'API/Open.asm' include 'API/Close.asm' include 'API/Find.asm' include 'API/ChnDisk.asm' include 'API/CurrDir.asm' include 'API/Time.asm' include 'API/GetDateTime.asm' include 'API/SetDateTime.asm' include 'API/ChDir.asm' include 'API/MkDir.asm' include 'API/RmDir.asm' include 'API/DosName.asm' include 'API/Read.asm' include 'API/Write.asm' include 'API/FreeMem.asm' include 'API/GetMem.asm' include 'API/RetMem.asm' include 'API/SetMem.asm' include 'API/SetWin.asm' include 'API/AppInfo.asm' include 'API/Ex_Path.asm' include 'API/GSwitch.asm' include 'API/Environ.ASM' include 'API/Lib_Sub.asm' include "API/EXECUTE.ASM" ;R09 ;Дубль - CHNDISK = OPENDSK ;CHNDISK: ; PUSH AF ; LD C,Dss.DRV.Open ; RST ToDSS.DRV ; POP BC ; JP C,NDISK11 ; LD A,B ; LD (FatBuffer.DRIVE),A ; CALL RD_BPB ; RET C ; LD A,(LDRIVE) ; AND A ; RET ;NDISK11: ; CP DSS_Error.sys.INVALID_DRIVE ; SCF ; RET Z ; LD A,DSS_Error.sys.NOT_READY ; RET ; ;R04 ;SIZE2CL: LD DE,(B_P_C) ; XOR A ; SCF ;S2C01: RR D ; RR E ; JR C,S2C02 ; RR H ; RR L ; RR B ; RR C ; JP NC,S2C01 ; LD A,1 ; JP S2C01 ;S2C02: OR A ; RET Z ; INC BC ; RET ;L_SEC_X: DW 0 ;H_SEC_X: DW 0 ; ;GOD EQU 1999-1980*512 ;FHAND DB " " ; DB " " ; DB #20 ; DW 0,0,0,0,0 ; DW #0000 ; DW 5*32+19+GOD ;SAVEC DW #0000 ;SIZEC DW #0000,#0000 ;============================================= ;//MODULE: DOS_X ;[END] ;R11 ; IF SAVE_PATH_MACRO ; SAVE_CUR_PATH ; PUSH IX ; PUSH IY ; PUSH HL ; PUSH DE ; PUSH BC ; PUSH AF ; ; SET_PAGE_X ENVPAGE ; PUSH AF ; ; CALL CURRDSK ; ADD A,"A" ; LD HL,TMP_CURDIR_AUTO ; LD (HL),A ; INC HL ; LD A,":" ; LD (HL),A ; INC HL ; CALL CURRDIR_FN ; ; POP AF ; OUT (SLOT3),A ; ; POP AF ; POP BC ; POP DE ; POP HL ; POP IY ; POP IX ; RET ; ; BACK_CUR_PATH: ; RET NC ; .force: PUSH IY ; PUSH IX ; PUSH HL ; PUSH DE ; PUSH BC ; PUSH AF ; ; SET_PAGE_X ENVPAGE ; PUSH AF ; ; LD HL,TMP_CURDIR_AUTO ; CALL CHDIR ; ; POP AF ; OUT (SLOT3),A ; ; POP AF ; POP BC ; POP DE ; POP HL ; POP IX ; POP IY ; RET ; ENDIF ;