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