страницы 2 и 5 снова в резерве, переделаны процедуры для выделения и инита vRAM
This commit is contained in:
parent
b140cdd2ba
commit
df304e2861
@ -1 +1 @@
|
||||
Subproject commit 14a3896e7283495e2bf55cc81a995f5f1e88e539
|
||||
Subproject commit ff7c23909878e2f143563eee9e30fd9013bcd570
|
||||
@ -113,17 +113,17 @@ RESERVED_PAGES:
|
||||
;
|
||||
;
|
||||
;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì
|
||||
DB 0;,2,5 ; [ ] free zx pages! ; for Spectrum and BIOS starting
|
||||
DB DCP_PAGE ; Ports map
|
||||
DB Spec_Page ; Page for Spectrum mode
|
||||
DB ZX_PAGE.SLOT0,ZX_PAGE.SLOT2,ZX_PAGE.SLOT1 ; [ ] free zx pages! ; for Spectrum and BIOS starting
|
||||
DB DCP_PAGE ; Ports map
|
||||
DB Spec_Page ; Page for Spectrum mode
|
||||
; Screen pages
|
||||
DB #50,#51,#52,#53,#54,#55,#56,#57
|
||||
DB #58,#59,#5A,#5B,#5C,#5D,#5E,#5F
|
||||
;
|
||||
;DB MODE_PAGE ; ?????
|
||||
DB CBL.BUFFER_PAGE ; Page for CBL audio
|
||||
DB SYS_PAGE ; Page for system (BIOS) variables
|
||||
DB #FF ; End of the block
|
||||
DB CBL.BUFFER_PAGE ; Page for CBL audio
|
||||
DB SYS_PAGE ; Page for system (BIOS) variables
|
||||
DB #FF ; End of the block
|
||||
;
|
||||
;.Blocks EQU 2
|
||||
;----------------------------------------------------------------------;
|
||||
|
||||
@ -16,10 +16,10 @@ RST_CONF:
|
||||
;--[] ZX Spectrum
|
||||
.AY8910: CALL .ACC_OFF
|
||||
LD DE,ACEX.Config_ID.Sp97_AY
|
||||
CALL .INT_PLD
|
||||
LD A,CNF_PORT.CNF_1
|
||||
OUT (SYS_PORT.ON),A
|
||||
RET
|
||||
JR .INT_PLD
|
||||
;LD A,CNF_PORT.CNF_1
|
||||
;OUT (SYS_PORT.ON),A
|
||||
;RET
|
||||
;--[]
|
||||
|
||||
;--[] Sprinter ZX
|
||||
|
||||
@ -222,13 +222,14 @@ INIT_SYS_ALL:
|
||||
INC HL
|
||||
LD (HL),DRIVE_CODES.TRDOS.HDD
|
||||
INC HL
|
||||
LD (HL),ZERO_PAGE ; [x] free zx pages! ; SYS_PAGE.COPY_SLOT0, ¡ë«® 0
|
||||
; A = 0
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD (HL),SHARED_PAGE; [x] free zx pages! ; SYS_PAGE.COPY_SLOT1, ¡ë«® 5
|
||||
LD (HL),ZX_PAGE.SLOT1
|
||||
INC HL
|
||||
LD (HL),ZERO_PAGE ; [x] free zx pages! ; SYS_PAGE.COPY_SLOT2, ¡ë«® 2
|
||||
LD (HL),ZX_PAGE.SLOT2
|
||||
INC HL
|
||||
LD (HL),ZERO_PAGE ; [x] free zx pages! ; SYS_PAGE.COPY_SLOT3, ¡ë«® 0
|
||||
LD (HL),A
|
||||
|
||||
LD A,9
|
||||
LD (SYS_PAGE.MSD_SECS - #4000),A
|
||||
|
||||
@ -445,7 +445,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
|
||||
; ¢ë¤¥«¨âì áâà ¨æë ᪮à¯
|
||||
XOR A
|
||||
LD DE,#F0D0 ; ¤«ï 䨫ìâà . #F0 - ¬ ᪠, #D0 - áâà ¨æë ISA #D0..#DF
|
||||
LD BC,256*BIOS.ZX_MEMORY_MANAGER.MODE_256k/2 + #FF ; B - ª®«¨ç¥á⢮ áâà ¨æ, C - Œ¥âª ª®æ à ¬¡«®ª
|
||||
LD BC,256*8 + #FF ; B - ª®«¨ç¥á⢮ áâà ¨æ, C - Œ¥âª ª®æ à ¬¡«®ª
|
||||
LD HL,SYS_PAGE.RAM_TABLE
|
||||
.allocate_loop: DEC L
|
||||
JR Z,.error_no_mem
|
||||
@ -575,7 +575,7 @@ GOTO_SPECTRUM: DI
|
||||
CALL ToBIOS_FromEXT
|
||||
;
|
||||
LD A,(SYS_PAGE.Block_ID.vRAM)
|
||||
LD HL,SYS_PAGE.SHARED_BUFFER_256b
|
||||
LD HL,SYS_PAGE.SHARED_BUFFER_256b + 1
|
||||
LD C,BIOS.GetMemBlkPages
|
||||
CALL ToBIOS_FromEXT
|
||||
;!FIXIT
|
||||
@ -588,40 +588,51 @@ GOTO_SPECTRUM: DI
|
||||
EXX
|
||||
POP BC
|
||||
EXX
|
||||
;.TASK_0: § ¤ ç 0, ०¨¬ 256 ª¨«®¡ ©â
|
||||
.START_TASK: XOR A
|
||||
;
|
||||
XOR A
|
||||
OUT (RGADR),A ; ॣ¨áâà ¢¨¤¥® ¤à¥á
|
||||
OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë
|
||||
; ¯®¤£®â®¢ª áâà ¨æ
|
||||
PUSH DE
|
||||
;
|
||||
LD IY,.BASIC_128
|
||||
JR INIT_PAGES ; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬ ᯥªâàã¬
|
||||
;start_basic:
|
||||
.BASIC_128: LD SP,#C000
|
||||
LD HL,RES128_PROG
|
||||
LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë BASIC-¥.
|
||||
LD BC,RES128_PROG.Size
|
||||
LDIR
|
||||
JP ZX_VARS.PRINTER_BUFFER
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;*****************************************
|
||||
;
|
||||
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ ¤«ï
|
||||
; ᯥªâà㬮¢áª®£® ०¨¬ ¨
|
||||
; ¢®ááâ ®¢«¥¨¥ ᯥªâà㬮¢áª®£®
|
||||
; íªà
|
||||
;
|
||||
; ‚®§¢à â ¯® IY
|
||||
;
|
||||
; !!! NO USE STACK !!!
|
||||
;
|
||||
;*****************************************
|
||||
;!TODO á⥪ ãáâ ®¢«¥ ¢® ¢â®à®© áâà ¨æ¥, ¥ ¨á¯®«ì§®¢ âì ¨«¨ ãáâ ¢«¨¢ âì ¢ ¤àã£ãî!
|
||||
; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum
|
||||
; HL - ¤à¥á ¡«®ª áâà ¨æ ¢ SYS_PAGE SLOT3
|
||||
; D - ª®«¨ç¥á⢮ íâ¨å áâà ¨æ
|
||||
LD HL,SYS_PAGE.SHARED_BUFFER_256b+30
|
||||
LD DE,SYS_PAGE.SHARED_BUFFER_256b+32
|
||||
LD BC,26
|
||||
LDDR
|
||||
;
|
||||
INC L
|
||||
LD (HL),ZX_PAGE.SLOT1
|
||||
LD HL,SYS_PAGE.SHARED_BUFFER_256b+2
|
||||
LD E,(HL)
|
||||
LD (HL),ZX_PAGE.SLOT2
|
||||
LD HL,SYS_PAGE.SHARED_BUFFER_256b+6
|
||||
LD (HL),E
|
||||
LD HL,SYS_PAGE.SHARED_BUFFER_256b
|
||||
LD (HL),A
|
||||
;
|
||||
POP DE
|
||||
;
|
||||
; DEC HL
|
||||
; LD (HL),A ; ZX_PAGE.SLOT0
|
||||
; INC HL
|
||||
; INC HL
|
||||
; LD A,(HL)
|
||||
; LD (HL),ZX_PAGE.SLOT1
|
||||
; INC HL
|
||||
; INC HL
|
||||
; LD E,(HL)
|
||||
; LD (HL),ZX_PAGE.SLOT2
|
||||
; INC HL
|
||||
; LD (HL),A
|
||||
; INC HL
|
||||
; LD (HL),E
|
||||
;
|
||||
;LD HL,SYS_PAGE.SHARED_BUFFER_256b
|
||||
;LD IY,.BASIC_128
|
||||
;JR INIT_PAGES ; ¨¨æ¨ «¨§ æ¨ï ®¬¥à®¢ áâà ¨æ ०¨¬ ᯥªâàã¬
|
||||
; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum
|
||||
; HL - ¤à¥á ¡«®ª áâà ¨æ ¢ SYS_PAGE SLOT3
|
||||
; D - ª®«¨ç¥á⢮ íâ¨å áâà ¨æ
|
||||
INIT_PAGES: LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
; [ ] free zx pages! ¯¥à¥¤¥« âì ¨¨â. ¥á«¨ 512, â® ¥â 1ffd ¨ ®¡®à®â
|
||||
@ -652,12 +663,14 @@ INIT_PAGES: LD A,SYS_PAGE
|
||||
;
|
||||
.set_48k: LD A,5 ; !HARDCODE CONFIG_DE.ZX_START ‚•Ž„ ‚ BASIC 48 á § ªàëâ묨 128-¬¨ ¯®àâ ¬¨
|
||||
LD (SYS_PAGE.CONFIG_DE.ZX_START - #8000),A
|
||||
LD A,(HL) ; SLOT0, SLOT3 page
|
||||
INC HL
|
||||
LD E,(HL) ; SLOT1 page
|
||||
INC HL
|
||||
LD D,(HL) ; SLOT2 page
|
||||
JR .set_slots
|
||||
;LD A,(HL) ; SLOT0, SLOT3 page
|
||||
;INC HL
|
||||
;LD E,(HL) ; SLOT1 page
|
||||
;INC HL
|
||||
;LD D,(HL) ; SLOT2 page
|
||||
;JR .set_slots
|
||||
;
|
||||
JR .set_table
|
||||
;
|
||||
.set_scorp: CALL MANAGE_ZX_PAGES.INIT_vRAM
|
||||
LD A,#10
|
||||
@ -668,7 +681,7 @@ INIT_PAGES: LD A,SYS_PAGE
|
||||
INC A ; reset ZF
|
||||
;
|
||||
.set_pent: CALL Z,MANAGE_ZX_PAGES.INIT_vRAM
|
||||
; ¬¥ï¥¬ ¯®à冷ª ¤«ï ¯à®æ¥¤ãàë set_48k
|
||||
; ¬¥ï¥¬ ¯®à冷ª ¤«ï ¯à®æ¥¤ãàë .set_slots
|
||||
.set_table: LD A,(SYS_PAGE.SHARED_BUFFER_256b+2 - #8000) ; SLOT2 page
|
||||
LD D,A
|
||||
LD A,(SYS_PAGE.SHARED_BUFFER_256b+5 - #8000) ; SLOT1 page
|
||||
@ -681,8 +694,35 @@ INIT_PAGES: LD A,SYS_PAGE
|
||||
OUT (SLOT1),A
|
||||
LD A,D
|
||||
OUT (SLOT2),A
|
||||
;JP (IY)
|
||||
;
|
||||
JP (IY)
|
||||
;.BASIC_128: ;start_basic:
|
||||
LD SP,#C000
|
||||
LD HL,RES128_PROG
|
||||
LD DE,ZX_VARS.PRINTER_BUFFER ; § ¯ã᪠¯à®£à ¬¬ë BASIC-¥.
|
||||
LD BC,RES128_PROG.Size
|
||||
LDIR
|
||||
JP ZX_VARS.PRINTER_BUFFER
|
||||
;----------------------------------------------------------------------;
|
||||
; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
||||
; x 0 x 1 2 x 3 4
|
||||
; x 0 1 2 3 4
|
||||
;p 0 1 2 3 4 5 6 7
|
||||
; 0 x 2 x x 5 x x
|
||||
;-----------------------------------------------------------------------;
|
||||
;*****************************************
|
||||
;
|
||||
; ˆ¨æ¨ «¨§ æ¨ï áâà ¨æ ¤«ï
|
||||
; ᯥªâà㬮¢áª®£® ०¨¬ ¨
|
||||
; ¢®ááâ ®¢«¥¨¥ ᯥªâà㬮¢áª®£®
|
||||
; íªà
|
||||
;
|
||||
; ‚®§¢à â ¯® IY
|
||||
;
|
||||
; !!! NO USE STACK !!!
|
||||
;
|
||||
;*****************************************
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user