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