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

@ -62,9 +62,9 @@
SP_TRDOS_BIN
Set_Block 'SP_TRD free space: ', #14000
;
;PAGE 5 Recovery image part 1
;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"
;
@ -73,7 +73,7 @@
INCBIN 'Build/Bin/EXP.BIN'
Set_Block 'EXP free space: ', #24000
;
;PAGE 9-11 (#09, #0A, #0B) Recovery image part 2
;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"

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
@ -568,7 +564,7 @@ VRS000: CALL SELECTH
CALL PRESET
POP HL
LD BC,IDE.Write.Command
LD A,#40 ; !HARDCODE VERIFY WITH RETRY
LD A,#40 ; !HARDCODE VERIFY WITH RETRY
OUT (C),A
VRS002: LD BC,IDE.Read.Status
IN A,(C)

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,72 +23,81 @@ 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
PUSH DE
LD C,SLOT3
IN B,(C)
LD E,SYS_PAGE
OUT (C),E
LD E,D
LD D, high SYS_PAGE.CMOS_EMULATOR
LD A,(DE)
OUT (C),B
LD C,SLOT3
IN B,(C)
LD E,SYS_PAGE
OUT (C),E
LD E,D
LD D, high SYS_PAGE.CMOS_EMULATOR
LD A,(DE)
OUT (C),B
POP DE
POP DE
RET
;
; ç⥭¨¥ ¨§ CMOS
CMOS_RD:
CALL CMOS_TEST
JR C,CMOS_EMU_RD
XRD_CMOS:
LD BC,CMOS.Port.Address.Write
OUT (C),D
LD BC,CMOS.Port.Data.Read
IN A,(C)
;!TEST
_mCMOS_MAX_TEST
;
CALL CMOS_TEST
JR C,CMOS_EMU_RD
.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
@ -159,10 +159,10 @@ INIT_SYS_ALL:
LD (HL),0
LDIR
LD DE,ZG_ADDRESS ;  ¤à¥á §­ ª®£¥­¥à â®à 
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

@ -1767,7 +1767,7 @@ POSTMSC:
SETLAND:
LD A,#0E ; !HARDCODE CMOS ï祩ª  options
CALL READCMS
AND #04 ; !HARDCODE CMOS Л<>腑⑧<E88591> 錻覈<E98CBB>
AND #04 ; !HARDCODE CMOS Л<>腑⑧<E88591> 錻覈<E98CBB>
JR NZ,.RUS
LD HL,MSG_ENG

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)
@ -1008,31 +1011,32 @@ STYLES:
DB COLORS.PAPER.LGRAY + COLORS.INC.RED
DB COLORS.PAPER.BLACK + COLORS.INC.RED
DEFVAL: DB SAVERAM+EXTBIOS+SDELAY1 ;X0E - OPTIONS
DB TDL250+TRATE30 ;X0F - KEYBOARD
DB SDIDE1+ASDFDD2 ;X10 - SYSTEM DISKS
DB FD1720+FD2720+HD1AUTO+HD2AUTO ;X11 - FDD & Primary HDD's
DB 0 ;X12 - CYLINDERS LOW MASTER
DB 0 ;X13 - CYLINDERS HIGH MASTER
DB 0 ;X14 - HEADS MASTER
DB 0 ;X15 - SECTORS MASTER
DB 0 ;X16 - CYLINDERS LOW SLAVE
DB 0 ;X17 - CYLINDERS HIGH SLAVE
DB 0 ;X18 - HEADS SLAVE
DB 0 ;X19 - SECTORS SLAVE
DB 0 ;X1A - Int conf, Screen sync, COLOR STYLE
DB TURBON+SPRIN ;X1B - HARDARE CONF
DEFVAL: DB SAVERAM+EXTBIOS+SDELAY1 ;X0E - OPTIONS
DB TDL250+TRATE30 ;X0F - KEYBOARD
DB SDIDE1+ASDFDD2 ;X10 - SYSTEM DISKS
DB FD1720+FD2720+HD1AUTO+HD2AUTO ;X11 - FDD & Primary HDD's
DB 0 ;X12 - CYLINDERS LOW MASTER
DB 0 ;X13 - CYLINDERS HIGH MASTER
DB 0 ;X14 - HEADS MASTER
DB 0 ;X15 - SECTORS MASTER
DB 0 ;X16 - CYLINDERS LOW SLAVE
DB 0 ;X17 - CYLINDERS HIGH SLAVE
DB 0 ;X18 - HEADS SLAVE
DB 0 ;X19 - SECTORS SLAVE
DB 0 ;X1A - Int conf, Screen sync, COLOR STYLE
DB TURBON+SPRIN ;X1B - HARDARE CONF
DB BAS128 ;X1C - RESET MODE
DB REBOOTM ;X1D - REBOOT
DB 0 ;X1E - TRDOS
DB #77 ;X1F - SCREEN POSITION
DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's
.Length EQU $-DEFVAL
DB 0 ;X1E - TRDOS
DB #77 ;X1F - SCREEN POSITION
DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's
.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
@ -1053,37 +1057,37 @@ CMOSARE:
DB %0000'0000 ;X1E - TRDOS
DB %0111'0111 ;X1F - SCREEN POSITION
DB HD1AUTO+HD2AUTO ;X20 - Secondary HDD's
DB %0000'0000 ;X21
DB %0000'0000 ;X22
DB %0000'0000 ;X23
DB %0000'0000 ;X24
DB %0000'0000 ;X25
DB %0000'0000 ;X26
DB %0000'0000 ;X27
DB %0000'0000 ;X28
DB %0000'0000 ;X29
DB %0000'0000 ;X2A
DB %0000'0000 ;X2B
DB %0000'0000 ;X2C
DB %0000'0000 ;X2D
DB %0000'0000 ;X2E
DB %0000'0000 ;X2F
DB %0000'0000 ;X30
DB %0000'0000 ;X31
DB #20 ;X32 - CENTURY
DB %0000'0000 ;X33
DB %0000'0000 ;X34
DB %0000'0000 ;X35
DB %0000'0000 ;X36
DB %0000'0000 ;X37
DB %0000'0000 ;X38
DB %0000'0000 ;X39
DB %0000'0000 ;X3A
DB %0000'0000 ;X3B
DB %0000'0000 ;X3C
DB %0000'0000 ;X3D
DB %0000'0000 ;X3E
DB %0000'0000 ;X3F - CHECKSUM
DB %0000'0000 ;X21
DB %0000'0000 ;X22
DB %0000'0000 ;X23
DB %0000'0000 ;X24
DB %0000'0000 ;X25
DB %0000'0000 ;X26
DB %0000'0000 ;X27
DB %0000'0000 ;X28
DB %0000'0000 ;X29
DB %0000'0000 ;X2A
DB %0000'0000 ;X2B
DB %0000'0000 ;X2C
DB %0000'0000 ;X2D
DB %0000'0000 ;X2E
DB %0000'0000 ;X2F
DB %0000'0000 ;X30
DB %0000'0000 ;X31
DB #20 ;X32 - CENTURY
DB %0000'0000 ;X33
DB %0000'0000 ;X34
DB %0000'0000 ;X35
DB %0000'0000 ;X36
DB %0000'0000 ;X37
DB %0000'0000 ;X38
DB %0000'0000 ;X39
DB %0000'0000 ;X3A
DB %0000'0000 ;X3B
DB %0000'0000 ;X3C
DB %0000'0000 ;X3D
DB %0000'0000 ;X3E
DB %0000'0000 ;X3F - CHECKSUM
BLOCK #100 - low $ ; ¤®¡¨¢ª  CMOSARE ¤® à §¬¥à  ¢ 256 ¡ ©â®¢
;DONT MOVE !!! ADDRESS

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.