режим спектрума работает с любыми каналами и основными разделами

This commit is contained in:
Anatoliy Belyanskiy 2024-02-01 20:25:15 +10:00
parent 90593508ed
commit 62af95e525
2 changed files with 80 additions and 23 deletions

@ -1 +1 @@
Subproject commit c135d9b6038fcabca6cef3234d876f93d5865dee Subproject commit e5122b68be360be61be821f68988c29021ec8411

View File

@ -93,7 +93,7 @@ Loader_length EQU 0
; ;
; Program EQU section ; Program EQU section
;*************************************** ;***************************************
FULL_FILE_NAME_LENGTH EQU 128 ; ¤«¨­  áâப¨ ¯ã⨠ª ä ©«ã FULL_FILE_NAME_LENGTH EQU 256 ; ¤«¨­  áâப¨ ¯ã⨠ª ä ©«ã
MAX_LINE_LENGTH EQU 120 ; ¤«¨­  áâப¨ CFG ä ©«  MAX_LINE_LENGTH EQU 120 ; ¤«¨­  áâப¨ CFG ä ©« 
;!TEST ;!TEST
@ -667,7 +667,6 @@ SKIP_IMAGE: LD A,(No_run_+2)
;******************************************** ;********************************************
; out B - old ROM-page ; out B - old ROM-page
;!FIXIT ᤥ« âì ç¥à¥§ ¢ë§®¢ ä㭪樨 <20>ˆŽ
SET_ROM: DI SET_ROM: DI
LD C,BIOS.SET_PORTS LD C,BIOS.SET_PORTS
JP ToBIOS JP ToBIOS
@ -709,6 +708,7 @@ SET_ROM: DI
; RET ; RET
;******************************************** ;********************************************
;********************************************
READ_IMAGE: LD DE,ONE_FILE READ_IMAGE: LD DE,ONE_FILE
LD BC,FULL_FILE_NAME_LENGTH LD BC,FULL_FILE_NAME_LENGTH
LDIR LDIR
@ -720,7 +720,64 @@ READ_IMAGE: LD DE,ONE_FILE
RET C RET C
LD (IMAGE_HANDLER),A LD (IMAGE_HANDLER),A
; [ ] 31/01/2024 ¯®¤¤¥à¦ª  ¯¥à¥ª«î祭¨ï ¤¨áª /à §¤¥«  ¢ TR-DOS
LD HL,ONE_FILE
LD BC,Dss.EX_Path.GET_ALL
RST ToDSS
JR C,.no_change_Disk
AND 8
JR Z,.currentDisk
;
LD C,Dss.CurDisk
RST ToDSS
JR C,.no_change_Disk
JR .getInfoDRV
.currentDisk: ;
LD A,(ONE_FILE)
SUB "A"
;
.getInfoDRV: ;
OR #80
LD HL,TMP_BUFF
LD BC,Dss.DskInfo
RST ToDSS
;
LD B,4 ;!HARDCODE ­®¬¥à ­ã¦­®£® ¯ à ¬¥âà 
LD DE,0
LD HL,TMP_BUFF
.loop_param: ADD HL,DE
LD E,(HL)
INC HL
DJNZ .loop_param
LD A,(HL)
AND #80
JR Z,.no_change_Disk
CP #90
JR NC,.no_change_Disk
;
LD A,3
AND (HL)
LD D,A
INC HL
LD A,(HL)
RLCA
RLCA
;
OR D
AND #0F
;
;LD C,SLOT3
;IN B,(C)
;EX AF,AF'
;LD A,SYS_PAGE
;OUT (C),A
;EX AF,AF'
;
LD (RESET_TO_ZX.hdd),A
;OUT (C),B
;
;
.no_change_Disk:;
LD A,(IMAGE_FLAG) LD A,(IMAGE_FLAG)
AND A AND A
JR Z,.Load_TRD JR Z,.Load_TRD
@ -784,6 +841,9 @@ Get_RAM_Disk_E: LD A,D
RET RET
;--------------------------------------- ;---------------------------------------
;********************************************
Load_IMAGE_File: Load_IMAGE_File:
LD A,(IMAGE_HANDLER) LD A,(IMAGE_HANDLER)
LD HL,0 LD HL,0
@ -1028,9 +1088,9 @@ RESET_TO_ZX: DI
LD A,(Int_or_+2) LD A,(Int_or_+2)
AND A AND A
LD A,#FA ; original waits on LD A,#FA ; original waits on
JR NZ,ORIG1 JR NZ,.ORIG1
LD A,#FE LD A,#FE
ORIG1: LD BC,Port_All_Mode .ORIG1: LD BC,Port_All_Mode
OUT (C),A ; ACC-Off OUT (C),A ; ACC-Off
LD BC,CBL.SYS_PORT LD BC,CBL.SYS_PORT
@ -1042,8 +1102,9 @@ ORIG1: LD BC,Port_All_Mode
RST ToBIOS_18 RST ToBIOS_18
;---------------[test!!!!!]------------- ;---------------[test!!!!!]-------------
;!FIXIT à §à㫨âì ०¨¬ ᯥªâà㬠 ­  à ¡®âã á «î¡ë¬¨ ª ­ « ¬¨ ;[ ] 1/02/2024 ०¨¬ ᯥªâà㬠 à ¡®â ¥â á «î¡ë¬¨ ª ­ « ¬¨ ¨ ®á­®¢­ë¬¨ à §¤¥« ¬¨
XOR A ; --> IDE-1 ; XOR A ; --> IDE-1
.hdd+1: LD A,#FF
LD C,BIOS.HDD_PART ; IDE-1/IDE-2 LD C,BIOS.HDD_PART ; IDE-1/IDE-2
RST ToBIOS_18 RST ToBIOS_18
;--------------------------------------- ;---------------------------------------
@ -1321,7 +1382,17 @@ RMD_Keep: DB "RMD-Keep", 255,0 ;!TEST; [ ] 05/11/2023
CNF_FILE: DB "SPECTRUM.CFG",0 CNF_FILE: DB "SPECTRUM.CFG",0
.Size EQU $-CNF_FILE .Size EQU $-CNF_FILE
ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0 ;
;
;[]-----------------------------[PLUGINS]-----------------------------[]
INCLUDE 'trdscl.a80'
;
;----------------------------------------------[End Loader section]
;
;ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0
ONE_FILE: WORD 0
TMP_BUFF EQU ONE_FILE+256
; ;
;!TODO ;!TODO
@ -1329,24 +1400,10 @@ ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0
;USER_CURRENT_DIR EQU $ ;USER_CURRENT_DIR EQU $
;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256 ;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256
; ;
;
;
;
;----------------------------------------------[End Loader section]
;
PlaceForPalette EQU #A000 PlaceForPalette EQU #A000
STACK_CHECK_MACRO stack_point,stack_buffer STACK_CHECK_MACRO stack_point,stack_buffer
; Code after Loader ; Code after Loader
;[]-----------------------------[PLUGINS]-----------------------------[]
INCLUDE 'trdscl.a80'
;[]-------------------------------------------------------------------[] ;[]-------------------------------------------------------------------[]
; Code end section ; Code end section
; OUTEND
; SAVEBIN 'Build/test.bin', exe_header, $-exe_header
; ;