FN_CRIPT - Acex version

This commit is contained in:
Anatoliy Belyanskiy 2024-01-28 01:51:26 +10:00
parent d1b155f0b2
commit c8d95662c8
10 changed files with 142 additions and 113 deletions

@ -1 +1 @@
Subproject commit d3cdfc6e7644fab96ebe2c6e87959359cda6319c
Subproject commit 84d47b2818758fdceda21ecf2953324c1f339858

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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

View File

@ -229,19 +229,21 @@ EMM.FreeMemRMD:
; ‚室: A - <20>€—€Ž <E28093>Ž—Šˆ
;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
;----------------------------------------------------------------------;
;

View File

@ -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
;----------------------------------------------------------------------;
;

View File

@ -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

View File

@ -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.
;=======================================
;=======================================
;