чёт поковырял

This commit is contained in:
Tolik 2024-08-07 23:08:26 +10:00
parent 2d0ee5e639
commit 8cc1bd11af
13 changed files with 310 additions and 326 deletions

@ -1 +1 @@
Subproject commit 93ab93917db326a86a0ffecc02a62f6f6ef7a938
Subproject commit 1535d92eeecb8aa730ae7fe6eb82e9d32a4acb4d

View File

@ -137,7 +137,9 @@
OUTEND
;---------------------------------------
;
EXPORT ROM_NUMBER ; !FIXIT part1, part2 ¤«ï Flasher
;EXPORT ROM_NUMBER ; !FIXIT part1, part2 ¤«ï Flasher
EXPORT BOARD_INFO.number
EXPORT BOARD_INFO.type
EXPORT BoardID.start
EXPORT BoardID.end
EXPORT FN_CRIPT.cnf

View File

@ -43,8 +43,6 @@
Set_Block 'ROM free space: ', #4000
;
;PAGE 1
; INCBIN 'Build/Bin/LOGO_PAL.BIN'
; INCBIN 'Build/Bin/LOGO_DAT.BIN'
INCBIN 'Build/Bin/LOGO.BIN'
Set_Block 'LOGO free space: ', #8000
;
@ -76,7 +74,6 @@
;PAGE 9-11 (#09, #0A, #0B) Recovery image part 2
INCBIN IMG_RECOVERY,#C000,#C000
DISPLAY "ROM Disk recovery part2, pages 9..11: 2x4000..3x0000"
Set_Block 'Empty space: ', #30000
;
;PAGE 12-15 (#0C, #0D, #0E, #0F)

View File

@ -12,14 +12,13 @@
; CCED/AAAAAAAAA
; NN1OW116517210
; FF2SR54 3
;DCP_DATA: 108
; ....0..11.1110
; WORD %00000001101110 ; -  ¤à¥á
; 108
;DCP_DATA: ....0..11.1110
; WORD %00000001101110 ; - b13..12 cnf, b11 pent512, b10 dos, b9 r/w, b8..0  ¤à¥á
; WORD %00001001101111 ; - ¬ áª  - 0 ¨§¬¥­ï¥¬ë¥ ¡¨âë, 1 ­¥¨§¬¥­ï¥¬ë¥
; BYTE ACEX.Border_FE ; - ¯®àâ
; DCP END MARKER
; DW 0,0,0
;-----------------------------------------------------------------------;
;
;
@ -135,30 +134,6 @@
DB ACEX.CMOS_DATA.WRITE
;
;---------HDD[v]
/*
Write:
.Data EQU #0150 ; cnf 20 ; HDW_DAT W170 ; #1F0 Data register
.Features EQU #0151 ; cnf 21 ; HDW_ERR W171 ; #1F1 Features register
.Counter EQU #0152 ; cnf 22 ; HDW_CNT P_S_CNT W172 ; #1F2 Counter register
.Sector EQU #0153 ; cnf 23 ; HDW_SEC P_S_NUM W173 ; #1F3 Sector register
.CylinderLow EQU #0154 ; cnf 24 ; HDW_CLL P_C_LOW W174 ; #1F4 Cylinder Low register
.CylinderHigh EQU #0155 ; cnf 25 ; HDW_CLH P_C_HIG W175 ; #1F5 Cylinder High register
.DeviceHead EQU #4152 ; cnf 26 ; HDW_DRV P_HD_CS ; #1F6 Device/Head register
.Command EQU #4153 ; cnf 27 ; HDW_COM P_CMD ; #1F7 Command register
.DeviceControl EQU #4154 ; cnf 28 ; ; #3F6 Device Control register
Read:
.Data EQU #0050 ; cnf 20 ; HDR_DAT P_DATS R170 ; #1F0 Data register
.Error EQU #0051 ; cnf 21 ; HDR_ERR P_ERR R171 ; #1F1 Error register
.Counter EQU #0052 ; cnf 22 ; HDR_CNT R172 ; #1F2 Counter register
.Sector EQU #0053 ; cnf 23 ; HDR_SEC R173 ; #1F3 Sector register
.CylinderLow EQU #0054 ; cnf 24 ; HDR_CLL R174 ; #1F4 Cylinder Low register
.CylinderHigh EQU #0055 ; cnf 25 ; HDR_CLH R175 ; #1F5 Cylinder High register
.Control EQU #4052 ; cnf 26 ; HDR_DRV R176 ; #1F6 Device/Head register
.Status EQU #4053 ; cnf 27 ; HDR_CTL P_HDST R177 ; #1F7 Status (Control) register
.AltStatus EQU #4054 ; cnf 28 ; ; #3F6 Alternate Status register
.DrvAddress EQU #4055 ; cnf 29 ; ; #3F7
*/
DW %00'000'0'0100'0000
DW %11'000'0'0110'1111
DB ACEX.IDE_DATA_1F0
@ -465,7 +440,7 @@ Read:
DW %11'010'0'0110'1010
DW %11'010'0'0110'1111
DB ACEX.SLOT3
; DCP END MARKER
; DCP END MARKER
DW 0,0,0
;-----------------------------------------------------------------------;
;

View File

@ -15,9 +15,12 @@ EXP_START:
JP GLOBAL_RESET
;---------------------------------------
ROM_NUMBER:
.part1: DW MotherBoardID
.part2: DB 0
;ROM_NUMBER:
;.part1: DW MotherBoardID
;.part2: DB 0
BOARD_INFO:
.number: DW MotherBoardID
.type: DB MotherBoardType
;---------------------------------------
;---------------------------------------
@ -305,20 +308,19 @@ NO_RESTART:
OUT (Z84.SIO.Ch_A.Ctrl),A
LD A,#62
OUT (Z84.SIO.Ch_A.Ctrl),A
;
LD A,#CF ; BITS I/O
OUT (Z84.PIO.Port_A.Command),A
XOR A
OUT (Z84.PIO.Port_A.Command),A
OUT (Z84.PIO.Port_A.Data),A ; PRINTER - PORT - all zeros
; -¨­¨æ¨ «¨§ æ¨ï á¨á⥬­ëå ¯®à⮢ Z84C15-
LD BC,#FF*256 + Z84.SYS.Control
XOR A ; Z84.REG.WaitState_Ctrl
OUT (C),A ; Z84.SYS.Control
INC C ; Z84.REG.WaitState_MemBound
OUT (C),A ; Z84.SYS.Data ; set 0 Waits
;
DEC C
LD A,3 ; Z84.REG.Misc_Ctrl
OUT (C),A ; Z84.SYS.Control
@ -767,14 +769,14 @@ set_config:
OUT (RGMOD),A
OUT (SLOT3),A
OUT (SLOT0),A
LD A,5
LD A,5 ; !HARDCODE page 5
OUT (SLOT1),A
LD A,2
LD A,2 ; !HARDCODE page 2
OUT (SLOT2),A
;*********************************
; Don't use stack (SP) before this point if it`s normal booting!!!
LD SP,#BFFE ; <20> ç «® ¨á¯®«ì§®¢ ­¨ï á⥪ !!!
LD SP,#C000 ; <20> ç «® ¨á¯®«ì§®¢ ­¨ï á⥪ !!!
PUSH HL ; á®åà ­¨âì ­®¬¥à ¯à®è¨¢ª¨
CALL PORTS_INIT ; ¨­¨æ¨ «¨§¨à®¢ âì ¯®àâë
@ -782,20 +784,7 @@ set_config:
OUT (BorderColor),A
CALL EMM.CheckColdInit ; ¨­¨æ¨ «¨§ æ¨ï ¯ ¬ïâ¨
POP HL ; ª®­ä¨£ãà æ¨ï
JR Reset_Handler.start
; *************************************
; ‘ç¨â ¥¬, çâ® ¢å®¤ ¢ SETUP ¢á¥£¤  !!!
; *************************************
; LD A,H
; CP #FF
; JR NZ,NO_SETUP_1
; LD A,L
; JR NZ,NO_SETUP_2
;[---------------------------------------------------------------------]
; JR Reset_Handler.start
MODULE Reset_Handler
start: DI
@ -908,7 +897,7 @@ init_rom_address EQU #8200 ;!HARDCODE
LD BC,RAM_BIOS_PROG.Length
LDIR
*/
No_Need_To_Load_ZXROMS:
;No_Need_To_Load_ZXROMS:
POP AF
OUT (SLOT3),A
;-------------------------------------------------------------------------------------------------------------------;

View File

@ -256,8 +256,7 @@ FN_HDD_READ_NEXT:
RET C
CALL NEXT_ADD_SEC
JR FN_HDD_READ.L1
;
; HL - BUFER, A - PAGE
FN_HDD_READ:
AND A
@ -488,7 +487,7 @@ FN_HDD_TEST_IDE:
; <20>¥ ¤®«¦­  ¯®àâ¨âì ॣ¨áâà E!!!
TEST_HDD_DRV:
; EXP_HDD.ASM variant
LD HL,#01FE ; ?????
LD HL,#01FE
LD BC,IDE.Write.Counter
OUT (C),L
IF IDE_Optimization
@ -496,27 +495,27 @@ TEST_HDD_DRV:
OUT (C),H ; IDE.Write.Sector
;
DEC C
INC B
IN A,(C) ; ????? IDE.Write.Counter+#100
DEC B
IN A,(C) ; IDE.Read.Counter
CP L
RET NZ
INC C
ELSE
LD BC,IDE.Write.Sector
OUT (C),H
LD BC,IDE.Write.Counter+#100
LD BC,IDE.Read.Counter
IN A,(C)
CP L
RET NZ
LD BC,IDE.Write.Sector+#100
LD BC,IDE.Read.Sector
ENDIF
IN A,(C) ; ????? IDE.Write.Sector+#100
IN A,(C) ; IDE.Read.Sector
CP H
RET
; TEST_HDD_DRV:
; ; EXTENDED.ASM variant
; LD HL,#00FF ;?????
; LD HL,#00FF
; LD BC,IDE.Write.CylinderLow
; OUT (C),L
; IF IDE_Optimization
@ -525,7 +524,7 @@ TEST_HDD_DRV:
; INC B
; DEC C
; IN A,(C) ; ????? ’ãâ ॣ¨áâà BC = #0254 - çâ® §  ¯®àâ â ª®© ¨ çâ® ®ââ㤠 ¯à®ç¨â ¥âáï?
; IN A,(C) ; ’ãâ ॣ¨áâà BC = #0254 - .CylinderLow
; CP L
; RET NZ
; INC C
@ -533,14 +532,14 @@ TEST_HDD_DRV:
; ELSE
; LD BC,IDE.Write.CylinderHigh
; OUT (C),H
; LD BC,#0254 ;???!!!!
; LD BC,#0254
; IN A,(C)
; CP L
; RET NZ
; LD BC,#0255 ;???!!!!
; LD BC,#0255
; ENDIF
; IN A,(C) ; ????? ’ãâ ॣ¨áâà BC = #0255 - çâ® §  ¯®àâ â ª®© ¨ çâ® ®ââ㤠 ¯à®ç¨â ¥âáï?
; IN A,(C) ; ’ãâ ॣ¨áâà BC = #0255 - .CylinderHigh
; CP H
; RET
@ -628,7 +627,7 @@ FN_HDD_INIT:
LD A,IDE.ATA.IdentifyDevice ;!FIXIT ¯¥à¥¤¥« âì
OUT (C),A
WAIT_HDD
BIT IDE.ControlBit.DataRequest,A
AND IDE.ControlByte.DataRequest
;JR NZ,.L2
SCF
RET Z
@ -704,22 +703,21 @@ HD_WAIT:
PUSH BC
PUSH AF
LD DE,0
HD_WAIT1:
LD BC,IDE.Read.Status
.loop: LD BC,IDE.Read.Status
IN A,(C)
AND IDE.ControlByte.Busy
JR Z,HD_W_EXIT
JR Z,.EXIT
DEC DE
LD A,D
OR E
JR NZ,HD_WAIT1
JR NZ,.loop
POP AF
POP BC
POP DE
SCF
RET
HD_W_EXIT:
POP AF
;
.EXIT: POP AF
POP BC
POP DE
AND A

View File

@ -1221,12 +1221,12 @@ LP_MODE_LINE3: ;
LD A,#50
OUT (SLOT3),A
LD A,L ; ¢¥à⨪ «ì­®¥ ¯®«®¦¥­¨¥
CP 80H
CP #80
JR NC,LP_EXIT_MODE3
LP_MODE_RECURSE3:
LD A,D ; £®à¨§®­â «ì­®¥ ¯®«®¦¥­¨¥
AND 7FH
AND #7F
SUB 80
JR C,LP_MODE_LL3
SUB 48
@ -1238,7 +1238,7 @@ LP_MODE_RECURSE3:
LD A,E ; ¢®ááâ ­®¢¨âì
RRA
AND 3FH
AND #3F
SUB C
JR NC,LP_EXIT_MODE3
NEG
@ -1248,7 +1248,7 @@ LP_MODE_RECURSE3:
LP_MODE_LL3:
NEG
RRA
AND 3FH
AND #3F
CP C
JR NC,LP_MODE_LR3
LD C,A

View File

@ -42,7 +42,7 @@ EMM.InitMem:
LD C,A
LD A,SYS_PAGE
OUT (SLOT3),A
LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 ; €¤à¥á FAT އ“.
LD HL,SYS_PAGE.RAMD_FAT ; €¤à¥á RAM FAT ¢ އ“.
; ®¡­ã«ï¥¬ â ¡«¨æã
XOR A
.loopFree:

View File

@ -391,33 +391,30 @@ REINIT: DEC B
;
;[x]
.Restart:
DI
LD A,0
.Restart: DI
XOR A
LD BC,#1FFD
OUT (C),A
LD B,#7F
OUT (C),A
LD A,#40
OUT (SLOT3),A
OUT (RGADR),A
OUT (RGMOD),A
OUT (SLOT0),A
LD A,5
OUT (SLOT1),A
LD A,2
OUT (SLOT2),A
LD A,DCP_PAGE
OUT (SLOT3),A
LD A,0
OUT (SLOT0),A
OUT (RGADR),A
OUT (RGMOD),A
JP 0 ;Restart
;
;
.SoftReset:
DI
.SoftReset: DI
LD A,#10
LD BC,#1FFD
OUT (C),A ; 8-ï áâà ­¨æ  !!
;
LD A,RESET_PAGE
OUT (SLOT3),A
LD A,CNF_PORT.TURBO.OFF

View File

@ -63,8 +63,8 @@ FN_CRIPT:
; 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
LD HL,(BOARD_INFO.number) ;rdlow-ok
LD A,(BOARD_INFO.type) ;rdlow-ok
LD BC,(BoardID.start) ;rdlow-ok
LD DE,(BoardID.end) ;rdlow-ok
AND A

View File

@ -811,7 +811,7 @@ RESCREEN: ;R06
; LD E,A
; LD A,DCP_PAGE
; OUT (SLOT3),A
; LD A,(#C400) ;c400 for first cfg 50176 ; !TODO ¬®¦­® ¯¥à¥¤¥« âì ­  ¢ë§®¢ ä㭪樨 ¡¨®á 
; LD A,(#C400) ;c400 for first cfg 50176
; LD D,A
; LD A,ACEX.HOLD
; LD (#C400),A
@ -1142,9 +1142,11 @@ PIDNUM: LD HL,memBUFFER.ID
CALL PRINTZ
RET
PIDBOARD:
CALL FN_CRIPT.board_id
PIDBOARD: CALL FN_CRIPT.board_id
;
IF MotherBoardType > 0
PUSH AF
ENDIF
PUSH DE
PUSH HL
PUSH BC
@ -1165,7 +1167,39 @@ PIDBOARD:
CALL PRNHEX
POP DE
LD A,E
IF MotherBoardType == 0
JP PRNHEX
ELSE
CALL PRNHEX
LD A,' '
CALL PRINT_CHAR
POP AF
; type 0 - Classic
RET Z
; type 1 - DX
LD HL,.ver_DX
DEC A
JP Z,PRINTZ
; type 2 - DP
LD HL,.ver_DP
DEC A
JP Z,PRINTZ
; type 3 - Max
LD HL,.ver_Max
DEC A
JP Z,PRINTZ
; type 4 - test
LD HL,.Test
DEC A
JP Z,PRINTZ
RET
;
.ver_DX: DZ "DX"
.ver_DP: DZ "DP"
.ver_Max: DZ "Max"
.Test DZ "0123456789A"
ENDIF
CNF_VER_PRINT:
LD HL,memBUFFER.ID

View File

@ -259,7 +259,7 @@ SHOW_LOGO: LD IX,win_descriptor.tab320x256
SAFE_PORTY
DI
LD A,1
LD A,SYS_PORT.PAGE0
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A
@ -283,21 +283,12 @@ SHOW_LOGO: LD IX,win_descriptor.tab320x256
SAFE_PORTY
DI
LD A,1
LD A,SYS_PORT.PAGE0
OUT (SYS_PORT.ON),A
;LD A,1
OUT (ROM.SLOT0),A
LD HL,MAIN_LOGO.Raster ; ­ ç «® ª à⨭ª¨ ¢ ¡ ­ª¥ <20>‡“
; CALL DECODE
CALL LOGO_TO_SCREEN
;
;--------------[<5B> áå «ª ]--------------[]
IF Pashalki
_PASHALKI_CODE
ENDIF
;--------------------------------------[]
;
XOR A
OUT (SYS_PORT.ON),A
OUT (ROM.SLOT0),A

View File

@ -14,6 +14,7 @@ BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD
DEFINE BoardID_start #5283
DEFINE BoardID_end #47E8
DEFINE MotherBoardID #0000
DEFINE MotherBoardType #00 ; !TODO 0 - Legacy, 1 - DX, 2 - Max
;=======================================
;============[For ROM part]============= ;!FIXIT ¢ë ­¥ ¯®­¨¬ ¥â¥, íâ® ¤à㣮¥))