From f1350835197d459138f232df471e5e53c3f84a5d Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 5 May 2024 04:00:30 +1000 Subject: [PATCH] =?UTF-8?q?=D0=B4=D1=80=D0=B0=D0=B9=D0=B2=D0=B5=D1=80=20?= =?UTF-8?q?=D0=BC=D1=8B=D1=88=D0=BA=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D1=81=D1=91=D0=BD=20=D0=B2=20=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=D1=83=20=D0=B4=D1=80=D0=B0=D0=B9=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D0=BE=D0=B2.=20=D0=B4=D0=BB=D1=8F=20FAT32=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=20=D1=81=20BPB=5FExtFlags?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DSS/API/ChDir.asm | 2 +- DSS/API/ChnDisk.asm | 2 +- DSS/API/CurrDir.asm | 4 +- DSS/API/Execute.ASM | 6 +- DSS/API/MkDir.asm | 2 +- DSS/API/RmDir.asm | 2 +- DSS/API/ScanDRV.asm | 6 +- DSS/API/curDisk.asm | 2 +- DSS/API/diskINF.asm | 2 +- DSS/DOS_Proc.asm | 22 +-- DSS/DRV-MAIN.ASM | 159 ++++++++---------- DSS/DSS-MAIN.ASM | 66 +++++--- DSS/FS/FAT/FAT.asm | 127 +++++++------- DSS/FS/FAT/FAT_X.asm | 80 +++++---- DSS/KEYINTER.ASM | 4 +- DSS/Structures.inc | 18 +- DSS/build.txt | 2 +- DSS/defines.inc | 3 +- DSS/{INTMOUSE.ASM => drivers/Input/MOUSE.ASM} | 15 +- .../media}/ReScanDRV.ASM | 0 .../media}/fdd-drv.asm | 0 .../media}/ide-drv.asm | 0 .../media}/ram_disk-drv.asm | 0 .../media}/shared-drv.asm | 0 24 files changed, 268 insertions(+), 256 deletions(-) rename DSS/{INTMOUSE.ASM => drivers/Input/MOUSE.ASM} (93%) rename DSS/{Media_drivers => drivers/media}/ReScanDRV.ASM (100%) rename DSS/{Media_drivers => drivers/media}/fdd-drv.asm (100%) rename DSS/{Media_drivers => drivers/media}/ide-drv.asm (100%) rename DSS/{Media_drivers => drivers/media}/ram_disk-drv.asm (100%) rename DSS/{Media_drivers => drivers/media}/shared-drv.asm (100%) diff --git a/DSS/API/ChDir.asm b/DSS/API/ChDir.asm index 9b20e37..daaec16 100644 --- a/DSS/API/ChDir.asm +++ b/DSS/API/ChDir.asm @@ -20,7 +20,7 @@ CHDIR_FN: JP NC,DIR_PATH_CHANGE.FullCurrent ; если неудачно, то возвращаемся туда откуда пришли PUSH AF - LD HL,CurrentDirectory + LD HL,CORE_BUFFERS.CurrentDirectory CALL CHDIR POP AF RET diff --git a/DSS/API/ChnDisk.asm b/DSS/API/ChnDisk.asm index 272db10..9a8cc87 100644 --- a/DSS/API/ChnDisk.asm +++ b/DSS/API/ChnDisk.asm @@ -14,7 +14,7 @@ CHNDISK:;[x] ; ;R010 RET C - LD HL,WorkDirectory + LD HL,CORE_BUFFERS.WorkDirectory LD (HL),0 PUSH AF CALL OPENDIR diff --git a/DSS/API/CurrDir.asm b/DSS/API/CurrDir.asm index 93e2d5a..7ae85dc 100644 --- a/DSS/API/CurrDir.asm +++ b/DSS/API/CurrDir.asm @@ -4,10 +4,10 @@ ; вход: HL - буфер в памяти 256 байт ; выход: A - код ошибки, если CF=1 //////////////////////////////////////////////////////////////////////// -CURRDIR: LD DE,WorkDirectory +CURRDIR: LD DE,CORE_BUFFERS.WorkDirectory JR CURRDIR_FN.skip CURRDIR_FN: - LD DE,CurrentDirectory + LD DE,CORE_BUFFERS.CurrentDirectory .skip: EX DE,HL LD BC,DIRECTORY_PATH_LENGTH ;[x] 15/11/2023 могло выйти за пределы буфера XOR A diff --git a/DSS/API/Execute.ASM b/DSS/API/Execute.ASM index 38712ce..171da66 100644 --- a/DSS/API/Execute.ASM +++ b/DSS/API/Execute.ASM @@ -416,7 +416,7 @@ _TST_PROC_2: LD SP,(CORE_BUFFERS.EXEBUFF.SP_REG) PUSH HL ;!TEST Current Dir ;[x] 15/10/23 PUSH IX - LD HL,CurrentPath + LD HL,CORE_BUFFERS.CurrentPath LD A,(CORE_BUFFERS.EXEBUFF.VERSION) OR A JR NZ,.set_path @@ -522,7 +522,7 @@ ErrorLevel: DB #00 ; EXE_FM: DB #00 ; дескр. файла EXE_MEM: DB #00 ; идентификатор блока памяти CMDLINE: DW #0000 -EXSTACK: DW CORE_BUFFERS.XSTACK ; адрес стека +EXSTACK: DW CORE_BUFFERS.XSTACK.Spoint ; адрес стека ;///////////////////////////////////////////////////////////////////// @@ -703,7 +703,7 @@ FINDPATH: .GOTO_CURDIR: PUSH AF PUSH HL - LD HL,CurrentDirectory + LD HL,CORE_BUFFERS.CurrentDirectory CALL CHDIR POP HL POP AF diff --git a/DSS/API/MkDir.asm b/DSS/API/MkDir.asm index 8caaccb..b0a290a 100644 --- a/DSS/API/MkDir.asm +++ b/DSS/API/MkDir.asm @@ -20,7 +20,7 @@ MKDIR: RET C CALL .START PUSH AF - LD HL,CurrentDirectory + LD HL,CORE_BUFFERS.CurrentDirectory CALL CHDIR POP AF RET diff --git a/DSS/API/RmDir.asm b/DSS/API/RmDir.asm index 28fb499..84d5cbf 100644 --- a/DSS/API/RmDir.asm +++ b/DSS/API/RmDir.asm @@ -15,7 +15,7 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23 RET C CALL .START PUSH AF - LD HL,CurrentDirectory + LD HL,CORE_BUFFERS.CurrentDirectory CALL CHDIR CALL DIR_PATH_CHANGE.Current POP AF diff --git a/DSS/API/ScanDRV.asm b/DSS/API/ScanDRV.asm index e9c364e..88663d4 100644 --- a/DSS/API/ScanDRV.asm +++ b/DSS/API/ScanDRV.asm @@ -35,13 +35,13 @@ SCANDRV: ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ; 4. на всякий случай перечитываем дирректорию ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; - LD A,(CurrentPath) + LD A,(CORE_BUFFERS.CurrentPath) SUB 'A' CALL OPENDSK - LD HL,CurrentDirectory + LD HL,CORE_BUFFERS.CurrentDirectory CALL CHDIR JR NC,.exit - LD HL,CurrentDirectory + LD HL,CORE_BUFFERS.CurrentDirectory LD (HL),0 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; ; 5. выход diff --git a/DSS/API/curDisk.asm b/DSS/API/curDisk.asm index bd51cdb..3eb0638 100644 --- a/DSS/API/curDisk.asm +++ b/DSS/API/curDisk.asm @@ -8,7 +8,7 @@ CURDISK_FN: LD A,(LDRIVE) LD C,A - LD A,(CurrentPath) + LD A,(CORE_BUFFERS.CurrentPath) SUB 'A' RET NC LD A,DSS_Error.sys.INVALID_DRIVE diff --git a/DSS/API/diskINF.asm b/DSS/API/diskINF.asm index 3e634bf..033b221 100644 --- a/DSS/API/diskINF.asm +++ b/DSS/API/diskINF.asm @@ -119,7 +119,7 @@ DISKINF: LD C,B CP #FF ; !FIXIT WorkDirectory ;!TEST Current Dir ;JR Z,CURRDS ;R06 -.CurrentDisk: LD A,(CurrentPath) +.CurrentDisk: LD A,(CORE_BUFFERS.CurrentPath) SUB 'A' LD HL,CORE_BUFFERS.FatBuffer.DRIVE CP (HL) diff --git a/DSS/DOS_Proc.asm b/DSS/DOS_Proc.asm index 58d3f01..7da3511 100644 --- a/DSS/DOS_Proc.asm +++ b/DSS/DOS_Proc.asm @@ -359,16 +359,16 @@ MASK: LD HL,TMPNAME DIR_PATH_CHANGE: .FullCurrent: LD A,(CORE_BUFFERS.FatBuffer.DRIVE) ADD 'A' - LD (CurrentPath),A + LD (CORE_BUFFERS.CurrentPath),A ; -.Current: LD HL,CurrentDirectory +.Current: LD HL,CORE_BUFFERS.CurrentDirectory JP CURRDIR ; -.FullWork: LD A,(CurrentPath) +.FullWork: LD A,(CORE_BUFFERS.CurrentPath) SUB 'A' LD (CORE_BUFFERS.FatBuffer.DRIVE),A ; -.Work: LD HL,WorkDirectory +.Work: LD HL,CORE_BUFFERS.WorkDirectory JP CURRDIR_FN ; DIR_PATH_CHECK: LD A,(HL) @@ -377,7 +377,7 @@ DIR_PATH_CHECK: LD A,(HL) ; CALL .checkDrive RET Z - LD A,(CurrentPath) + LD A,(CORE_BUFFERS.CurrentPath) SUB 'A' JP OPENDSK ; @@ -387,18 +387,18 @@ DIR_PATH_CHECK: LD A,(HL) RET Z ; .forceCheck: ;LD HL,CurrentDirectory+1 - LD BC,CurrentDirectory.DEPTH-1 + LD BC,CORE_BUFFERS.CurrentDirectory.DEPTH-1 CALL .checkDrive JR Z,.checkDir ; - LD HL,CurrentPath + LD HL,CORE_BUFFERS.CurrentPath LD A,(CORE_BUFFERS.FatBuffer.DRIVE) ADD 'A' CP (HL) JR NZ,.gotoPath ; -.checkDir: LD HL,CurrentDirectory+1 - LD DE,WorkDirectory+1 +.checkDir: LD HL,CORE_BUFFERS.CurrentDirectory+1 + LD DE,CORE_BUFFERS.WorkDirectory+1 ; счётчик LD A,B LD B,C @@ -424,14 +424,14 @@ DIR_PATH_CHECK: LD A,(HL) CALL FINDDIR.CHECK_SLASH LD A,DSS_Error.sys.PATH_NOT_FOUND RET C - LD HL,CurrentPath + LD HL,CORE_BUFFERS.CurrentPath JP GETWORD ; .end: CP (HL) RET Z JR .gotoPath ; -.checkDrive: LD HL,CurrentPath +.checkDrive: LD HL,CORE_BUFFERS.CurrentPath LD A,(CORE_BUFFERS.FatBuffer.DRIVE) ADD 'A' CP (HL) diff --git a/DSS/DRV-MAIN.ASM b/DSS/DRV-MAIN.ASM index 5736edb..9217369 100644 --- a/DSS/DRV-MAIN.ASM +++ b/DSS/DRV-MAIN.ASM @@ -26,11 +26,11 @@ ;===============; ;!TODO -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; <[NOT USED]> ; -A0000: JP RST_00 ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// +; <[NOT USED]> +A0000: JP RST_00 +//////////////////////////////////////////////////////////////////////// + ; RST_00: @@ -39,49 +39,47 @@ RST_00: RET ; -; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; <[BIOS API]> ; - BLOCK 8-$,#C7 ; #C7 - "RST 0" opcode -A0008: PUSH AF ; - LD A,SYS_PORT.PAGE8; - OUT (SYS_PORT.ON),A ; - POP AF ; - RET ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// +; <[BIOS API]> + BLOCK 8-$,#C7 ; #C7 - "RST 0" opcode +A0008: PUSH AF + LD A,SYS_PORT.PAGE8 + OUT (SYS_PORT.ON),A + POP AF + RET +//////////////////////////////////////////////////////////////////////// + ;!FIXIT -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; <[DSS API]> ; - BLOCK #10-$,#C7 ; #C7 - "RST 0" opcode -A0010: ;JP DRV_PAGE.RST_10 ; - DI : HALT ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// +; <[DSS API]> + BLOCK #10-$,#C7 ; #C7 - "RST 0" opcode +A0010: ;JP DRV_PAGE.RST_10 + DI : HALT +//////////////////////////////////////////////////////////////////////// -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; <[DRIVE API]> ; - BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode -;A0018 JP INTDISK ; -A0018: ;PUSH AF ; - ;PUSH BC ; +//////////////////////////////////////////////////////////////////////// +; <[DRIVE API]> + BLOCK #18-$,#C7 ; #C7 - "RST 0" opcode +;A0018 JP INTDISK +A0018: ;PUSH AF + ;PUSH BC SCF RET -DRV_PAGE.MAIN_PAGE_NUMBER+2: ; - LD BC,0*256 + SLOT0 ; !FIXIT сюда не должны вставляться номера выделенных страниц? - ;JP PORTAL.outDRV ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; +DRV_PAGE.MAIN_PAGE_NUMBER+2: + LD BC,0*256 + SLOT0 ; !FIXIT сюда не должны вставляться номера выделенных страниц? + ;JP PORTAL.outDRV +//////////////////////////////////////////////////////////////////////// ;!TODO -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; <[NOT USED]> ; - BLOCK #20-$,#C7 ; #C7 - "RST 0" opcode -A0020: JP DRV_PAGE.RST_20 ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// +; <[NOT USED]> + BLOCK #20-$,#C7 ; #C7 - "RST 0" opcode +A0020: JP DRV_PAGE.RST_20 +//////////////////////////////////////////////////////////////////////// + ; DRV_PAGE.RST_20: @@ -91,12 +89,12 @@ DRV_PAGE.RST_20: ; ;!TODO -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; <[NOT USED]> ; - BLOCK #28-$,#C7 ; #C7 - "RST 0" opcode -A0028: JP DRV_PAGE.RST_28 ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// +; <[NOT USED]> + BLOCK #28-$,#C7 ; #C7 - "RST 0" opcode +A0028: JP DRV_PAGE.RST_28 +//////////////////////////////////////////////////////////////////////// + ; DRV_PAGE.RST_28: @@ -105,23 +103,16 @@ DRV_PAGE.RST_28: RET ; -;!TODO -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; <[NOT USED]> ; - BLOCK #30-$,#C7 ; -A0030: JP RST_30 ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// + BLOCK #30-$,#C7 ; #C7 - "RST 0" opcode +RST_30: JP MOUSE_DRV.API +.RET: OUT (SLOT0),A + JP MOUSE_HANDLER +//////////////////////////////////////////////////////////////////////// -; -RST_30: - LD A,DSS_Error.drv.INVALID_COMMAND - SCF - RET -; ;!FIXIT -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; +//////////////////////////////////////////////////////////////////////// ; <[MAIN INT]> ; BLOCK #38-$,#C7 ; A0038: ; @@ -188,21 +179,21 @@ A0038: ; ENDIF EI ; RETI ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// + ; DRV_PAGE.KEYSCAN: RET ;!FIXIT ; -; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; + +//////////////////////////////////////////////////////////////////////// ; <[ NMI ]> ; DRV_PAGE.NMI: RETN ; BLOCK #66-$,#C7; A0066: JP DRV_PAGE.NMI ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// + ;-------------------------------; @@ -220,8 +211,8 @@ A0066: JP DRV_PAGE.NMI ; ; EX (SP),HL ; RET -; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; + +//////////////////////////////////////////////////////////////////////// ; <[DRIVE PAGE SWITCH]> ; BLOCK PORTAL.RSTx18_SWITCH_ADDRESS-$-(PORTAL.out_DRV.switch - PORTAL.out_DRV),#C7 PORTAL.out_DRV: PUSH BC ; @@ -234,22 +225,20 @@ PORTAL.out_DRV: PUSH BC ; POP AF ; .ADCALL+1: CALL DISPATCH ; патчится на INTDISK JP PORTAL.out_DRV ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// -;!FIXIT чёт не то тут -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; LD B,#00; ; -; OUT (C),A ; -;--- ; -; POP BC ; -; RET ; -;PORTAL.outDRV: ; -; RET ; -;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; -; +//////////////////////////////////////////////////////////////////////// +MOUSE_HANDLER: POP AF + CALL MOUSE_DRV.API + PUSH AF +.CorePage EQU $$$ + 1 + LD A,#FF + JP RST_30.RET +//////////////////////////////////////////////////////////////////////// + + DRV_PAGE.LDRIVE: DB #00 @@ -263,11 +252,11 @@ INITDVC_RET_DRIVE: AND A RET - INCLUDE 'dss/media_drivers/shared-drv.asm' - INCLUDE 'dss/media_drivers/ide-drv.asm' - INCLUDE 'dss/media_drivers/fdd-drv.asm' - INCLUDE 'dss/media_drivers/ram_disk-drv.asm' - + INCLUDE 'dss/Drivers/media/shared-drv.asm' + INCLUDE 'dss/Drivers/media/ide-drv.asm' + INCLUDE 'dss/Drivers/media/fdd-drv.asm' + INCLUDE 'dss/Drivers/media/ram_disk-drv.asm' + INCLUDE "dss/Drivers/input/MOUSE.ASM" /////////////////////////// [ DRIVE TABLES ] \\\\\\\\\\\\\\\\\\\\\\\\\\\; ; ;------------------------[shared-drv.asm table]------------------------; diff --git a/DSS/DSS-MAIN.ASM b/DSS/DSS-MAIN.ASM index f88fd4d..4cfc2b3 100644 --- a/DSS/DSS-MAIN.ASM +++ b/DSS/DSS-MAIN.ASM @@ -128,7 +128,11 @@ RST_0x28: JP RST_28 ; ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ; <[MOUSE API]> ; _mInfoBLOCK #30-$,#FF ; -RST_0x30: JP INTMOUS ; +RST_0x30: PUSH AF +.drv_page+1: LD A,#FF + OUT (SLOT0),A + POP AF + RET ;' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '; ; @@ -151,7 +155,9 @@ INT_: PUSH AF PUSH IX PUSH IY CALL KEYSCAN - CALL M_INT + LD C,Dss.Mouse.GetPackets + RST ToDSS.Mouse + ;CALL M_INT IFN CLASSIC_CURSOR CALL cursor_interrupt; вектор обслуж. курсора ;!!!!! VASIL ENDIF @@ -248,10 +254,10 @@ CLEAR_BUFFER_AND_INIT_PROC: LD (HL),A LDIR LD HL,':'*256 + 'X' - LD (CurrentPath),HL + LD (CORE_BUFFERS.CurrentPath),HL LD A,'\' ; - LD (CurrentDirectory),A - LD (WorkDirectory),A + LD (CORE_BUFFERS.CurrentDirectory),A + LD (CORE_BUFFERS.WorkDirectory),A ; LD A,#FF LD (CORE_BUFFERS.FatBuffer.DRIVE),A @@ -370,8 +376,6 @@ ADRST10: ;DS 512 ;,0 INCLUDE "FS/FAT/FAT.ASM" INCLUDE "FS/FAT/FAT_X.ASM" INCLUDE "DOS_FM.ASM" - ;INCLUDE "EXECUTE.ASM" - INCLUDE "INTMOUSE.ASM" INCLUDE "Procedures.asm" INCLUDE "Kernel_Panic.asm" @@ -414,30 +418,36 @@ WorkDirectory: DB '\' CLEAR_ZONE.start EQU $ MODULE CORE_BUFFERS -BUFFERSplace _sBuffers=$ -FM_BUF _sFM = BUFFERSplace.FileManipulator -.Size EQU _sFM -.FullSize EQU FMCOUNT*FM_BUF.Size -;BootSector _sBOOT_SECTOR_PARAMS = BUFFERSplace.BootSector ; [ ] fat32 ;!FIXIT CORE_BUFFERS.BootSector разной длины -FatBuffer _sFatBuffer = BUFFERSplace.FatBuffer -EXEBUFF _sEXE_HEADER = BUFFERSplace.EXE_Header -XSTACK EQU BUFFERSplace.Stack.SPoint -BUFFER EQU BUFFERSplace.Buffer -SECTOR_BUFFER EQU BUFFER ;!TODO отделить SECTOR_BUFFER от BUFFER -MemoryTable EQU BUFFERSplace.MemoryTable +BUFFERSplace _sBuffers=$ +FM_BUF _sFM = BUFFERSplace.FileManipulator +.Size EQU _sFM +.FullSize EQU FMCOUNT*FM_BUF.Size +FatBuffer _sFatBuffer = BUFFERSplace.FatBuffer +EXEBUFF _sEXE_HEADER = BUFFERSplace.EXE_Header +XSTACK _sStack = BUFFERSplace.Stack +.Spoint EQU XSTACK + _sStack +BUFFER EQU BUFFERSplace.Buffer +SECTOR_BUFFER EQU BUFFER ;!TODO отделить SECTOR_BUFFER от BUFFER +MemoryTable EQU BUFFERSplace.MemoryTable +CurrentPath EQU BUFFERSplace.CurrentPath +CurrentDirectory EQU BUFFERSplace.CurrentDirectory +.DEPTH EQU DIRECTORY_PATH_LENGTH +WorkDirectory EQU BUFFERSplace.WorkDirectory +.DEPTH EQU DIRECTORY_PATH_LENGTH ENDMODULE ; -CurrentPath EQU CORE_BUFFERS.BUFFERSplace + _sBuffers -CurrentDirectory EQU CurrentPath + 2 -.DEPTH: EQU DIRECTORY_PATH_LENGTH -; -WorkDirectory EQU CurrentDirectory + 1 + CurrentDirectory.DEPTH -.DEPTH: EQU DIRECTORY_PATH_LENGTH +; CurrentPath EQU CORE_BUFFERS.BUFFERSplace + _sBuffers +; CurrentDirectory EQU CurrentPath + 2 +; .DEPTH: EQU DIRECTORY_PATH_LENGTH +; ; +; WorkDirectory EQU CurrentDirectory + 1 + CurrentDirectory.DEPTH +; .DEPTH: EQU DIRECTORY_PATH_LENGTH ; CLEAR_ZONE.size EQU _sBuffers - ASSERT (CORE_BUFFERS.BUFFERSplace+_sBuffers)<#4000, "Warning!!! OUT OF SLOT0" + ASSERT (CLEAR_ZONE.start + _sBuffers)<#4000, "Warning!!! OUT OF SLOT0" + DISPLAY "--- --- --- --- --- --- --- ---" DISPLAY "CLEAR_ZONE.start ", /H, CLEAR_ZONE.start DISPLAY "CLEAR_ZONE.Size ", /H, CLEAR_ZONE.size @@ -599,7 +609,11 @@ DEPLOY: ;Allocate memory LD HL,BANKTBL + COREPAGE IN A,(SLOT0) LD (HL),A - + ; для API драйвера мышки + LD (MOUSE_HANDLER.CorePage),A + LD A,(BANKTBL + DRVPAGE) + LD (RST_0x30.drv_page),A + POP AF OUT (SLOT3),A diff --git a/DSS/FS/FAT/FAT.asm b/DSS/FS/FAT/FAT.asm index 98ae456..10001ba 100644 --- a/DSS/FS/FAT/FAT.asm +++ b/DSS/FS/FAT/FAT.asm @@ -318,17 +318,17 @@ FINDDIR: LD A,(IX + FAT_DIRECTORY_RECORD.NAME + 1) CP "." JP NZ,.IT_DIR - LD HL,WorkDirectory + LD HL,CORE_BUFFERS.WorkDirectory LD D,H LD E,L INC HL - LD BC,WorkDirectory.DEPTH + LD BC,CORE_BUFFERS.WorkDirectory.DEPTH XOR A CPIR JP PO,.error ;[x] 20/11/23 проверка на выход за границы DEC HL ;R009 DEC HL - LD BC,WorkDirectory.DEPTH + LD BC,CORE_BUFFERS.WorkDirectory.DEPTH LD A,'\' CPDR INC HL @@ -353,8 +353,8 @@ FINDDIR: RET ; .ADDSPEC: - LD HL,WorkDirectory+1 - LD BC,WorkDirectory.DEPTH-1 + LD HL,CORE_BUFFERS.WorkDirectory+1 + LD BC,CORE_BUFFERS.WorkDirectory.DEPTH-1 CALL .CHECK_SLASH JR C,.error ;R011 @@ -458,7 +458,7 @@ OPENDIR: LD IY,CORE_BUFFERS.FM_BUF LD (CORE_BUFFERS.FM_BUF.FS_REC.FIRST_CLUSTER_H),DE CALL LOADDIR ; CF=0 - LD HL,WorkDirectory + LD HL,CORE_BUFFERS.WorkDirectory LD (HL),'\' INC HL LD (HL),#00 @@ -712,7 +712,6 @@ RD_BPB: ; LD C,SLOT3 LD (CORE_BUFFERS.FatBuffer.SectorsPerCluster),A ; calc. first sector FAT LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RESERVED_SECTORS) - ;!FIXIT для fat32 втыкать сюда сектора активной таблицы LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_L),HL ; low word first sector FAT #1 LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_L),HL ; low word first sector FAT #2 ;[ ] fat32 @@ -735,8 +734,8 @@ RD_BPB: ; LD C,SLOT3 LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_H),A LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.SectorsPerFAT32) .skip_high: LD (CORE_BUFFERS.FatBuffer.SectorsPerFAT_L),DE - ;!TODO выбор активной FAT для fat32 LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.Number_of_FATs) ; amount FATs + LD (CORE_BUFFERS.FatBuffer.Number_Of_FATs),A CP 1 JR Z,.one_FAT DEC A @@ -951,38 +950,65 @@ RD_BPB: ; LD C,SLOT3 LD A,FAT_TYPE.x12 JR .set_vars ; -.its_FAT32: EXX - LD HL,CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.LABEL +.its_FAT32: LD A,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.MainFATnumber) + CP #80 + JR C,.mirrored_FATs ;если все копии FAT используются + ; используется только одна копия FAT + LD HL,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H) + LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_H) + LD D,0 EXX + LD HL,(CORE_BUFFERS.FatBuffer.FAT1_SEC_L) + LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L) + AND #0F + JR Z,.first_FAT_active + LD B,A ; - LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster) - LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),HL - LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster+2) - LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_H),BC +.fat_calc_loop: ADD HL,DE + EXX + ADC HL,DE + EXX + DJNZ .fat_calc_loop ; - CALL CLUSTER_TO_SECTOR - LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL - LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_H),BC +.first_FAT_active: + LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_L),HL + LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_L),HL + EXX + LD (CORE_BUFFERS.FatBuffer.FAT1_SEC_H),HL + LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_H),HL ; - LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FSINFO_Sector) - LD (CORE_BUFFERS.FatBuffer.FSINFO_Sector),HL +.mirrored_FATs: ; + LD HL,CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.LABEL ; - LD A,FAT_TYPE.x32 - LD HL,#0FFF - LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),HL - LD H,L - LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER) - LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER+2) - ; -.SET_VARS: LD (CORE_BUFFERS.FatBuffer.FAT_TYPE),A - LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_L),HL - LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER),DE - LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER+2),BC + EXX + LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster) + LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_L),HL + LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.RootDirStartCluster+2) + LD (CORE_BUFFERS.FatBuffer.RootDirStartCluster_H),BC + ; + CALL CLUSTER_TO_SECTOR + LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL + LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_H),BC + ; + LD HL,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FSINFO_Sector) + LD (CORE_BUFFERS.FatBuffer.FSINFO_Sector),HL + ; + LD A,FAT_TYPE.x32 + LD HL,#0FFF + LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_H),HL + LD H,L + LD DE,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER) + LD BC,(CORE_BUFFERS.SECTOR_BUFFER + BOOT_SECTOR.FAT32.SERIAL_NUMBER+2) + ; +.SET_VARS: LD (CORE_BUFFERS.FatBuffer.FAT_TYPE),A + LD (CORE_BUFFERS.FatBuffer.END_CHAIN_CLUSTER_L),HL + LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER),DE + LD (CORE_BUFFERS.FatBuffer.BPB_SERIAL_NUMBER+2),BC EXX LD DE,CORE_BUFFERS.FatBuffer.BPB_LABEL LD BC,11 ;!HARDCODE LDIR - + ; SET_PAGE_X FATPAGE PUSH AF LD DE,0 @@ -1006,43 +1032,7 @@ RD_BPB: ; LD C,SLOT3 XOR A RET ; -.set_FSinfo: ; - IFN USE_FSINFO_FAT32 - CALL READ_FSinfo - ; !FIXIT проверка на ошибку - ; - LD A,#FF - ; проверка одной из сотни сраных сигнатур - LD HL,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.DATA_SIGNATURE) - LD DE,(CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.DATA_SIGNATURE + 2) - LD BC,#7272 - SBC HL,BC - JR NZ,.error_sig - EX DE,HL - LD DE,#6141 - SBC HL,DE - JR NZ,.error_sig - ; - LD HL,CORE_BUFFERS.SECTOR_BUFFER + _sFSinfo.FREE_CLUSTERS_COUNT - LD B,8 ; 2 x DWORD - LD A,#FF - ; -.fsinfo_loop: AND (HL) - INC HL - DJNZ .fsinfo_loop - ; -.error_sig: XOR #FF - LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A - ; - XOR A - LD H,A - LD L,2 - LD (G_CLUST.low),HL - LD L,H - LD (G_CLUST.high),HL - RET - ELSE - CALL READ_FSinfo +.set_FSinfo: CALL READ_FSinfo ; !FIXIT проверка на ошибку ; ; проверка одной из сотни сраных сигнатур @@ -1101,7 +1091,6 @@ RD_BPB: ; LD C,SLOT3 LD HL,(CORE_BUFFERS.FatBuffer.MaxClusterHigh) SBC HL,DE RET - ENDIF ;;;;;;;; ; --> BC:HL - Sector diff --git a/DSS/FS/FAT/FAT_X.asm b/DSS/FS/FAT/FAT_X.asm index 0582a6b..5c601cd 100644 --- a/DSS/FS/FAT/FAT_X.asm +++ b/DSS/FS/FAT/FAT_X.asm @@ -647,11 +647,7 @@ WRITE_FAT_TABLE: ;FAT_BLOCK * Sectors_in_Block = SECTOR_OF_FAT CALL GET_SECTOR_OF_FAT ; B=0, C:HL - смещение в секторах внутри таблицы FAT на начало блока - ; [x] fat32 ;!FIXIT - LD (.save_hl),HL - ;LD B,H - ;LD C,L - ; + LD (.save_offset_HL),HL LD DE,FAT_CACHE.Sectors_32 LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE) CP FAT_TYPE.x32 @@ -675,7 +671,7 @@ WRITE_FAT_TABLE: .sub_A+1: SBC A,0 JR C,.WALLFAT ; СF=1: не выходит OR A - JR NZ,.ERR + JP NZ,.ERR ; EX DE,HL ; DE - на сколько секторов конец блока выходит за пределы таблицы. @@ -686,23 +682,17 @@ WRITE_FAT_TABLE: JR C,.ERR ;!TODO проверить LD B,L ; число секторов для чтения в кэш .WALLFAT: ; -.save_hl+1: LD HL,0 - ;LD H,B - ;LD L,C - ;PUSH HL - ; +.pop_offset_HL+1: + LD HL,0 ; B = число секторов LD IX,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H) LD DE,(CORE_BUFFERS.FatBuffer.FAT1_SEC_L) - ;LD B,A - ;LD C,Dss.DRV.Write ; запись секторов PUSH BC - ; ; сохраняем первую копию FAT. Вход IX:DE - начало таблицы FAT ; C:HL - смещение внутри таблицы ; B - количество секторов CALL .SAVE_FAT_XX - ; [x] если всего одна таблица FAT, то повторной записи не происходит 13/03/2024 + ; [x] если всего одна таблица FAT, то повторной записи не происходит 13/03/2024 POP BC ; B = число секторов, C = старший байт смещения в секторах LD HL,(CORE_BUFFERS.FatBuffer.FAT1_SEC_H) LD DE,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H) @@ -715,12 +705,51 @@ WRITE_FAT_TABLE: SBC HL,DE JR Z,.only_one_FAT ; - ; сохраняем вторую копию FAT -.not_one_FAT: LD IX,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H) +.not_one_FAT: LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE) + CP FAT_TYPE.x32 + JR NZ,.fat_num_2 + ; + LD A,(CORE_BUFFERS.FatBuffer.Number_Of_FATs) + CP 2 + JR Z,.fat_num_2 + ; сохраняем больше двух копий FAT + LD HL,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H) + LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_H) + LD D,0 + EXX + LD HL,(CORE_BUFFERS.FatBuffer.FAT2_SEC_L) + LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L) + DEC A +.many_fat_loop: EXX + PUSH HL + PUSH HL + POP IX + EXX + PUSH HL + PUSH BC + EX DE,HL + LD HL,(.pop_offset_HL) + CALL .SAVE_FAT_XX + POP BC + POP HL + ; + LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_L) + ADD HL,DE + EXX + LD DE,(CORE_BUFFERS.FatBuffer.SectorsPerFAT_H) + POP HL + ADC HL,DE + EXX + DEC A + JR NZ,.many_fat_loop + JR .norm_exit + ; + ; сохраняем вторую копию FAT +.fat_num_2: LD IX,(CORE_BUFFERS.FatBuffer.FAT2_SEC_H) LD DE,(CORE_BUFFERS.FatBuffer.FAT2_SEC_L) - LD HL,(.save_hl) + LD HL,(.pop_offset_HL) CALL .SAVE_FAT_XX - AND A ;!TODO нет контроля ошибок +.norm_exit: AND A ;!TODO нет контроля ошибок .only_one_FAT: ; .ERR: LD A,0 LD (CORE_BUFFERS.FatBuffer.CacheUpdated),A @@ -729,7 +758,6 @@ WRITE_FAT_TABLE: ; C:HL - смещение в таблице в секторах ; B - количество секторов .SAVE_FAT_XX: ADD HL,DE - ;EX DE,HL JR NC,.no_inc_C INC C ; номер лог. сектора @@ -1539,17 +1567,5 @@ GET_OFFSET_IN_SECTORS: RET ;----------------------------------------------------------------------; - -;!TODO fat32 -;======================================================================= -;BPB - ;LD (CORE_BUFFERS.FatBuffer.FAT2_SEC_L),HL - ;LD (CORE_BUFFERS.FatBuffer.RootDirFirstSector_L),HL ; first sector DIR -;BPB32 - ;LD HL,(CORE_BUFFERS.BootSector+#2C) ;fat32 Первый кластер корневого каталога (обычно 2) 4 байта -;FAT Max Cluster - ;LD (CORE_BUFFERS.FatBuffer.MaxClusterLow),HL -;======================================================================= - ;//MODULE: FAT_X ;[END] \ No newline at end of file diff --git a/DSS/KEYINTER.ASM b/DSS/KEYINTER.ASM index 97e7db7..0698da2 100644 --- a/DSS/KEYINTER.ASM +++ b/DSS/KEYINTER.ASM @@ -1,4 +1,5 @@ +; MODULE KEYINTER ;[BEGIN] ;//MODULE: KEYINTER Keyboard Scan Codes: Set 2 ;//CREATE: 19-05-1998 AUTHOR: Denis Parinov @@ -1270,4 +1271,5 @@ SHF2RUS DB #F1,Esc,"!",#22,"#","$",":",#2C,".",";","?","%","_","+",Bcs ;================================ ;//MODULE: KEYINTER -;[END] \ No newline at end of file +;[END] +; ENDMODULE \ No newline at end of file diff --git a/DSS/Structures.inc b/DSS/Structures.inc index cb296d1..34f8616 100644 --- a/DSS/Structures.inc +++ b/DSS/Structures.inc @@ -1,7 +1,7 @@ ; STRUCT _sStack ; 256 bytes .buffer BLOCK 256,0 -.SPoint BYTE 0 +;.SPoint BYTE 0 ENDS ; @@ -76,23 +76,24 @@ ; STRUCT _sFatBuffer .DRIVE: BYTE #FF -.FAT_TYPE: BYTE #00 ; TYPE FAT (12 - 12bit, 16 - 16bit, 32 - 32bit) ; [x] fat32 +.FAT_TYPE: BYTE #00 ; TYPE FAT (12 - 12bit, 16 - 16bit, 32 - 32bit) ; fat32 .CacheBlock: WORD #0000 .CacheUpdated: BYTE #00 ;.SectorsPerBank: BYTE #00 .RootDirStartCluster_L: WORD #0000 -.RootDirStartCluster_H: WORD #0000 ; [ ] fat32 +.RootDirStartCluster_H: WORD #0000 ; fat32 .FAT1_SEC_L: WORD #0000 ; MSD_FAT_SEC first sector FAT (FAT_FRM) -.FAT1_SEC_H: WORD #0000 ; [ ] fat32 +.FAT1_SEC_H: WORD #0000 ; fat32 .FAT2_SEC_L: WORD #0000 -.FAT2_SEC_H: WORD #0000 ; [ ] fat32 +.FAT2_SEC_H: WORD #0000 ; fat32 +.Number_Of_FATs BYTE #02 .SectorsPerFAT_L WORD #0000 .SectorsPerFAT_H BYTE #00 .RootDirFirstSector_L: WORD #0000 ; MSD_CAT_SEC first sector DIR -.RootDirFirstSector_H: WORD #0000 ; MSD_CAT_SEC first sector DIR ; !TODO ограничение в 32 Гига ;!FIXIT не используется +.RootDirFirstSector_H: WORD #0000 ; MSD_CAT_SEC first sector DIR .DirSizeInSectors: BYTE #00 ; DIR_SEC_SIZE .FirstDataSector_L: WORD #0000 ; MSD_DAT_SEC low -.FirstDataSector_H: WORD #0000 ; MSD_DAT_SEC high ; [ ] fat32 было ограничение в 32 Гига +.FirstDataSector_H: WORD #0000 ; MSD_DAT_SEC high .BytesPerCluster: WORD #0000 ; CLUSTER_LEN .END_CHAIN_CLUSTER_L: WORD #FFFF .END_CHAIN_CLUSTER_H: WORD #0FFF ; [ ] fat3 @@ -123,5 +124,8 @@ .Stack _sStack ; 256 bytes .Buffer BLOCK 512,0 ; FOR BUFFER & SECTOR_BUFFER .MemoryTable BLOCK 256,0 ; 256 bytes +.CurrentPath WORD 0 +.CurrentDirectory BLOCK DIRECTORY_PATH_LENGTH,0 +.WorkDirectory BLOCK DIRECTORY_PATH_LENGTH,0 ENDS ; \ No newline at end of file diff --git a/DSS/build.txt b/DSS/build.txt index fbee9e3..ad12b97 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -982 \ No newline at end of file +983 \ No newline at end of file diff --git a/DSS/defines.inc b/DSS/defines.inc index c85ad2d..4db938b 100644 --- a/DSS/defines.inc +++ b/DSS/defines.inc @@ -27,9 +27,8 @@ ;LD_DSK EQU 16 ; максимальное количество логических HDD дисков в системе ///////////////////////////////////////////////////////////////////////////////////////////////////////////// - DEFINE USE_FSINFO_FAT32 1 ; недоделано. А нужно ли? DEFINE CHANGE_FREE_CLU_AFTER_DEL 1 - DEFINE FAST_FAT_CASHE 1 ; !FIXIT баги при стирании + DEFINE FAST_FAT_CASHE 1 SERVICE_SECTORS: .FAT12 EQU #0FEF diff --git a/DSS/INTMOUSE.ASM b/DSS/drivers/Input/MOUSE.ASM similarity index 93% rename from DSS/INTMOUSE.ASM rename to DSS/drivers/Input/MOUSE.ASM index 14ba294..87506e2 100644 --- a/DSS/INTMOUSE.ASM +++ b/DSS/drivers/Input/MOUSE.ASM @@ -1,6 +1,6 @@ - + MODULE MOUSE_DRV ;[BEGIN] -;//MODULE: INTMOUSE +;//MODULE: MOUSE_DRV ;//CREATE: 19-05-1998 AUTHOR: Denis Parinov ;//UPDATE: 24-10-1999 DNS Restore module @@ -102,8 +102,7 @@ PORT_MOUSE.Data EQU Z84.SIO.Ch_B.Data ; 4 - CURSOR OFF (UZHE) ; 5 - CURSOR IMAGE VERY BIG -INTMOUS: - BIT 7,C +API: BIT 7,C JR NZ,EMOUSE INC C DEC C @@ -340,7 +339,7 @@ MS_BCUR: POP BC POP HL LD A,5 - JR C,NOSAVEM + JR C,.NOSAVEM LD DE,M_IMAGE EX DE,HL DI @@ -355,7 +354,7 @@ MS_BCUR: LD D,C LD BC,0 XOR A -NOSAVEM: +.NOSAVEM: EI RET @@ -1032,6 +1031,6 @@ M_IMAGE: BLOCK 256-($-M_IMAGE),0 .Size EQU $-M_IMAGE -;//MODULE: INTMOUSE +;//MODULE: MOUSE_DRV ;[END] - + ENDMODULE diff --git a/DSS/Media_drivers/ReScanDRV.ASM b/DSS/drivers/media/ReScanDRV.ASM similarity index 100% rename from DSS/Media_drivers/ReScanDRV.ASM rename to DSS/drivers/media/ReScanDRV.ASM diff --git a/DSS/Media_drivers/fdd-drv.asm b/DSS/drivers/media/fdd-drv.asm similarity index 100% rename from DSS/Media_drivers/fdd-drv.asm rename to DSS/drivers/media/fdd-drv.asm diff --git a/DSS/Media_drivers/ide-drv.asm b/DSS/drivers/media/ide-drv.asm similarity index 100% rename from DSS/Media_drivers/ide-drv.asm rename to DSS/drivers/media/ide-drv.asm diff --git a/DSS/Media_drivers/ram_disk-drv.asm b/DSS/drivers/media/ram_disk-drv.asm similarity index 100% rename from DSS/Media_drivers/ram_disk-drv.asm rename to DSS/drivers/media/ram_disk-drv.asm diff --git a/DSS/Media_drivers/shared-drv.asm b/DSS/drivers/media/shared-drv.asm similarity index 100% rename from DSS/Media_drivers/shared-drv.asm rename to DSS/drivers/media/shared-drv.asm