From c8d95662c879c4e9b02a2c36aaa5b3f5b84440b3 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Sun, 28 Jan 2024 01:51:26 +1000 Subject: [PATCH] FN_CRIPT - Acex version --- Shared_Includes | 2 +- src/ZX_ROMS/new/SP_TRDOS.bin | Bin 16384 -> 16384 bytes src/ZX_ROMS/new/_SP_TRDOS.bin | Bin 16384 -> 0 bytes src/ZX_ROMS/new/rom4.bin | Bin 3956 -> 0 bytes src/bios/exp/DCP.ASM | 5 +- src/bios/exp/FUNC_4x.ASM | 2 + src/bios/exp/FUNC_RAM_ROM_DRV.ASM | 109 ++++++++++++++-------------- src/bios/exp/FUNC_SERVICE.asm | 9 ++- src/bios/exp/FUNC_SYS.ASM | 115 +++++++++++++++++++----------- src/bios/shared/VERSION.inc | 13 +--- 10 files changed, 142 insertions(+), 113 deletions(-) delete mode 100644 src/ZX_ROMS/new/_SP_TRDOS.bin delete mode 100644 src/ZX_ROMS/new/rom4.bin diff --git a/Shared_Includes b/Shared_Includes index d3cdfc6..84d47b2 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit d3cdfc6e7644fab96ebe2c6e87959359cda6319c +Subproject commit 84d47b2818758fdceda21ecf2953324c1f339858 diff --git a/src/ZX_ROMS/new/SP_TRDOS.bin b/src/ZX_ROMS/new/SP_TRDOS.bin index d27c2b3831399ca98ff77a80e3f3c5841150d3e3..e074c44769c2dac4e908fb84130534e369285658 100644 GIT binary patch delta 85 zcmV-b0IL6hfB}Gj0k9JU0j#qW1fv20v9q`al{FwTASxCE1}I}GATlsAGayrNa%paK rWpW@?Wnpa=1r92cY&JS_pHlbbvxlfOK~0e!QCJ#_*Hk37?S@yY-AL>nFe diff --git a/src/ZX_ROMS/new/_SP_TRDOS.bin b/src/ZX_ROMS/new/_SP_TRDOS.bin deleted file mode 100644 index 787e9717a5752bc7048c68aa446cca92524de409..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 lW>!v#$n+^_?F7N{{ey)(?I|L diff --git a/src/ZX_ROMS/new/rom4.bin b/src/ZX_ROMS/new/rom4.bin deleted file mode 100644 index bbdc3216eb319fb613f06a3411e54c7cb2fb485a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 zcmeHKZA@F&89w*gzNQJrHi;7lSbQ!Ho%x6{PD8+pO&qs$S!LKlm#$-K$A^*G)m3-c>=e*}R?|JV%vH$>}PjOCefh*x}SFxaO^dXoR6}<nylyB ztlUyGR%PX)DVxgd=91BJD@TrSXbCilcUU>hWYw0WCbg0+far^giy{cZEu^sYxDD`r zn~Ko!{v`jLm7_(c&Q^@fSvp3VtT~j9}P7 z>s}LfD4;*__hxduSLB7WB$jj`xrltNon;)JE_JnHQ=Y_H`>KB#Cbnihy2?G4+u(tRLg2$kb=$pMOTytkq*`-FQ*jRzzfZKj25=O_`>}jB4hjP09NmxyJZP zNa+wy>ZItNNizpF=+WC>%#7WBXL0QIPigiOoV|>ZzgR7QKTN(U(W*$}8smZYn4v}X z1DxE%r7e2KZ>VOz1NF=)h|%m-oUt3!E&7t$>$Syf9KX_9a=lo)g0y1oC(U~8O@xT~ z<8t;L9Qoc$`Qr^rr4m`m5`*N17QgYU;)wQInkgCjQw5HMXHn!}#UFBDPvE3`RhHp^9;8U+C-isQn?MTvA(D ztEr{5b0v|v(n#=op%=!fvQSt;eeD7Tf>pulU`_CF&=UMc&>DR5g4(^hOx{MXsMvj% z#odYr!EQARIw)aGC66@h#t2NU1VSY)za?BH2)omg1ep$l%qICXL+2+7#S-bmnSw?l zO(^Vx173&MbJl$hw!V6iCPSR?Lj^(BNY$zJW$X`9ek!7#`u7SsBM1d*f=)AghoD@L znQ&X-9r6LeUMCW89M&~99yyGLW6;@Zhi$KPbbE(ko69%k?s7q=*W(`W-p@_#A^)D6 zQwro&@N7r_032|k!Fv{Vd3*Z?2V6dQjr=&D*0JreDBx+k6XqUKZ{5~Q!JF(4h;Ti? z!u41o+bpVhPIVHjLT33Wo0>F#lr2)H#Ii6~lgBgChK(e0sp+-pa4f=~UJM8D@Eg+O z;+De0fW|Tzeni=zA^ydWFfTv_dKCk4)LDV}vEkhAXN2-Y^1m&U_wpp$oZofiiA^lA zKPMi|COiw}tdRghr$UrC`xYknG&xoHOI{uX!tYHo6CuL19$R&I7!~x?)6dk}pP#6D zFQx`yg@5k;U13@&7v8Os*cEHv~zA49Q=UhBanrW^y$X*KO!# zs?YysQF~v!E=Q*q?~I|J>OTD}x&xzWM)qf0Wdok)J8?5{kxrP8)B(hdg2ia%UKt4F^9L$?{lAfWx&u?nd{~naXbb){m|~|_PK_|#s{MW<0y`D> M|5X6}A$$P-3#Ckm+5i9m diff --git a/src/bios/exp/DCP.ASM b/src/bios/exp/DCP.ASM index 162b162..57b2668 100644 --- a/src/bios/exp/DCP.ASM +++ b/src/bios/exp/DCP.ASM @@ -504,8 +504,8 @@ DCP_CONFIG: AND A JP Z,PORTS_INIT - LD A,R - DI + LD A,R + DI PUSH AF PUSH IX @@ -526,7 +526,6 @@ DCP_CONFIG: RET PO EI RET - .PARSE_TABLE: LD A,L AND E diff --git a/src/bios/exp/FUNC_4x.ASM b/src/bios/exp/FUNC_4x.ASM index 6163ae0..68a7e59 100644 --- a/src/bios/exp/FUNC_4x.ASM +++ b/src/bios/exp/FUNC_4x.ASM @@ -565,6 +565,8 @@ FN_HDD_INIT: OUT (C),B INC A JR Z,FN_HDD_PART + + ; !FIXIT сделать тут выбор первого попавшегося из SYS.IDE_0-3 CALL TEST_HDD_DRV SCF RET NZ diff --git a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM index 1ada46a..da58801 100644 --- a/src/bios/exp/FUNC_RAM_ROM_DRV.ASM +++ b/src/bios/exp/FUNC_RAM_ROM_DRV.ASM @@ -229,19 +229,21 @@ EMM.FreeMemRMD: ; Вход: A - НАЧАЛО ЦЕПОЧКИ ;EMM_FN3M: EMM.FreeMem: - AND A + AND A SCF - RET Z + RET Z + ; + LD L,A CP ZX_RAM_ID CALL Z,SET_ROM_FLAG_ZX - LD L,A - IN A,(SLOT3) - EX AF,AF' - LD A,SYS_PAGE - OUT (SLOT3),A + ; + IN A,(SLOT3) + EX AF,AF' + LD A,SYS_PAGE + OUT (SLOT3),A - LD H,high (SYS_PAGE.RAMD_FAT); - #4000 - #4000) ; !FIXIT SAFE_RGADR + - LD A,L + LD H,high (SYS_PAGE.RAMD_FAT); - #4000 - #4000) ; !FIXIT SAFE_RGADR + + LD A,L EMM_F3M_L1: LD L,A LD A,(HL) ; следующий блок @@ -253,14 +255,13 @@ EMM_F3M_L1: EX AF,AF' OUT (SLOT3),A - XOR A ;!FIXIT недокументировано - ;AND A + XOR A ; no error code RET EMM_FN3M_ERR: EX AF,AF' OUT (SLOT3),A - LD A,2 ;!FIXIT недокументировано + LD A,2 ;!HARDCODE error code SCF RET ;----------------------------------------------------------------------; @@ -710,7 +711,7 @@ ROM_DISK: PUSH BC LD A,E - AND 63 ; ADRESS in ROM-Page + AND #3F ; ADRESS in ROM-Page PUSH AF ; сохранить адрес EX DE,HL ; DE - адрес буфера @@ -732,73 +733,73 @@ ROM_DISK: ; B - число секторов ; A - ROM-Page .loopRead: - PUSH HL ; откуда - PUSH DE ; куда + PUSH HL ; откуда + PUSH DE ; куда - LD HL,-.stackDepth - .readProcedure.size ; memory stack use! - ADD HL,SP ; stack + LD HL,-.stackDepth - .readProcedure.size ; memory stack use! + ADD HL,SP ; stack - PUSH HL ; адрес программы .readProcedure + PUSH HL ; адрес программы .readProcedure - LD DE,.readProcedure ; перенести программу на стек + LD DE,.readProcedure ; перенести программу на стек EX DE,HL LD BC,.readProcedure.size - LDIR ; программа на стеке - LD BC,#100 ; длина сектора - RET ; исполнить программу .readProcedure, на стеке адреса буфера и ROM + LDIR ; программа на стеке + LD BC,#100 ; длина сектора + RET ; исполнить программу .readProcedure, на стеке адреса буфера и ROM ; DE - next address ; HL - ROM address .readNext: - POP BC ; число секторов + POP BC ; число секторов - INC C ; счетчик считанных секторов - DEC B ; сектора кончились? + INC C ; счетчик считанных секторов + DEC B ; сектора кончились? JR Z,.normExit - BIT 6,H ; чтение не закончено + BIT 6,H ; чтение не закончено - PUSH BC ; сохранить счетчики - JR Z,.loopRead ; читать дальше + PUSH BC ; сохранить счетчики + JR Z,.loopRead ; читать дальше POP BC - POP HL ; номер сектора + POP HL ; номер сектора LD A,B LD B,0 ADD HL,BC - LD B,A ; вычислить след.сектор + LD B,A ; вычислить след.сектор - EX DE,HL ; теперь HL - адрес, DE сектор, B - сколько еще читать + EX DE,HL ; теперь HL - адрес, DE сектор, B - сколько еще читать - JP .loop ; начать все снова! + JP .loop ; начать все снова! ; чтение закончено -.normExit: - POP HL ; сектор, откуда велось чтение - ADD HL,BC ; по возврату: HL - след.адрес - EX DE,HL ; DE - след.сектор - AND A - RET +.normExit: + POP HL ; сектор, откуда велось чтение + ADD HL,BC ; по возврату: HL - след.адрес + EX DE,HL ; DE - след.сектор + AND A + RET ; ошибка .errorExit: ; !TODO сделать, чтоб на выходе показывалось количество прочитанных секторов - POP BC - POP DE - SCF - RET + POP BC + POP DE + SCF + RET ; процедура, переносимая на стек для чтения из ROM-Disk ; осторожнее с PUSH, если надо много, то увеличивай .stackDepth .readProcedure: - POP DE ; куда - POP HL ; откуда - OUT (ROM.SLOT0),A ; ROM_PAGE - LDIR ; здесь читается из ROM-Disk - LD B,A - XOR A - OUT (ROM.SLOT0),A - OUT (SYS_PORT.ROM),A - LD A,B - JP .readNext -.stackDepth EQU 8 ; расстояние от конца процедуры до вершины стека. -.readProcedure.size EQU $-.readProcedure + POP DE ; куда + POP HL ; откуда + OUT (ROM.SLOT0),A ; ROM_PAGE + LDIR ; здесь читается из ROM-Disk + LD B,A + XOR A + OUT (ROM.SLOT0),A + OUT (SYS_PORT.ROM),A + LD A,B + JP .readNext +.stackDepth EQU 8 ; расстояние от конца процедуры до вершины стека. +.readProcedure.size EQU $-.readProcedure ;----------------------------------------------------------------------; ; diff --git a/src/bios/exp/FUNC_SERVICE.asm b/src/bios/exp/FUNC_SERVICE.asm index afe091e..b873ab9 100644 --- a/src/bios/exp/FUNC_SERVICE.asm +++ b/src/bios/exp/FUNC_SERVICE.asm @@ -406,17 +406,16 @@ REINIT: DEC B ; ;----------------------------------------------------------------------; SET_ROM_FLAG_ZX: - LD C,A - IN A,(SLOT3) - PUSH AF + EX AF,AF' + IN A,(SLOT3) + EX AF,AF' LD A,Spec_Page OUT (SLOT3),A XOR A LD (Spec_Page.flag_Z),A LD (Spec_Page.flag_X),A - POP AF + EX AF,AF' OUT (SLOT3),A - LD A,C RET ;----------------------------------------------------------------------; ; \ No newline at end of file diff --git a/src/bios/exp/FUNC_SYS.ASM b/src/bios/exp/FUNC_SYS.ASM index dc29477..953a927 100644 --- a/src/bios/exp/FUNC_SYS.ASM +++ b/src/bios/exp/FUNC_SYS.ASM @@ -23,27 +23,6 @@ EMM.GetBanksPorts: RET ;84t .error: SCF RET ;74t - -; old version - ; LD C,SLOT0 - ; IN B,(C) - ; AND A - ; RET Z ;34t - ; LD C,SLOT1 - ; IN B,(C) - ; DEC A - ; RET Z ;62t - ; LD C,SLOT2 - ; IN B,(C) - ; DEC A - ; RET Z ;90t - ; LD C,SLOT3 - ; IN B,(C) - ; DEC A - ; RET Z ;118t - ; SCF - ; RET ;150t - ;----------------------------------------------------------------------; ;----------------------------------------------------------------------; @@ -75,18 +54,12 @@ FN_VERSION: ;----------------------------------------------------------------------; ;----------------------------------------------------------------------; +; [ ] 28/01/24 добавлена подфункция выдачи инфы про Acex FN_CRIPT: - DEC B - JR Z,.board_id - DEC B - SCF - RET NZ - ; [ ] 25/01/24 -.Acex_ver: - ;!TODO - AND A - RET + DJNZ .Acex_ver ; + ; BoardID_start old address #312A + ; BoardID_end old address #312D .board_id: LD HL,(ROM_NUMBER.part1) ;rdlow-ok LD A,(ROM_NUMBER.part2) ;rdlow-ok @@ -94,8 +67,73 @@ FN_CRIPT: LD DE,(BoardID.end) ;rdlow-ok AND A RET -; BoardID_start old address #312A -; BoardID_end old address #312D + ; +.error: LD A,BIOS.Error.InvalidSubFunction + SCF + RET + ; +.Acex_ver: + DJNZ .error + PUSH HL + LD A,R + DI + PUSH AF + ; + LD HL,-.stackDepth - .readProcedure.size ; memory stack use! + ADD HL,SP + PUSH HL ; адрес программы .readProcedure + LD DE,.readProcedure ; перенести программу на стек + EX DE,HL + LD BC,.readProcedure.size + LDIR ; программа на стеке + LD A,+(12 xor %0000'1000) ; !HARDCODE bitstream page in rom + RET +.return:; + POP AF + JP PO,.no_EI + EI +.no_EI: CALL .choose_chip + POP DE + LD BC,.chip_ID_TXT.RecordSize + LDIR + RET + ; +.choose_chip: + XOR A + LD HL, - ACEX.Chip_ID.K30 + ADD HL,DE + LD HL,.chip_ID_TXT.K30 + RET Z + INC A + LD HL, - ACEX.Chip_ID.K50 + ADD HL,DE + LD HL,.chip_ID_TXT.K50 + RET Z + POP HL ; баланс стека +.error_unknownChip: + SCF + POP HL + LD A,BIOS.Error.UnknownDevice + RET + ; +; процедура, переносимая на стек для чтения Acex ID +; осторожнее с PUSH, если надо много, то увеличивай .stackDepth +.readProcedure: + OUT (ROM.SLOT0),A ; ROM_PAGE + LD DE,(#100 + 3) ; !HARDCODE здесь читается Acex ID + XOR A + OUT (ROM.SLOT0),A + OUT (SYS_PORT.ROM),A + JP .return +.stackDepth EQU 2 ; расстояние от конца процедуры до вершины стека. +.readProcedure.size EQU $-.readProcedure + ; +.chip_ID_TXT: +.chip_ID_TXT.K30: DZ "K30" +.chip_ID_TXT.RecordSize EQU $-.chip_ID_TXT +.chip_ID_TXT.K50 DZ "K50" +;.chip_ID_TXT.K100 DZ "K100" +.chip_ID_TXT.Size EQU $-.chip_ID_TXT ;----------------------------------------------------------------------; ;----------------------------------------------------------------------; @@ -201,7 +239,7 @@ INIT_VSyncAndWaits: .cmos_OK: and CMOS.Cell.ScreenSET.Mask.Sinc - bit 6,a + and #40 ld a,3 ; 320 lines & no waits jr z,.setVSyncAndWaits dec a ; 312 lines & no waits @@ -444,24 +482,21 @@ LOOP_EQ: ; ; START_DI: ; PUSH AF ; LD A,R -; JP PE,XX_DI -; LD A,R -; XX_DI: LD A,#80 +; LD A,#80 ; JP PE,XX_DI2 ; XOR A ; XX_DI2: LD R,A ; DI ; POP AF ; RET - +; ; END_DI: PUSH AF ; LD A,R -; BIT 7,A +; AND #80 ; JR Z,XX_DI3 ; EI ; POP AF ; PE ; RET - ; XX_DI3: DI ; POP AF ; PO ; RET diff --git a/src/bios/shared/VERSION.inc b/src/bios/shared/VERSION.inc index d865884..2815b37 100644 --- a/src/bios/shared/VERSION.inc +++ b/src/bios/shared/VERSION.inc @@ -28,14 +28,7 @@ Disk_subsystem_ver_hex EQU ROM_ID.VER*256+ROM_ID.MOD DEFINE Disk_subsystem_ver_txt '0'+ROM_ID.VER, '.', '0'+ROM_ID.MOD/10, '0'+ROM_ID.MOD-(ROM_ID.MOD/10)*10 ;--------------------------------------- - DEFINE SPTeam_year '2023' + DEFINE SPTeam_year '2024' DEFINE SetupVer '1.60' - - -; -;2.48 New BIOS for Sp2000 -;2.50 02-08-2001 ADD BUILD-IN CD DRIVER (Not release) -;2.51 14-09-2001 Removed 2 IDE (if with_2ide) and added print board serial number -;2.52 Add new items to SETUP Utility for screen position. -;2.53 Add CMOS install routine. Disabled TRDOS install. -;======================================= \ No newline at end of file +;======================================= +; \ No newline at end of file