подготовка к динамическим страницам ОЗУ для режима спектрума

This commit is contained in:
Anatoliy Belyanskiy 2023-07-17 22:54:54 +10:00
parent 01ed8404f7
commit a3fcda9c34
3 changed files with 54 additions and 83 deletions

@ -1 +1 @@
Subproject commit 38c3f62f6d7fa9f4c977eb23e3ff9ea7bf3638f0 Subproject commit 3a3a4fe44981e0a75f4925234aa2609ee81b96b4

View File

@ -373,26 +373,37 @@ N_LINE: LD (HL),0
; ¢ë¤¥«¥­® 8 áâப ¢ CNF ; ¢ë¤¥«¥­® 8 áâப ¢ CNF
;************************************* ;*************************************
;!TODO ¥á«¨ ¯à®¯ã᪠¥¬ § £à㧪ã ROM ¤«ï 48, 128 ¨«¨ trdos, â® ¢áâ ¢«ïâì ¢ ¯®àâ vROM ­®¬¥à ¨§ áâ ­¤ àâ­®£® ¯¥à¢®£® ¡«®ª  ;!TODO ¥á«¨ ¯à®¯ã᪠¥¬ § £à㧪ã ROM ¤«ï 48, 128 ¨«¨ trdos, â® ¢áâ ¢«ïâì ¢ ¯®àâ vROM ­®¬¥à ¨§ áâ ­¤ àâ­®£® ¯¥à¢®£® ¡«®ª 
;!TEST
MACRO vROM_LOAD romLine;,pageNumber MACRO vROM_LOAD romLine;,pageNumber
EX DE,HL
LD HL,(A_LINES+romLine) LD HL,(A_LINES+romLine)
LD A,(HL) LD A,(HL)
CP ';' CP ';'
JR Z,.skip_load EX DE,HL
;!TEST
;LD A,pageNumber JR NZ,.go_load
LD A,(BC)
INC BC LD (HL),0
PUSH BC EX DE,HL
JP .skip_load
.go_load:
LD A,(HL) ;BUFFER_RAM_PAGES.ROM
PUSH HL
EX DE,HL
CALL READ_FILE_1 CALL READ_FILE_1
POP BC POP DE
; ;
LD A,Spec_Page LD A,Spec_Page
OUT (SLOT3),A OUT (SLOT3),A
JP C,ERROR_FILE JP C,ERROR_FILE
.skip_load: .skip_load:
INC DE
EX DE,HL
ENDM ENDM
;
LD BC,BUFFER_RAM_PAGES.ROM ;LD BC,BUFFER_RAM_PAGES.ROM
LD HL,BUFFER_RAM_PAGES.ROM
vROM_LOAD BASIC128_LINE;, #42 ; 2-ï áâப  - ¨¬ï ä ©«  BASIC128 vROM_LOAD BASIC128_LINE;, #42 ; 2-ï áâப  - ¨¬ï ä ©«  BASIC128
vROM_LOAD BASIC_48_LINE;, #43 ; 3-ï áâப  - ¨¬ï ä ©«  BASIC 48 vROM_LOAD BASIC_48_LINE;, #43 ; 3-ï áâப  - ¨¬ï ä ©«  BASIC 48
@ -495,44 +506,30 @@ BUFFER_RAM_PAGES:
.RAM: BLOCK 16 ; 256 ª¡ .RAM: BLOCK 16 ; 256 ª¡
.Size EQU $-BUFFER_RAM_PAGES .Size EQU $-BUFFER_RAM_PAGES
.end_marker: BYTE #FF .end_marker: BYTE #FF
PARAM_END:
LD HL,BUFFER_RAM_PAGES.ROM
MACRO vROM_set dcp_port
LD B,(HL) ; page LD B,(HL) ; page
INC HL INC HL
LD A,#E2 ; ROM-ID - BASIC 128 XOR A
//LD B,#42 ; page OR B
JR Z,.next
LD A,dcp_port ; ROM-ID
CALL SET_ROM CALL SET_ROM
.next:
ENDM
LD B,(HL) ; page PARAM_END: LD HL,BUFFER_RAM_PAGES.ROM
INC HL
LD A,#E3 ; ROM-ID - BASIC 48
//LD B,#43 ; page
CALL SET_ROM
LD B,(HL) ; page vROM_set #E2 ; ROM-ID - BASIC 128
INC HL vROM_set #E3 ; ROM-ID - BASIC 48
LD A,#E1 ; ROM-ID - TR-DOS vROM_set #E1 ; ROM-ID - TR-DOS
//LD B,#44 ; page vROM_set #E0 ; ROM-ID - EXPANSION
CALL SET_ROM vROM_set #EB ; ROM-ID - BIOS-1
vROM_set #EF ; ROM-ID - BIOS-2
LD B,(HL) ; page ;vROM_set #E6 ; BASIC 128 - 2
INC HL ;vROM_set #E7 ; BASIC 48 - 2
LD A,#E0 ; ROM-ID - EXPANSION ;vROM_set #E5 ; TR-DOS - 2
//LD B,#45 ; page ;vROM_set #E4 ; BIOS (ZX_EXP) - 2
CALL SET_ROM
LD B,(HL) ; page
INC HL
LD A,#EB ; ROM-ID - BIOS-1
//LD B,#46 ; page
CALL SET_ROM
LD B,(HL) ; page
INC HL
LD A,#EF ; ROM-ID - BIOS-2
//LD B,#47 ; page
CALL SET_ROM
LD HL,(IMAGE_NAME) LD HL,(IMAGE_NAME)
LD A,H LD A,H
@ -563,34 +560,8 @@ 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
;PUSH BC
;PUSH AF
;LD A,CNF_0
;OUT (SYS_PORT.ON),A
;LD A,10h
;LD BC,7FFDh
;OUT (C),A
;POP AF
;POP BC
;LD C,0F8h
;CALL 3D13h
;PUSH BC
;PUSH AF
;LD A,0
;LD BC,7FFDh
;OUT (C),A
;LD A,CNF_0
;OUT (SYS_PORT.OFF),A
;POP AF
;POP BC
;RET
EX AF,AF' EX AF,AF'

View File

@ -4,5 +4,5 @@
sj.insert_define("BUILD_DATE", "'" .. date .. "." .. month .. "." .. year .. "'") sj.insert_define("BUILD_DATE", "'" .. date .. "." .. month .. "." .. year .. "'")
ENDLUA ENDLUA
DEFINE SP_VERSION "2.01 beta build" DEFINE SP_VERSION "2.02 beta build"
; ;