diff --git a/BOOT/boot.asm b/BOOT/boot.asm index c4a7479..f943d99 100644 --- a/BOOT/boot.asm +++ b/BOOT/boot.asm @@ -40,14 +40,14 @@ major_version equ 1 ; minor_version equ 5 ; мл. номер ;; -org_addr EQU #8000 + CLP_Buffer -code_addr EQU BEGIN -program_start EQU BEGIN -stack_point EQU #C000 -Loader_length EQU 0 +org_addr EQU #8000 + CLP_Buffer +code_addr EQU BEGIN +program_start EQU BEGIN +stack_point EQU #BFFE +Loader_length EQU 0 ; -page_buffer equ 0C000h ; буфер файлов +page_buffer equ #C000 ; буфер файлов ;; include 'Shared_Includes/constants/EXE_Header.z80' diff --git a/Console/build.txt b/Console/build.txt index 801f180..31ff414 100644 --- a/Console/build.txt +++ b/Console/build.txt @@ -1 +1 @@ -47 \ No newline at end of file +48 \ No newline at end of file diff --git a/DSS/DOS5.ASM b/DSS/DOS5.ASM index 5259962..6136a7d 100644 --- a/DSS/DOS5.ASM +++ b/DSS/DOS5.ASM @@ -1068,57 +1068,61 @@ DIRSIZE: WORD 0 ; раз ; Массив лог. номеров банок расширения ДОС BANKTBL: BLOCK USING_MEMPAGES+1,#FF + + ;!TODO +GHANDLE: +; PUSH DE +; PUSH HL +; PUSH IX +; CALL TESTDSK +; JP C,G_HAND1 +; CALL LOADDIR +; POP DE +; LD HL,DIR +; LD BC,#0020 +;G_HAND2: +; LD A,D +; OR E +; JP Z,G_HAND3 +; ADD HL,BC +; DEC DE +; JP G_HAND2 +;G_HAND3: +; EXX +; POP DE +; EXX +;G_HAND4: +; EX DE,HL +; LD A,DIRPAGE +; CALL BANK +; EX DE,HL +; LD DE,HANDTA +; +; DUP 32 +; LDI +; EDUP +; +; EXX +; OUT (SLOT3),A +; LD HL,HANDTA +; +; DUP 32 +; LDI +; EDUP +; +; EXX +; POP BC +; DEC BC +; LD A,B +; OR C +; RET Z +; PUSH BC +; JP G_HAND4 ;G_HAND1 POP IX ; POP HL ; POP DE ; RET - -;GHANDLE PUSH DE -; PUSH HL -; PUSH IX -; CALL TESTDSK -; JP C,G_HAND1 -; CALL LOADDIR -; POP DE -; LD HL,DIR -; LD BC,#0020 -;G_HAND2 LD A,D -; OR E -; JP Z,G_HAND3 -; ADD HL,BC -; DEC DE -; JP G_HAND2 -;G_HAND3 EXX -; POP DE -; EXX -;G_HAND4 EX DE,HL -; LD A,DIRPAGE -; CALL BANK -; EX DE,HL -; LD DE,HANDTA -; -; DUP 32 -; LDI -; EDUP -; -; EXX -; OUT (SLOT3),A -; LD HL,HANDTA -; -; DUP 32 -; LDI -; EDUP - -; EXX -; POP BC -; DEC BC -; LD A,B -; OR C -; RET Z -; PUSH BC -; JP G_HAND4 - ;HANDTA BLOCK 32,0 diff --git a/DSS/DOS_X.ASM b/DSS/DOS_X.ASM index f3d07fb..29576fc 100644 --- a/DSS/DOS_X.ASM +++ b/DSS/DOS_X.ASM @@ -188,11 +188,12 @@ TCOUNT: DW #0000 ;R04H_SEC_X DW 0 ; !FIXIT чёт не используется -TESTDSK LD A,(FatBuffer.DRIVE) - LD C,Dss.DRV.MediaCheck - RST ToDSS.DRV - OR A - RET Z +TESTDSK: + ; LD A,(FatBuffer.DRIVE) + ; LD C,Dss.DRV.MediaCheck + ; RST ToDSS.DRV + ; OR A + ; RET Z RD_BPB: LD C,SLOT3 IN B,(C) PUSH BC @@ -621,7 +622,6 @@ SCANDRV: LD A,(LDRIVE) RET PO EI - RET .ERROR_BOOTDRV_DIES: LD BC,256*COLORS.PAPER.BLUE + BIOS.LP_OPEN_S diff --git a/DSS/DSS-MAIN.ASM b/DSS/DSS-MAIN.ASM index 5e219e9..de73b12 100644 --- a/DSS/DSS-MAIN.ASM +++ b/DSS/DSS-MAIN.ASM @@ -560,8 +560,8 @@ DEPLOY: ; ; LD A,DSS_Error.sys.NOT_ENOUGH_MEMORY ; ; SCF ; RET - -; defb 0 + + ; defb 0 IF ENVVALUE != BUFFER ASSERT "Warning! ENVVALUE != BUFFER" diff --git a/DSS/DSS_MACROSES.Z80 b/DSS/DSS_MACROSES.Z80 index 87c8c70..cf1ca15 100644 --- a/DSS/DSS_MACROSES.Z80 +++ b/DSS/DSS_MACROSES.Z80 @@ -1,3 +1,102 @@ +; + MACRO BUFFER_KEYINTER + _mInfoALIGN 256,0 +;KEYBOARD BUFFER +SBUF: BLOCK 64,0 + + +HEAD DB #00 +HOST DB #00 + +K_LOCK EQU $-KEYFLAG +LANG_L EQU 7 +PAUSE_L EQU 6 +RES5_L EQU 5 +RES4_L EQU 4 +NUM_L EQU 3 +SCRL_L EQU 2 +INS_L EQU 1 +CAPS_L EQU 0 +KEYFLAG DB #02 ;D0-Key Pressed + +K_SHIFT EQU $-KEYFLAG +L_SHIFT EQU 7 +R_SHIFT EQU 6 +X_CTRL EQU 5 +X_ALT EQU 4 +L_CTRL EQU 3 +L_ALT EQU 2 +R_CTRL EQU 1 +R_ALT EQU 0 +KEYCTRL DB #00 + +KEYFLG EQU $-KEYFLAG +FLAG_E0 EQU 7 +FLAG_F0 EQU 6 +FLAG_E1 EQU 5 +FLAG_04 EQU 4 +FLAG_03 EQU 3 +FLAG_02 EQU 2 +FLAG_01 EQU 1 +FLAG_00 EQU 0 + DB #00 + +SOUND_K EQU $-KEYFLAG +FLAG_S7 EQU 7 +FLAG_S6 EQU 6 +FLAG_S5 EQU 5 +FLAG_S4 EQU 4 +FLAG_S3 EQU 3 +FLAG_S2 EQU 2 +SF_ALT EQU 1 +SF_BUFF EQU 0 + DB #03 +; +; D15 - LShift +; D14 - RShift +; D13 - CTRL +; D12 - ALT +; D11 - LCTRL +; D10 - LALT +; D9 - RCTRL +; D8 - RALT +; D7 - Language Lock +; D6 - Reserved +; D5 - Reserved +; D4 - Reserved +; D3 - Num Lock +; D2 - Scroll Lock +; D1 - Insert Lock +; D0 - Caps Lock +; +; D15 - Keystroke +; D14 +; D13 \ +; D12 \ +; D11 -- Position code (0...5Ah) +; D10 / +; D9 / +; D8 +; D7..D0 - ASCII code +; + ENDM +; + +; + MACRO TABLE_XLAT_T + _mInfoALIGN 256,0 +; 0 1 2 3 4 5 6 7 8 9 A B C D E F +XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00 + DB #00,#37,#29,#00,#36,#10,#02,#00,#00,#00,#2A,#1E,#1D,#11,#03,#00 ;10 + DB #00,#2C,#2B,#1F,#12,#05,#04,#00,#00,#38,#2D,#20,#14,#13,#06,#00 ;20 + DB #00,#2F,#2E,#22,#21,#15,#07,#00,#00,#00,#30,#23,#16,#08,#09,#00 ;30 + DB #00,#31,#24,#17,#18,#0B,#0A,#00,#00,#32,#33,#25,#26,#19,#0C,#00 ;40 + DB #00,#00,#27,#00,#1A,#0D,#00,#00,#1C,#34,#28,#1B,#00,#35,#00,#00 ;50 + DB #00,#00,#00,#00,#00,#00,#0E,#00,#00,#51,#00,#54,#57,#00,#00,#00 ;60 + DB #50,#4F,#52,#55,#56,#58,#01,#49,#45,#4D,#53,#4C,#4B,#59,#48,#00 ;70 + DB #00,#00,#00,#41,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 ;80 + ENDM +; ; MACRO _CALC_DEVICE_ENTRY tbl_addr diff --git a/DSS/KEYINTER.ASM b/DSS/KEYINTER.ASM index 6360c36..93883de 100644 --- a/DSS/KEYINTER.ASM +++ b/DSS/KEYINTER.ASM @@ -7,7 +7,7 @@ ;R02 13-04-2023 BAO FIX BUG IN K_CLEAR WITH STACK OVERFLOW ;R01 10-02-2003 DNS Add cursor visualisation ; - _mInfoALIGN 256,0 + _mInfoALIGN 256,0 ;KEYBOARD BUFFER SBUF: BLOCK 64,0 @@ -624,17 +624,17 @@ NSH6 RET ; ;; - _mInfoALIGN 256,0 + _mInfoALIGN 256,0 ; 0 1 2 3 4 5 6 7 8 9 A B C D E F XLAT_T: DB #00,#43,#00,#3F,#3D,#3B,#3C,#46,#00,#44,#42,#40,#3E,#0F,#00,#00 ;00 - DB #00,#37,#29,#00,#36,#10,#02,#00,#00,#00,#2A,#1E,#1D,#11,#03,#00 ;10 - DB #00,#2C,#2B,#1F,#12,#05,#04,#00,#00,#38,#2D,#20,#14,#13,#06,#00 ;20 - DB #00,#2F,#2E,#22,#21,#15,#07,#00,#00,#00,#30,#23,#16,#08,#09,#00 ;30 - DB #00,#31,#24,#17,#18,#0B,#0A,#00,#00,#32,#33,#25,#26,#19,#0C,#00 ;40 - DB #00,#00,#27,#00,#1A,#0D,#00,#00,#1C,#34,#28,#1B,#00,#35,#00,#00 ;50 - DB #00,#00,#00,#00,#00,#00,#0E,#00,#00,#51,#00,#54,#57,#00,#00,#00 ;60 - DB #50,#4F,#52,#55,#56,#58,#01,#49,#45,#4D,#53,#4C,#4B,#59,#48,#00 ;70 - DB #00,#00,#00,#41,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 ;80 + DB #00,#37,#29,#00,#36,#10,#02,#00,#00,#00,#2A,#1E,#1D,#11,#03,#00 ;10 + DB #00,#2C,#2B,#1F,#12,#05,#04,#00,#00,#38,#2D,#20,#14,#13,#06,#00 ;20 + DB #00,#2F,#2E,#22,#21,#15,#07,#00,#00,#00,#30,#23,#16,#08,#09,#00 ;30 + DB #00,#31,#24,#17,#18,#0B,#0A,#00,#00,#32,#33,#25,#26,#19,#0C,#00 ;40 + DB #00,#00,#27,#00,#1A,#0D,#00,#00,#1C,#34,#28,#1B,#00,#35,#00,#00 ;50 + DB #00,#00,#00,#00,#00,#00,#0E,#00,#00,#51,#00,#54,#57,#00,#00,#00 ;60 + DB #50,#4F,#52,#55,#56,#58,#01,#49,#45,#4D,#53,#4C,#4B,#59,#48,#00 ;70 + DB #00,#00,#00,#41,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00,#00 ;80 ; XLAT BIT FLAG_E0,(IX+KEYFLG) JR Z,W_O_E0 diff --git a/DSS/build.txt b/DSS/build.txt index b6e2760..dd4a900 100644 --- a/DSS/build.txt +++ b/DSS/build.txt @@ -1 +1 @@ -242 \ No newline at end of file +254 \ No newline at end of file diff --git a/SHELL/SHELL.ASM b/SHELL/SHELL.ASM index 0f7ab80..499b364 100644 --- a/SHELL/SHELL.ASM +++ b/SHELL/SHELL.ASM @@ -21,16 +21,23 @@ ; ; Program EQU section ;---------------------------------------------------------------------[] -CR EQU 13 -LF EQU 10 +CR EQU 13 +LF EQU 10 +true EQU 1 +false EQU 0 + +; Loader_length EQU 0 +; code_addr EQU shell +; program_start EQU shell +; stack_point EQU #BFFE +; org_addr EQU #8000 + CLP_Buffer ;---------------------------------------------------------------------[] ; -true equ 1 -false equ 0 -work_buffer1 equ entry - (256+128) ; 2-й раб. буфер ;!FIXIT перенести в конец -work_buffer2 equ entry - 256 ; 3-й раб. буфер ;!FIXIT перенести в конец + +work_buffer1 equ entry - (256+128) ; 2-й раб. буфер ; 128 bytes +work_buffer2 equ entry - 256 ; 3-й раб. буфер ; 256 bytes @@ -46,13 +53,15 @@ work_buffer2 equ entry - 256 ; 3- dw 0,0,0 ; резерв dw entry ; адрес загрузки кода dw shell ; адрес передачи управления - dw 0C000h ; адрес стека + dw #BFFE ; адрес стека ds 490 ; резерв ; Версия/Модификация/Билд шелла entry: db "0.01.003" ;!FIXIT перенести в конец +; INCLUDE 'Shared_Includes/constants/EXE_Header.z80' +; ORG org_addr ;============================================================== ; Точка входа в Шелл ;============================================================== @@ -510,4 +519,7 @@ T8C24: db "OFF",0 include "Commands/set.asm" ; задать переменную окружения include "Commands/reboot.asm" ; софт ресет ; + +;work_buffer1 equ $ ; 2-й раб. буфер ; 128 bytes +;work_buffer2 equ work_buffer1+128 ; 3-й раб. буфер ; 256 bytes ; \ No newline at end of file diff --git a/SHELL/build.txt b/SHELL/build.txt index 2ebc651..4e9e288 100644 --- a/SHELL/build.txt +++ b/SHELL/build.txt @@ -1 +1 @@ -56 \ No newline at end of file +63 \ No newline at end of file diff --git a/Shared_Includes b/Shared_Includes index 84a9262..517e3de 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 84a92620cab98867eb5b892d1ae17cd206c2b1bd +Subproject commit 517e3de074aab733f683abb328a4ffc8e0a2b284