...
This commit is contained in:
parent
97b26695af
commit
6265aedb5c
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
;
|
.RECORD.Size EQU 5
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
DW %00'000'0'0000'0111
|
DW %00'000'0'0000'0111
|
||||||
DW %00'010'0'0110'1111
|
DW %00'010'0'0110'1111
|
||||||
@ -447,44 +447,47 @@
|
|||||||
|
|
||||||
;
|
;
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
DCP_INIT:
|
; ¢ë§ë¢ ¥âáï ¨§ POST_TEST.POST_3_INIT_DCP
|
||||||
LD C,XL
|
DCP_INIT: LD E,YL
|
||||||
LD B,XH
|
|
||||||
LD E,YL
|
|
||||||
LD D,YH
|
LD D,YH
|
||||||
|
EX DE,HL
|
||||||
|
LD E,XL
|
||||||
|
LD D,XH
|
||||||
|
;
|
||||||
|
LD BC,DCP_DATA.RECORD.Size
|
||||||
EXX
|
EXX
|
||||||
|
|
||||||
LD HL,#C000
|
LD HL,#C000
|
||||||
LD DE,#C001
|
LD DE,#C001
|
||||||
LD BC,#3FFF
|
LD BC,#3FFF
|
||||||
LD (HL),L
|
LD (HL),L
|
||||||
LDIR
|
LDIR
|
||||||
|
;
|
||||||
LD IY,DCP_DATA
|
LD IY,DCP_DATA
|
||||||
LD IX,.ret
|
LD IX,.ret
|
||||||
|
;
|
||||||
.loop: LD L,(IY)
|
.loop: LD L,(IY)
|
||||||
LD H,(IY+1)
|
LD H,(IY+1)
|
||||||
LD E,(IY+2)
|
LD E,(IY+2)
|
||||||
LD D,(IY+3)
|
LD D,(IY+3)
|
||||||
LD B,(IY+4)
|
LD B,(IY+4)
|
||||||
JP DCP_CONFIG.PARSE_TABLE
|
JP DCP_CONFIG.PARSE_TABLE
|
||||||
|
;
|
||||||
.ret: LD BC,5
|
.ret: EXX
|
||||||
ADD IY,BC
|
ADD IY,BC
|
||||||
|
EXX
|
||||||
LD A,(IY+2)
|
LD A,(IY+2)
|
||||||
OR (IY+3)
|
OR (IY+3)
|
||||||
JR NZ,.loop
|
JR NZ,.loop
|
||||||
|
|
||||||
EXX
|
EXX
|
||||||
LD XL,C
|
LD XL,E
|
||||||
LD XH,B
|
LD XH,D
|
||||||
|
EX DE,HL
|
||||||
LD YL,E
|
LD YL,E
|
||||||
LD YH,D
|
LD YH,D
|
||||||
|
|
||||||
; First IN command - OPEN DCP
|
; First IN command - OPEN DCP
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
JP (HL)
|
JP POST_TEST.POST_3_OK
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -611,8 +611,8 @@ POST_2_OK:
|
|||||||
|
|
||||||
; ===== INIT DCP ========
|
; ===== INIT DCP ========
|
||||||
POST_3_INIT_DCP:
|
POST_3_INIT_DCP:
|
||||||
LD HL,POST_3_OK ; INIT PORTS
|
;LD HL,POST_3_OK ; INIT PORTS
|
||||||
JP DCP_INIT ; ¯à®æ¥¤ãà ¨¨æ¨ «¨§ 樨 á ¢®§¢à ⮬ ¢ (HL)
|
JP DCP_INIT ; ¯à®æ¥¤ãà ¨¨æ¨ «¨§ 樨 á ¢®§¢à ⮬ POST_3_OK
|
||||||
; ®è¨¡®ª ¥â
|
; ®è¨¡®ª ¥â
|
||||||
|
|
||||||
; ***********************************
|
; ***********************************
|
||||||
@ -697,19 +697,32 @@ POST_5_OK:
|
|||||||
|
|
||||||
; **********************************
|
; **********************************
|
||||||
; POST § ¢¥àè¥
|
; POST § ¢¥àè¥
|
||||||
; **********************************
|
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
|
; **********************************
|
||||||
|
|
||||||
MODULE SET_CONFIG_ID
|
;-----------------------------------------------------------------------;
|
||||||
|
; ¯¥à¢ ï ¨¨æ¨ «¨§ æ¨ï áâà ¨æ:
|
||||||
IN A,(SLOT3)
|
XOR A
|
||||||
EX AF,AF' ; SAVE PAGE3
|
OUT (RGADR),A
|
||||||
|
OUT (RGMOD),A
|
||||||
;NO_SUMX_EQ:
|
OUT (SLOT0),A ;!HARDCODE zx page number
|
||||||
|
; !TEST 20/08/2024
|
||||||
|
;LD A,5 ;!HARDCODE zx page number
|
||||||
|
;OUT (SLOT1),A
|
||||||
|
;LD A,2 ;!HARDCODE zx page number
|
||||||
|
;OUT (SLOT2),A
|
||||||
|
LD A,#FF ;!HARDCODE zx page number
|
||||||
|
OUT (SLOT1),A
|
||||||
|
LD A,0 ;!HARDCODE zx page number
|
||||||
|
OUT (SLOT2),A
|
||||||
|
;
|
||||||
LD A,SYS_PAGE
|
LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
MODULE SET_CONFIG_ID
|
||||||
;-------------[Save IX:IY]--------------
|
;-------------[Save IX:IY]--------------
|
||||||
; Don't use IY before this point if it`s normal booting!!!
|
; Don't use IY before this point if it`s normal booting!!!
|
||||||
LD IX,0
|
LD IX,0
|
||||||
@ -718,65 +731,39 @@ POST_5_OK:
|
|||||||
; ‚ í⮬ ¬¥á⥠ã á IX:IY ¨§ Loader.asm
|
; ‚ í⮬ ¬¥á⥠ã á IX:IY ¨§ Loader.asm
|
||||||
; „®â 騫¨ ¤® áî¤ ¬¥âªã ®â «® ¤¥à
|
; „®â 騫¨ ¤® áî¤ ¬¥âªã ®â «® ¤¥à
|
||||||
;[x] 31/12/2023 ¯®¤áâà 客ª ®â ¥¤®ãâ¥çª¨ ¯ ¬ïâ¨
|
;[x] 31/12/2023 ¯®¤áâà 客ª ®â ¥¤®ãâ¥çª¨ ¯ ¬ïâ¨
|
||||||
|
; IY - number from loader
|
||||||
LD D,YH
|
LD D,YH
|
||||||
LD E,YL
|
LD E,YL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD DE,SP2000_Loader_Flag
|
LD DE,SP2000_Loader_Flag
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
JR NZ,.no_conf_reload
|
JR NZ,.no_conf_reload
|
||||||
;
|
; IX - number from loader
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD DE,ACEX.Config_ID.Sp2000
|
LD DE,ACEX.Config_ID.Sp2000
|
||||||
SBC HL,DE
|
SBC HL,DE
|
||||||
|
; A = 0
|
||||||
JR NZ,.no_conf_reload
|
JR NZ,.no_conf_reload
|
||||||
;
|
|
||||||
LD A,#80
|
LD A,#80
|
||||||
.no_conf_reload:
|
.no_conf_reload:
|
||||||
LD R,A
|
LD R,A ; reg R bit7 - ¯à¨§ ª à ¡®âë «® ¤¥à
|
||||||
;
|
;
|
||||||
|
; ¢á直© á«ãç ©
|
||||||
; !TODO number from loader
|
|
||||||
; LD A,YL
|
|
||||||
; LD L,A
|
|
||||||
; LD A,YH
|
|
||||||
; LD H,A
|
|
||||||
; LD BC,#0107 ; !!!!! áà ¢¨âì á 0107h ¢ë¥á⨠à¥ä¥à¥á®¬ âãâ ¨ ¢ loader.asm
|
|
||||||
; AND A ; ¥á«¨ à ¢® - ¯à®è« ¯¥à¥§ £à㧪
|
|
||||||
; SBC HL,BC
|
|
||||||
;JR Z,set_config ;!TODO ªâ¨¢ æ¨ï ¬¥âª¨ IX:IY ¨§ «® ¤¥à
|
|
||||||
;LD IX,ACEX.Config_ID.Sp97_2
|
|
||||||
LD HL,ACEX.Config_ID.Sp2000
|
LD HL,ACEX.Config_ID.Sp2000
|
||||||
set_config:
|
|
||||||
LD (SYS_PAGE.CONFIG_BYTE),HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
LD (SYS_PAGE.CONFIG_BYTE),HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
||||||
;LD (SYS_PAGE.CONFIG_BYTE),IX ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
|
||||||
;LD HL,(SYS_PAGE.CONFIG_BYTE) ; ¢§ïâì ®¬¥à ¯à®è¨¢ª¨ ¢ HL
|
|
||||||
;
|
;
|
||||||
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
|
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
|
||||||
LD (SYS_PAGE.CONFIG_DE),A
|
LD (SYS_PAGE.CONFIG_DE),A
|
||||||
|
;
|
||||||
EX AF,AF'
|
XOR A ;!HARDCODE zx page number
|
||||||
OUT (SLOT3),A ; Restore SLOT3
|
|
||||||
|
|
||||||
ENDMODULE
|
|
||||||
;*********************************
|
|
||||||
; ¯¥à¢ ï ¨¨æ¨ «¨§ æ¨ï áâà ¨æ:
|
|
||||||
; SLOT3=0, SLOT2=2, SLOT1=5, SLOT0=0
|
|
||||||
|
|
||||||
XOR A
|
|
||||||
OUT (RGADR),A
|
|
||||||
OUT (RGMOD),A
|
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
OUT (SLOT0),A ;!HARDCODE zx page number
|
;
|
||||||
LD A,5 ;!HARDCODE zx page number
|
ENDMODULE
|
||||||
OUT (SLOT1),A
|
;-----------------------------------------------------------------------;
|
||||||
LD A,2 ;!HARDCODE zx page number
|
|
||||||
OUT (SLOT2),A
|
|
||||||
|
|
||||||
;*********************************
|
|
||||||
; Don't use stack (SP) before this point if it`s normal booting!!!
|
; Don't use stack (SP) before this point if it`s normal booting!!!
|
||||||
LD SP,#C000 ; <20> ç «® ¨á¯®«ì§®¢ ¨ï á⥪ !!!
|
LD SP,ROM_MAP.EXP.STACK ; <20> ç «® ¨á¯®«ì§®¢ ¨ï á⥪ !!!
|
||||||
PUSH HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
PUSH HL ; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨
|
||||||
|
|
||||||
CALL PORTS_INIT ; ¨¨æ¨ «¨§¨à®¢ âì ¯®àâë
|
CALL PORTS_INIT ; ¨¨æ¨ «¨§¨à®¢ âì ¯®àâë
|
||||||
@ -785,7 +772,7 @@ set_config:
|
|||||||
CALL EMM.CheckColdInit ; ¨¨æ¨ «¨§ æ¨ï ¯ ¬ïâ¨
|
CALL EMM.CheckColdInit ; ¨¨æ¨ «¨§ æ¨ï ¯ ¬ïâ¨
|
||||||
POP HL ; ª®ä¨£ãà æ¨ï
|
POP HL ; ª®ä¨£ãà æ¨ï
|
||||||
; JR Reset_Handler.start
|
; JR Reset_Handler.start
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
MODULE Reset_Handler
|
MODULE Reset_Handler
|
||||||
start: DI
|
start: DI
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
@ -849,68 +836,12 @@ Check_Spec_Page:
|
|||||||
JR Check_EE_Port.After_Hard_Rst
|
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
|
|
||||||
; [x] 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
|
|
||||||
LDIR
|
|
||||||
;
|
|
||||||
CALL init_rom_address
|
|
||||||
;
|
|
||||||
LD HL,#C000
|
|
||||||
LD DE,#C001
|
|
||||||
LD BC,#3FFF
|
|
||||||
LD (HL),C
|
|
||||||
LDIR ; § ¡¨âì FF- ¬¨
|
|
||||||
; áâ ¢¨¬ ¬¥âªã ¥á«¨ ¯à®£à㧨«¨ <20>‡“ ᯥªâàã¬
|
|
||||||
DEC DE ; Spec_Page.flag_X
|
|
||||||
LD A,'X'
|
|
||||||
LD (DE),A
|
|
||||||
DEC DE ; Spec_Page.flag_Z
|
|
||||||
LD A,'Z'
|
|
||||||
LD (DE),A
|
|
||||||
; ‡ £«ãèª ¤«ï áâà ¨æë #41 ¢á直© ¯®¦ àë©
|
|
||||||
LD HL,PROG_NO_ROM
|
|
||||||
LD DE,#C000+Spec_Page.no_zx_rom
|
|
||||||
LD BC,PROG_NO_ROM.size
|
|
||||||
LDIR
|
|
||||||
;
|
|
||||||
LD HL,RAM_BIOS_PROG
|
|
||||||
LD DE,#C000+Spec_Page.to_bios
|
|
||||||
LD BC,RAM_BIOS_PROG.Length
|
|
||||||
LDIR
|
|
||||||
*/
|
|
||||||
;No_Need_To_Load_ZXROMS:
|
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;-------------------------------------------------------------------------------------------------------------------;
|
|
||||||
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ ਠâë:
|
|
||||||
;[ ] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04
|
|
||||||
;[ ] 1 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £ ZX
|
|
||||||
;[ ] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®)
|
|
||||||
;[ ] 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠¯à¨ ®¡à 饨¨
|
|
||||||
;-------------------------------------------------------------------------------------------------------------------;
|
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
;
|
;-----------------------------------------------------------------------;
|
||||||
;**************************************
|
|
||||||
;
|
|
||||||
MODULE Prepare_For_Setup
|
MODULE Prepare_For_Setup
|
||||||
Set_ALL_Mode: LD A,#FF
|
Set_ALL_Mode: LD A,#FF
|
||||||
LD BC,Port_All_Mode
|
LD BC,Port_All_Mode
|
||||||
@ -919,18 +850,17 @@ Set_ALL_Mode: LD A,#FF
|
|||||||
Set_Default_Screen:
|
Set_Default_Screen:
|
||||||
CALL FN_SYNC.INT_DEF ; set default int
|
CALL FN_SYNC.INT_DEF ; set default int
|
||||||
ld a,128+4 ; !HARDCODE
|
ld a,128+4 ; !HARDCODE
|
||||||
;ld c,BIOS.FN_SYNC
|
|
||||||
;RST_to_BIOS_18 ; set default vsync
|
|
||||||
CALL FN_SYNC ; set default vsync
|
CALL FN_SYNC ; set default vsync
|
||||||
Setup_to_RAM: LD HL,Setup_Starter.Start
|
Setup_to_RAM: LD HL,Setup_Starter.Start
|
||||||
LD DE,COMPILE_ADDR.SETUP_STARTER
|
LD DE,COMPILE_ADDR.SETUP_STARTER
|
||||||
LD BC,Setup_Starter.Length
|
LD BC,Setup_Starter.Size
|
||||||
LDIR
|
LDIR
|
||||||
; á⥪ ª« ¤ñâáï ¤à¥á ¢®§¢à â ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥àãâìáï § ¤
|
; á⥪ ª« ¤ñâáï ¤à¥á ¢®§¢à â ¨ ¤ «ìè¥ â é¨âáï ¢á直¬¨ ª®áâë«ï¬¨, ç⮡ ¢¥àãâìáï § ¤
|
||||||
CALL Setup_Starter.Exec ; #C000
|
CALL Setup_Starter.Exec ; #C000
|
||||||
;JP PrepareToZX
|
;JP PrepareToZX
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
;
|
|
||||||
|
|
||||||
PrepareToZX: ;CALL init_zx_roms
|
PrepareToZX: ;CALL init_zx_roms
|
||||||
; Setup HDD drives for ZX Spectrum mode
|
; Setup HDD drives for ZX Spectrum mode
|
||||||
DI
|
DI
|
||||||
@ -962,6 +892,12 @@ PrepareToZX: ;CALL init_zx_roms
|
|||||||
CP #10
|
CP #10
|
||||||
JR C,.loop
|
JR C,.loop
|
||||||
; ¢ë室 ¢ ०¨¬ zx spectrum
|
; ¢ë室 ¢ ०¨¬ zx spectrum
|
||||||
|
;!TODO § ¬¥¨âì ãáâ ®¢ªã ¨§ à ¬¡«®ª ; [ ] free zx pages!
|
||||||
|
LD A,5
|
||||||
|
OUT (SLOT1),A
|
||||||
|
LD A,2
|
||||||
|
OUT (SLOT2),A
|
||||||
|
;
|
||||||
.start_zx: JP GOTO_SPEC.ZX_MODE
|
.start_zx: JP GOTO_SPEC.ZX_MODE
|
||||||
;***********************************
|
;***********************************
|
||||||
; ˆ¨æ¨ «¨§ æ¨ï ¯®à⮢
|
; ˆ¨æ¨ «¨§ æ¨ï ¯®à⮢
|
||||||
@ -1072,12 +1008,12 @@ PORTS_INIT:
|
|||||||
LD A,CNF_PORT.CNF_3+ROM.BIOS
|
LD A,CNF_PORT.CNF_3+ROM.BIOS
|
||||||
OUT (SYS_PORT.ROM),A
|
OUT (SYS_PORT.ROM),A
|
||||||
OUT (FDC_93.DrvCTRL),A
|
OUT (FDC_93.DrvCTRL),A
|
||||||
push hl
|
PUSH HL
|
||||||
pop hl
|
POP HL
|
||||||
LD A,#3C ;!HARDCODE ª®¬ ¤ ¤«ï ‚ƒ93
|
LD A,#3C ;!HARDCODE ª®¬ ¤ ¤«ï ‚ƒ93
|
||||||
OUT (FDC_93.DrvCTRL),A
|
OUT (FDC_93.DrvCTRL),A
|
||||||
push hl
|
PUSH HL
|
||||||
pop hl
|
POP HL
|
||||||
XOR A
|
XOR A
|
||||||
OUT (FDC_93.Command),A
|
OUT (FDC_93.Command),A
|
||||||
; ‚몫îç¨âì ¤®áâ㯠ª ª®â஫«¥àã ¤¨áª
|
; ‚몫îç¨âì ¤®áâ㯠ª ª®â஫«¥àã ¤¨áª
|
||||||
@ -1211,12 +1147,12 @@ Exec:
|
|||||||
;----------------------[]
|
;----------------------[]
|
||||||
DI
|
DI
|
||||||
POP HL ; ¤à¥á ¢®§¢à â ¢ EXP ¨§ SETUP
|
POP HL ; ¤à¥á ¢®§¢à â ¢ EXP ¨§ SETUP
|
||||||
LD SP,#8000 ;!HARDCODE
|
; LD SP,#8000 ;!HARDCODE
|
||||||
PUSH HL
|
; PUSH HL
|
||||||
PUSH AF
|
; PUSH AF
|
||||||
JP SETUP_MAIN
|
JP SETUP_MAIN
|
||||||
ENT
|
ENT
|
||||||
Length EQU $-Setup_Starter.Start
|
Size EQU $-Setup_Starter.Start
|
||||||
ENDMODULE
|
ENDMODULE
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
;-----------------------------------------------------------------------;
|
;-----------------------------------------------------------------------;
|
||||||
|
|||||||
@ -1,3 +1,11 @@
|
|||||||
|
;-------------------------------------------------------------------------------------------------------------------;
|
||||||
|
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ ਠâë:
|
||||||
|
;[~] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04
|
||||||
|
;[~] 1 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £ ZX
|
||||||
|
;[~] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®)
|
||||||
|
;[ ] 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠¯à¨ ®¡à 饨¨
|
||||||
|
;-------------------------------------------------------------------------------------------------------------------;
|
||||||
|
|
||||||
;
|
;
|
||||||
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
;
|
;
|
||||||
ROM_MAP:
|
ROM_MAP:
|
||||||
.EXP EQU 0
|
.EXP EQU 0
|
||||||
|
.EXP.STACK EQU #C000
|
||||||
.ROM EQU 0
|
.ROM EQU 0
|
||||||
.LOADER EQU 0
|
.LOADER EQU 0
|
||||||
.LOGO EQU 0
|
.LOGO EQU 0
|
||||||
@ -44,7 +45,7 @@ COMPILE_ADDR:
|
|||||||
.MAIN EQU #8000
|
.MAIN EQU #8000
|
||||||
.SETUP EQU #8000
|
.SETUP EQU #8000
|
||||||
.DEPACK EQU #D000
|
.DEPACK EQU #D000
|
||||||
.SETUP_STARTER EQU #C000
|
.SETUP_STARTER EQU .SETUP + SETUP_MAIN.Size ;#C000
|
||||||
;
|
;
|
||||||
; ÛÛÛÛÛÛ» ÛÛÛÛÛÛÛ»ÛÛÛÛÛÛ» ÛÛÛÛÛ» ÛÛÛÛÛÛ»ÛÛ» ÛÛ»ÛÛÛÛÛÛÛ»ÛÛÛÛÛÛ»
|
; ÛÛÛÛÛÛ» ÛÛÛÛÛÛÛ»ÛÛÛÛÛÛ» ÛÛÛÛÛ» ÛÛÛÛÛÛ»ÛÛ» ÛÛ»ÛÛÛÛÛÛÛ»ÛÛÛÛÛÛ»
|
||||||
; ÛÛÉÍÍÛÛ»ÛÛÉÍÍÍͼÛÛÉÍÍÛÛ»ÛÛÉÍÍÛÛ»ÛÛÉÍÍÍͼÛÛº ÛÛɼÛÛÉÍÍÍͼÛÛÉÍÍÛÛ»
|
; ÛÛÉÍÍÛÛ»ÛÛÉÍÍÍͼÛÛÉÍÍÛÛ»ÛÛÉÍÍÛÛ»ÛÛÉÍÍÍͼÛÛº ÛÛɼÛÛÉÍÍÍͼÛÛÉÍÍÛÛ»
|
||||||
|
|||||||
@ -199,13 +199,16 @@ DEPACK_DATA.length EQU $-DEPACK_DATA
|
|||||||
DISP COMPILE_ADDR.SETUP
|
DISP COMPILE_ADDR.SETUP
|
||||||
ShowInfo 'Setup block DISP start', 1 ; !!!!! test
|
ShowInfo 'Setup block DISP start', 1 ; !!!!! test
|
||||||
SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm'
|
SETUP_MAIN: INCLUDE 'src/bios/ROM/SETUP/Main.asm'
|
||||||
|
SETUP_MAIN.Size EQU $-SETUP_MAIN
|
||||||
ShowInfo 'Setup block DISP end', 1 ; !!!!! test
|
ShowInfo 'Setup block DISP end', 1 ; !!!!! test
|
||||||
ENT
|
ENT
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
ASSERT ($ + Setup_Starter.Size) < (STACK - STACK.Size), "WARNING: Stack area overlaps code..."
|
||||||
ShowInfo 'Setup block of ROM end', 0 ; !!!!! test
|
ShowInfo 'Setup block of ROM end', 0 ; !!!!! test
|
||||||
BLOCK_Setup.Length EQU $-BLOCK_Setup
|
BLOCK_Setup.Length EQU $-BLOCK_Setup
|
||||||
|
|
||||||
|
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -79,14 +79,14 @@ MEMMAP2 EQU TEMP ;
|
|||||||
TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/2023
|
TPOINTD EQU TEMP - SYS_PAGE.RAMD_KEYS.NUM - SYS_PAGE.Sp_RAMD_KEYS.NUM ; [x] 4/11/2023
|
||||||
|
|
||||||
|
|
||||||
;=======================================
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
;SETUP_MAIN:
|
;SETUP_MAIN:
|
||||||
MAIN_START:
|
MAIN_START:
|
||||||
POP AF
|
; POP AF
|
||||||
POP HL
|
; POP HL
|
||||||
LD SP,STACK
|
LD SP,STACK
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD (RET_TO_EXP_ADDR),hl
|
LD (RET_TO_EXP_ADDR),HL
|
||||||
JP START
|
JP START
|
||||||
; DB "(C) 2002 PETERS PLUS LTD "
|
; DB "(C) 2002 PETERS PLUS LTD "
|
||||||
RET_TO_EXP_ADDR: WORD 0000 ; place for save ret address to exp
|
RET_TO_EXP_ADDR: WORD 0000 ; place for save ret address to exp
|
||||||
@ -254,7 +254,6 @@ CLEARM: IN A,(SLOT3)
|
|||||||
LDIR
|
LDIR
|
||||||
; [x] 4/11/2023
|
; [x] 4/11/2023
|
||||||
LD HL,SYS_PAGE.Sp_RAMD_KEYS
|
LD HL,SYS_PAGE.Sp_RAMD_KEYS
|
||||||
LD DE,TPOINTD + SYS_PAGE.RAMD_KEYS.NUM
|
|
||||||
LD BC,SYS_PAGE.Sp_RAMD_KEYS.NUM
|
LD BC,SYS_PAGE.Sp_RAMD_KEYS.NUM
|
||||||
LDIR
|
LDIR
|
||||||
;
|
;
|
||||||
@ -483,7 +482,9 @@ START:
|
|||||||
|
|
||||||
|
|
||||||
;R08 CALL OPENDOS
|
;R08 CALL OPENDOS
|
||||||
CALL ZXCLS
|
;!TEST 20/08/2024
|
||||||
|
;CALL ZXCLS
|
||||||
|
;
|
||||||
CALL READING
|
CALL READING
|
||||||
CALL TCHEKSM
|
CALL TCHEKSM
|
||||||
CALL NZ,SETDEFX
|
CALL NZ,SETDEFX
|
||||||
@ -1308,12 +1309,14 @@ PMEMORY:
|
|||||||
LD A,"K"
|
LD A,"K"
|
||||||
JP PRINT_CHAR
|
JP PRINT_CHAR
|
||||||
|
|
||||||
|
IFUSED ZXCLS
|
||||||
ZXCLS: LD HL,#4000
|
ZXCLS: LD HL,#4000
|
||||||
LD DE,#4001
|
LD DE,#4001
|
||||||
LD BC,#1AFF
|
LD BC,#1AFF
|
||||||
LD (HL),L
|
LD (HL),L
|
||||||
LDIR
|
LDIR
|
||||||
RET
|
RET
|
||||||
|
ENDIF
|
||||||
|
|
||||||
GET_ID: LD HL,memBUFFER.ID
|
GET_ID: LD HL,memBUFFER.ID
|
||||||
;LD C,BIOS.FN_VERSION
|
;LD C,BIOS.FN_VERSION
|
||||||
@ -1740,10 +1743,10 @@ End BYTE
|
|||||||
|
|
||||||
memBUFFER MAIN_BUFFERS = $
|
memBUFFER MAIN_BUFFERS = $
|
||||||
STACK EQU #C000
|
STACK EQU #C000
|
||||||
.size EQU 128
|
.Size EQU 128
|
||||||
|
|
||||||
|
|
||||||
IF memBUFFER.End-1 > #C000-STACK.size
|
IF memBUFFER.End-1 > #C000-STACK.Size
|
||||||
DISPLAY 'memBUFFER.Shared overlaps STACK by: ',/A,(memBUFFER.End-1)-(#C000-STACK.size)
|
DISPLAY 'memBUFFER.Shared overlaps STACK by: ',/A,(memBUFFER.End-1)-(#C000-STACK.size)
|
||||||
ASSERT memBUFFER.End-1 < #C000-STACK.size
|
ASSERT memBUFFER.End-1 < #C000-STACK.size
|
||||||
ENDIF
|
ENDIF
|
||||||
@ -1761,7 +1764,7 @@ STACK EQU #C000
|
|||||||
DISPLAY 'End code address: ',/A,$-1
|
DISPLAY 'End code address: ',/A,$-1
|
||||||
DISPLAY 'Code size: ',/A,$-COMPILE_ADDR.MAIN
|
DISPLAY 'Code size: ',/A,$-COMPILE_ADDR.MAIN
|
||||||
DISPLAY 'End buffers address: ',/A,memBUFFER.End-1
|
DISPLAY 'End buffers address: ',/A,memBUFFER.End-1
|
||||||
DISPLAY 'Free memory: ',/A,#C000-(memBUFFER.End-1)-STACK.size
|
DISPLAY 'Free memory: ',/A,#C000-(memBUFFER.End-1)-STACK.Size
|
||||||
DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer
|
DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
Loading…
Reference in New Issue
Block a user