mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 09:01:38 +03:00
checking ZX flag in Spec_Page before start spectrum mode with missing ROMs in CNF
This commit is contained in:
parent
ecb79faa1a
commit
9aca5b5351
@ -1 +1 @@
|
||||
Subproject commit 809ea1f0b204f2d56555497c1c808806833d6315
|
||||
Subproject commit 21c7eb690adb62e35c41fdcda76dc3bf97f369b4
|
||||
165
spectrum.asm
165
spectrum.asm
@ -15,22 +15,23 @@
|
||||
|
||||
/*
|
||||
SYS
|
||||
[+] - § ¤ ¢ âì CONFIG_DE ¯¥à¥¤ § ¯ã᪮¬ ᯥªâà㬠¨ ¢ ¯¥à¥å¢ â稪¥ à¥á¥â
|
||||
[+] - ¯®¤¤¥à¦ª ®¢ëå ®¡à §®¢ vROM
|
||||
[+] - ¤®¡ ¢«¥ ᮢ¬¥á⨬®áâì á ¤¥¬® ATARIN, ãᯮ«ì§ãî饥 ¥¯®«ãî ¤¥è¨äà æ¨î ¯®àâ AY
|
||||
[x] - § ¤ ¢ âì CONFIG_DE ¯¥à¥¤ § ¯ã᪮¬ ᯥªâà㬠¨ ¢ ¯¥à¥å¢ â稪¥ à¥á¥â
|
||||
[x] - ¯®¤¤¥à¦ª ®¢ëå ®¡à §®¢ vROM
|
||||
[x] - ¢ ª®ä¨£¥ ¬®£ãâ ¡ëâì ¯à®¯ãé¥ë ¥ª®â®àë¥ vROM,®¨ ¥ § £à㦠îâáï
|
||||
[x] - ¤®¡ ¢«¥ ᮢ¬¥á⨬®áâì á ¤¥¬® ATARIN, ãᯮ«ì§ãî饥 ¥¯®«ãî ¤¥è¨äà æ¨î ¯®àâ AY
|
||||
[ ] - ¯à®¢¥àïâì ¬¥âªã ZX,¥á«¨ ¬ë ¥ £à㧨¬ 3 ®á®¢ëå vROM
|
||||
[ ] - ¢ ª®ä¨£¥ ¬®£ãâ ¡ëâì ¯à®¯ãé¥ë ¥ª®â®àë¥ vROM,®¨ ¥ § £à㦠îâáï
|
||||
;
|
||||
Images
|
||||
[+] - Load SCL image
|
||||
[ ] - Load TAP image
|
||||
[ ] - Load SNA file
|
||||
[ ] - Load TAP image
|
||||
;
|
||||
Features
|
||||
[+] - …᫨ ¢ë¡à ® ret-zx,â® ¯à¨ ¦ ⨨ ¯à®¡¥« áà §ã ¯®á«¥ CAD ¢¥àñâ ¢ DSS
|
||||
[ ] - When image filename exist,then instead of SPECTRUM.CFG loads image_filename.cfg if exist too
|
||||
[*] - Œ¥ïâì ᯥªâà㬮¢áªãî ¯ «¨âàã
|
||||
[ ] - ‚ë¤ ¢ âì á®®¡é¥¨ï ï§ëª¥ ãáâ ®¢«¥®¬ ¢ CMOS
|
||||
[ ] - Œ¥ïâì ᯥªâà㬮¢áªãî ¯ «¨âàã
|
||||
[ ] - ¥á«¨ 㪠§ ® ⮫쪮 ¨¬ï ®¡à § IMAGE.TRD ¯à¨ § ¯ã᪥ ¨áª âì ¢ í⮩ ¦¥ ¯ ¯ª¥ IMAGE.ZX
|
||||
¨ ⮫쪮 ¥á«¨ ¥£® ¥â, â® £à㧨âì ¤¥ä®«âë© spectrum.cfg ¨§ ¯ ¯ª¨ á ¯à®£à ¬¬®©
|
||||
*/
|
||||
|
||||
;
|
||||
@ -164,7 +165,7 @@ BEGIN: LD (LINE_X),IX
|
||||
|
||||
|
||||
Error_NoMemForSPpages:
|
||||
LD HL,NO_MEM_MSG2
|
||||
LD HL,NO_MEM_MSG
|
||||
JR ERROR_FILE.prn_msg
|
||||
ERROR_FILE: LD HL,ERROR_FILE_MSG_X
|
||||
LD C,Dss.PChars
|
||||
@ -180,22 +181,12 @@ ERROR_FILE: LD HL,ERROR_FILE_MSG_X
|
||||
;
|
||||
LD HL,ERROR_FILE_MSG
|
||||
JP EXIT_ALL
|
||||
|
||||
ERROR_ZX_FLAG: LD HL,MSG_NO_ZX_FLAG
|
||||
JP EXIT_ALL
|
||||
END_CNF_ERROR:
|
||||
LD HL,ERROR_CNF
|
||||
;JP EXIT_ALL
|
||||
EXIT_ALL:
|
||||
; PUSH HL
|
||||
;---------------------[test!!!!!]-------
|
||||
;LD A,0
|
||||
;LD C,BIOS.EMM_FN3
|
||||
;RST ToBIOS ; ®á¢®¡®¤¨âì e:
|
||||
;LD A,(SAVE_SLOT3)
|
||||
;OUT (SLOT3),A
|
||||
;---------------------------------------
|
||||
|
||||
;POP HL
|
||||
LD C,Dss.PChars
|
||||
EXIT_ALL: LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
|
||||
;---------------------[test!!!!!]-------
|
||||
@ -319,7 +310,7 @@ LEN_LINE_ZX EQU $-LINE_ZX
|
||||
;*********************************************
|
||||
|
||||
MSG_EXIT1: DB 13,10,"EXIT without run",13,10,0
|
||||
MSG_EXIT2: DB 13,10,"‚ë室 ¡¥§ § ¯ã᪠"
|
||||
;MSG_EXIT2: DB 13,10,"‚ë室 ¡¥§ § ¯ã᪠"
|
||||
CR_LINE: DB 13,10,0
|
||||
START_MSG: DB 13,10,'SPECTRUM launcher v',SP_VERSION,'.'
|
||||
DB 13,10,'(c) Sprinter Team.'
|
||||
@ -328,28 +319,30 @@ START_MSG: DB 13,10,'SPECTRUM launcher v',SP_VERSION,'.'
|
||||
DB 13,10,BUILD_DATE,' - ',__TIME__,13,10,0
|
||||
ERROR_FILE_MSG_X:
|
||||
DB 13,10,"Error in file: ",0
|
||||
ERROR_FILE2_MSG_X:
|
||||
DB 13,10,"Žè¨¡ª ¢ ä ©«¥: ",0
|
||||
;ERROR_FILE2_MSG_X:
|
||||
; DB 13,10,"Žè¨¡ª ¢ ä ©«¥: ",0
|
||||
ERROR_FILE_MSG: DB 13,10,"Unable to work.",0
|
||||
ERROR_FILE2_MSG:
|
||||
DB 13,10,"<22> ¡®â ¥¢®§¬®¦ .",0
|
||||
;ERROR_FILE2_MSG:
|
||||
; DB 13,10,"<22> ¡®â ¥¢®§¬®¦ .",0
|
||||
ERROR_CNF: DB 13,10,"Unexpected CNF file end.",0
|
||||
ERROR_CNF2: DB 13,10,"<22>¥®¦¨¤ ë© ª®¥æ CNF ä ©« .",0
|
||||
;ERROR_CNF2: DB 13,10,"<22>¥®¦¨¤ ë© ª®¥æ CNF ä ©« .",0
|
||||
NO_MEM_MSG: DB 13,10,"The spesial pages are already used."
|
||||
DB 13,10,"Clear memory and restart spectrum.exe again.",0
|
||||
NO_MEM_MSG2: DB 13,10,"‘¯¥æ¨ «ìë¥ áâà ¨æë 㦥 § ïâë."
|
||||
DB 13,10,"Žç¨áâ¨â¥ ¯ ¬ïâì ¨ ¯¥à¥§ ¯ãáâ¨â¥ spectrum.exe ᮢ .",0
|
||||
;NO_MEM_MSG2: DB 13,10,"‘¯¥æ¨ «ìë¥ áâà ¨æë 㦥 § ïâë."
|
||||
; DB 13,10,"Žç¨áâ¨â¥ ¯ ¬ïâì ¨ ¯¥à¥§ ¯ãáâ¨â¥ spectrum.exe ᮢ .",0
|
||||
MSG_NORMAL: DB 13,10,"All files has been read successfully.",13,10
|
||||
DB "MODE: ",0
|
||||
MSG_NORMAL2: DB 13,10,"‚á¥ ä ©«ë áç¨â ë ®à¬ «ì®.",13,10
|
||||
DB "Ю䍣ãà æ¨ï: ",0
|
||||
;MSG_NORMAL2: DB 13,10,"‚á¥ ä ©«ë áç¨â ë ®à¬ «ì®.",13,10
|
||||
; DB "Ю䍣ãà æ¨ï: ",0
|
||||
MSG_NO_MEM: DB 13,10,"No memory space for image or",0
|
||||
MSG_NO_MEM2: DB 13,10,"<22>¥ å¢ â ¥â ¯ ¬ï⨠¤«ï ®¡à § ¨«¨",0
|
||||
;MSG_NO_MEM2: DB 13,10,"<22>¥ å¢ â ¥â ¯ ¬ï⨠¤«ï ®¡à § ¨«¨",0
|
||||
MSG_LOAD_IMAGE: DB 13,10,"Image loading: ",0
|
||||
MSG_LOAD_IMAGE2:
|
||||
DB 13,10,"‡ £à㧪 ®¡à § : ",0
|
||||
;MSG_LOAD_IMAGE2:
|
||||
; DB 13,10,"‡ £à㧪 ®¡à § : ",0
|
||||
MSG_ZX_EXIT: DB 13,10,"EXIT from Spectrum configuration",0
|
||||
MSG_ZX_EXIT2: DB 13,10,"EXIT from ZX mode",0
|
||||
MSG_NO_ZX_FLAG: DB 13,10,'Error: Necessary ROM images are missing in the CNF file and in RAM!!!'
|
||||
DB 13,10,' Run "spectrum.exe norun.zx" with the required set of ZX ROMs.',13,10,0
|
||||
PROGRES_IND: DB '°',0 ; 176
|
||||
|
||||
;MEM_BLK: BYTE 0
|
||||
@ -413,7 +406,10 @@ N_LINE: LD (HL),0
|
||||
|
||||
LD (HL),0
|
||||
EX DE,HL
|
||||
JP .skip_load
|
||||
LD A,(NO_ZX_FLAG)
|
||||
OR A
|
||||
JR Z,.skip_load
|
||||
JP ERROR_ZX_FLAG
|
||||
.go_load:
|
||||
LD A,(HL) ;BUFFER_RAM_PAGES.ROM
|
||||
PUSH HL
|
||||
@ -429,6 +425,9 @@ N_LINE: LD (HL),0
|
||||
EX DE,HL
|
||||
ENDM
|
||||
;
|
||||
;!FIXIT ¢à¥¬¥ ï § ¯« âª
|
||||
CALL CHECK_ZX_FLAG
|
||||
;
|
||||
|
||||
;LD BC,BUFFER_RAM_PAGES.ROM
|
||||
LD HL,BUFFER_RAM_PAGES.ROM
|
||||
@ -621,9 +620,15 @@ PARAM_END: LD HL,BUFFER_RAM_PAGES.ROM
|
||||
SKIP_IMAGE: LD A,(No_run_+2)
|
||||
AND A
|
||||
LD HL,MSG_EXIT1
|
||||
JP Z,EXIT_ALL
|
||||
JP NZ,SETUP_RAM_DRIVES
|
||||
|
||||
LD A,"Z"
|
||||
LD (Spec_Page.flag_Z),A
|
||||
LD A,"X"
|
||||
LD (Spec_Page.flag_X),A
|
||||
|
||||
JP EXIT_ALL
|
||||
|
||||
JP SET_RELOAD_PROG
|
||||
|
||||
;LD HL,MSG_NORMAL
|
||||
;JP EXIT_ALL
|
||||
@ -696,10 +701,9 @@ READ_IMAGE: LD DE,ONE_FILE
|
||||
;jp Error_Flag ;!!!!!!!!!!!!!!!!
|
||||
|
||||
.Load_TRD: LD A,(IMAGE_HANDLER)
|
||||
LD B,Dss.Move_FP.FrEnd
|
||||
LD HL,0
|
||||
LD IX,0
|
||||
LD C,Dss.Move_FP
|
||||
LD BC,Dss.Move_FP.FrEnd
|
||||
RST ToDSS ; ©â¨ ¤«¨ã ä ©«
|
||||
RET C
|
||||
|
||||
@ -897,33 +901,6 @@ EXIT_TO_DSS: DI
|
||||
LD HL,MSG_ZX_EXIT
|
||||
JP EXIT_ALL
|
||||
|
||||
;!FIXIT ¯¥à¥¤¥« âì äãªæ¨î ¡¨®á
|
||||
SET_RELOAD_PROG:
|
||||
DI
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD A,"Z"
|
||||
LD (#FFFE),A
|
||||
LD A,"X"
|
||||
LD (#FFFF),A
|
||||
|
||||
LD A,(Ret_fn_+2)
|
||||
AND A
|
||||
LD DE,RESET_TO_ZX ; ¤à¥á ¯à®£à ¬¬ë ¯¥à¥§ ¯ã᪠¤«ï ret-zx
|
||||
JR Z,NO_RET_FN
|
||||
LD DE,EXIT_TO_DSS ; ¤à¥á ¯à®£à ¬¬ë ¯¥à¥§ ¯ã᪠¤«ï ret-fn
|
||||
|
||||
NO_RET_FN:
|
||||
LD (#FFF4),DE ; ¤à¥á ¯à®£à ¬¬ë ¢®§¢à â
|
||||
IN A,(SLOT0)
|
||||
LD (#FFF0),A ; DOS-PAGE
|
||||
IN A,(SLOT1)
|
||||
LD (#FFF1),A
|
||||
IN A,(SLOT2) ; á®åà ¨âì áâà ¨æã
|
||||
LD (#FFF2),A ; ¯à®£à ¬¬ë ¤«ï ¢®§¢à â
|
||||
IN A,(SLOT3)
|
||||
LD (#FFF3),A ;
|
||||
;********************************************
|
||||
;!TEST; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS. BLK_TO_RAMD
|
||||
SETUP_RAM_DRIVES:
|
||||
@ -950,6 +927,33 @@ SETUP_RAM_DRIVES:
|
||||
RST ToBIOS
|
||||
.skip: ;
|
||||
;********************************************
|
||||
;!FIXIT ¯¥à¥¤¥« âì äãªæ¨î ¡¨®á
|
||||
SET_RELOAD_PROG:
|
||||
DI
|
||||
LD A,Spec_Page
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD A,"Z"
|
||||
LD (#FFFE),A
|
||||
LD A,"X"
|
||||
LD (#FFFF),A
|
||||
|
||||
LD A,(Ret_fn_+2)
|
||||
AND A
|
||||
LD DE,RESET_TO_ZX ; ¤à¥á ¯à®£à ¬¬ë ¯¥à¥§ ¯ã᪠¤«ï ret-zx
|
||||
JR Z,NO_RET_FN
|
||||
LD DE,EXIT_TO_DSS ; ¤à¥á ¯à®£à ¬¬ë ¯¥à¥§ ¯ã᪠¤«ï ret-fn
|
||||
;
|
||||
NO_RET_FN: LD (#FFF4),DE ; ¤à¥á ¯à®£à ¬¬ë ¢®§¢à â
|
||||
IN A,(SLOT0)
|
||||
LD (#FFF0),A ; DOS-PAGE
|
||||
IN A,(SLOT1)
|
||||
LD (#FFF1),A
|
||||
IN A,(SLOT2) ; á®åà ¨âì áâà ¨æã
|
||||
LD (#FFF2),A ; ¯à®£à ¬¬ë ¤«ï ¢®§¢à â
|
||||
IN A,(SLOT3)
|
||||
LD (#FFF3),A ;
|
||||
;********************************************
|
||||
|
||||
RESET_TO_ZX: DI
|
||||
LD SP,#BFF0
|
||||
@ -1009,7 +1013,7 @@ ORIG1: LD BC,Port_All_Mode
|
||||
RST ToBIOS_18
|
||||
|
||||
;---------------[test!!!!!]-------------
|
||||
;!FIXIT à §à㫨âì ०¨¬ ᯥªâàã¬ à ¡®âã á «î¡ë¬¨ ª « ¬¨ ¨ à §¤¥« ¬¨
|
||||
;!FIXIT à §à㫨âì ०¨¬ ᯥªâàã¬ à ¡®âã á «î¡ë¬¨ ª « ¬¨
|
||||
XOR A ; --> IDE-1
|
||||
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
|
||||
RST ToBIOS_18
|
||||
@ -1185,7 +1189,7 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME)
|
||||
RST ToDSS
|
||||
;
|
||||
LD HL,ONE_FILE
|
||||
LD BC,Dss.EX_Path.GET_ALL*256 + Dss.EX_Path
|
||||
LD BC,Dss.EX_Path.GET_ALL
|
||||
RST ToDSS
|
||||
;
|
||||
CP 3 ; only "FileName.ext"?
|
||||
@ -1214,6 +1218,31 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME)
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
;!FIXIT ¢à¥¬¥ ï § ¯« âª
|
||||
CHECK_ZX_FLAG:
|
||||
LD BC,SLOT3
|
||||
IN B,(C)
|
||||
LD A,Spec_Page
|
||||
OUT (C),A
|
||||
LD A,(Spec_Page.flag_Z)
|
||||
CP 'Z'
|
||||
JR NZ,.no_zx
|
||||
LD A,(Spec_Page.flag_X)
|
||||
CP 'X'
|
||||
JP Z,.exit
|
||||
;
|
||||
.no_zx: LD A,1
|
||||
LD (NO_ZX_FLAG),A
|
||||
|
||||
.exit: OUT (C),B
|
||||
RET
|
||||
NO_ZX_FLAG DB 0
|
||||
;----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
; …᫨ ¯ à ¬¥âà § ¤ , â® ¢ë¡¨à ¥âáï § 票¥ Y
|
||||
PARAMS:; Y / N ; âãâ § ç¥¨ï ¤«ï ª«î祩 § ¯¨áë¢ îâáï ª ª 16 ¡¨â § 票¥, § ç¨â ®¡à âë© ¯®à冷ª ¡ ©â®¢
|
||||
Turbo__: DW Turbo_, #0302 ; ¢ª«îç¨âì TURBO
|
||||
|
||||
Loading…
Reference in New Issue
Block a user