mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 17:11:38 +03:00
...
This commit is contained in:
parent
27b24be434
commit
5fed4f166d
78
spectrum.asm
78
spectrum.asm
@ -86,6 +86,7 @@ code_addr EQU BEGIN
|
|||||||
stack_point EQU #BFFE
|
stack_point EQU #BFFE
|
||||||
stack_buffer EQU 64
|
stack_buffer EQU 64
|
||||||
program_start EQU BEGIN
|
program_start EQU BEGIN
|
||||||
|
Loader_length EQU 0
|
||||||
;***************************************
|
;***************************************
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -159,7 +160,21 @@ BEGIN: LD (LINE_X),IX
|
|||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
|
;!TODO
|
||||||
|
;LD HL,SPECTRUM_HOME_DIR
|
||||||
|
;LD BC,Dss.AppInfo.EXE_HomeDir
|
||||||
|
;RST ToDSS
|
||||||
|
;;
|
||||||
|
;LD C,Dss.CurDisk
|
||||||
|
;RST ToDSS
|
||||||
|
;ADD A,'A'
|
||||||
|
;LD (USER_CURRENT_DRV),A
|
||||||
|
;;
|
||||||
|
;LD HL,USER_CURRENT_DIR
|
||||||
|
;LD C,Dss.CurDir
|
||||||
|
;RST ToDSS
|
||||||
;
|
;
|
||||||
|
|
||||||
JP COMAND_LINE
|
JP COMAND_LINE
|
||||||
|
|
||||||
|
|
||||||
@ -200,9 +215,14 @@ EXIT_ALL: LD C,Dss.PChars
|
|||||||
;LD C,Dss.PChars
|
;LD C,Dss.PChars
|
||||||
;RST ToDSS
|
;RST ToDSS
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
1: LD BC,Dss.Exit
|
;!TODO
|
||||||
|
;LD HL,USER_CURRENT_DRV
|
||||||
|
;LD C,Dss.ChDir
|
||||||
|
;RST ToDSS
|
||||||
|
;
|
||||||
|
.loop: LD BC,Dss.Exit
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
JR 1B
|
JR .loop
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@ -219,12 +239,12 @@ COMAND_LINE: LD HL,(LINE_X)
|
|||||||
CALL FIND_FILES
|
CALL FIND_FILES
|
||||||
|
|
||||||
CALL MAKE_FULL_NAME
|
CALL MAKE_FULL_NAME
|
||||||
LD A,Spec_Page ;!FIXIT don't use it in new version
|
LD A,SHARED_PAGE
|
||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
JP NC,CONTINUE
|
JP NC,CONTINUE
|
||||||
|
|
||||||
NO_FIL: CALL MAKE_FULL_NAME.def_cnf
|
NO_FIL: CALL MAKE_FULL_NAME.def_cnf
|
||||||
LD A,Spec_Page ;!FIXIT don't use it in new version
|
LD A,SHARED_PAGE
|
||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
JR C,ERROR_FILE
|
JR C,ERROR_FILE
|
||||||
JP CONTINUE
|
JP CONTINUE
|
||||||
@ -417,7 +437,7 @@ N_LINE: LD (HL),0
|
|||||||
CALL READ_FILE_1
|
CALL READ_FILE_1
|
||||||
POP DE
|
POP DE
|
||||||
;
|
;
|
||||||
LD A,Spec_Page
|
LD A,SHARED_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
JP C,ERROR_FILE
|
JP C,ERROR_FILE
|
||||||
.skip_load:
|
.skip_load:
|
||||||
@ -499,7 +519,7 @@ LOADING_PALETTE:
|
|||||||
|
|
||||||
;*************************************
|
;*************************************
|
||||||
|
|
||||||
LD A,Spec_Page
|
LD A,SHARED_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD HL,(A_LINES + (OPTIONS_LINE-1)*2 ) ; áâப ¯ à ¬¥â஢
|
LD HL,(A_LINES + (OPTIONS_LINE-1)*2 ) ; áâப ¯ à ¬¥â஢
|
||||||
LOOP_PAR1: LD A,(HL)
|
LOOP_PAR1: LD A,(HL)
|
||||||
@ -622,11 +642,18 @@ SKIP_IMAGE: LD A,(No_run_+2)
|
|||||||
LD HL,MSG_EXIT1
|
LD HL,MSG_EXIT1
|
||||||
JP NZ,SETUP_RAM_DRIVES
|
JP NZ,SETUP_RAM_DRIVES
|
||||||
|
|
||||||
|
LD BC,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,Spec_Page
|
||||||
|
OUT (C),A
|
||||||
|
;
|
||||||
LD A,"Z"
|
LD A,"Z"
|
||||||
LD (Spec_Page.flag_Z),A
|
LD (Spec_Page.flag_Z),A
|
||||||
LD A,"X"
|
LD A,"X"
|
||||||
LD (Spec_Page.flag_X),A
|
LD (Spec_Page.flag_X),A
|
||||||
|
;
|
||||||
|
OUT (C),B
|
||||||
|
;
|
||||||
JP EXIT_ALL
|
JP EXIT_ALL
|
||||||
|
|
||||||
|
|
||||||
@ -735,7 +762,7 @@ Get_RAM_Disk_E: LD A,D
|
|||||||
JR Z,ERROR_NO_MEM
|
JR Z,ERROR_NO_MEM
|
||||||
PUSH AF
|
PUSH AF
|
||||||
;***************************************
|
;***************************************
|
||||||
; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS
|
; [x] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS
|
||||||
.free_disk: DI
|
.free_disk: DI
|
||||||
;!TEST
|
;!TEST
|
||||||
;XOR A ; RAM-Drive E:
|
;XOR A ; RAM-Drive E:
|
||||||
@ -1192,6 +1219,7 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME)
|
|||||||
LD BC,Dss.EX_Path.GET_ALL
|
LD BC,Dss.EX_Path.GET_ALL
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;
|
;
|
||||||
|
OR 2
|
||||||
CP 3 ; only "FileName.ext"?
|
CP 3 ; only "FileName.ext"?
|
||||||
LD HL,(CNF_NAME)
|
LD HL,(CNF_NAME)
|
||||||
JR Z,.get_app_path
|
JR Z,.get_app_path
|
||||||
@ -1214,6 +1242,8 @@ MAKE_FULL_NAME: LD HL,(CNF_NAME)
|
|||||||
.mode+1: LD HL,0
|
.mode+1: LD HL,0
|
||||||
LD BC,12 ;!HARDCODE filename length
|
LD BC,12 ;!HARDCODE filename length
|
||||||
LDIR
|
LDIR
|
||||||
|
XOR A
|
||||||
|
LD (DE),A
|
||||||
LD HL,ONE_FILE
|
LD HL,ONE_FILE
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
@ -1227,12 +1257,19 @@ CHECK_ZX_FLAG:
|
|||||||
IN B,(C)
|
IN B,(C)
|
||||||
LD A,Spec_Page
|
LD A,Spec_Page
|
||||||
OUT (C),A
|
OUT (C),A
|
||||||
LD A,(Spec_Page.flag_Z)
|
LD HL,(Spec_Page.flag_Z)
|
||||||
CP 'Z'
|
LD DE,'Z'+'X'*256
|
||||||
JR NZ,.no_zx
|
AND A
|
||||||
LD A,(Spec_Page.flag_X)
|
SBC HL,DE
|
||||||
CP 'X'
|
JR Z,.exit
|
||||||
JP Z,.exit
|
|
||||||
|
|
||||||
|
; 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
|
.no_zx: LD A,1
|
||||||
LD (NO_ZX_FLAG),A
|
LD (NO_ZX_FLAG),A
|
||||||
@ -1281,17 +1318,20 @@ RMD_Keep: DB "RMD-Keep", 255,0 ;!TEST; [ ] 05/11/2023
|
|||||||
;/Turbo /Lines312 /Sprinter /7FFD /1FFD /Mem512 /Int-Sc /To-TRDOS /no-run /origin /ret-zx /ret-fn
|
;/Turbo /Lines312 /Sprinter /7FFD /1FFD /Mem512 /Int-Sc /To-TRDOS /no-run /origin /ret-zx /ret-fn
|
||||||
|
|
||||||
CNF_FILE: DB "SPECTRUM.CFG",0
|
CNF_FILE: DB "SPECTRUM.CFG",0
|
||||||
|
.Size EQU $-CNF_FILE
|
||||||
ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0
|
ONE_FILE: BLOCK FULL_FILE_NAME_LENGTH,0
|
||||||
;
|
;
|
||||||
|
|
||||||
|
;!TODO
|
||||||
|
;USER_CURRENT_DRV DB 'Z:'
|
||||||
|
;USER_CURRENT_DIR EQU $
|
||||||
|
;SPECTRUM_HOME_DIR EQU USER_CURRENT_DIR + 256
|
||||||
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
|
|
||||||
;
|
;
|
||||||
IFDEF NEED_LOADER
|
|
||||||
Loader_length EQU $-BEGIN
|
|
||||||
ELSE
|
|
||||||
Loader_length EQU 0
|
|
||||||
ENDIF
|
|
||||||
;----------------------------------------------[End Loader section]
|
;----------------------------------------------[End Loader section]
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user