mirror of
https://github.com/Tolik-Trek/Spectrum.EXE.git
synced 2026-06-15 09:01:38 +03:00
95%
This commit is contained in:
parent
46d3d4f99c
commit
9f78d202ae
@ -1 +1 @@
|
|||||||
Subproject commit 722db55c24ee5172d610e832f3933c90914fcb8c
|
Subproject commit 7e00c2aa909241367878004ad104b56abb907f80
|
||||||
344
spectrum.asm
344
spectrum.asm
@ -164,13 +164,14 @@ BEGIN: LD (LINE_X),IX
|
|||||||
CALL PARSE_PARAMETERS
|
CALL PARSE_PARAMETERS
|
||||||
CALL COUNT_vROM_PAGES
|
CALL COUNT_vROM_PAGES
|
||||||
PUSH AF
|
PUSH AF
|
||||||
;!FIXIT ¯à®¢¥à¨âì ä« £ ZX, ¥á«¨ CF ; [ ] free zx pages ??ERROR_ZX_FLAG??
|
|
||||||
; Žç¨é ¥¬ ¯ ¬ïâì, ¥á«¨ ROM_BIN > 0
|
; Žç¨é ¥¬ ¯ ¬ïâì, ¥á«¨ ROM_BIN > 0
|
||||||
LD BC,BIOS.ZX_MEMORY_MANAGER.FreeZXvPages
|
LD BC,BIOS.ZX_MEMORY_MANAGER.FreeZXvPages.vROM
|
||||||
CALL NC,ToBIOS
|
CALL NC,ToBIOS
|
||||||
; ‚뤥«ï¥¬ áâà ¨æë ¯®¤ vRAM
|
; ‚뤥«ï¥¬ áâà ¨æë ¯®¤ vRAM
|
||||||
CALL GET_vRAM_PAGES
|
LD A,(PARAMS.No_run + 2)
|
||||||
;JR C, ; no mem for vRAM ;!FIXIT ;[ ] free zx pages
|
AND A
|
||||||
|
CALL NZ,GET_vRAM_PAGES
|
||||||
|
JR C,Error_NoMemForSPpages
|
||||||
POP AF
|
POP AF
|
||||||
; ‚뤥«ï¥¬ áâà ¨æë ¯®¤ vROM, ¥á«¨ ROM_BIN > 0
|
; ‚뤥«ï¥¬ áâà ¨æë ¯®¤ vROM, ¥á«¨ ROM_BIN > 0
|
||||||
JR C,.skip_vROM
|
JR C,.skip_vROM
|
||||||
@ -178,20 +179,23 @@ BEGIN: LD (LINE_X),IX
|
|||||||
LD B,A
|
LD B,A
|
||||||
LD C,BIOS.GetMem
|
LD C,BIOS.GetMem
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
;JR C, ; no mem for vROM ;!FIXIT ;[ ] free zx pages
|
JR C,Error_NoMemForSPpages
|
||||||
LD (ZX_vROM_BLK),A
|
LD (ZX_vROM_BLK),A
|
||||||
; Œ ¯¯¨¬ áâà ¨æë vROM, ¥á«¨ ROM_BIN > 0
|
; Œ ¯¯¨¬ áâà ¨æë vROM, ¥á«¨ ROM_BIN > 0
|
||||||
LD HL,BUFFER_RAM_PAGES
|
LD HL,BUFFER_RAM_PAGES
|
||||||
LD C,BIOS.GetMemBlkPages
|
LD C,BIOS.GetMemBlkPages
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
CALL LOAD_vROM_BIN
|
CALL LOAD_vROM_BIN
|
||||||
|
.skip_vROM: ; ¥á«¨ norun, â® ¤ «ìè¥ ¥ ¤®
|
||||||
.skip_vROM: CALL LOADING_PALETTE
|
LD A,(PARAMS.No_run + 2)
|
||||||
;CALL INIT_vROM_PAGES
|
AND A
|
||||||
|
LD HL,MSG_EXIT1
|
||||||
|
JP Z,EXIT_ALL
|
||||||
;
|
;
|
||||||
;JP NC,PREPARE_TO_ZXMODE
|
; £à㧨¬ ¯ «¨âàã ¨ ®¡à § ¤¨áª , ¥á«¨ ¤®
|
||||||
|
CALL LOAD_IMAGE_FILE
|
||||||
|
CALL LOADING_PALETTE
|
||||||
JP PREPARE_TO_ZXMODE
|
JP PREPARE_TO_ZXMODE
|
||||||
;JP EXIT_ALL
|
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
|
|
||||||
|
|
||||||
@ -213,14 +217,16 @@ ERROR_FILE: LD HL,ERROR_FILE_MSG_X
|
|||||||
RST ToDSS
|
RST ToDSS
|
||||||
;
|
;
|
||||||
LD HL,ERROR_FILE_MSG
|
LD HL,ERROR_FILE_MSG
|
||||||
JP EXIT_ALL
|
JR EXIT_ALL
|
||||||
ERROR_ZX_FLAG: LD HL,MSG_NO_ZX_FLAG
|
ERROR_ZX_FLAG: LD HL,MSG_NO_ZX_FLAG
|
||||||
JP EXIT_ALL
|
JR EXIT_ALL
|
||||||
END_CNF_ERROR:
|
END_CNF_ERROR:
|
||||||
LD HL,ERROR_CNF
|
LD HL,ERROR_CNF
|
||||||
EXIT_ALL: LD C,Dss.PChars
|
EXIT_ALL: LD C,Dss.PChars
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
;
|
;
|
||||||
|
LD BC,BIOS.ZX_MEMORY_MANAGER.FreeZXvPages.vRAM
|
||||||
|
RST ToBIOS
|
||||||
.loop: LD BC,Dss.Exit
|
.loop: LD BC,Dss.Exit
|
||||||
RST ToDSS
|
RST ToDSS
|
||||||
JR .loop
|
JR .loop
|
||||||
@ -634,30 +640,30 @@ SAVETXT: LD (BACKTXT.VMODE),A
|
|||||||
.EXIT: ;
|
.EXIT: ;
|
||||||
|
|
||||||
;!TEST; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS. BLK_TO_RAMD
|
;!TEST; [ ] 04/11/2023 Žâ¤¥«ìë¥ à ¬¤¨áª¨ ¤«ï ०¨¬ ᯥªâà㬠¨ DSS. BLK_TO_RAMD
|
||||||
; SETUP_RAM_DRIVES:
|
SETUP_RAM_DRIVES:
|
||||||
; LD BC,BIOS.SWAP_RAM_DRIVES.ZX
|
LD BC,BIOS.SWAP_RAM_DRIVES.ZX
|
||||||
; RST ToBIOS
|
RST ToBIOS
|
||||||
; ; § ¯ã᪠á ä ©«®¬ ¤«ï à ¬¤¨áª ?
|
; § ¯ã᪠á ä ©«®¬ ¤«ï à ¬¤¨áª ?
|
||||||
; LD A,(Load_IMAGE_File.MEM_BLK)
|
LD A,(Load_IMAGE_File.MEM_BLK)
|
||||||
; OR A
|
OR A
|
||||||
; JR Z,.skip
|
JR Z,.skip
|
||||||
; ; ¯à®¢¥à塞 ¤à ©¢ ¯¥à¥¤ ¯¥à¥ § 票¥¬
|
; ¯à®¢¥à塞 ¤à ©¢ ¯¥à¥¤ ¯¥à¥ § 票¥¬
|
||||||
; XOR A
|
XOR A
|
||||||
; LD C,BIOS.GET_RAMD_ST
|
LD C,BIOS.GET_RAMD_ST
|
||||||
; RST ToBIOS
|
RST ToBIOS
|
||||||
; OR A
|
OR A
|
||||||
; JR Z,.set_block
|
JR Z,.set_block
|
||||||
; ; ®á¢®¡®¤¨âì à ¬¤¨áª
|
; ®á¢®¡®¤¨âì à ¬¤¨áª
|
||||||
; XOR A
|
XOR A
|
||||||
; LD C,BIOS.FreeMemRMD
|
LD C,BIOS.FreeMemRMD
|
||||||
; RST ToBIOS
|
RST ToBIOS
|
||||||
; ; set disk e:
|
; set disk e:
|
||||||
; .set_block: LD A,(Load_IMAGE_File.MEM_BLK)
|
.set_block: LD A,(Load_IMAGE_File.MEM_BLK)
|
||||||
; LD B,A
|
LD B,A
|
||||||
; XOR A
|
XOR A
|
||||||
; LD C,BIOS.BLK_TO_RAMD
|
LD C,BIOS.BLK_TO_RAMD
|
||||||
; RST ToBIOS
|
RST ToBIOS
|
||||||
; .skip: ;
|
.skip: ;
|
||||||
; ;
|
; ;
|
||||||
;!FIXIT ¯¥à¥¤¥« âì äãªæ¨î ¡¨®á
|
;!FIXIT ¯¥à¥¤¥« âì äãªæ¨î ¡¨®á
|
||||||
SET_RELOAD_PROG:
|
SET_RELOAD_PROG:
|
||||||
@ -722,38 +728,13 @@ RESET_TO_ZX: DI
|
|||||||
LD A,#FF
|
LD A,#FF
|
||||||
LD (SYS_PAGE.CURRENT_DIR_DRIVE),A
|
LD (SYS_PAGE.CURRENT_DIR_DRIVE),A
|
||||||
LD (SYS_PAGE.CURRENT_DIR_DRIVE_COPY),A
|
LD (SYS_PAGE.CURRENT_DIR_DRIVE_COPY),A
|
||||||
;;;;;;;;
|
;!TODO ¢ BIOS?
|
||||||
|
|
||||||
; LD A,CNF_PORT.CNF_3
|
|
||||||
; OUT (SYS_PORT.ROM),A ; System-page on & CNF = 3
|
|
||||||
|
|
||||||
; XOR A
|
|
||||||
; OUT (BorderColor),A ; border-0
|
|
||||||
; OUT (RGADR),A ; Screen-page = 0
|
|
||||||
; OUT (RGMOD),A ; Screen-mode-page = 0
|
|
||||||
; LD BC,#1FFD
|
|
||||||
; OUT (C),A ; Scorpion-port = 0
|
|
||||||
; LD BC,#7FFD
|
|
||||||
; OUT (C),A ; pentagon-port = 0
|
|
||||||
|
|
||||||
; LD A,(PARAMS.Int_or+2)
|
|
||||||
; AND A
|
|
||||||
; LD A,#FA ; original waits on
|
|
||||||
; JR NZ,.ORIG1
|
|
||||||
; LD A,#FE
|
|
||||||
; .ORIG1: LD BC,Port_All_Mode
|
|
||||||
; OUT (C),A ; ACC-Off
|
|
||||||
|
|
||||||
LD BC,CBL.SYS_PORT
|
LD BC,CBL.SYS_PORT
|
||||||
XOR A
|
XOR A
|
||||||
OUT (C),A ; CBL-off
|
OUT (C),A ; CBL-off
|
||||||
|
;
|
||||||
;[ ] 1/02/2024 ०¨¬ ᯥªâàã¬ à ¡®â ¥â á «î¡ë¬¨ ª « ¬¨ ¨ ®á®¢ë¬¨ à §¤¥« ¬¨
|
;[ ] 1/02/2024 ०¨¬ ᯥªâàã¬ à ¡®â ¥â á «î¡ë¬¨ ª « ¬¨ ¨ ®á®¢ë¬¨ à §¤¥« ¬¨
|
||||||
CALL SET_CURRENT_HDD
|
CALL SET_CURRENT_HDD
|
||||||
|
|
||||||
; LD A,BIOS.FN_TURBO.VG.OFF ; FDD-720
|
|
||||||
; LD C,BIOS.FN_TURBO
|
|
||||||
; RST ToBIOS_18
|
|
||||||
;
|
|
||||||
;
|
;
|
||||||
XOR A ; reg A' for GOTO_SPECTRUM
|
XOR A ; reg A' for GOTO_SPECTRUM
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
@ -814,162 +795,14 @@ Set_Next_Par: ; SYS_PORT/CNF_PORT
|
|||||||
; vROM & vRAM
|
; vROM & vRAM
|
||||||
LD HL,(ZX_vROM_BLK)
|
LD HL,(ZX_vROM_BLK)
|
||||||
; RESERVED
|
; RESERVED
|
||||||
XOR A
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
LD C,BIOS.GOTO_SPECTRUM
|
LD C,BIOS.GOTO_SPECTRUM
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
;
|
;!FIXIT ᤥ« âì ®¡à ¡®â稪
|
||||||
.di_halt: DI
|
.di_halt: DI
|
||||||
HALT
|
HALT
|
||||||
JR .di_halt
|
JR .di_halt
|
||||||
|
|
||||||
|
|
||||||
; [ ] free zx pages!
|
|
||||||
; ‚室: D: 0 - BASIC 128, 1 - BASIC 48, 2 - TR-DOS 128,
|
|
||||||
; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨:
|
|
||||||
; 4 - TR-DOS, 5 - BASIC 48
|
|
||||||
; E: § 票¥ ¤«ï SYS_PORT/CNF_PORT
|
|
||||||
; L: Block_ID.vROM
|
|
||||||
; H: Block_ID.vRAM
|
|
||||||
; B: Port All Mode
|
|
||||||
; A: RESERVED (TASK Number = 0)
|
|
||||||
;A'[1..0]: 1 - int scorp, 2 - int pent, 3 - int ZX
|
|
||||||
; A'[2]: 0 - set default palette, 1 - don't change palette
|
|
||||||
; A'[7]: 0 - 320, 1 - 312 áâப
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; XOR A
|
|
||||||
; LD BC,2*256+BIOS.SET_PAL_INIT ; Set ZX-Palette
|
|
||||||
; RST ToBIOS_18
|
|
||||||
;.skip:
|
|
||||||
; LD A,(PARAMS.Int_or+2)
|
|
||||||
; AND A ; 3
|
|
||||||
; JR NZ,Original
|
|
||||||
; LD A,(PARAMS.Int_sc+2) ; 1/2
|
|
||||||
; Original: LD C,BIOS.FN_SYNC ; -> INT for Pentagon or Scorpion
|
|
||||||
; RST ToBIOS_18
|
|
||||||
|
|
||||||
; LD HL,#4000 ; clear ZX-Spectrum screen
|
|
||||||
; LD DE,#4001
|
|
||||||
; LD BC,#1AFF
|
|
||||||
; LD (HL),L
|
|
||||||
; LDIR
|
|
||||||
|
|
||||||
; LD HL,#4104 ; Screen-1
|
|
||||||
; LD E,0
|
|
||||||
; LD BC,4*256+BIOS.LP_OPEN_S
|
|
||||||
; RST ToBIOS_18
|
|
||||||
|
|
||||||
; LD HL,#5104 ; Screen-2
|
|
||||||
; LD E,0
|
|
||||||
; LD BC,4*256+BIOS.LP_OPEN_S
|
|
||||||
; RST ToBIOS_18
|
|
||||||
|
|
||||||
; XOR A
|
|
||||||
; OUT (RGADR),A
|
|
||||||
; OUT (RGMOD),A
|
|
||||||
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ
|
|
||||||
;!FIXIT ç¥à¥§ äãªæ¨î ¡¨®á ¯®¯à®¡®¢ âì
|
|
||||||
; DI
|
|
||||||
; LD A,5 ; [ ] free zx pages!
|
|
||||||
; OUT (SLOT1),A
|
|
||||||
; ; #1FFD
|
|
||||||
; LD BC,#1FFD
|
|
||||||
; XOR A
|
|
||||||
; OUT (SLOT0),A ; [ ] free zx pages!
|
|
||||||
; OUT (C),A
|
|
||||||
; ; #7FFD
|
|
||||||
; LD B,#7F
|
|
||||||
; LD A,8
|
|
||||||
; LOOP_P1: DEC A
|
|
||||||
; OUT (C),A
|
|
||||||
; OUT (SLOT3),A
|
|
||||||
; JR NZ,LOOP_P1
|
|
||||||
; ; #1FFD
|
|
||||||
; LD B,#1F
|
|
||||||
; LD A,#10
|
|
||||||
; OUT (C),A
|
|
||||||
; ; #7FFD
|
|
||||||
; LD B,#7F
|
|
||||||
; LD A,8
|
|
||||||
; LOOP_P2: OUT (C),A
|
|
||||||
; OUT (SLOT3),A
|
|
||||||
; INC A
|
|
||||||
; CP 16
|
|
||||||
; JR NZ,LOOP_P2
|
|
||||||
; ;
|
|
||||||
; XOR A
|
|
||||||
; OUT (C),A
|
|
||||||
; ; #1FFD
|
|
||||||
; LD B,#1F
|
|
||||||
; OUT (C),A
|
|
||||||
; ;
|
|
||||||
; ; ‚ᥠRAM, ªà®¬¥ BANK2 - ¢ ¥© ¯à®£à ¬¬ !
|
|
||||||
; ;
|
|
||||||
; LD HL,PROG_STARTS
|
|
||||||
; LD DE,PROG_STARTS.Launch ;!HARDCODE
|
|
||||||
; LD BC,0*256 + PROG_STARTS.Length
|
|
||||||
; LDIR
|
|
||||||
|
|
||||||
; LD A,(PARAMS.Lines312+2)
|
|
||||||
; OUT (Port_VSYNC),A
|
|
||||||
|
|
||||||
; LD A,(PARAMS.P_7FFD+2) ; - Pentagon off
|
|
||||||
; LD BC,#7FFD
|
|
||||||
; OUT (C),A
|
|
||||||
|
|
||||||
; LD A,(PARAMS.Turbo+2) ; 3 - turbo
|
|
||||||
|
|
||||||
; LD HL,(PARAMS.Sprinter+2) ; +04h - Sprinter-ZX
|
|
||||||
; ADD A,L ; +0Ch - Scorpion/Pentagon
|
|
||||||
|
|
||||||
; LD HL,(PARAMS.P_1FFD+2) ; +40h - Scorpion port off
|
|
||||||
; ADD A,L
|
|
||||||
|
|
||||||
; LD HL,(PARAMS.Mem512+2) ; +80h - Pentagon-512 on
|
|
||||||
; ADD A,L
|
|
||||||
|
|
||||||
; LD E,A
|
|
||||||
; LD A,(PARAMS.To_trd+2)
|
|
||||||
; LD D,A
|
|
||||||
|
|
||||||
; ;!TEST
|
|
||||||
; IN A,(SLOT3)
|
|
||||||
; LD C,A
|
|
||||||
; LD A,SYS_PAGE
|
|
||||||
; OUT (SLOT3),A
|
|
||||||
|
|
||||||
; LD A,E
|
|
||||||
; LD (SYS_PAGE.CONFIG_DE),A
|
|
||||||
; XOR A
|
|
||||||
; LD (SYS_PAGE.CONFIG_DE+1),A
|
|
||||||
|
|
||||||
; LD A,C
|
|
||||||
; OUT (SLOT3),A
|
|
||||||
; ;
|
|
||||||
; JP PROG_STARTS.Launch
|
|
||||||
; ; ; ;
|
|
||||||
; PROG_STARTS:
|
|
||||||
; .Launch: EQU #FF00
|
|
||||||
; DISP .Launch
|
|
||||||
; LD A,2 ; [ ] free zx pages!
|
|
||||||
; OUT (SLOT2),A
|
|
||||||
; LD A,E
|
|
||||||
; OUT (SYS_PORT.RAM),A
|
|
||||||
; LD A,D
|
|
||||||
; AND A
|
|
||||||
; JP Z,0
|
|
||||||
; LD A,#10
|
|
||||||
; LD BC,#7FFD
|
|
||||||
; OUT (C),A
|
|
||||||
; LD HL,0
|
|
||||||
; PUSH HL
|
|
||||||
; JP #3D29 ; RESET to TR-DOS
|
|
||||||
; ENT
|
|
||||||
; ;
|
|
||||||
; .Length EQU $-PROG_STARTS
|
|
||||||
; ASSERT PROG_STARTS.Length<#100,'PROG_STARTS too big!!!'
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
|
||||||
@ -1159,14 +992,13 @@ READ_CNF_FILE: LD HL,#C000
|
|||||||
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
MACRO vROM_LOAD romLine;,pageNumber
|
MACRO vROM_LOAD romLine;,pageNumber
|
||||||
.romLine = (romLine-1)*2
|
.RomLine = (romLine-1)*2
|
||||||
LD DE,(ADDRESS_LINES+.romLine)
|
LD DE,(ADDRESS_LINES+.RomLine)
|
||||||
CALL vROM_LOAD_BIN
|
CALL vROM_LOAD_BIN
|
||||||
ENDM
|
ENDM
|
||||||
;
|
;
|
||||||
LOAD_vROM_BIN: CALL CHECK_ZX_FLAG
|
LOAD_vROM_BIN: EXX
|
||||||
EXX
|
LD HL,BUFFER_vROM_PAGES.Pages
|
||||||
LD HL,BUFFER_vROM_PAGES
|
|
||||||
EXX
|
EXX
|
||||||
LD HL,BUFFER_RAM_PAGES
|
LD HL,BUFFER_RAM_PAGES
|
||||||
vROM_LOAD CFG_FILE_LINES.BASIC128 ;, #42 2-ï áâப - ¨¬ï ä ©« BASIC128
|
vROM_LOAD CFG_FILE_LINES.BASIC128 ;, #42 2-ï áâப - ¨¬ï ä ©« BASIC128
|
||||||
@ -1179,6 +1011,12 @@ LOAD_vROM_BIN: CALL CHECK_ZX_FLAG
|
|||||||
vROM_LOAD CFG_FILE_LINES.BASIC_48_2 ;, ??? 9-ï áâப - ¨¬ï ä ©«
|
vROM_LOAD CFG_FILE_LINES.BASIC_48_2 ;, ??? 9-ï áâப - ¨¬ï ä ©«
|
||||||
vROM_LOAD CFG_FILE_LINES.TRDOS_2 ;, ??? 10-ï áâப - ¨¬ï ä ©«
|
vROM_LOAD CFG_FILE_LINES.TRDOS_2 ;, ??? 10-ï áâப - ¨¬ï ä ©«
|
||||||
vROM_LOAD CFG_FILE_LINES.ZXEXP_2 ;, ??? 11-ï áâப - ¨¬ï ä ©«
|
vROM_LOAD CFG_FILE_LINES.ZXEXP_2 ;, ??? 11-ï áâப - ¨¬ï ä ©«
|
||||||
|
LD HL,BUFFER_vROM_PAGES
|
||||||
|
LD A,(ZX_vROM_BLK)
|
||||||
|
LD (HL),A
|
||||||
|
LD BC,BIOS.ZX_MEMORY_MANAGER.SetCustomVroms
|
||||||
|
RST ToBIOS
|
||||||
|
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
vROM_LOAD_BIN: EX DE,HL
|
vROM_LOAD_BIN: EX DE,HL
|
||||||
@ -1190,19 +1028,19 @@ vROM_LOAD_BIN: EX DE,HL
|
|||||||
.go_load: LD A,(HL) ;BUFFER_RAM_PAGES.ROM
|
.go_load: LD A,(HL) ;BUFFER_RAM_PAGES.ROM
|
||||||
EXX
|
EXX
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
;INC HL
|
||||||
PUSH HL
|
PUSH HL
|
||||||
EXX
|
EXX
|
||||||
PUSH HL
|
PUSH HL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
CALL READ_FILE_1 ; A - RAM page
|
CALL READ_FILE_1 ; A - RAM page
|
||||||
POP HL
|
POP HL
|
||||||
LD A,(HL)
|
; LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
;
|
;
|
||||||
EXX
|
EXX
|
||||||
POP HL
|
POP HL
|
||||||
LD (HL),A
|
; LD (HL),A
|
||||||
EXX
|
EXX
|
||||||
;
|
;
|
||||||
LD A,SHARED_PAGE
|
LD A,SHARED_PAGE
|
||||||
@ -1214,23 +1052,9 @@ vROM_LOAD_BIN: EX DE,HL
|
|||||||
EXX
|
EXX
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
;!FIXIT ¢à¥¬¥ ï § ¯« âª
|
|
||||||
CHECK_ZX_FLAG: LD BC,SLOT3
|
|
||||||
IN B,(C)
|
;NO_ZX_FLAG: DB 0
|
||||||
LD A,Spec_Page
|
|
||||||
OUT (C),A
|
|
||||||
LD HL,(Spec_Page.flag_Z)
|
|
||||||
LD DE,'Z'+'X'*256
|
|
||||||
;
|
|
||||||
XOR A
|
|
||||||
SBC HL,DE
|
|
||||||
OUT (C),B
|
|
||||||
RET Z
|
|
||||||
;
|
|
||||||
INC A
|
|
||||||
LD (NO_ZX_FLAG),A
|
|
||||||
RET
|
|
||||||
NO_ZX_FLAG: DB 0
|
|
||||||
;
|
;
|
||||||
; MACRO vROM_LOAD romLine;,pageNumber
|
; MACRO vROM_LOAD romLine;,pageNumber
|
||||||
; .romLine = (romLine-1)*2
|
; .romLine = (romLine-1)*2
|
||||||
@ -1266,6 +1090,26 @@ NO_ZX_FLAG: DB 0
|
|||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
|
||||||
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
LOAD_IMAGE_FILE:
|
||||||
|
LD HL,(IMAGE_NAME)
|
||||||
|
LD A,H
|
||||||
|
OR L
|
||||||
|
RET Z
|
||||||
|
;
|
||||||
|
LD C,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
PUSH BC
|
||||||
|
;
|
||||||
|
CALL READ_IMAGE
|
||||||
|
;
|
||||||
|
POP BC
|
||||||
|
OUT (C),B
|
||||||
|
RET NC
|
||||||
|
JP ERROR_FILE
|
||||||
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
;!TEST palette load
|
;!TEST palette load
|
||||||
LOADING_PALETTE:
|
LOADING_PALETTE:
|
||||||
@ -1415,7 +1259,6 @@ PARSE_PARAMETERS:; parameters parsing
|
|||||||
;¥á«¨ áâíª å®¤¨âáï ¢ âà¥â쥬 á«®â¥, â® ¢ë§®¢ á ¢ëª«îç¥ë¬¨ ¯à¥àë¢ ¨ï¬¨
|
;¥á«¨ áâíª å®¤¨âáï ¢ âà¥â쥬 á«®â¥, â® ¢ë§®¢ á ¢ëª«îç¥ë¬¨ ¯à¥àë¢ ¨ï¬¨
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
GET_vRAM_PAGES: CALL .check_params
|
GET_vRAM_PAGES: CALL .check_params
|
||||||
XOR A
|
|
||||||
LD C,BIOS.ZX_MEMORY_MANAGER
|
LD C,BIOS.ZX_MEMORY_MANAGER
|
||||||
RST ToBIOS
|
RST ToBIOS
|
||||||
RET C
|
RET C
|
||||||
@ -1468,7 +1311,21 @@ COUNT_vROM_PAGES:
|
|||||||
LD A,C
|
LD A,C
|
||||||
LD (ZX_vROM_COUNT),A
|
LD (ZX_vROM_COUNT),A
|
||||||
SUB 1 ; ¥á«¨ 0 - â® ¥ ¬¥ï¥¬ ¡®à
|
SUB 1 ; ¥á«¨ 0 - â® ¥ ¬¥ï¥¬ ¡®à
|
||||||
RET
|
RET NC
|
||||||
|
; CHECK_ZX_FLAG
|
||||||
|
LD BC,SLOT3
|
||||||
|
IN B,(C)
|
||||||
|
LD A,Spec_Page
|
||||||
|
OUT (C),A
|
||||||
|
LD HL,(Spec_Page.flag_Z)
|
||||||
|
LD DE,'Z'+'X'*256
|
||||||
|
;
|
||||||
|
XOR A
|
||||||
|
SBC HL,DE
|
||||||
|
OUT (C),B
|
||||||
|
SCF ; ROM ä ©«®¢ 0, ¬¥âª ZX ¥áâì
|
||||||
|
RET Z
|
||||||
|
JP ERROR_ZX_FLAG
|
||||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||||
|
|
||||||
|
|
||||||
@ -1554,7 +1411,8 @@ BUFFER_RAM_PAGES:
|
|||||||
BLOCK 10,#FF ; !HARDCODE ª®«¨ç¥á⢮ ¯®à⮢ í¬ã«ïâ®à <20>‡“
|
BLOCK 10,#FF ; !HARDCODE ª®«¨ç¥á⢮ ¯®à⮢ í¬ã«ïâ®à <20>‡“
|
||||||
.Size EQU $-BUFFER_RAM_PAGES
|
.Size EQU $-BUFFER_RAM_PAGES
|
||||||
BUFFER_vROM_PAGES:
|
BUFFER_vROM_PAGES:
|
||||||
BLOCK 10,#FF ; !HARDCODE ª®«¨ç¥á⢮ ¯®à⮢ í¬ã«ïâ®à <20>‡“
|
.BlockID: BYTE 0
|
||||||
|
.Pages: BLOCK 10,#FF ; !HARDCODE ª®«¨ç¥á⢮ ¯®à⮢ í¬ã«ïâ®à <20>‡“
|
||||||
.Size EQU $-BUFFER_RAM_PAGES
|
.Size EQU $-BUFFER_RAM_PAGES
|
||||||
ELSE
|
ELSE
|
||||||
BUFFER_RAM_PAGES:
|
BUFFER_RAM_PAGES:
|
||||||
@ -1586,8 +1444,8 @@ ERROR_FILE_MSG: DB 13,10, "Unable to work.",0
|
|||||||
;ERROR_FILE2_MSG: DB 13,10, "<22> ¡®â ¥¢®§¬®¦ .",0
|
;ERROR_FILE2_MSG: DB 13,10, "<22> ¡®â ¥¢®§¬®¦ .",0
|
||||||
ERROR_CNF: DB 13,10, "Unexpected CNF file end.",0
|
ERROR_CNF: DB 13,10, "Unexpected CNF file end.",0
|
||||||
;ERROR_CNF2: DB 13,10, "<22>¥®¦¨¤ ë© ª®¥æ CNF ä ©« .",0
|
;ERROR_CNF2: DB 13,10, "<22>¥®¦¨¤ ë© ª®¥æ CNF ä ©« .",0
|
||||||
NO_MEM_MSG: DB 13,10, "The spesial pages are already used."
|
NO_MEM_MSG: DB 13,10, "Not enough free memory pages for ZX mode."
|
||||||
DB 13,10, "Clear memory and restart spectrum.exe again.",0
|
DB 13,10, "Clear the memory and restart spectrum.exe again.",0
|
||||||
;NO_MEM_MSG2: DB 13,10, "‘¯¥æ¨ «ìë¥ áâà ¨æë 㦥 § ïâë."
|
;NO_MEM_MSG2: DB 13,10, "‘¯¥æ¨ «ìë¥ áâà ¨æë 㦥 § ïâë."
|
||||||
; DB 13,10, "Žç¨áâ¨â¥ ¯ ¬ïâì ¨ ¯¥à¥§ ¯ãáâ¨â¥ spectrum.exe ᮢ .",0
|
; DB 13,10, "Žç¨áâ¨â¥ ¯ ¬ïâì ¨ ¯¥à¥§ ¯ãáâ¨â¥ spectrum.exe ᮢ .",0
|
||||||
MSG_NORMAL: DB 13,10, "All files has been read successfully.",13,10
|
MSG_NORMAL: DB 13,10, "All files has been read successfully.",13,10
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user