temp
This commit is contained in:
parent
5c8e58eb99
commit
8bd9b2a3fc
@ -1 +1 @@
|
|||||||
Subproject commit c135d9b6038fcabca6cef3234d876f93d5865dee
|
Subproject commit d1ce63928bdbb44e48b311f9d4a0005c2f44fcd4
|
||||||
Binary file not shown.
@ -704,9 +704,9 @@ POST_5_OK:
|
|||||||
LD IX,0
|
LD IX,0
|
||||||
XOR A
|
XOR A
|
||||||
ADD IX,SP ; ¢®ááâ ®¢¨âì § 票¥ ¯¥à¥¤ ®¥ § £àã§ç¨ª®¬ ª®äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â )
|
ADD IX,SP ; ¢®ááâ ®¢¨âì § 票¥ ¯¥à¥¤ ®¥ § £àã§ç¨ª®¬ ª®äë (¥á«¨ áâ àâ ¯®á«¥ à¥á¥â )
|
||||||
|
; ‚ í⮬ ¬¥á⥠ã á IX:IY ¨§ Loader.asm
|
||||||
|
; „®â 騫¨ ¤® áî¤ ¬¥âªã ®â «® ¤¥à , ¯®ª ¥ ¨á¯®«ì§ã¥âáï
|
||||||
;!TEST 31/12/23 ¯®¤áâà 客ª ®â ãâ¥çª¨ ¯ ¬ïâ¨
|
;!TEST 31/12/23 ¯®¤áâà 客ª ®â ãâ¥çª¨ ¯ ¬ïâ¨
|
||||||
LD R,A
|
|
||||||
;
|
|
||||||
LD D,YH
|
LD D,YH
|
||||||
LD E,YL
|
LD E,YL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -717,18 +717,15 @@ POST_5_OK:
|
|||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD DE,SP2000_ConfID
|
LD DE,ACEX.Config_ID.Sp2000
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NZ,.no_conf_reload
|
JR NZ,.no_conf_reload
|
||||||
;
|
;
|
||||||
LD A,#80
|
LD A,#80
|
||||||
LD R,A
|
|
||||||
.no_conf_reload:
|
.no_conf_reload:
|
||||||
|
LD R,A
|
||||||
;
|
;
|
||||||
;
|
|
||||||
; ‚ í⮬ ¬¥á⥠ã á IX:IY ¨§ Loader.asm
|
|
||||||
;
|
|
||||||
; „®â 騫¨ ¤® áî¤ ¬¥âªã ®â «® ¤¥à , ¯®ª ¥ ¨á¯®«ì§ã¥âáï
|
|
||||||
; !TODO number from loader
|
; !TODO number from loader
|
||||||
; LD A,YL
|
; LD A,YL
|
||||||
; LD L,A
|
; LD L,A
|
||||||
@ -738,11 +735,8 @@ POST_5_OK:
|
|||||||
; AND A ; ¥á«¨ à ¢® - ¯à®è« ¯¥à¥§ £à㧪
|
; AND A ; ¥á«¨ à ¢® - ¯à®è« ¯¥à¥§ £à㧪
|
||||||
; SBC HL,BC
|
; SBC HL,BC
|
||||||
;JR Z,set_config ;!TODO ªâ¨¢ æ¨ï ¬¥âª¨ IX:IY ¨§ «® ¤¥à
|
;JR Z,set_config ;!TODO ªâ¨¢ æ¨ï ¬¥âª¨ IX:IY ¨§ «® ¤¥à
|
||||||
|
;LD IX,ACEX.Config_ID.Sp97_2
|
||||||
;!TEST
|
LD HL,ACEX.Config_ID.Sp2000
|
||||||
;LD IX,#FFFD ; LD IX,#FFFD ; !!!!! Sprinter-2 ¢ë¥á⨠à¥ä¥à¥á®¬ âãâ ¨ ¢ loader.asm
|
|
||||||
LD HL,#FEFF ; LD IX,#FEFF ; !!!!! Sprinter-2 ¢ë¥á⨠à¥ä¥à¥á®¬ âãâ ¨ ¢ loader.asm
|
|
||||||
;
|
|
||||||
set_config:
|
set_config:
|
||||||
LD (SYS_PAGE.CONFIG_BYTE),HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
LD (SYS_PAGE.CONFIG_BYTE),HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
||||||
;LD (SYS_PAGE.CONFIG_BYTE),IX ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
;LD (SYS_PAGE.CONFIG_BYTE),IX ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
||||||
@ -796,7 +790,8 @@ set_config:
|
|||||||
;[---------------------------------------------------------------------]
|
;[---------------------------------------------------------------------]
|
||||||
|
|
||||||
MODULE Reset_Handler
|
MODULE Reset_Handler
|
||||||
start: IN A,(SLOT3)
|
start: DI
|
||||||
|
IN A,(SLOT3)
|
||||||
PUSH AF
|
PUSH AF
|
||||||
;----[¯¥à¥å¢ â soft reset #EE port]-----
|
;----[¯¥à¥å¢ â soft reset #EE port]-----
|
||||||
Check_EE_Port:
|
Check_EE_Port:
|
||||||
@ -810,10 +805,8 @@ Check_EE_Port:
|
|||||||
LD A,B
|
LD A,B
|
||||||
AND A
|
AND A
|
||||||
JR Z,Check_Spec_Page
|
JR Z,Check_Spec_Page
|
||||||
|
;
|
||||||
DI
|
|
||||||
OUT (SLOT3),A ; Set restart page
|
OUT (SLOT3),A ; Set restart page
|
||||||
|
|
||||||
.After_Hard_Rst:
|
.After_Hard_Rst:
|
||||||
LD HL,(Spec_Page.RET_addr) ; prog address
|
LD HL,(Spec_Page.RET_addr) ; prog address
|
||||||
LD A,(Spec_Page.page_0) ; PAGE0
|
LD A,(Spec_Page.page_0) ; PAGE0
|
||||||
@ -824,68 +817,82 @@ Check_EE_Port:
|
|||||||
OUT (SLOT2),A
|
OUT (SLOT2),A
|
||||||
LD A,(Spec_Page.page_3) ; PAGE3
|
LD A,(Spec_Page.page_3) ; PAGE3
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
LD A,(Spec_Page.Reload_Version)
|
||||||
|
CP #FF
|
||||||
|
JR NZ,.ver_2
|
||||||
|
JP (HL)
|
||||||
|
;
|
||||||
|
.ver_2: EXX
|
||||||
|
LD HL,(Spec_Page.Stack_Point)
|
||||||
|
LD SP,HL
|
||||||
|
EXX
|
||||||
|
AND A
|
||||||
|
LD A,#FF
|
||||||
|
LD (Spec_Page.Reload_Version),A
|
||||||
|
JR NZ,ver_2_sys_port_on
|
||||||
|
PUSH HL
|
||||||
|
JP EXP_FNS_2_RET
|
||||||
|
ver_2_sys_port_on:
|
||||||
JP (HL)
|
JP (HL)
|
||||||
;
|
;
|
||||||
;--[¯¥à¥å¢ â soft/hard reset #41 page]--
|
;--[¯¥à¥å¢ â soft/hard reset #41 page]--
|
||||||
Check_Spec_Page:
|
Check_Spec_Page:
|
||||||
LD A,Spec_Page
|
LD A,Spec_Page
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,(Spec_Page.flag_Z)
|
; Check for hardreset flag
|
||||||
CP 'Z'
|
LD A,(Spec_Page.flag_R)
|
||||||
JR NZ,No_Reset_handlers
|
CP 'R'
|
||||||
LD A,(Spec_Page.flag_X)
|
JR NZ,No_Reset_handlers
|
||||||
CP 'X'
|
LD A,(Spec_Page.flag_S)
|
||||||
JR NZ,No_Reset_handlers
|
CP 'S'
|
||||||
|
JR NZ,No_Reset_handlers
|
||||||
LD A,(#FFF7)
|
LD A,(Spec_Page.flag_T)
|
||||||
CP 'R'
|
CP 'T'
|
||||||
;JR NZ,Spec_Page_handler_OK
|
JR NZ,No_Reset_handlers
|
||||||
JR NZ,Spec_Page_handler_Next ;!TEST 31/12/23 ¯®¤áâà 客ª ®â ãâ¥çª¨ ¯ ¬ïâ¨
|
|
||||||
LD A,(#FFF8)
|
|
||||||
CP 'S'
|
|
||||||
;JR NZ,Spec_Page_handler_OK
|
|
||||||
JR NZ,Spec_Page_handler_Next ;!TEST 31/12/23 ¯®¤áâà 客ª ®â ãâ¥çª¨ ¯ ¬ïâ¨
|
|
||||||
LD A,(#FFF9)
|
|
||||||
CP 'T'
|
|
||||||
;JR NZ,Spec_Page_handler_OK
|
|
||||||
JR NZ,Spec_Page_handler_Next ;!TEST 31/12/23 ¯®¤áâà 客ª ®â ãâ¥çª¨ ¯ ¬ïâ¨
|
|
||||||
|
|
||||||
XOR A
|
|
||||||
LD (#FFF7),A
|
|
||||||
|
|
||||||
JR Check_EE_Port.After_Hard_Rst
|
|
||||||
;
|
;
|
||||||
;!TEST 31/12/23 ¯®¤áâà 客ª ®â ãâ¥çª¨ ¯ ¬ïâ¨
|
|
||||||
Spec_Page_handler_Next:
|
|
||||||
LD A,R
|
|
||||||
AND #80
|
|
||||||
JR Z,Spec_Page_handler_OK
|
|
||||||
XOR A
|
XOR A
|
||||||
LD R,A
|
LD (Spec_Page.flag_R),A
|
||||||
|
JR Check_EE_Port.After_Hard_Rst
|
||||||
|
;
|
||||||
|
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
No_Reset_handlers:
|
No_Reset_handlers:
|
||||||
|
; Check ZX ROMS Loaded
|
||||||
|
LD A,(Spec_Page.flag_Z)
|
||||||
|
CP 'Z'
|
||||||
|
JR NZ,.Load_ZXROMS
|
||||||
|
LD A,(Spec_Page.flag_X)
|
||||||
|
CP 'X'
|
||||||
|
JR NZ,.Load_ZXROMS
|
||||||
|
;!TEST 31/12/23 ¯®¤áâà 客ª ®â ãâ¥çª¨ ¯ ¬ïâ¨
|
||||||
|
LD A,R
|
||||||
|
AND #80
|
||||||
|
JR Z,No_Need_To_Load_ZXROMS
|
||||||
|
.Load_ZXROMS:
|
||||||
|
XOR A
|
||||||
|
LD R,A
|
||||||
|
;
|
||||||
|
; Load ZX ROM's
|
||||||
init_rom_address EQU #8200 ;!HARDCODE
|
init_rom_address EQU #8200 ;!HARDCODE
|
||||||
|
ld hl,init_zx_roms
|
||||||
ld hl,init_zx_roms
|
ld de,init_rom_address
|
||||||
ld de,init_rom_address
|
ld bc,init_zx_roms.length
|
||||||
ld bc,init_zx_roms.length
|
|
||||||
ldir
|
ldir
|
||||||
|
;
|
||||||
call init_rom_address
|
call init_rom_address
|
||||||
|
;
|
||||||
LD HL,#C000
|
LD HL,#C000
|
||||||
LD DE,#C001
|
LD DE,#C001
|
||||||
LD BC,#3FFF
|
LD BC,#3FFF
|
||||||
LD (HL),C
|
LD (HL),C
|
||||||
LDIR ; § ¡¨âì FF- ¬¨
|
LDIR ; § ¡¨âì FF- ¬¨
|
||||||
|
|
||||||
; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâàã¬
|
; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâàã¬
|
||||||
DEC DE
|
DEC DE ; Spec_Page.flag_X
|
||||||
LD A,'X'
|
LD A,'X'
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
DEC DE
|
DEC DE ; Spec_Page.flag_Z
|
||||||
LD A,'Z'
|
LD A,'Z'
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
|
|
||||||
;!FIXIT ᤥ« âì ¢ë¡®à £à㧨âì ¤ /¥â <20>‡“ ᯥªâà㬠¯à¨ áâ àâ¥, [-------]
|
;!FIXIT ᤥ« âì ¢ë¡®à £à㧨âì ¤ /¥â <20>‡“ ᯥªâà㬠¯à¨ áâ àâ¥, [-------]
|
||||||
; ¥á«¨ ¥â - â® ¢®âªãâì íâ®â ª®¤:
|
; ¥á«¨ ¥â - â® ¢®âªãâì íâ®â ª®¤:
|
||||||
@ -899,11 +906,11 @@ init_rom_address EQU #8200 ;!HARDCO
|
|||||||
; LD BC,RAM_BIOS_PROG.Length
|
; LD BC,RAM_BIOS_PROG.Length
|
||||||
; LDIR
|
; LDIR
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
;---------------------------------------
|
||||||
Spec_Page_handler_OK:
|
No_Need_To_Load_ZXROMS:
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
;
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
;[---------------------------------------------------------------------]
|
;[---------------------------------------------------------------------]
|
||||||
;
|
;
|
||||||
@ -1218,7 +1225,7 @@ init_zx_roms:
|
|||||||
RET
|
RET
|
||||||
|
|
||||||
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
|
;[x] SET_PORTS: no need to call from #3D13 and DI. 31/12/23
|
||||||
.SET_ROM:
|
;.SET_ROM:
|
||||||
;LD C,BIOS.SET_PORTS
|
;LD C,BIOS.SET_PORTS
|
||||||
;JP ToBIOS_3D13
|
;JP ToBIOS_3D13
|
||||||
;
|
;
|
||||||
|
|||||||
@ -580,10 +580,10 @@ FN_SYNC:
|
|||||||
CALL CMOS_RD
|
CALL CMOS_RD
|
||||||
|
|
||||||
AND CMOS.Cell.ScreenSET.Mask.Int ; ¢ ॣ¨áâॠA § 票¥ ScreenSET
|
AND CMOS.Cell.ScreenSET.Mask.Int ; ¢ ॣ¨áâॠA § 票¥ ScreenSET
|
||||||
jr nz,.skiptest
|
JR NZ,.skiptest
|
||||||
|
|
||||||
CALL Test_CONFIG_ALL
|
CALL Test_CONFIG_ALL
|
||||||
jp (IX) ; default int (non CMOS)
|
JP (IX) ; default int (non CMOS)
|
||||||
|
|
||||||
.skiptest:
|
.skiptest:
|
||||||
cp #10
|
cp #10
|
||||||
|
|||||||
@ -178,8 +178,8 @@ FN_HDD_READ_BPB:
|
|||||||
CALL HD_WAIT
|
CALL HD_WAIT
|
||||||
RET C
|
RET C
|
||||||
CALL HD_BPB_PREP
|
CALL HD_BPB_PREP
|
||||||
RET C
|
JR NC,HD_RD_L1
|
||||||
JR HD_RD_L1
|
RET
|
||||||
|
|
||||||
|
|
||||||
; FOR LBA ONLY - NEXT_READ
|
; FOR LBA ONLY - NEXT_READ
|
||||||
@ -204,9 +204,7 @@ FN_HDD_READ:
|
|||||||
DEC B
|
DEC B
|
||||||
RET Z
|
RET Z
|
||||||
CALL HD_WAIT
|
CALL HD_WAIT
|
||||||
RET C
|
CALL NC,HD_PREPARE
|
||||||
|
|
||||||
CALL HD_PREPARE
|
|
||||||
RET C
|
RET C
|
||||||
HD_RD_L1:
|
HD_RD_L1:
|
||||||
EXX
|
EXX
|
||||||
@ -222,7 +220,6 @@ HD_RD_L1:
|
|||||||
LD A,IDE.ATA.ReadSectorsWithRetry
|
LD A,IDE.ATA.ReadSectorsWithRetry
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
HD_RD_L2:
|
HD_RD_L2:
|
||||||
|
|
||||||
WAIT_HDD
|
WAIT_HDD
|
||||||
|
|
||||||
BIT IDE.ControlBit.DataRequest,A
|
BIT IDE.ControlBit.DataRequest,A
|
||||||
@ -450,7 +447,7 @@ HD_C0_L3:
|
|||||||
WAIT_HDD
|
WAIT_HDD
|
||||||
|
|
||||||
LD BC,IDE.Write.Command
|
LD BC,IDE.Write.Command
|
||||||
LD A,IDE.ATA.IdentifyDevice
|
LD A,IDE.ATA.IdentifyDevice ;!FIXIT ¯¥à¥¤¥« âì
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
|
|
||||||
WAIT_HDD
|
WAIT_HDD
|
||||||
@ -535,7 +532,7 @@ HD_WAIT:
|
|||||||
HD_WAIT1:
|
HD_WAIT1:
|
||||||
LD BC,IDE.Read.Status
|
LD BC,IDE.Read.Status
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
BIT IDE.ControlBit.Busy,A
|
AND IDE.ControlByte.Busy
|
||||||
JR Z,HD_W_EXIT
|
JR Z,HD_W_EXIT
|
||||||
DEC DE
|
DEC DE
|
||||||
LD A,D
|
LD A,D
|
||||||
@ -577,29 +574,27 @@ HD_CALC_SECS:
|
|||||||
IN A,(C)
|
IN A,(C)
|
||||||
BIT 6,A
|
BIT 6,A
|
||||||
JR NZ,HDD_LBA
|
JR NZ,HDD_LBA
|
||||||
; POP BC ;!!!!! ¯®á¬®âà¥âì
|
; POP BC
|
||||||
*/
|
*/
|
||||||
|
|
||||||
;EXP_HDD.ASM Version
|
;EXP_HDD.ASM Version
|
||||||
HDD_LBA:
|
|
||||||
POP BC
|
|
||||||
LD L,E
|
|
||||||
LD E,D
|
|
||||||
LD D,XL
|
|
||||||
LD A,XH
|
|
||||||
AND #0F
|
|
||||||
LD H,A
|
|
||||||
RET
|
|
||||||
|
|
||||||
HD_CALC_SECS:
|
HD_CALC_SECS:
|
||||||
PUSH BC
|
;PUSH BC
|
||||||
LD BC,IDE.Read.Control
|
LD BC,IDE.Read.Control
|
||||||
IN A,(C)
|
IN A,(C)
|
||||||
BIT 6,A
|
AND %0100'0000
|
||||||
JR NZ,HDD_LBA
|
;POP BC
|
||||||
POP BC ; ᨬ ¥¬ § 票¥ ¤«ï ª®à४⮣® ret
|
JR Z,.CHS
|
||||||
;
|
; LBA
|
||||||
LD A,XH
|
LD L,E
|
||||||
|
LD E,D
|
||||||
|
LD D,XL
|
||||||
|
LD A,XH
|
||||||
|
AND #0F ; ®£à ¨ç¥¨¥ ~127 £¨£®¢
|
||||||
|
LD H,A
|
||||||
|
RET
|
||||||
|
; CHS
|
||||||
|
.CHS: LD A,XH
|
||||||
AND A
|
AND A
|
||||||
SCF
|
SCF
|
||||||
RET NZ ; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD
|
RET NZ ; ®è¨¡ª , ᫨誮¬ ¡®«ì让 HDD
|
||||||
@ -644,19 +639,17 @@ HD_CALC_SECS:
|
|||||||
LD C,A
|
LD C,A
|
||||||
;LD BC,(MS_BPB+S_P_T) ; —ˆ‘‹Ž ‘…Š’Ž<E28099>Ž‚ <20>€ „Ž<E2809E>ކЅ
|
;LD BC,(MS_BPB+S_P_T) ; —ˆ‘‹Ž ‘…Š’Ž<E28099>Ž‚ <20>€ „Ž<E2809E>ކЅ
|
||||||
XOR A
|
XOR A
|
||||||
HD_CALC_LOOP2:
|
.LOOP: SBC HL,BC
|
||||||
SBC HL,BC
|
|
||||||
INC A
|
INC A
|
||||||
JR NC,HD_CALC_LOOP2
|
JR NC,.LOOP
|
||||||
|
;
|
||||||
DEC A ; A - £®«®¢ª
|
DEC A ; A - £®«®¢ª
|
||||||
ADD HL,BC ; L - ᥪâ®à
|
ADD HL,BC ; L - ᥪâ®à
|
||||||
INC L
|
INC L
|
||||||
LD H,A ; HL - HEAD,SEC
|
LD H,A ; HL - HEAD,SEC
|
||||||
|
;
|
||||||
LD A,(SYS_PAGE.COPY_SLOT3)
|
LD A,(SYS_PAGE.COPY_SLOT3)
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
; DISPLAY "Service"
|
; DISPLAY "Service"
|
||||||
; !FIXIT âãâ ¬®¦®, ¯®å®¤ã, ¤®åॠã¡à âì
|
; !FIXIT âãâ ¬®¦®, ¯®å®¤ã, ¤®åॠã¡à âì
|
||||||
|
|
||||||
; áâà ¨æë á ª®ä®© ¤«ï Sp97, ¤«ï ᮢ¬¥á⨬®áâ¨ á ¤à¥¢¨¬¨ ¯à®£ ¬¨
|
; ; áâà ¨æë á ª®ä®© ¤«ï Sp97, ¤«ï ᮢ¬¥á⨬®áâ¨ á ¤à¥¢¨¬¨ ¯à®£ ¬¨
|
||||||
PG_SP1 equ #EC
|
; PG_SP1 equ #EC
|
||||||
PG_SP2 equ #EE
|
; PG_SP2 equ #EE
|
||||||
PG_AY equ #EA
|
; PG_AY equ #EA
|
||||||
;
|
; ;
|
||||||
|
|
||||||
;!TODO § ¬ãâ¨âì § «¨¢ªã ª®äë, à¥áâ àâ, ¯¥à¥å¢ â à¥á¥â ᨫ ¬¨ BIOS
|
; ;!TODO § ¬ãâ¨âì § «¨¢ªã ª®äë, à¥áâ àâ, ¯¥à¥å¢ â à¥á¥â ᨫ ¬¨ BIOS
|
||||||
PG_Sp2000 EQU #FE
|
; PG_Sp2000 EQU #FE
|
||||||
|
; PG_Sp2000_REINIT EQU #FD
|
||||||
;
|
;
|
||||||
RST_CONF:
|
RST_CONF:
|
||||||
;--[] ZX Spectrum
|
;--[] ZX Spectrum
|
||||||
@ -24,7 +25,7 @@ RST_CONF:
|
|||||||
OUT (C),A ; ACC_OFF
|
OUT (C),A ; ACC_OFF
|
||||||
|
|
||||||
;LD A,PG_AY
|
;LD A,PG_AY
|
||||||
LD DE,#FFFC
|
LD DE,ACEX.Config_ID.Sp97_AY
|
||||||
JR .INT_PLD
|
JR .INT_PLD
|
||||||
;--[]
|
;--[]
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ RST_CONF:
|
|||||||
OUT (C),A ; ACC_OFF
|
OUT (C),A ; ACC_OFF
|
||||||
|
|
||||||
;LD A,PG_SP1
|
;LD A,PG_SP1
|
||||||
LD DE,#FFFE ;!HARDCODE
|
LD DE,ACEX.Config_ID.Sp97_1
|
||||||
JR .INT_PLD
|
JR .INT_PLD
|
||||||
;--[]
|
;--[]
|
||||||
|
|
||||||
@ -52,10 +53,22 @@ RST_CONF:
|
|||||||
OR 1 ; ACC_ON
|
OR 1 ; ACC_ON
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
;LD A,PG_SP2
|
;LD A,PG_SP2
|
||||||
LD DE,#FFFD ;!HARDCODE
|
LD DE,ACEX.Config_ID.Sp97_2
|
||||||
JR .INT_PLD
|
JR .INT_PLD
|
||||||
;--[]
|
;--[]
|
||||||
|
|
||||||
|
|
||||||
|
;--[]
|
||||||
|
.SP2000:
|
||||||
|
LD BC,Port_All_Mode
|
||||||
|
IN A,(C)
|
||||||
|
OR 1 ; ACC_ON
|
||||||
|
OUT (C),A
|
||||||
|
LD DE,ACEX.Config_ID.Sp2000
|
||||||
|
JR .INT_PLD
|
||||||
|
;--[]
|
||||||
|
|
||||||
|
|
||||||
;--[]
|
;--[]
|
||||||
.CUSTOM:
|
.CUSTOM:
|
||||||
CP #80
|
CP #80
|
||||||
@ -98,20 +111,21 @@ RST_CONF:
|
|||||||
|
|
||||||
.CHOOSE_CNF:
|
.CHOOSE_CNF:
|
||||||
;!TEST
|
;!TEST
|
||||||
CP PG_Sp2000
|
CP ACEX.Config_PG.Sp2000
|
||||||
;LD DE,SP2000_ConfID
|
JR Z,.INIT_ACEX
|
||||||
JR Z,.INIT_ACEX
|
CP ACEX.Config_PG.Sp2000_SetUp
|
||||||
|
JR Z,.SP2000
|
||||||
;
|
;
|
||||||
|
|
||||||
; only for old FLEX10K soft compatible
|
; only for old FLEX10K soft compatible
|
||||||
CP PG_SP1
|
CP ACEX.Config_PG.Sp97_1
|
||||||
LD DE,#FFFE ;!HARDCODE
|
LD DE,ACEX.Config_ID.Sp97_1
|
||||||
JR Z,.INT_PLD
|
JR Z,.INT_PLD
|
||||||
CP PG_SP2
|
CP ACEX.Config_PG.Sp97_2
|
||||||
LD DE,#FFFD
|
LD DE,ACEX.Config_ID.Sp97_2
|
||||||
JR Z,.INT_PLD
|
JR Z,.INT_PLD
|
||||||
CP PG_AY
|
CP ACEX.Config_PG.Sp97_AY
|
||||||
LD DE,#FFFC
|
LD DE,ACEX.Config_ID.Sp97_AY
|
||||||
JR Z,.INT_PLD
|
JR Z,.INT_PLD
|
||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
@ -137,30 +151,37 @@ RST_CONF:
|
|||||||
; ¤®áâ ñ¬ ¤à¥á ¢®§¢à â ¢ ¢ë§ë¢ îéãî äãªæ¨î ¨ á®åà 塞 ¢ Spec_Page
|
; ¤®áâ ñ¬ ¤à¥á ¢®§¢à â ¢ ¢ë§ë¢ îéãî äãªæ¨î ¨ á®åà 塞 ¢ Spec_Page
|
||||||
POP DE
|
POP DE
|
||||||
LD HL,RST_18_1.exit
|
LD HL,RST_18_1.exit
|
||||||
AND A
|
XOR A
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NZ,1F ; NZ - ¥á«¨ ¢ë§®¢ ¡ë« ¯® RST #18
|
JR NZ,1F ; NZ - ¥á«¨ ¢ë§®¢ ¡ë« ¯® RST #18
|
||||||
POP DE ; ¥á«¨ ¢ë§®¢ ¡ë« ¢ އ“ ¯® RST 8
|
POP DE ; ¥á«¨ ¢ë§®¢ ¡ë« ¢ އ“ ¯® RST 8
|
||||||
|
INC A
|
||||||
1: LD (Spec_Page.RET_addr),DE
|
1: LD (Spec_Page.RET_addr),DE
|
||||||
|
; A=0 - SYS_PORT.ON
|
||||||
|
; A=1 - SYS_PORT.OFF
|
||||||
|
LD (Spec_Page.Reload_Version),A
|
||||||
|
LD HL,0
|
||||||
|
ADD HL,SP
|
||||||
|
LD (Spec_Page.Stack_Point),HL
|
||||||
; ¯à®¢¥à塞 à §¬¥à ¡«®ª á ª®ä®© ¨ ¯®«ãç ¥¬ áâà ¨æë ª®äë
|
; ¯à®¢¥à塞 à §¬¥à ¡«®ª á ª®ä®© ¨ ¯®«ãç ¥¬ áâà ¨æë ª®äë
|
||||||
PUSH BC
|
;PUSH BC
|
||||||
LD HL,Spec_Page.bitstream_pages
|
LD HL,Spec_Page.bitstream_pages
|
||||||
LD A,B
|
LD A,B
|
||||||
CALL EMM.GetMemBlkPages
|
CALL EMM.GetMemBlkPages
|
||||||
LD A,B
|
LD A,B
|
||||||
POP BC
|
;POP BC
|
||||||
LD B,A
|
;LD B,A
|
||||||
JR C,.INIT_ACEX.ERROR
|
JR C,.INIT_ACEX.ERROR
|
||||||
CP 4+1 ;!HARDCODE ª®«¨ç¥á⢮ áâà ¨æ ¢ ªíè ¤«ï ¡¨áâਬ ¯«îá ®¤
|
CP 4+1 ;!HARDCODE ª®«¨ç¥á⢮ áâà ¨æ ¢ ªíè ¤«ï ¡¨áâਬ ¯«îá ®¤
|
||||||
JR NC,.INIT_ACEX.ERROR
|
JR NC,.INIT_ACEX.ERROR
|
||||||
PUSH BC
|
;PUSH BC
|
||||||
; § ª¨¤ë¢ ¥¬ ¢ Spec_Page ¯à®£ã ¤«ï § «¨¢ª¨ ª®äë
|
; § ª¨¤ë¢ ¥¬ ¢ Spec_Page ¯à®£ã ¤«ï § «¨¢ª¨ ª®äë
|
||||||
LD HL,.INIT_ACEX.PROGRAM
|
LD HL,.INIT_ACEX.PROGRAM
|
||||||
LD DE,Spec_Page.init_acex
|
LD DE,Spec_Page.init_acex
|
||||||
LD BC,.INIT_ACEX.PROGRAM.Size
|
LD BC,.INIT_ACEX.PROGRAM.Size
|
||||||
LDIR
|
LDIR
|
||||||
;
|
;
|
||||||
POP BC
|
;POP BC
|
||||||
; B = size of ram block in pages
|
; B = size of ram block in pages
|
||||||
CALL Spec_Page.init_acex
|
CALL Spec_Page.init_acex
|
||||||
;
|
;
|
||||||
@ -185,37 +206,80 @@ RST_CONF:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.INIT_ACEX.PROGRAM:
|
.INIT_ACEX.PROGRAM:
|
||||||
|
DISPLAY " !!! !!! .INIT_ACEX.PROGRAM !!! !!!"
|
||||||
DISP Spec_Page.init_acex
|
DISP Spec_Page.init_acex
|
||||||
; B = size of ram block in pages
|
IN A,(FastRAM.ON)
|
||||||
;
|
EXX
|
||||||
IN A,(FastRAM.ON)
|
;
|
||||||
XOR A
|
LD A,(Spec_Page.bitstream_pages)
|
||||||
EXX
|
OUT (SLOT1),A ; áâà ¨æ á ¤ 묨 ä ©«
|
||||||
LD HL,Spec_Page.bitstream_pages
|
;
|
||||||
LD BC,SLOT2
|
XOR A
|
||||||
EXX
|
OUT (FastRAM.SLOT0),A ; ‘âà ¨æ Š<>˜ = 0
|
||||||
.load_loop:
|
;
|
||||||
EXX
|
LD HL,#5000 ; ¯¥à¥ª¨¤ë¢ ¨¥ ¤ ëå ¢ áâà ¨æã Š<>˜ = 0
|
||||||
OUTI
|
LD DE,#1000
|
||||||
EXX
|
LD BC,#3000
|
||||||
PUSH BC
|
LDIR
|
||||||
OUT (FastRAM.SLOT0),A
|
;
|
||||||
LD HL,0
|
LD A,(Spec_Page.bitstream_pages+1)
|
||||||
LD DE,#8000
|
CP #FF
|
||||||
LD BC,#4000
|
JR Z,.INIT_ACEX.PROGRAM.SET_KEYS
|
||||||
LDIR
|
OUT (SLOT1),A ; á«¥¤ãîé ï áâà ¨æ á ¤ 묨 ä ©«
|
||||||
;
|
LD A,1
|
||||||
INC A
|
OUT (FastRAM.SLOT0),A ; ‘âà ¨æ Š<>˜ = 1
|
||||||
POP BC
|
;
|
||||||
DJNZ .load_loop
|
LD H,D ; LD HL,#4000
|
||||||
|
LD D,E ; LD DE,#0000
|
||||||
|
LD B,H ; LD BC,#4000
|
||||||
|
LDIR
|
||||||
|
;
|
||||||
|
LD A,(Spec_Page.bitstream_pages+2)
|
||||||
|
CP #FF
|
||||||
|
JR Z,.INIT_ACEX.PROGRAM.SET_KEYS
|
||||||
|
OUT (SLOT1),A ; á«¥¤ãîé ï áâà ¨æ á ¤ 묨 ä ©«
|
||||||
|
LD A,2
|
||||||
|
OUT (FastRAM.SLOT0),A ; ‘âà ¨æ Š<>˜ = 2 ; á«¥¤ãîé ï áâà ¨æ á ¤ 묨 ä ©«
|
||||||
|
;
|
||||||
|
EX DE,HL ; LD HL,#4000
|
||||||
|
LD D,E ; LD DE,#0000
|
||||||
|
LD B,H ; LD BC,#4000
|
||||||
|
LDIR
|
||||||
|
;
|
||||||
|
LD A,(Spec_Page.bitstream_pages+3)
|
||||||
|
CP #FF
|
||||||
|
JR Z,.INIT_ACEX.PROGRAM.SET_KEYS
|
||||||
|
OUT (SLOT1),A ; á«¥¤ãîé ï áâà ¨æ á ¤ 묨 ä ©«
|
||||||
|
LD A,3
|
||||||
|
OUT (FastRAM.SLOT0),A ; ‘âà ¨æ Š<>˜ = 1
|
||||||
|
;
|
||||||
|
LD H,D ; LD HL,#4000
|
||||||
|
LD D,E ; LD DE,#0000
|
||||||
|
LD BC,#3EDF ; !HARDCODE ®á⠢訩áï à §¬¥à ¡¨âáâਬ
|
||||||
|
LDIR
|
||||||
|
;
|
||||||
|
.INIT_ACEX.PROGRAM.SET_KEYS:
|
||||||
|
LD A,3
|
||||||
|
OUT (FastRAM.SLOT0),A ; ‘âà ¨æ Š<>˜ = 3
|
||||||
|
;
|
||||||
|
LD HL,.INIT_ACEX.Reload_String ; ä« £ ¯¥à¥§ £à㧪¨ ¨§ Š<>˜-
|
||||||
|
LD DE,ACEX.LOADER.String_Address-#C000
|
||||||
|
LD BC,#10
|
||||||
|
LDIR
|
||||||
|
|
||||||
; ... ....
|
LD HL,#FFFF ; § «¨âì ª®äã ⮫쪮 ¯à¨ ¯¥à¢®© ¯¥à¥§ £à㧪¥
|
||||||
; acex loading and flags
|
;LD HL,ACEX.LOADER.Reload_Flag ; § «¨¢ âì ª®ä㠯ਠª ¦¤®© ¯¥à¥§ £à㧪¥
|
||||||
; ... ....
|
LD (ACEX.LOADER.Reload_Flag_Address-#C000),HL
|
||||||
XOR A
|
;
|
||||||
OUT (FastRAM.SLOT0),A
|
.INIT_ACEX.PROGRAM.END:
|
||||||
IN A,(FastRAM.OFF)
|
XOR A
|
||||||
RET
|
OUT (FastRAM.SLOT0),A
|
||||||
|
IN A,(FastRAM.OFF)
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.INIT_ACEX.Reload_String:
|
||||||
|
DB ACEX.RELOAD_STRING
|
||||||
|
;
|
||||||
ENT
|
ENT
|
||||||
.INIT_ACEX.PROGRAM.Size EQU $-.INIT_ACEX.PROGRAM
|
.INIT_ACEX.PROGRAM.Size EQU $-.INIT_ACEX.PROGRAM
|
||||||
;
|
;
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
;
|
;!TODO ¨á¯à ¢¨âì SLOT2 SLOT3 ¨ § â¥áâ¨âì
|
||||||
|
;!TODO ¤®¡ ¢¨âì ®¯¨á ¨¥
|
||||||
DISK_REDIR:
|
DISK_REDIR:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
||||||
@ -18,27 +19,32 @@ DISK_REDIR:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;!TODO ¨á¯à ¢¨âì SLOT2 SLOT3 ¨ § â¥áâ¨âì
|
||||||
|
;!TODO ¤®¡ ¢¨âì ®¯¨á ¨¥
|
||||||
SET_DISK_TYPE:
|
SET_DISK_TYPE:
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
||||||
IN A,(SLOT2)
|
IN A,(SLOT2)
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT2),A
|
OUT (SLOT2),A
|
||||||
LD A,(ZX_VARS.OPER_DISK)
|
LD A,(ZX_VARS.OPER_DISK)
|
||||||
AND 3
|
AND 3
|
||||||
ADD A,L
|
ADD A,L
|
||||||
LD L,A
|
LD L,A
|
||||||
LD (HL),E
|
LD (HL),E
|
||||||
LD L,(HL)
|
;
|
||||||
EX AF,AF'
|
;LD L,(HL)
|
||||||
OUT (SLOT2),A
|
LD L,E
|
||||||
LD A,L
|
;
|
||||||
POP HL
|
EX AF,AF'
|
||||||
|
OUT (SLOT2),A
|
||||||
|
LD A,L
|
||||||
|
POP HL
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
|
;!TODO ¨á¯à ¢¨âì SLOT2 SLOT3 ¨ § â¥áâ¨âì
|
||||||
; Disk A, DRV - B
|
; Disk A, DRV - B
|
||||||
FDD_TO_DRV:
|
FDD_TO_DRV:
|
||||||
CP 4
|
CP 4
|
||||||
@ -66,7 +72,7 @@ FDD_TO_DRV:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;!TODO ¨á¯à ¢¨âì SLOT2 SLOT3 ¨ § â¥áâ¨âì
|
||||||
; RAM-Disk A, DRV - B
|
; RAM-Disk A, DRV - B
|
||||||
RAMD_TO_DRV:
|
RAMD_TO_DRV:
|
||||||
CP SYS_PAGE.RAMD_KEYS.NUM
|
CP SYS_PAGE.RAMD_KEYS.NUM
|
||||||
@ -77,10 +83,10 @@ RAMD_TO_DRV:
|
|||||||
CP 4
|
CP 4
|
||||||
CCF
|
CCF
|
||||||
RET C
|
RET C
|
||||||
|
;
|
||||||
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
||||||
LD L,B
|
LD L,B
|
||||||
|
;
|
||||||
IN A,(SLOT2)
|
IN A,(SLOT2)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
@ -94,30 +100,30 @@ RAMD_TO_DRV:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;!TODO ¨á¯à ¢¨âì SLOT2 SLOT3 ¨ § â¥áâ¨âì
|
||||||
; HDD A, DRV - B
|
; HDD A, DRV - B
|
||||||
HDD_TO_DRV:
|
HDD_TO_DRV:
|
||||||
AND 0FH
|
AND #0F
|
||||||
LD C,A
|
LD C,A
|
||||||
LD A,B
|
LD A,B
|
||||||
CP 4
|
CP 4
|
||||||
CCF
|
CCF
|
||||||
RET C
|
RET C
|
||||||
|
;
|
||||||
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
||||||
LD L,B
|
LD L,B
|
||||||
|
;
|
||||||
IN A,(SLOT2)
|
IN A,(SLOT2)
|
||||||
LD B,A
|
LD B,A
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT2),A
|
OUT (SLOT2),A
|
||||||
LD A,C
|
LD A,C
|
||||||
ADD A,40H
|
ADD A,#40
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
LD A,B
|
LD A,B
|
||||||
OUT (SLOT2),A
|
OUT (SLOT2),A
|
||||||
|
;
|
||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -101,10 +101,9 @@
|
|||||||
|
|
||||||
.ONES_CONFIG:
|
.ONES_CONFIG:
|
||||||
LD IY,SP2000_Loader_Flag
|
LD IY,SP2000_Loader_Flag
|
||||||
;!TEST
|
;LD IX,#FFFD
|
||||||
;LD IX,#FFFD
|
LD IX,ACEX.Config_ID.Sp2000
|
||||||
LD IX,SP2000_ConfID ;!!!!! ¯®¤ã¬ âì)))
|
|
||||||
;
|
|
||||||
.LOOP1:
|
.LOOP1:
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
|
|
||||||
@ -142,7 +141,7 @@
|
|||||||
INC HL
|
INC HL
|
||||||
JR .LOOP1
|
JR .LOOP1
|
||||||
|
|
||||||
.STRING: DB "ACEX_30K_LOADING"
|
.STRING: DB ACEX.RELOAD_STRING
|
||||||
|
|
||||||
.Conf_header: include 'src/bios/Loader/bitstream_header.inc'
|
.Conf_header: include 'src/bios/Loader/bitstream_header.inc'
|
||||||
.Conf_header.length EQU $-.Conf_header
|
.Conf_header.length EQU $-.Conf_header
|
||||||
@ -152,7 +151,7 @@
|
|||||||
; <20>â®, ᪮॥ ¢á¥£®, à㤨¬¥â, â®â á ¬ë© ¡ ©â ®¯¨á â¥«ï ª®äë,
|
; <20>â®, ᪮॥ ¢á¥£®, à㤨¬¥â, â®â á ¬ë© ¡ ©â ®¯¨á â¥«ï ª®äë,
|
||||||
; ª®â®àë© ¨é¥â § £àã§ç¨ª ¤«ï Sp97 ¯® áâ ஬㠤à¥áã #C090.
|
; ª®â®àë© ¨é¥â § £àã§ç¨ª ¤«ï Sp97 ¯® áâ ஬㠤à¥áã #C090.
|
||||||
; ‚®âªã« ¥£® ¢ ª®æ¥ § £àã§ç¨ª , ¬®¦¥â ¯®â®¬ ¯à¨£®¤¨âáï.
|
; ‚®âªã« ¥£® ¢ ª®æ¥ § £àã§ç¨ª , ¬®¦¥â ¯®â®¬ ¯à¨£®¤¨âáï.
|
||||||
.DEF_SYM: DW SP2000_ConfID
|
.DEF_SYM: DW ACEX.Config_ID.Sp2000
|
||||||
;------------------------------[Loader end]
|
;------------------------------[Loader end]
|
||||||
|
|
||||||
DEFINE Altera_Chip altera_chip
|
DEFINE Altera_Chip altera_chip
|
||||||
|
|||||||
@ -3,7 +3,6 @@
|
|||||||
DEFINE DEBUG 1 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
DEFINE DEBUG 1 ; ¤®¡ ¢«ï¥â áâப㠨 á®®¡é¥¨¥ ® â¥á⮢®© ᡮથ áâ à⮢®¬ íªà ¥
|
||||||
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
DEFINE PACKED_MAIN 0 ; ¯ ª®¢ âì MAIN ¨«¨ ¢«¥§ ¥â ¡¥§ í⮣®?
|
||||||
DEFINE SP2000_Loader_Flag #0107
|
DEFINE SP2000_Loader_Flag #0107
|
||||||
DEFINE SP2000_ConfID #FEFF ;
|
|
||||||
DEFINE IDE_Optimization 1 ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
DEFINE IDE_Optimization 1 ; á«¥£ª ®¯â¨¬¨§¨àã¥â ¥ª®â®àë¥ ¯à®æ¥¤ãàë à ¡®âë á HDD
|
||||||
DEFINE NeedSafePort_Y 1 ; !!!!! ¥á«¨ 0, â® ¢ ०¨¬¥ sp-ᯥªâà㬠¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
DEFINE NeedSafePort_Y 1 ; !!!!! ¥á«¨ 0, â® ¢ ०¨¬¥ sp-ᯥªâà㬠¥ª®â®àë¥ ¯à®æ¥¤ãàë ¬®£ãâ § áà âì íªà
|
||||||
DEFINE Pashalki 0 ;
|
DEFINE Pashalki 0 ;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user