From a3fcda9c349e1b8241a836014ba60a159e8c24b3 Mon Sep 17 00:00:00 2001 From: Anatoliy Belyanskiy Date: Mon, 17 Jul 2023 22:54:54 +1000 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=B3=D0=BE=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0=20=D0=BA=20=D0=B4=D0=B8=D0=BD=D0=B0=D0=BC?= =?UTF-8?q?=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=BC=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=86=D0=B0=D0=BC=20=D0=9E=D0=97=D0=A3=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=B0=20?= =?UTF-8?q?=D1=81=D0=BF=D0=B5=D0=BA=D1=82=D1=80=D1=83=D0=BC=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Shared_Includes | 2 +- spectrum.asm | 133 +++++++++++++++++++----------------------------- version.inc | 2 +- 3 files changed, 54 insertions(+), 83 deletions(-) diff --git a/Shared_Includes b/Shared_Includes index 38c3f62..3a3a4fe 160000 --- a/Shared_Includes +++ b/Shared_Includes @@ -1 +1 @@ -Subproject commit 38c3f62f6d7fa9f4c977eb23e3ff9ea7bf3638f0 +Subproject commit 3a3a4fe44981e0a75f4925234aa2609ee81b96b4 diff --git a/spectrum.asm b/spectrum.asm index b052f09..8269330 100644 --- a/spectrum.asm +++ b/spectrum.asm @@ -373,26 +373,37 @@ N_LINE: LD (HL),0 ; выделено 8 строк в CNF ;************************************* ;!TODO если пропускаем загрузку ROM для 48, 128 или trdos, то вставлять в порт vROM номер из стандартного первого блока - MACRO vROM_LOAD romLine;,pageNumber - LD HL,(A_LINES+romLine) - LD A,(HL) - CP ';' - JR Z,.skip_load - ;!TEST - ;LD A,pageNumber - LD A,(BC) - INC BC - PUSH BC - CALL READ_FILE_1 - POP BC - ; - LD A,Spec_Page - OUT (SLOT3),A - JP C,ERROR_FILE -.skip_load: - ENDM +;!TEST + MACRO vROM_LOAD romLine;,pageNumber + EX DE,HL + LD HL,(A_LINES+romLine) + LD A,(HL) + CP ';' + EX DE,HL - LD BC,BUFFER_RAM_PAGES.ROM + JR NZ,.go_load + + LD (HL),0 + EX DE,HL + JP .skip_load +.go_load: + LD A,(HL) ;BUFFER_RAM_PAGES.ROM + PUSH HL + EX DE,HL + CALL READ_FILE_1 + POP DE + ; + LD A,Spec_Page + OUT (SLOT3),A + JP C,ERROR_FILE +.skip_load: + INC DE + EX DE,HL + ENDM +; + + ;LD BC,BUFFER_RAM_PAGES.ROM + LD HL,BUFFER_RAM_PAGES.ROM vROM_LOAD BASIC128_LINE;, #42 ; 2-я строка - имя файла BASIC128 vROM_LOAD BASIC_48_LINE;, #43 ; 3-я строка - имя файла BASIC 48 @@ -495,44 +506,30 @@ BUFFER_RAM_PAGES: .RAM: BLOCK 16 ; 256 кб .Size EQU $-BUFFER_RAM_PAGES .end_marker: BYTE #FF -PARAM_END: - LD HL,BUFFER_RAM_PAGES.ROM - LD B,(HL) ; page - INC HL - LD A,#E2 ; ROM-ID - BASIC 128 - //LD B,#42 ; page - CALL SET_ROM + MACRO vROM_set dcp_port + LD B,(HL) ; page + INC HL + XOR A + OR B + JR Z,.next + LD A,dcp_port ; ROM-ID + CALL SET_ROM +.next: + ENDM - LD B,(HL) ; page - INC HL - LD A,#E3 ; ROM-ID - BASIC 48 - //LD B,#43 ; page - CALL SET_ROM +PARAM_END: LD HL,BUFFER_RAM_PAGES.ROM - LD B,(HL) ; page - INC HL - LD A,#E1 ; ROM-ID - TR-DOS - //LD B,#44 ; page - CALL SET_ROM - - LD B,(HL) ; page - INC HL - LD A,#E0 ; ROM-ID - EXPANSION - //LD B,#45 ; page - 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 + vROM_set #E2 ; ROM-ID - BASIC 128 + vROM_set #E3 ; ROM-ID - BASIC 48 + vROM_set #E1 ; ROM-ID - TR-DOS + vROM_set #E0 ; ROM-ID - EXPANSION + vROM_set #EB ; ROM-ID - BIOS-1 + vROM_set #EF ; ROM-ID - BIOS-2 + ;vROM_set #E6 ; BASIC 128 - 2 + ;vROM_set #E7 ; BASIC 48 - 2 + ;vROM_set #E5 ; TR-DOS - 2 + ;vROM_set #E4 ; BIOS (ZX_EXP) - 2 LD HL,(IMAGE_NAME) LD A,H @@ -563,34 +560,8 @@ SKIP_IMAGE: LD A,(No_run_+2) ;******************************************** ; out B - old ROM-page +;!FIXIT сделать через вызов функции БИОС 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' diff --git a/version.inc b/version.inc index fc36338..425ebb6 100644 --- a/version.inc +++ b/version.inc @@ -4,5 +4,5 @@ sj.insert_define("BUILD_DATE", "'" .. date .. "." .. month .. "." .. year .. "'") ENDLUA - DEFINE SP_VERSION "2.01 beta build" + DEFINE SP_VERSION "2.02 beta build" ; \ No newline at end of file