игры с ZIP

This commit is contained in:
Tolik 2025-05-02 04:10:14 +10:00
parent 863f7f58e4
commit 91dbea19dc
6 changed files with 104 additions and 75 deletions

@ -1 +1 @@
Subproject commit a6c50f572424e88f6199d639fa8109d53b71142c Subproject commit 68e156a69e848e7b01656cdf67122022999d75ee

Binary file not shown.

View File

@ -1249,6 +1249,9 @@ GOTO_SPEC: PUSH HL
LD HL,RET_TO_BIOS LD HL,RET_TO_BIOS
EX (SP),HL EX (SP),HL
PUSH HL PUSH HL
PUSH AF
CALL FN_TURBO.SET_FDD_720
POP AF
LD HL,GOTO_SPECTRUM LD HL,GOTO_SPECTRUM
EX (SP),HL EX (SP),HL
JP EXTENSION_FNs JP EXTENSION_FNs
@ -1293,36 +1296,47 @@ PROG_NO_ROM:
OUT (SLOT1),A OUT (SLOT1),A
LD SP,#BF00 LD SP,#BF00
; ;
LD BC,BIOS.SET_PAL_INIT.CGA
RST ToBIOS
;
LD E,0 LD E,0
LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default LD BC,BIOS.LP_OPEN_S.TXT_80x32_Default
RST ToBIOS RST ToBIOS
; ;
LD DE,0 LD DE,0
LD B,E
LD HL,#2050 LD HL,#2050
LD C,BIOS.LP_CLS_WIN LD C,BIOS.LP_CLS_WIN
RST ToBIOS RST ToBIOS
; set scr-2
LD A,1
OUT (SCREEN_SWITCH),A
; ;
LD HL,MESSAGE_NR LD HL,MESSAGE_NR
LD DE,#A000 LD DE,#A000
PUSH DE
LD BC,MESSAGE_NR.size LD BC,MESSAGE_NR.size
LD A,C
LDIR LDIR
; ; BC=0
LD HL,#A000 POP HL
LD D,0 ; delimiter SCF
LD E,COLORS.CGA.FLASH + COLORS.CGA.INK.RED EX AF,AF'
LD B,A SCF
LD C,BIOS.LP_PRINT_LINE3 LD A,COLORS.CGA.FLASH + COLORS.CGA.INK.RED
PUSH BC
POP IY
LD DE,#0F00
; B=0 delimiter
LD C,BIOS.LP_PR_LINE_DIR
RST ToBIOS RST ToBIOS
; ;
; set scr-2
LD A,1
OUT (SCREEN_SWITCH),A
.loop: DI .loop: DI
HALT HALT
JR .loop JR .loop
; ;Spectrum ROM configuration error
MESSAGE_NR: DZ " Spectrum ROM not installed. Use spectrum.exe Press Ctrl+Alt+Del or RESET" ; 10 20 30 40 50 60 70 80
; "123456789|123456789|123456789|123456789|123456789|123456789|123456789|123456789|"
MESSAGE_NR: DZ "\t\t\tSpectrum ROM configuration error\r\n\t\t\t Press Ctrl+Alt+Del or RESET."
.size EQU $-MESSAGE_NR .size EQU $-MESSAGE_NR
ENT ENT
PROG_NO_ROM.size EQU $-PROG_NO_ROM PROG_NO_ROM.size EQU $-PROG_NO_ROM

View File

@ -32,6 +32,7 @@ ATAPI_5x_RESET: LD C,IDE.Device.ATAPI
;!FIXIT ;[ ] sector size. ᤥ« âì २­¨â HDD_INIT_TABLE ;!FIXIT ;[ ] sector size. ᤥ« âì २­¨â HDD_INIT_TABLE
POP BC POP BC
RET NC RET NC
LD C,A
; ;
;CALL ATAPI_CHECK_MEDIA_CHANGED.noWait ;CALL ATAPI_CHECK_MEDIA_CHANGED.noWait
;RET C ;RET C
@ -53,6 +54,10 @@ ATAPI_5x_RESET: LD C,IDE.Device.ATAPI
JR NZ,.pause_loop JR NZ,.pause_loop
EXX EXX
DJNZ .loop DJNZ .loop
LD A,C
AND A
SCF
RET NZ
RET RET
/* /*
HL = 1e00 HL = 1e00
@ -99,11 +104,15 @@ ATAPI_5x_GET_PAR:
; ;
CP BIOS.Error.ATAPI.MediumError CP BIOS.Error.ATAPI.MediumError
JR NZ,.unknown_error JR NZ,.unknown_error
; ;!FIXIT ª®áâë«ì
LD A,BIOS.Error.ATAPI.UnitAttention ;!FIXIT ª®áâë«ì LD A,BIOS.Error.ATAPI.UnitAttention ;!FIXIT ª®áâë«ì
RES 1,(IY + IDE.HDD_INIT_TABLE.MediaParameters) ; [ ] removable media
;
.unknown_error: LD HL,#FFFF .unknown_error: LD HL,#FFFF
LD D,H LD D,H
LD E,L LD E,L
PUSH HL
POP IX
SCF SCF
EX AF,AF' ; âãâ ¬ áª¨à㥬 ®è¨¡ªã, ¨§­ ç «ì­® CF=1 ⮫쪮 ¥á«¨ ãáâனá⢮ ®âáãâáâ¢ã¥â EX AF,AF' ; âãâ ¬ áª¨à㥬 ®è¨¡ªã, ¨§­ ç «ì­® CF=1 ⮫쪮 ¥á«¨ ãáâனá⢮ ®âáãâáâ¢ã¥â
OUT (SLOT3),A OUT (SLOT3),A
@ -412,17 +421,6 @@ ATAPI_REQUEST_SENSE:
ATAPI_CHECK_MEDIA_CHANGED: ATAPI_CHECK_MEDIA_CHANGED:
CALL EXEC_TEST_CMD ;!FIXIT   ¬®¦¥â ¨ ­¥ ­ ¤® CALL EXEC_TEST_CMD ;!FIXIT   ¬®¦¥â ¨ ­¥ ­ ¤®
RET C RET C
; JR NC,.next_check
; ;
; CP BIOS.Error.ATAPI.UnitAttention
; SCF
; RET Z
; ;
; CP BIOS.Error.ATAPI.MediumError
; JR Z,.next_check
; ;
; SCF
; RET
; ;
.next_check: EXX .next_check: EXX
LD C,SLOT3 LD C,SLOT3
@ -439,19 +437,19 @@ ATAPI_CHECK_MEDIA_CHANGED:
RET RET
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
;[ ] media changed
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
ATAPI_CHECK_ERROR: ; ATAPI_CHECK_ERROR:
CALL ATAPI_GET_ERROR_REG ; CALL ATAPI_GET_ERROR_REG
;CP BIOS.Error.ATAPI.NoSence ; ;CP BIOS.Error.ATAPI.NoSence
;JP Z,ATAPI_MEDIA_ERROR ; ;JP Z,ATAPI_MEDIA_ERROR
CP BIOS.Error.ATAPI.NotReady ; CP BIOS.Error.ATAPI.NotReady
JP Z,ATAPI_MEDIA_ERROR ; JP Z,ATAPI_MEDIA_ERROR
CP BIOS.Error.ATAPI.UnitAttention ; CP BIOS.Error.ATAPI.UnitAttention
JP Z,ATAPI_MEDIA_ERROR ; JP Z,ATAPI_MEDIA_ERROR
; ; ;
SCF ; SCF
RET ; RET
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
@ -493,27 +491,35 @@ TRAY_FN: LD HL,ATAPI_CMD_PACKET.CLOSE
EXEC_PACKET_COMMAND: EXEC_PACKET_COMMAND:
; .error_APLOOP: LD A,BIOS.Error.ATAPI.UnitAttention ; .error_APLOOP: LD A,BIOS.Error.ATAPI.UnitAttention
; RET ; RET
; ;CALL ATAPI_GET_ERROR_REG
.error_ex: EX DE,HL .error_ex: EX DE,HL
.error: CP #FF .error: CP #FF
.error_fail: SCF .error_fail: SCF
LD C,A RET NZ
LD A,BIOS.Error.Failure LD A,BIOS.Error.Failure
RET Z
;
LD A,BIOS.Error.ATAPI.UnitAttention
CP C
SCF
RET Z
;
LD A,BIOS.Error.ATAPI.MediumError
CP C
SCF
RET Z
;
LD A,BIOS.Error.Busy
RET RET
; ;
; .error_ex: EX DE,HL
; .error: CP #FF
; .error_fail: SCF
; LD C,A
; LD A,BIOS.Error.Failure
; RET Z
; ;
; LD A,BIOS.Error.ATAPI.UnitAttention
; CP C
; SCF
; RET Z
; ;
; LD A,BIOS.Error.ATAPI.MediumError
; CP C
; SCF
; RET Z
; ;
; LD A,BIOS.Error.Busy
; RET
;
.error_TimeOut: CP #FF .error_TimeOut: CP #FF
EX DE,HL EX DE,HL
JR Z,.error_fail JR Z,.error_fail
@ -734,7 +740,6 @@ ATAPI_CHECK_DRV:
CALL ATAPI_WAITPRT CALL ATAPI_WAITPRT
EXX EXX
; ZF=1 ; ZF=1
;JP C,.error
RET C RET C
; ;
; [ ] media change.   ­ ¤® «¨ âãâ? ;!FIXIT «ãçè¥ ¡«®ª¨à®¢ âì ­®á¨â¥«ì ; [ ] media change.   ­ ¤® «¨ âãâ? ;!FIXIT «ãçè¥ ¡«®ª¨à®¢ âì ­®á¨â¥«ì
@ -744,14 +749,23 @@ ATAPI_CHECK_DRV:
AND IDE.CtrlByte.DataRequest + IDE.CtrlByte.Error AND IDE.CtrlByte.DataRequest + IDE.CtrlByte.Error
RET Z ;NO DATA REQUEST. A = 0: BIOS.Error.NoErrors RET Z ;NO DATA REQUEST. A = 0: BIOS.Error.NoErrors
RRA ; Checking IDE.CtrlByte.CheckCondition RRA ; Checking IDE.CtrlByte.CheckCondition
;JR NC,.data_request RET NC ; DataRequest CF=0, ZF=0
RET NC ;
; ¯à¨§­ ª ⮣®, çâ® ®è¨¡ª  ᬥ­ë ­®á¨â¥«ï ¤®«¦­  ®¡à ¡ â뢠âìáï ¢ EXEC_PACKET_COMMAND CALL ATAPI_GET_ERROR_REG
EXX EXX
DEC C ; ¯à¨§­ ª ⮣®, çâ® ®è¨¡ª  ᬥ­ë ­®á¨â¥«ï ¤®«¦­  ®¡à ¡ â뢠âìáï ¢ EXEC_PACKET_COMMAND DEC C ; ¯à¨§­ ª ⮣®, çâ® ®è¨¡ª  ᬥ­ë ­®á¨â¥«ï ¤®«¦­  ®¡à ¡ â뢠âìáï ¢ EXEC_PACKET_COMMAND
EXX EXX
RET Z ; ¢ë室, ¥á«¨ ®è¨¡ª  ®¡à ¡ â뢠¥âáï ­¥ ¢ EXEC_PACKET_COMMAND SCF
JP ATAPI_CHECK_ERROR RET Z ; ¢ë室, ¥á«¨ ®è¨¡ª  ®¡à ¡ â뢠¥âáï ­¥ ¢ EXEC_PACKET_COMMAND
;
; CP BIOS.Error.ATAPI.NoSence
; JP Z,ATAPI_MEDIA_ERROR
CP BIOS.Error.ATAPI.NotReady
JP Z,ATAPI_MEDIA_ERROR
CP BIOS.Error.ATAPI.UnitAttention
JP Z,ATAPI_MEDIA_ERROR
SCF
RET
; ;
ATAPI_PREPARE_RW: ATAPI_PREPARE_RW:
@ -829,17 +843,17 @@ ATAPI_WAITPRT: LD DE,256*IDE.CtrlByte.Busy + 0
IN A,(low IDE.Read.Status) IN A,(low IDE.Read.Status)
CP #FF CP #FF
JR Z,.error JR Z,.error
;
AND D AND D
CP E CP E
;
RET Z RET Z
; ;
.NEXT_TRY: DEC L DEC HL
JR NZ,.LOOP LD A,H
DEC H OR L
; 15615
JR NZ,.LOOP JR NZ,.LOOP
DJNZ .LOOP DJNZ .LOOP
LD A,BIOS.Error.Busy
.error: SCF .error: SCF
RET RET
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;

View File

@ -695,15 +695,15 @@ msgStrings:
_mSetStr valLoadZXromsCAD, tmp_Counter : DZ 'On restart' _mSetStr valLoadZXromsCAD, tmp_Counter : DZ 'On restart'
; ;
_mSetStr parQS_SetUpHardware, tmp_Counter : DZ 'ZX Mode : ' _mSetStr parQS_SetUpHardware, tmp_Counter : DZ 'ZX Mode : '
_mSetStr valSprinterZX, tmp_Counter : DZ 'SprinterZX' _mSetStr valSprinterZX, tmp_Counter : DZ 'Sprinter ZX '
_mSetStr valPentagon48, tmp_Counter : DZ 'Pent. 48 ' _mSetStr valPentagon48, tmp_Counter : DZ 'Pentagon 48 '
_mSetStr valPentagon128, tmp_Counter : DZ 'Pent. 128 ' _mSetStr valPentagon128, tmp_Counter : DZ 'Pentagon 128'
_mSetStr valPentagon512, tmp_Counter : DZ 'Pent. 512 ' _mSetStr valPentagon512, tmp_Counter : DZ 'Pentagon 512'
_mSetStr valScorpion256, tmp_Counter : DZ 'Scorp 256 ' _mSetStr valScorpion256, tmp_Counter : DZ 'Scorpion 256'
_mSetStr valZXSpectrum48, tmp_Counter : DZ 'Speccy 48 ' _mSetStr valZXSpectrum48, tmp_Counter : DZ 'Spectrum 48 '
_mSetStr valZXSpectrum128, tmp_Counter : DZ 'Speccy 128' _mSetStr valZXSpectrum128, tmp_Counter : DZ 'Spectrum 128'
; ;
_mSetStr parQS_SetUpZxRom, tmp_Counter : DZ 'Start in ZX mode : ' _mSetStr parQS_SetUpZxRom, tmp_Counter : DZ 'ZX Mode start in : '
_mSetStr valQS_SetUpBasic128, tmp_Counter : DZ 'Basic 128 ' _mSetStr valQS_SetUpBasic128, tmp_Counter : DZ 'Basic 128 '
_mSetStr valQS_SetUpBasic48p, tmp_Counter : DZ 'Basic 48+ ' _mSetStr valQS_SetUpBasic48p, tmp_Counter : DZ 'Basic 48+ '
_mSetStr valQS_SetUpTrDos, tmp_Counter : DZ 'TR-DOS ' _mSetStr valQS_SetUpTrDos, tmp_Counter : DZ 'TR-DOS '

View File

@ -517,6 +517,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
GOTO_SPECTRUM: DI GOTO_SPECTRUM: DI
LD C,A LD C,A
; ;
;
; set shared pages ; set shared pages
XOR A XOR A
OUT (SLOT2),A ; ZERO_PAGE OUT (SLOT2),A ; ZERO_PAGE