DSS version check

This commit is contained in:
Tolik 2024-10-30 00:55:31 +10:00
parent bd8b527a32
commit 4dca7f0b60
5 changed files with 190 additions and 13 deletions

@ -1 +1 @@
Subproject commit be501b0cc276065a9981e471dd26f9b069af7604 Subproject commit 710aa4b5dd4b651bcb01ef5e86150b99dfe739ee

71
macroses/accelerator Normal file
View File

@ -0,0 +1,71 @@
; Œ ªà®áë  ªá¥«¥à â®à  ¤«ï ªà á®âë))
;--------[¢ëª«îç¨âì  ªá¥«¥à â®à]--------
MACRO ACC_Off
ld b,b
ENDM
;---------------------------------------
;---------[०¨¬ ¯à¨¥¬  ¡ ©â ]----------
MACRO ACC_SetBlockSize
ld d,d
; ¢ª«îç ¥â  ªá¥«¥à â®à ¢ ०¨¬ ¯à¨¥¬ 
; ¡ ©â  à §¬¥à  ¡«®ª  ¤ «¥¥ á«¥¤ã¥â
; ª®¬ ­¤  ⨯  LD A,dat, £¤¥ dat ¨ ¡ã¤¥â
; ­®¢ë¬ à §¬¥à®¬ ¡«®ª . …᫨ à §¬¥à
; ¡«®ª  ¡ë« ãáâ ­®¢«¥­ à ­¥¥, ¥£® ¬®¦­®
; ­¥ ãáâ ­ ¢«¨¢ âì.
ENDM
;---------------------------------------
;-------[§ ¯®«­¥­¨¥ ®¤­¨¬ ¡ ©â®¬]-------
MACRO ACC_FillOneByte
ld c,c
; ޝ¥à æ¨ï Fill. <20>®á«¥¤ãîé ï ª®¬ ­¤ 
; ⨯  LD (HL),A ¯à¨¢¥¤¥â ª § ¯®«­¥­¨î
; 㪠§ ­­®£® à ­¥¥ ª®«¨ç¥á⢠ ¡ ©â
; §­ ç¥­¨¥¬ A
ENDM
;---------------------------------------
;----[§ ¯®«­¥­¨¥ ¢¥à⨪ «ì­ëå «¨­¨©]----
;ޝ¥à æ¨ï Fill ¤«ï £à ä¨ç¥áª®£® íªà ­ .
MACRO ACC_FillScreenOneByte
ld e,e
; <20>®á«¥¤ãîé ï ª®¬ ­¤  ⨯  LD (HL),A
; ¯à¨¢¥¤¥â ª § ¯®«­¥­¨î §­ ç¥­¨¥¬ A
; ¢¥à⨪ «ì­ëå «¨­¨© íªà ­  㪠§ ­­ë¬
; à ­¥¥ ª®«¨ç¥á⢮¬ ¡ ©â
ENDM
;---------------------------------------
;----------[ª®¯¨à®¢ ­¨¥ ¡«®ª ]----------
MACRO ACC_CopyBlock
ld l,l
; <20>®á«¥¤ãîé ï ª®¬ ­¤  ⨯  LD A,(HL)
; ¯à¨¢¥¤¥â ª § ¯®«­¥­¨î އ“  ªá¥«¥à â®à 
; ¤ ­­ë¬¨ ¨§  ¤à¥á  (HL),   ª®¬ ­¤  ⨯ 
; LD (DE),A ¯à¨¢¥¤¥â ª ¯¥à¥§ ¯¨á¨ ¤ ­­ëå
; ¨§ އ“  ªá¥«¥à â®à  ¢ ®á­®¢­®¥ ¨«¨
; ¢¨¤¥®-އ“.
ENDM
;---------------------------------------
;---[ª®¯¨à®¢ ­¨¥ £à ä¨ç¥áª®£® ¡«®ª ]----
MACRO ACC_CopyScreenBlock
ld a,a
; ª®¯¨à®¢ ­¨¥ ¡«®ª  ¤«ï £à ä. íªà ­ .
; <20>®á«¥¤ãîé ï ª®¬ ­¤  ⨯  LD A,(HL)
; ¯à¨¢¥¤¥â ª § ¯®«­¥­¨î އ“  ªá¥«¥à â®à 
; ¤ ­­ë¬¨ ¨§  ¤à¥á  (HL),   ª®¬ ­¤  ⨯ 
; LD (DE),A ¯à¨¢¥¤¥â ª ¯¥à¥§ ¯¨á¨ ¤ ­­ëå
; ¨§ އ“  ªá¥«¥à â®à  ¢ ¢¨¤¥®-އ“
; ¢¥à⨪ «ì­ë¬¨ «¨­¨ï¬¨.
ENDM
;---------------------------------------
;--------------[Reserved]---------------
MACRO ACC_Reserved
LD H,H
ENDM
;---------------------------------------

73
macroses/macros Normal file
View File

@ -0,0 +1,73 @@
;
MACRO FRAM_ON
IN A,(FastRAM_ON)
IF Emulator
PUSH BC
PUSH AF
LD BC,#1FFD
XOR A
OUT (C),A
OUT (FastRam_BANK0),A
POP AF
POP BC
ENDIF
ENDM
MACRO FRAM_OFF
IN A,(FastRAM_OFF)
IF Emulator
PUSH BC
PUSH AF
LD BC,#1FFD
LD A,1
OUT (C),A
XOR A
OUT (FastRam_BANK0),A
POP AF
POP BC
ENDIF
ENDM
;
;
MACRO PrintProc
MODULE PrintF
;---------------------------------------
printstr:
; ¢ ॣ. HL  ¤à¥á ­  ¯¥ç â ¥¬ë© ¡ãä¥à
LD C,Dss.PChars
jp ToDSS
;---------------------------------------
;---------------------------------------
; ¢ ॣ. A ç¨á«® ¯¥ç â ¥¬®¥ ª ª hex
printhex:
LD D,A
RRCA
RRCA
RRCA
RRCA
AND #0F
ADD A,#30
CP #3A
JR C,.PRNH1
ADD A,7
.PRNH1:
CALL .PRINT_CHAR
LD A,D
AND #0F
ADD A,#30
CP #3A
JP C,.PRINT_CHAR
ADD A,7
JP .PRINT_CHAR
; ¢ ॣ¨áâॠA ᨬ¢®« ¤«ï ¯¥ç â¨
.PRINT_CHAR:
LD BC,#0182
JP ToBIOS
;---------------------------------------
ENDMODULE
ENDM
;
;

View File

@ -138,7 +138,19 @@ BEGIN: LD (LINE_X),IX
LD HL,START_MSG LD HL,START_MSG
LD C,Dss.PChars LD C,Dss.PChars
RST ToDSS RST ToDSS
;
;
LD C,Dss.Version
RST ToDSS
SCF
LD HL,256*DSS_MIN_VERS.vers + DSS_MIN_VERS.modf
SBC HL,DE
JP NC,ERROR_OLD_DSS
LD HL,DSS_MIN_VERS.build
SBC HL,BC
JR NC,ERROR_OLD_DSS
;
;
IN A,(SLOT3) IN A,(SLOT3)
LD (SAVE_SLOT3),A LD (SAVE_SLOT3),A
; ;
@ -203,17 +215,21 @@ BEGIN: LD (LINE_X),IX
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
Error_NoMemForSPpages: Error_NoMemForSPpages:
LD HL,NO_MEM_MSG LD HL,NO_MEM_MSG
LD B,DSS_Error.sys.NOT_ENOUGH_MEMORY
JR ERROR_FILE.prn_msg JR ERROR_FILE.prn_msg
; ;
ERROR_FILE: LD HL,ERROR_FILE_MSG_X ERROR_FILE: LD HL,ERROR_FILE_MSG_X
LD C,Dss.PChars LD C,Dss.PChars
RST ToDSS RST ToDSS
; ;
LD A,(FILE_HANDLE) ; LD A,(FILE_HANDLE)
LD C,Dss.Close ; LD C,Dss.Close
RST ToDSS ; RST ToDSS
; ;
LD HL,ONE_FILE LD HL,ONE_FILE
.prn_msg: LD C,Dss.PChars LD B,DSS_Error.sys.FILE_NOT_FOUND
.prn_msg: PUSH BC
LD C,Dss.PChars
RST ToDSS RST ToDSS
; ;
LD A,(vROM_LOAD_BIN.need_free) LD A,(vROM_LOAD_BIN.need_free)
@ -225,20 +241,31 @@ ERROR_FILE: LD HL,ERROR_FILE_MSG_X
RST ToBIOS RST ToBIOS
; ;
.skip_free: LD HL,ERROR_FILE_MSG .skip_free: LD HL,ERROR_FILE_MSG
JR EXIT_ALL POP BC
JR EXIT_NOW
; ;
ERROR_ZX_FLAG: LD HL,MSG_NO_ZX_FLAG ERROR_ZX_FLAG: LD HL,MSG_NO_ZX_FLAG
JR EXIT_ALL JR EXIT_NOW
END_CNF_ERROR: ; ;
LD HL,ERROR_CNF ERROR_OLD_DSS: LD HL,MSG_OLD_DSS
EXIT_ALL: LD C,Dss.PChars JR EXIT_NOW
; ;
EXIT_ALL: LD B,DSS_Error.sys.NO_ERROR
JR EXIT_NOW
; ;
END_CNF_ERROR: LD HL,ERROR_CNF
LD B,DSS_Error.sys.UNKNOWN_FORMAT
EXIT_NOW: PUSH BC
LD C,Dss.PChars
RST ToDSS RST ToDSS
; ;
LD BC,BIOS.ZX_MEMORY_MANAGER.FreeZXvPages.vRAM LD BC,BIOS.ZX_MEMORY_MANAGER.FreeZXvPages.vRAM
RST ToBIOS RST ToBIOS
.loop: LD BC,Dss.Exit POP BC
.loop: LD C,Dss.Exit
RST ToDSS RST ToDSS
JR .loop JR .loop
; ; ;
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
@ -1470,6 +1497,7 @@ MSG_ZX_EXIT: DB 13,10, "EXIT from Spectrum mode",13,10,0
;MSG_ZX_EXIT2: DB 13,10, "EXIT from ZX mode",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!!!' 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 DB 13,10, ' Run "spectrum.exe norun.zx" with the required set of ZX ROMs.',13,10,0
MSG_OLD_DSS: DB 13,10, 'To run this version of SPECTRUM launcher you need DSS v1.70.998 or higher.',13,10,0
PROGRES_IND: DB '°',0 ; 176 PROGRES_IND: DB '°',0 ; 176
PROGRES_100: DB ' 100%',13,10,0 PROGRES_100: DB ' 100%',13,10,0

View File

@ -6,3 +6,8 @@
DEFINE SP_VERSION "2.03 beta build" DEFINE SP_VERSION "2.03 beta build"
; ;
DSS_MIN_VERS:
.vers EQU 1
.modf EQU 70
.build EQU 998
;