mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 09:01:38 +03:00
режим спектрума работает с любыми каналами и основными разделами
This commit is contained in:
parent
90593508ed
commit
62af95e525
@ -1 +1 @@
|
||||
Subproject commit c135d9b6038fcabca6cef3234d876f93d5865dee
|
||||
Subproject commit e5122b68be360be61be821f68988c29021ec8411
|
||||
101
spectrum.asm
101
spectrum.asm
@ -93,7 +93,7 @@ Loader_length EQU 0
|
||||
;
|
||||
; Program EQU section
|
||||
;***************************************
|
||||
FULL_FILE_NAME_LENGTH EQU 128 ; ¤«¨ áâப¨ ¯ã⨠ª ä ©«ã
|
||||
FULL_FILE_NAME_LENGTH EQU 256 ; ¤«¨ áâப¨ ¯ã⨠ª ä ©«ã
|
||||
MAX_LINE_LENGTH EQU 120 ; ¤«¨ áâப¨ CFG ä ©«
|
||||
|
||||
;!TEST
|
||||
@ -667,7 +667,6 @@ SKIP_IMAGE: LD A,(No_run_+2)
|
||||
;********************************************
|
||||
|
||||
; out B - old ROM-page
|
||||
;!FIXIT ᤥ« âì ç¥à¥§ ¢ë§®¢ äãªæ¨¨ <20>ˆŽ‘
|
||||
SET_ROM: DI
|
||||
LD C,BIOS.SET_PORTS
|
||||
JP ToBIOS
|
||||
@ -709,6 +708,7 @@ SET_ROM: DI
|
||||
; RET
|
||||
;********************************************
|
||||
|
||||
;********************************************
|
||||
READ_IMAGE: LD DE,ONE_FILE
|
||||
LD BC,FULL_FILE_NAME_LENGTH
|
||||
LDIR
|
||||
@ -720,7 +720,64 @@ READ_IMAGE: LD DE,ONE_FILE
|
||||
RET C
|
||||
|
||||
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)
|
||||
AND A
|
||||
JR Z,.Load_TRD
|
||||
@ -784,6 +841,9 @@ Get_RAM_Disk_E: LD A,D
|
||||
RET
|
||||
;---------------------------------------
|
||||
|
||||
|
||||
;********************************************
|
||||
|
||||
Load_IMAGE_File:
|
||||
LD A,(IMAGE_HANDLER)
|
||||
LD HL,0
|
||||
@ -1028,9 +1088,9 @@ RESET_TO_ZX: DI
|
||||
LD A,(Int_or_+2)
|
||||
AND A
|
||||
LD A,#FA ; original waits on
|
||||
JR NZ,ORIG1
|
||||
JR NZ,.ORIG1
|
||||
LD A,#FE
|
||||
ORIG1: LD BC,Port_All_Mode
|
||||
.ORIG1: LD BC,Port_All_Mode
|
||||
OUT (C),A ; ACC-Off
|
||||
|
||||
LD BC,CBL.SYS_PORT
|
||||
@ -1042,8 +1102,9 @@ ORIG1: LD BC,Port_All_Mode
|
||||
RST ToBIOS_18
|
||||
|
||||
;---------------[test!!!!!]-------------
|
||||
;!FIXIT à §à㫨âì ०¨¬ ᯥªâàã¬ à ¡®âã á «î¡ë¬¨ ª « ¬¨
|
||||
XOR A ; --> IDE-1
|
||||
;[ ] 1/02/2024 ०¨¬ ᯥªâàã¬ à ¡®â ¥â á «î¡ë¬¨ ª « ¬¨ ¨ ®á®¢ë¬¨ à §¤¥« ¬¨
|
||||
; XOR A ; --> IDE-1
|
||||
.hdd+1: LD A,#FF
|
||||
LD C,BIOS.HDD_PART ; IDE-1/IDE-2
|
||||
RST ToBIOS_18
|
||||
;---------------------------------------
|
||||
@ -1321,7 +1382,17 @@ RMD_Keep: DB "RMD-Keep", 255,0 ;!TEST; [ ] 05/11/2023
|
||||
|
||||
CNF_FILE: DB "SPECTRUM.CFG",0
|
||||
.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
|
||||
@ -1329,24 +1400,10 @@ ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0
|
||||
;USER_CURRENT_DIR EQU $
|
||||
;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256
|
||||
;
|
||||
|
||||
;
|
||||
;
|
||||
|
||||
;
|
||||
;----------------------------------------------[End Loader section]
|
||||
;
|
||||
|
||||
PlaceForPalette EQU #A000
|
||||
|
||||
STACK_CHECK_MACRO stack_point,stack_buffer
|
||||
; Code after Loader
|
||||
;[]-----------------------------[PLUGINS]-----------------------------[]
|
||||
|
||||
INCLUDE 'trdscl.a80'
|
||||
|
||||
;[]-------------------------------------------------------------------[]
|
||||
; Code end section
|
||||
; OUTEND
|
||||
; SAVEBIN 'Build/test.bin', exe_header, $-exe_header
|
||||
;
|
||||
Loading…
Reference in New Issue
Block a user