This commit is contained in:
Anatoliy Belyanskiy 2023-07-01 04:43:02 +10:00
parent a703f275c1
commit 8dd4f966c2
12 changed files with 165 additions and 148 deletions

@ -1 +1 @@
Subproject commit 520455dbdc4c10f1850fd697aa5be4703d6cfd27
Subproject commit 6e9cb7fd969b98df5cc98ec109bab2be59d46208

View File

@ -64,7 +64,7 @@
;
;PAGE 5 Recovery image part 1
INCBIN IMG_RECOVERY,0,#C000
DISPLAY "ROM Disk recovery part1, pages 5..7: 2x0000..2xC000"
DISPLAY "ROM Disk recovery part1, pages 5..7: 1x4000..2x0000"
;

View File

@ -4,15 +4,15 @@
DUP numberOFdrives
DB high FN_RESERVED_5x ;#50 - „ã¡«ì. <20>  íâã äã­ªæ¨î ¯à룠¥â ¨§ ®á­®¢­®£® ®¡à ¡®â稪 
DB high FN_5x_Parser_1 ;#51
DB high FN_5x_Parser_2 ;#52
DB high FN_5x_Parser_3 ;#53
DB high FN_5x_Parser_4 ;#54
DB high FN_5x_Parser_5 ;#55
DB high FN_5x_Parser_6 ;#56
DB high FN_5x_Parser_7 ;#57
DB high FN_5x_Parser_8 ;#58
DB high FN_5x_Parser_9 ;#59
DB high FN_ABSENT_5x ;#51
DB high FN_ABSENT_5x ;#52
DB high FN_ABSENT_5x ;#53
DB high FN_ABSENT_5x ;#54
DB high FN_ABSENT_5x ;#55
DB high FN_ABSENT_5x ;#56
DB high FN_ABSENT_5x ;#57
DB high FN_ABSENT_5x ;#58
DB high FN_ABSENT_5x ;#59
DB high DRV_VERSION ;#5A - „ã¡«ì. <20>  íâã äã­ªæ¨î ¯à룠¥â ¨§ ®á­®¢­®£® ®¡à ¡®â稪 
DB high FN_RESERVED_5x ;#5B - „ã¡«ì. <20>  íâã äã­ªæ¨î ¯à룠¥â ¨§ ®á­®¢­®£® ®¡à ¡®â稪 
@ -25,15 +25,15 @@
DUP numberOFdrives
DB low FN_RESERVED_5x ;#50 - „ã¡«ì. <20>  íâã äã­ªæ¨î ¯à룠¥â ¨§ ®á­®¢­®£® ®¡à ¡®â稪 
DB low FN_5x_Parser_1 ;#51
DB low FN_5x_Parser_2 ;#52
DB low FN_5x_Parser_3 ;#53
DB low FN_5x_Parser_4 ;#54
DB low FN_5x_Parser_5 ;#55
DB low FN_5x_Parser_6 ;#56
DB low FN_5x_Parser_7 ;#57
DB low FN_5x_Parser_8 ;#58
DB low FN_5x_Parser_9 ;#59
DB low FN_ABSENT_5x ;#51
DB low FN_ABSENT_5x ;#52
DB low FN_ABSENT_5x ;#53
DB low FN_ABSENT_5x ;#54
DB low FN_ABSENT_5x ;#55
DB low FN_ABSENT_5x ;#56
DB low FN_ABSENT_5x ;#57
DB low FN_ABSENT_5x ;#58
DB low FN_ABSENT_5x ;#59
DB low DRV_VERSION ;#5A - „ã¡«ì. <20>  íâã äã­ªæ¨î ¯à룠¥â ¨§ ®á­®¢­®£® ®¡à ¡®â稪 
DB low FN_RESERVED_5x ;#5B - „ã¡«ì. <20>  íâã äã­ªæ¨î ¯à룠¥â ¨§ ®á­®¢­®£® ®¡à ¡®â稪 

View File

@ -85,7 +85,7 @@ RST38:
CP #AA
JR Z,YESINT
OUT (C),B
JR NOINT
JP NOINT
YESINT: PUSH HL
LD HL,(SYS_PAGE.INT_ADRESS)
LD A,H
@ -904,7 +904,7 @@ Setup_to_RAM:
; ˆ­¨æ¨ «¨§ æ¨ï ¯®à⮢
PORTS_INIT:
; ¢ª«îç¨âì TURBO
LD A,CNF_PORT.TURBO.ON + CNF_PORT.CNF_0
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
OUT (SYS_PORT.ROM),A
; RESET to ISA
@ -943,13 +943,14 @@ PORTS_INIT:
LD A,#62 ;60, 61
OUT (Z84.SIO.Ch_A.Ctrl),A
;--------[Clean keyboard buffer]--------
;----[Clearing the keyboard buffer]-----
.clean_kbd_buf:
IN A,(Z84.SIO.Ch_A.Ctrl)
BIT 0,A
jr z,.mouse
JR Z,1F
IN A,(Z84.SIO.Ch_A.Data)
jr .clean_kbd_buf
JR .clean_kbd_buf
1: ;exit from .clean_kbd_buf
;---------------------------------------
; ˆ­¨æ¨ «¨§ æ¨ï ¬ëè¨

View File

@ -300,15 +300,13 @@ RDS002: EXX
CALL WAITPRT
EXX
RET C
;NOP ;R01 REMOVED "DI" ; !FIXIT
;NOP ;R01 REMOVED "DI"
IN A,(SLOT3)
EX AF,AF'
LD A,XH
OUT (SLOT3),A
LD BC,IDE.Read.Data
; LD D,#20
;!TEST v
RDS003: DUP 16
INI
EDUP
@ -318,13 +316,8 @@ RDS004: DUP 16
EDUP
JP NZ,RDS004
; DEC D
; JR NZ,RDS003
;!TEST ^
EX AF,AF'
OUT (SLOT3),A
;EI
;
LD A,H
OR L
@ -485,12 +478,14 @@ WRS002: EXX
CALL WAITPRT
EXX
RET C
DI
//DI
IN A,(SLOT3)
EX AF,AF'
LD A,XH
OUT (SLOT3),A
LD BC,IDE.Write.Data
LD D,#20
WRS003:
DUP 16
@ -498,9 +493,10 @@ WRS003:
EDUP
DEC D
JR NZ,WRS003
EX AF,AF'
OUT (SLOT3),A
EI
//EI
;
LD A,H
OR L
@ -526,7 +522,7 @@ WRS003:
LD BC,IDE.Read.Status
IN A,(C)
BIT IDE.ControlBit.DataRequest,A
JR NZ,WRS002
JP NZ,WRS002
XOR A
RET

View File

@ -1,7 +1,14 @@
;***********************************************
; ????? çñ §  å¥à­ï ¯à® ¡¥©á¨ª? âãâ ­¥ â® ­¨¦¥
; CMOS - 35h,36h - ãáâ ­®¢ª¨ ¡¥©á¨ª 
;***********************************************
;
MACRO _mCMOS_MAX_TEST
ASSERT CMOS.MAX_ADDRESS = #7F, "WARNING!!! Logick broken with BIT 7 check"
BIT 7,D
SCF
RET NZ
ENDM
;
;!FIXIT ¯® ¤®ª¥ ­  äã­ªæ¨î ¤®«¦¥­ ¯¥à¥¤ ¢ë室®¬ CF áâ ¢¨âìáï
CMOS_EMU_WR:
PUSH DE
@ -16,18 +23,23 @@ CMOS_EMU_WR:
POP DE
RET
;
; § ¯¨áì ¢ CMOS
CMOS_WR:
;!TEST
_mCMOS_MAX_TEST
;
CALL CMOS_TEST
JR C,CMOS_EMU_WR
XWR_CMOS:
LD BC,CMOS.Port.Address.Write
.WR: LD BC,CMOS.Port.Address.Write
OUT (C),D
LD BC,CMOS.Port.Data.Write
OUT (C),A
RET
;
;!FIXIT ¯® ¤®ª¥ ­  äã­ªæ¨î ¤®«¦¥­ ¯¥à¥¤ ¢ë室®¬ CF áâ ¢¨âìáï
CMOS_EMU_RD:
PUSH DE
@ -42,46 +54,50 @@ CMOS_EMU_RD:
POP DE
RET
;
; ç⥭¨¥ ¨§ CMOS
CMOS_RD:
;!TEST
_mCMOS_MAX_TEST
;
CALL CMOS_TEST
JR C,CMOS_EMU_RD
XRD_CMOS:
LD BC,CMOS.Port.Address.Write
.RD: LD BC,CMOS.Port.Address.Write
OUT (C),D
LD BC,CMOS.Port.Data.Read
IN A,(C)
RET
;
;<3B>஢¥àª  ­ «¨ç¨ï CMOS
CMOS_TEST:
PUSH AF
PUSH DE
PUSH BC
PUSH AF
LD D,#3F ; !HARDCODE CHECKSUM SETTING
CALL XRD_CMOS
LD D,CMOS.TEST_CELL
CALL CMOS_RD.RD
LD E,A
CPL
CALL XWR_CMOS
CALL XRD_CMOS
CALL CMOS_WR.WR
CALL CMOS_RD.RD
CPL
CP E
JR NZ,CMOS_ERR
JR NZ,.CMOS_ERR
LD A,E
CALL XWR_CMOS
CALL CMOS_WR.WR
POP AF
POP BC
POP DE
POP AF
AND A
RET
CMOS_ERR:
.CMOS_ERR:
LD A,E
CALL XWR_CMOS
POP AF
CALL CMOS_WR.WR
POP BC
POP DE
POP AF
SCF
RET

View File

@ -229,7 +229,7 @@ REINIT: DEC B
LD A,RESET_PAGE
OUT (SLOT3),A
LD A,CNF_PORT.TURBO.OFF + ROM.BIOS
LD A,CNF_PORT.TURBO.OFF
OUT (SYS_PORT.ROM),A
.loop2: LD (#C000),A ; Soft RESET !!!
JR .loop2

View File

@ -97,7 +97,7 @@ EMM.CheckColdInit:
LD A,SYS_PAGE
OUT (SLOT2),A
LD HL,#8000
LD HL,SYS_PAGE.ID_FLAG - #4000
LD DE,ID_SPRINTER_length
ld a,(de)
inc de
@ -162,7 +162,7 @@ INIT_SYS_ALL:
LD DE,ZG_ADDRESS ;  ¤à¥á §­ ª®£¥­¥à â®à 
LD (SYS_PAGE.WIN_ZG-#4000),DE
;
;-----------[new code start]------------ ; !!!!! ¯®á¬®âà¥âì-¯à¨ç¥á âì
;-----------[new code start]------------; !!!!! ¯®á¬®âà¥âì-¯à¨ç¥á âì
INIT_VSyncAndWaits:
LD D,CMOS.Cell.ScreenSET
CALL CMOS_RD
@ -202,7 +202,7 @@ INIT_CONFIG_ALL:
LD (SYS_PAGE.CONFIG_ALL-#4000),HL
;------------[new code end]-------------
;
LD DE,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON + ROM.BIOS
LD DE,CNF_PORT.CNF_0 + ROM.BIOS
LD (SYS_PAGE.CONFIG_DE-#4000),DE
LD HL,SYS_PAGE.TASK_DATA-#4000 ; 㡨âì ¢á¥ § ¤ ç¨

View File

@ -617,24 +617,33 @@ RRLPX:
RLCA
RET
;!TEST
READCMS:
LD D,high CMOSARE
LD E,A
CP CMOS.USED_MAX_ADDRESS+1
JR NC,.error
LD A,(DE)
RET
.error: SCF
RET
;!TEST
WRITCMS:
LD D,high CMOSARE
LD E,A
CP CMOS.USED_MAX_ADDRESS+1
JR NC,.error
LD A,B
LD (DE),A
RET
.error: SCF
RET
CHEKSUM:
LD BC,DEFVAL.Length*256+#000E
LD H,#DE
CHSUM1:
LD A,C
LD BC,DEFVAL.Size*256 + #0E ;!HARDCODE
LD H,#DE ;!HARDCODE
.loop: LD A,C
CALL READCMS
LD L,A
LD A,H
@ -643,12 +652,12 @@ CHSUM1:
SUB L
LD H,A
INC C
DJNZ CHSUM1
DJNZ .loop
RET
TCHEKSM:
CALL CHEKSUM
LD A,#3F
LD A,#3F ;!HARDCODE
CALL READCMS
CP H
RET
@ -668,17 +677,13 @@ TCHEKSM:
READING:
LD D,#0E ; !HARDCODE CMOS
.loop:
PUSH DE
;CALL RDCMOS
.loop: PUSH DE
CALL CMOS_RD
POP DE
LD H,high CMOSARE
LD L,D
LD (HL),A
LD A,#40 ; !HARDCODE CMOS
LD A,CMOS.USED_MAX_ADDRESS+1
INC D
CP D
JR NZ,.loop
@ -695,12 +700,10 @@ WRITING:
LD L,D
LD A,(HL)
PUSH DE
;CALL WRCMOS
CALL CMOS_WR
POP DE
LD A,#40 ; !HARDCODE CMOS
LD A,CMOS.USED_MAX_ADDRESS+1
INC D
CP D
JR NZ,.loop
@ -714,7 +717,7 @@ SETDEFX:
SETDEF: ;!TODO ¬®¦¥â ¡ å­ãâì LDIR®¬? ¯®á¬®âà¥âì
LD HL,DEFVAL
LD C,DEFVAL.Length
LD C,DEFVAL.Size
LD A,#0E ; !HARDCODE CMOS c¬¥é¥­¨¥ ¢ â ¡«¨æ¥ ¤® ï祥ª ¯ ¬ïâ¨
.loop:
LD B,(HL)
@ -1027,12 +1030,13 @@ DEFVAL: DB SAVERAM+EXTBIOS+SDELAY1 ;X0E - OPTIONS
DB 0 ;X1E - TRDOS
DB #77 ;X1F - SCREEN POSITION
DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's
.Length EQU $-DEFVAL
.Size EQU $-DEFVAL
;!FIXIT à á¯¨á âì âãâ ï祩ª¨ ª¬®á  ¨ í⮠ᬥ饭¨¥ ¬¥âª®© ¯à¨¢ï§ âì ¢¬¥áâ® #0E ¢ SETDEF
_mInfoALIGN 256,0 ; ¢ëà ¢­¨¢ ­¨¥ ­   ¤à¥á #XX00
CMOSARE:
DS 14 ;!FIXIT à á¯¨á âì âãâ ï祩ª¨ ª¬®á  ¨ í⮠ᬥ饭¨¥ ¬¥âª®© ¯à¨¢ï§ âì ¢¬¥áâ® #0E ¢ SETDEF
DS 14
DB SAVERAM+EXTBIOS ;X0E - OPTIONS
DB TDL250+TRATE30 ;X0F - KEYBOARD

View File

@ -89,10 +89,10 @@
LD B,0
LD C,(HL)
INC C
LD DE,TEMP+5
LD DE,TEMP+ROM_DISK.Pages.Size
LDIR ; ª¨¤ ¥¬ ¤ «ìè¥ ¢ ¡ãä¥à ­®¬¥à  áâà ­¨æ ROM disk
LD IY,TEMP+5 ; ROM_DISK.Pages.Number
LD IY,TEMP+ROM_DISK.Pages.Size ; ROM_DISK.Pages.Number
LD IX,TEMP
LD B,(IY+0)

Binary file not shown.