From 4fc3220d2891e63116aa8aeb046e74b9b2a88efe Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Tue, 4 Jul 2023 22:58:09 +1000 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C=D1=88?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BOOT/BOOT.ASM | 18 +++++++++--------- BOOT/BOOTNAME.ASM | 4 ++-- BOOT/DSSBOOT.ASM | 4 +--- Console/CONSOLE.ASM | 25 ++++++++++++++----------- DSS/DOS-MAIN.ASM | 32 +++++++++++++++----------------- DSS/DOS5.ASM | 12 ++++++------ DSS/DOS_FM.ASM | 2 +- DSS/DOS_X.ASM | 13 ++++++++----- DSS/DRV-MAIN.ASM | 9 ++++----- DSS/IDE_DRV0.ASM | 6 +++++- DSS/KEYINTER.ASM | 2 +- Shared_Includes | 2 +- 12 files changed, 67 insertions(+), 62 deletions(-) diff --git a/BOOT/BOOT.ASM b/BOOT/BOOT.ASM index 6f51bb4..3fe8460 100644 --- a/BOOT/BOOT.ASM +++ b/BOOT/BOOT.ASM @@ -25,15 +25,15 @@ DEFINE EXEinfoMACRO 1 MACRO _mEXEinfo - BLOCK 10,' ' ; Выравнивание для красивого отображения в HEX - BYTE ' Bootloader ' - BYTE ' installer ' - BYTE ' for DSS. ' - BYTE ' Vasil Ivanov, ' - BYTE ' Anatoliy ' - BYTE ' Belyanskiy. ' - BYTE ' Sprinter Team, ' - BYTE ' 2023 ' + BLOCK 10,' ' ; Выравнивание для красивого отображения в HEX + BYTE ' Bootloader ' + BYTE ' installer ' + BYTE ' for DSS. ' + BYTE ' Vasil Ivanov, ' + BYTE ' Anatoliy ' + BYTE ' Belyanskiy. ' + BYTE ' Sprinter Team, ' + BYTE ' 2023 ' ENDM diff --git a/BOOT/BOOTNAME.ASM b/BOOT/BOOTNAME.ASM index 33a4f70..33ba48a 100644 --- a/BOOT/BOOTNAME.ASM +++ b/BOOT/BOOTNAME.ASM @@ -39,10 +39,10 @@ BOOTDRIVE DB "C:",0 CRLF LD A,#0D LD C,DSS_PUTCHAR - RST #10 + RST ToDSS LD A,#0A LD C,DSS_PUTCHAR - RST #10 + RST ToDSS RET ERROR LD E,A diff --git a/BOOT/DSSBOOT.ASM b/BOOT/DSSBOOT.ASM index f025e93..3ef99b2 100644 --- a/BOOT/DSSBOOT.ASM +++ b/BOOT/DSSBOOT.ASM @@ -24,9 +24,7 @@ CDRIVE EQU #02 -DRIVE: - _mSYSID - +DRIVE: _mSYSID DI LD (DRIVE),A LD C,BIOS.EXT_VERSION diff --git a/Console/CONSOLE.ASM b/Console/CONSOLE.ASM index ea58827..d27dbdb 100644 --- a/Console/CONSOLE.ASM +++ b/Console/CONSOLE.ASM @@ -416,10 +416,13 @@ NOSPC INC HL JP (HL) COMP002 XOR A - LD C,#FF - -.loop: CPI ;!FIXIT CPIR - JP NZ,.loop + ;!TEST + ;LD C,#FF + LD C,A + CPIR +.loop: ;CPI + ;JP NZ,.loop + ; INC HL INC HL @@ -530,6 +533,7 @@ RUN_BAT CALL BATCH JP C,EXEERR RET +; !! Не делать одну команду > 256 символов)) !! BATLIST DZ 'PAUSE' : DW CPAUSE DZ 'REM' : DW CREM CMDLIST DZ 'CD' : DW CCHDIR @@ -1274,13 +1278,12 @@ PDIGIT LD DE,10000 LD A,L ADD A,#30 -; !FIXIT - LD (IX+0),A - INC IX - LD (IX+0),0 -; на это: - ; LD (IX+0),A - ; LD (IX+1),0 + ;!TEST + ;LD (IX+0),A + ;INC IX + ;LD (IX+0),0 + LD (IX+0),A + LD (IX+1),0 RET DIG XOR A diff --git a/DSS/DOS-MAIN.ASM b/DSS/DOS-MAIN.ASM index 942a6d5..6fc4f92 100644 --- a/DSS/DOS-MAIN.ASM +++ b/DSS/DOS-MAIN.ASM @@ -251,7 +251,7 @@ PORTAL.outMAIN: ; .BPB_PHISICAL_DRIVE_NUMBER: WORD #80 ; +#24 PHISICAL DRIVE NUMBER .BPB_EXT_BOOT_RECORD_SIGNATURE: BYTE #29 ; +#26 EXTENDED BOOT RECORD SIGNATURE .BPB_SERIAL_NUMBER: DWORD 0 ; +#27 VOLUME SERIAL NUMBER -.BPB_LABEL: TEXT 8,{"NO NAME"," "} ; +#2B DISK LABEL +.BPB_LABEL: TEXT 11,{"NO NAME"," "} ; +#2B DISK LABEL .ID_FAT: TEXT 8,{"FAT16"," "} ; +#36 FILE SYSTEM ID ( BPB_FS_ID ) ENDS */ @@ -494,27 +494,25 @@ SECBUF EQU BUFFER ; !!!!! эта процедура затрётся после исполнения DEPLOY: ;Allocate memory - LD BC,USING_MEMPAGES*256+#C2 - RST ToBIOS ;GET DSS PAGES HANDLE + LD BC,USING_MEMPAGES*256 + BIOS.GetMem + RST ToBIOS RET C ;R10 - LD HL,BANKTBL LD C,A - LD B,#FF -.loop: INC B - PUSH BC - PUSH HL + + IN A,(SLOT3) + PUSH AF + IN A,(SLOT0) + LD (DRV.MAIN_PG_NUMBER),A + OUT (SLOT3),A + LD A,C - LD C,#C4 ; !FIXIT на .GetMemBlkPages - пихать эту страницу в слот 1 (она будет и в 0 слоте и в 1) и вызывать биос + LD HL,BANKTBL + #C000 + LD C,BIOS.GetMemBlkPages RST ToBIOS - POP HL - POP BC - LD (HL),A - INC HL - JR NC,.loop -; - IN A,(SLOT0) - LD (DRV.MAIN_PG_NUMBER),A + POP AF + OUT (SLOT3),A + LD A,DRVPAGE CALL BANK PUSH AF diff --git a/DSS/DOS5.ASM b/DSS/DOS5.ASM index 7db6a7c..9efa26f 100644 --- a/DSS/DOS5.ASM +++ b/DSS/DOS5.ASM @@ -878,12 +878,12 @@ LOADDIR: LD A,DIRPAGE CALL BANK PUSH AF - ;!FIXIT слишком долго - ; LD HL,#C000 - ; LD DE,#C001 - ; LD BC,#3FFF - ; LD (HL),L - ; LDIR + ;!TEST no ldir + ;LD HL,#C000 + ;LD DE,#C001 + ;LD BC,#3FFF + ;LD (HL),L + ;LDIR ; LD A,(FatBuffer.DRIVE) LD (IY+_sFM.DRIVE),A diff --git a/DSS/DOS_FM.ASM b/DSS/DOS_FM.ASM index 1fe37a6..e5a7152 100644 --- a/DSS/DOS_FM.ASM +++ b/DSS/DOS_FM.ASM @@ -62,7 +62,7 @@ FM_BUF: _sFM SET_FM: _mFM_FIND - LD A,0 ;!FIXIT номер ошибки + LD A,0 ;!HARDCODE номер ошибки RET NZ ABS_FM LD A,DSS_Error.sys.INVALID_HANDLE SCF diff --git a/DSS/DOS_X.ASM b/DSS/DOS_X.ASM index cf08e0e..8e9c062 100644 --- a/DSS/DOS_X.ASM +++ b/DSS/DOS_X.ASM @@ -443,6 +443,7 @@ FatBuffer: ; DIRSPEC: DB '\' + ;BLOCK DIRSPEC.DEPTH,0 ;????? Было 255, у Саймана 256 BLOCK DIRSPEC.DEPTH-1,0 ;????? Было 255, у Саймана 256 ; @@ -520,12 +521,14 @@ BACK_CUR_PATH: ;R12 SCANDRV: - DI ;!FIXIT в DRV-MAIN могут быть проблемы с прерываниями - LD A,#FF - LD C,#FF - RST #18 + ;!TEST в DRV-MAIN могут быть проблемы с прерываниями + ;DI + LD A,Dss.DRV.RescanDRV + LD C,Dss.DRV.RescanDRV + RST ToDSS.DRV LD (LDRIVE),A - EI + ;EI + ; RET ;R12 diff --git a/DSS/DRV-MAIN.ASM b/DSS/DRV-MAIN.ASM index 93ad3c2..45824a0 100644 --- a/DSS/DRV-MAIN.ASM +++ b/DSS/DRV-MAIN.ASM @@ -113,15 +113,15 @@ RST_30: ; <[MAIN INT]> ; BLOCK #38-$,#FF ; A0038: ; -// JP RST_38 ; -; RST_38: ; +; JP RST_38 ; +; RST_38: ; ; INT_: PUSH AF ; ; EX AF,AF' ; ; PUSH AF ; ; PUSH BC ; ; PUSH DE ; ; PUSH HL ; -; EXX ; +; EXX ; ; PUSH BC ; ; PUSH DE ; ; PUSH HL ; @@ -135,7 +135,7 @@ A0038: ; ; POP HL ; ; POP DE ; ; POP BC ; -; EXX ; +; EXX ; ; POP HL ; ; POP DE ; ; POP BC ; @@ -227,7 +227,6 @@ LDRIVE DB #00 INCLUDE 'disk_x.asm' INCLUDE 'ide_drv0.asm' INCLUDE 'fdd_drv0.asm' - ;INCLUDE 'ram_drv0.asm' INCLUDE 'ram_drv1.asm' DB 0 diff --git a/DSS/IDE_DRV0.ASM b/DSS/IDE_DRV0.ASM index b3986db..7acbb78 100644 --- a/DSS/IDE_DRV0.ASM +++ b/DSS/IDE_DRV0.ASM @@ -471,7 +471,11 @@ RESE_H XOR A STAT_H XOR A RET -CHEK_H LD A,#FF +CHEK_H: + ;!TEST + ;LD A,#FF + XOR A + ; AND A RET diff --git a/DSS/KEYINTER.ASM b/DSS/KEYINTER.ASM index 48bf466..7a61a2b 100644 --- a/DSS/KEYINTER.ASM +++ b/DSS/KEYINTER.ASM @@ -312,7 +312,7 @@ TESTKEY LD HL,HOST ; RET ; K_C3 LD C,B -; RST #10 +; RST ToDSS ; RET ;small optimization diff --git a/Shared_Includes b/Shared_Includes index ced877c..3fa91af 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit ced877c153d64941d9ab3a1808d21bc559113e4b +Subproject commit 3fa91af2db4f96a96f3342d7291deb4d63a90591