This commit is contained in:
Tolik 2024-10-06 20:07:18 +10:00
parent 934353b970
commit 421eee63a9
9 changed files with 327 additions and 370 deletions

@ -1 +1 @@
Subproject commit 817bba0c1abebdb890f77ee129578ebe06fb5131 Subproject commit 7e00c2aa909241367878004ad104b56abb907f80

View File

@ -229,7 +229,7 @@ TAB_FNS:
DB low RST_CONF.SP97_1 ; #F0 ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97 DB low RST_CONF.SP97_1 ; #F0 ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97
DB low RST_CONF.SP97_2 ; #F1 ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97 DB low RST_CONF.SP97_2 ; #F1 ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97
DB low FN_SYNC ; #F2 ãáâ ­®¢ª  ᨭåà®­¨§ æ¨¨ DB low FN_SYNC ; #F2 ãáâ ­®¢ª  ᨭåà®­¨§ æ¨¨
DB low RST_CONF.CUSTOM ; #F3 ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97 DB low RST_CONF.CUSTOM ; #F3 ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97
DB low DCP_CONFIG ; #F4 äã­ªæ¨ï à á¯à¥¤¥«¥­¨ï ¯®à⮢ ; [x] DB low DCP_CONFIG ; #F4 äã­ªæ¨ï à á¯à¥¤¥«¥­¨ï ¯®à⮢ ; [x]
DB low CMOS_TEST ; #F5 DB low CMOS_TEST ; #F5
DB low CMOS_RD ; #F6 DB low CMOS_RD ; #F6

View File

@ -1122,9 +1122,9 @@ ZG_ADDRESS: INCLUDE 'FONT.ASM'
;************************* ;*************************
_mInfoBLOCK #3CE0-$,0 _mInfoBLOCK #3CE0-$,0
SW_ROM_1: SW_ROM_1:
LD HL,#259F ;!HARDCODE Show Main Menu in BASIC-128 LD HL,#259F ;!HARDCODE BASIC_FN.x128.show_main_menu
PUSH HL PUSH HL
LD HL,#5B00 ;!HARDCODE LD HL,#5B00 ;!HARDCODE BASIC_FN.x128.ROM_SWAP
LD A,(HL) LD A,(HL)
CP #F5 ; #F5 - ®¯ª®¤ 'PUSH AF'. <20>஢¥àï¥âáï â® «¨ ¢ #5B00 CP #F5 ; #F5 - ®¯ª®¤ 'PUSH AF'. <20>஢¥àï¥âáï â® «¨ ¢ #5B00
JR Z,JP_HL_48 ; އ<E280A1> Š Œ…<C592>ž BASIC128 JR Z,JP_HL_48 ; އ<E280A1> Š Œ…<C592>ž BASIC128

View File

@ -55,7 +55,7 @@ RST_CONF:
;--[] ;--[]
.CUSTOM: .CUSTOM:
CP #80 CP #80 ;!FIXIT âãâ ⥯¥àì ¬®¦¥â «î¡®¥ ç¨á«® ¡ëâì ã áâ àëå ¯à®£ ; [ ] free zx pages
JR NC,.CHOOSE_CNF JR NC,.CHOOSE_CNF
; only for old FLEX10K soft compatible ; only for old FLEX10K soft compatible
LD C,SLOT3 LD C,SLOT3
@ -95,6 +95,12 @@ RST_CONF:
; ;
;[x] ;[x]
.CHOOSE_CNF: .CHOOSE_CNF:
; [ ] bug with "free zx pages"
LD C,A
IN A,(SLOT3)
CP C
LD A,C
JR Z,.INT_PLD
; [x] ; [x]
CP ACEX.Config_PG.Sp2000_SoftSetUp CP ACEX.Config_PG.Sp2000_SoftSetUp
JP Z,.ReturnSoftReset JP Z,.ReturnSoftReset

View File

@ -151,7 +151,7 @@ RET_FROM_BIOS_TO_BASIC48:
CALL CH_2 CALL CH_2
CALL COMAND_LINE ; <E2809A>Ž<C5BD><EFBFBD>ˆ… ŠŽŒ€<C592>, …‘‹ˆ …‘’œ CALL COMAND_LINE ; <E2809A>Ž<C5BD><EFBFBD>ˆ… ŠŽŒ€<C592>, …‘‹ˆ …‘’œ
; ‚室 ¡¥§ ª®¬ ­¤ë ; ‚室 ¡¥§ ª®¬ ­¤ë
JP SW_ROM_1 ; އ<E280A1> << MAIN MENU >> JP _SW_ROM_1 ; އ<E280A1> << MAIN MENU >>
INCLUDE 'ZX/ZX_FUNC.ASM' INCLUDE 'ZX/ZX_FUNC.ASM'
INCLUDE 'ZX/ZX_MENU.ASM' INCLUDE 'ZX/ZX_MENU.ASM'
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
@ -245,21 +245,21 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
;************************* ;*************************
_mInfoBLOCK #3CE0-$,#FF ;!TEST 0 _mInfoBLOCK #3CE0-$,#FF ;!TEST 0
;SW_ROM_1: _SW_ROM_1 EQU SW_ROM_1
LD HL,#259F ;!HARDCODE Show Main Menu in BASIC-128 LD HL,#259F ;!HARDCODE Show Main Menu in BASIC-128
PUSH HL PUSH HL
LD HL,#5B00 ;!HARDCODE LD HL,#5B00 ;!HARDCODE
LD A,(HL) LD A,(HL)
CP #F5 ; #F5 - ®¯ª®¤ 'PUSH AF'. <20>஢¥àï¥âáï ¢ #5B00 CP #F5 ; #F5 - ®¯ª®¤ 'PUSH AF'. <20>஢¥àï¥âáï ¢ #5B00
JR Z,JP_HL_48 ; އ<E280A1> Š Œ…<C592>ž BASIC128 JR Z,_JP_HL_48 ; އ<E280A1> Š Œ…<C592>ž BASIC128
POP HL POP HL
JR SW_ROM ; <20><>ŽŽ‰ އ<E280A1> JR _SW_ROM_1 ; <20><>ŽŽ‰ އ<E280A1>
;************************* ;*************************
_mInfoBLOCK #3CF0-$,#FF ;!TEST 0 _mInfoBLOCK #3CF0-$,#FF ;!TEST 0
;JMP_48: ;JMP_48:
; LD HL,00h ; LD HL,00h
; JR JP_HL_48 ; JR _JP_HL_48
; ;
; NOP ; NOP
; NOP ; NOP
@ -268,9 +268,9 @@ BLOCK_Setup.Length EQU $-BLOCK_Setup
;*************************************** ;***************************************
_mInfoBLOCK #3CF8-$,#FF ;!TEST 0 _mInfoBLOCK #3CF8-$,#FF ;!TEST 0
; no basic-48! ; no basic-48!
;P_HL_48: _JP_HL_48 EQU JP_HL_48
PUSH HL PUSH HL
;SW_ROM: _SW_ROM EQU SW_ROM
PUSH AF PUSH AF
LD A,ROM.BIOS LD A,ROM.BIOS
OUT (SYS_PORT.RAM),A OUT (SYS_PORT.RAM),A

View File

@ -827,7 +827,7 @@ ALT_BOOT:
;EI ;EI
CALL INT_ON CALL INT_ON
AGAKEY: CALL WAITKEY StartUpKey: CALL WAITKEY
LD HL,#4F00 ; DEL - go to settings LD HL,#4F00 ; DEL - go to settings
;AND A ;AND A
SBC HL,DE SBC HL,DE
@ -836,7 +836,7 @@ AGAKEY: CALL WAITKEY
CP #1B ; ESC - go to zx spectrum mode CP #1B ; ESC - go to zx spectrum mode
JP Z,EXIT_SETUP JP Z,EXIT_SETUP
CP #0D ; ENTER - restart CP #0D ; ENTER - restart
JP NZ,AGAKEY JP NZ,StartUpKey
XOR A XOR A
JP Start_again JP Start_again
@ -1755,7 +1755,6 @@ ZXMODE_SETUP: IN A,(SLOT3)
; JP MANAGE_ZX_PAGES.INIT_vROM ; JP MANAGE_ZX_PAGES.INIT_vROM
; XOR A ;LD A,SYS_PORT.BIOS ; XOR A ;LD A,SYS_PORT.BIOS
; OUT (SYS_PORT.ROM),A ; OUT (SYS_PORT.ROM),A
XOR A
LD BC,128*256 + BIOS.ZX_MEMORY_MANAGER ; [ ] free zx pages! HARDCODE LD BC,128*256 + BIOS.ZX_MEMORY_MANAGER ; [ ] free zx pages! HARDCODE
JP ToBIOS_18 JP ToBIOS_18
;RET ;RET

View File

@ -87,137 +87,6 @@ COMMAND_HARDWARE_MENU:
POP BC POP BC
CALL Hardware_Menu CALL Hardware_Menu
JP SW_ROM_1 JP SW_ROM_1
/*
;!TODO ¯¥à¥¤¥« âì ¯®¤ ¯¥à¥ª«î祭¨¥ ­  à §­ë¥ ᯥªâàã¬ë á § ¯ã饭­ë¬¨ § ¤ ç ¬¨
TASK_SWITCH:
; *** ‘®åà ­¨âì § ¤ çã ***
PUSH IY
PUSH IX
PUSH AF
PUSH BC
PUSH DE
PUSH HL
EXX
EX AF,AF'
PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD A,R
PUSH AF
LD A,I
PUSH AF
LD A,(HL)
GET_ZX_TASK_DATA_OFFSET
LD C,A
IN A,(SLOT3)
LD B,A ; 3-ï áâà ­¨æ  ⥪ã饩 § ¤ ç¨
LD A,SYS_PAGE
OUT (SLOT3),A
LD IX,SYS_PAGE.ZX_TASK.CURRENT ; ¤ ­­ë¥ § ¤ ç
LD A,_ZX_TASK_DATA ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
ADD A,(IX) ; ᬥ饭¨¥ ¤ ­­ëå ⥪ã饩 § ¤ ç¨
LD E,A
LD D,0
ADD IX,DE ; ¤ ­­ë¥ ⥪ã饩 § ¤ ç¨
LD (IX + _ZX_TASK_DATA.SLOT3_PAGE),B ; á®åà ­¨âì áâà ­¨æã 3
LD HL,0
ADD HL,SP
LD (IX + _ZX_TASK_DATA.SP),L ; á®åà ­¨âì á⥪ § ¤ ç¨
LD (IX + _ZX_TASK_DATA.SP + 1),H
SET 0,(IX + _ZX_TASK_DATA.STATE) ; ãáâ ­®¢¨âì ä« £ á®åà ­¥­­®á⨠⥪ã饩 § ¤ ç¨
RES 1,(IX + _ZX_TASK_DATA.STATE) ; ãáâ ­®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨­ãâ 
LD IX,SYS_PAGE.ZX_TASK.CURRENT
LD A,_ZX_TASK_DATA ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
ADD A,C ; ᬥ饭¨¥ ¤ ­­ëå ­®¢®© § ¤ ç¨
LD E,A
LD D,0
ADD IX,DE ; ¤ ­­ë¥ ­®¢®© § ¤ ç¨
; BIT 1,(IX + _ZX_TASK_DATA.STATE)
; JR NZ,TASK_IN_WORK ; § ¤ ç  ¢ à ¡®â¥ ??? ­¥¢¥à­®¥ § ¢¥à襭¨¥
; ; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
BIT 0,(IX + _ZX_TASK_DATA.STATE) ; ¡ë«  á®åà ­¥­ /­¥â
JR NZ,TASK_SET ; § ¤ ç  áãé¥áâ¢ã¥â
; § ¤ ç¨ ­¥ ¡ë«®!
LD IX,SYS_PAGE.ZX_TASK.CURRENT
LD A,C ; § ¤ ç 
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
JP GOTO_SPEC.START_TASK ; § ¯ãáâ¨âì ­®¢ãî § ¤ çã!
; ; ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥­¨¥ ¯ ¬ïâ¨!
TASK_SET:
IF FREE_ZX_PAGES
LD IY,TASK_RESTORE
ELSE
LD IX,TASK_RESTORE
ENDIF
LD A,C
EXX
JP INIT_PAGES ; ¯¥à¥ª«îç¨âì ¢á¥ áâà ­¨æë!
TASK_RESTORE:
EXX
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,C
LD IX,SYS_PAGE.ZX_TASK.CURRENT
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
; !TEST
;LD E,A
;LD D,0
;ADD IX,DE ; ­®¢ ï § ¤ ç 
;LD E,16
ADD A,_ZX_TASK_DATA ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
LD E,A
LD D,0
;
ADD IX,DE
LD L,(IX + _ZX_TASK_DATA.SP) ; ¢á¯®¬­¨âì á⥪
LD H,(IX + _ZX_TASK_DATA.SP + 1)
LD SP,HL
LD A,(IX + _ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬­¨âì âà¥âìî áâà ­¨æã
OUT (SLOT3),A
POP AF ; ¢®ááâ ­®¢¨âì
LD I,A
POP AF
LD R,A
POP HL
POP DE
POP BC
POP AF
EX AF,AF'
EXX
POP HL
POP DE
POP BC
POP AF
POP IX
POP IY
; ¢¥à­ãâìáï ¢ § ¤ çã
NO_TASK:
POP BC
JP SW_ROM_1
*/
; 259F - ADRESS BASIC128 - MAIN_MENU
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
@ -251,18 +120,11 @@ C_1601: ; OPEN CHANEL
; MANAGE_ZX_PAGES ; MANAGE_ZX_PAGES
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
;-------------------------------------------------------------------------------------------------------------------; ;-------------------------------------------------------------------------------------------------------------------;
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ ­âë: ;‚ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ ­âë:
;[~] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨­¨â¨âì áâà ­¨æã #41 ª ª ¢ 3.04 ;[x] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨­¨â¨âì áâà ­¨æã #41 ª ª ¢ 3.04
;[~] 1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ­¥â ä« £  ZX ;[x] 1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ­¥â ä« £  ZX
;[~] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á­®) ;[x] 2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á­®)
;[ ] 3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨­¨â¨âì áâà ­¨æã #41 â ª, ç⮡ ª®¤ ¢ ­¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠 ¯à¨ ®¡à é¥­¨¨
;-------------------------------------------------------------------------------------------------------------------; ;-------------------------------------------------------------------------------------------------------------------;
; Spectrum RAM map
; SLOT0 = 0
; SLOT1 = 5
; SLOT2 = 2
; SLOT3 = 0 '48kb',1,2,3,4,5,6,7 '128kb',8,9,10,11,12,13,14,15 '256kb'
; ¤«ï ¢å®¤  ¢ ०¨¬ ᯥªâà㬠: ; ¤«ï ¢å®¤  ¢ ०¨¬ ᯥªâà㬠:
; 0. <20>஢¥àª  ¬¥âª¨ ZX ; 0. <20>஢¥àª  ¬¥âª¨ ZX
; 1. CONFIG_DE.CNF_PORT ’¨¯ â çª¨, ª ª ¨­¨â¨âì ¯ ¬ïâì, à §¬¥à އ“, âãà¡  ; 1. CONFIG_DE.CNF_PORT ’¨¯ â çª¨, ª ª ¨­¨â¨âì ¯ ¬ïâì, à §¬¥à އ“, âãà¡ 
@ -274,12 +136,6 @@ C_1601: ; OPEN CHANEL
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
ZX_MEMORY:
.MODE_48k EQU 3
.MODE_128k EQU 3+5
.MODE_256k EQU 3+13
.MODE_512k EQU 3+29
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
; [ ] free zx pages! ; [ ] free zx pages!
@ -410,13 +266,13 @@ INIT_vROM: LD A,(HL)
.PORTS: DB ACEX.vROM.BASIC_128 ; ROM-ID - BASIC 128 .PORTS: DB ACEX.vROM.BASIC_128 ; ROM-ID - BASIC 128
DB ACEX.vROM.BASIC_48 ; ROM-ID - BASIC 48 DB ACEX.vROM.BASIC_48 ; ROM-ID - BASIC 48
DB ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS DB ACEX.vROM.TR_DOS ; ROM-ID - TR-DOS
DB ACEX.vROM.EXPANSION ; ROM-ID - EXPANSION DB ACEX.vROM.ZX_EXPANSION ; ROM-ID - EXPANSION
DB ACEX.vROM.BIOS_1 ; ROM-ID - BIOS-1 DB ACEX.vROM.ZX_BIOS_1 ; ROM-ID - BIOS-1
DB ACEX.vROM.BIOS_2 ; ROM-ID - BIOS-2 DB ACEX.vROM.ZX_BIOS_2 ; ROM-ID - BIOS-2
DB ACEX.vROM.BASIC_128_2 ; BASIC 128 - 2 DB ACEX.vROM.BASIC_128_2 ; BASIC 128 - 2
DB ACEX.vROM.BASIC_48_2 ; BASIC 48 - 2 DB ACEX.vROM.BASIC_48_2 ; BASIC 48 - 2
DB ACEX.vROM.TR_DOS_2 ; TR-DOS - 2 DB ACEX.vROM.TR_DOS_2 ; TR-DOS - 2
DB ACEX.vROM.EXPANSION_2 ; BIOS (ZX_EXP) - 2 DB ACEX.vROM.ZX_EXPANSION_2; BIOS (ZX_EXP) - 2
.PORTS.Size EQU $-.PORTS .PORTS.Size EQU $-.PORTS
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
@ -435,30 +291,31 @@ INIT_vROM: LD A,(HL)
; 17..31 - § à¥§¥à¢¨à®¢ ­ë ; 17..31 - § à¥§¥à¢¨à®¢ ­ë
; FN 2x ;!TODO ; FN 2x ;!TODO
; 32 - § à¥§¥à¢¨à®¢ ­® ; 32 - § à¥§¥à¢¨à®¢ ­®
; 33 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Spectrum 48k ¨ ¨­¨â 2-å áâà ­¨æ vROM ; 33 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Spectrum 48k ¨ ¨­¨â 1-© áâà ­¨æ vROM
; 34 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 128k ¨ ¨­¨â 3-å áâà ­¨æ vROM ; 34 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 128k ¨ ¨­¨â 3-å áâà ­¨æ vROM
; 35 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 512k ¨ ¨­¨â 3-å áâà ­¨æ vROM ; 35 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Pentagon 512k ¨ ¨­¨â 3-å áâà ­¨æ vROM
; 36 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k ¨ ¨­¨â 3-å áâà ­¨æ vROM ; 36 - ¢ë¤¥«¥­¨¥ ¯ ¬ï⨠Scorpion 256k ¨ ¨­¨â 3-å áâà ­¨æ vROM
; 33..63 - § à¥§¥à¢¨à®¢ ­ë ; 33..63 - § à¥§¥à¢¨à®¢ ­ë
; FN 4x ; FN 4x
; 64 - ®á¢®¡®¤¨âì à ¬¡«®ª¨ vROM ¨ vRAM ; 64 - ®á¢®¡®¤¨âì à ¬¡«®ª¨ vROM ¨ vRAM
; 65 - ®á¢®¡®¤¨âì à ¬¡«®ª vRAM
; 66 - ®á¢®¡®¤¨âì à ¬¡«®ª vROM
; 65..127 - § à¥§¥à¢¨à®¢ ­ë ; 65..127 - § à¥§¥à¢¨à®¢ ­ë
; FN 8x ; FN 8x
; 128 - ¨­¨æ¨ «¨§¨à®¢ âì ᢮© ­ ¡®à áâà ­¨æ vROM ; 128 - ¨­¨æ¨ «¨§¨à®¢ âì ᢮© ­ ¡®à áâà ­¨æ vROM
; ;
; ॣ HL: ¯à¨ ॣ B[7]=1  ¤à¥á áâà ­¨æ (11 èâ): ; ॣ HL: ¯à¨ ॣ B[7]=1  ¤à¥á áâà ­¨æ (11 èâ):
; byte1 - RAM block ID, byte2..11 - áâà ­¨æë ¤«ï vROM - ZXSlot: 1,2,3(=0),à áè¨à¥­­ ï ; byte1 - RAM block ID, byte2..11 - áâà ­¨æë ¤«ï vROM - ZXSlot: 1,2,3(=0),à áè¨à¥­­ ï
; ॣ A: ­®¬¥à ZX TASK ¯®ª  çâ® ¢á¥£¤  ­®«ì!!!
;¢ë室: CF = 0: HL - ­®¬¥à  à ¬¡«®ª®¢ ¤«ï ०¨¬®¢ 0..16. H=vRAM, L=vROM ;¢ë室: CF = 0: HL - ­®¬¥à  à ¬¡«®ª®¢ ¤«ï ०¨¬®¢ 0..16. H=vRAM, L=vROM
; CF = 1: A - ­®¬¥à ®è¨¡ª¨ ; CF = 1: A - ­®¬¥à ®è¨¡ª¨
; ;
;¥á«¨ áâíª ­ å®¤¨âáï ¢ âà¥â쥬 á«®â¥, â® ¢ë§®¢ á ¢ëª«î祭­ë¬¨ ¯à¥à뢠­¨ï¬¨ ;¥á«¨ áâíª ­ å®¤¨âáï ¢ âà¥â쥬 á«®â¥, â® ¢ë§®¢ á ¢ëª«î祭­ë¬¨ ¯à¥à뢠­¨ï¬¨
FN_ENTRANCE: ;!TODO A - TASK NUMBER FN_ENTRANCE: ;!TODO A - TASK NUMBER
AND A AND A
LD A,BIOS.Error.NotSupported ; LD A,BIOS.Error.NotSupported
SCF ; SCF
RET NZ ; RET NZ
CCF ; CCF
; ;
EXX EXX
LD C,SLOT3 LD C,SLOT3
@ -512,6 +369,17 @@ FN_ENTRANCE: ;!TODO A - TASK NUMBER
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
FREE_vMEMORY: LD A,B
AND 3
JR Z,FREE_ALL_vMEMORY ; 0
DEC A
JR Z,FREE_vRAM ; 1
DEC A
JR Z,FREE_vROM ; 2
LD A,BIOS.Error.InvalidSubFunction
SCF
RET
;--------------;
FREE_vRAM: LD A,(SYS_PAGE.Block_ID.vRAM) FREE_vRAM: LD A,(SYS_PAGE.Block_ID.vRAM)
OR A OR A
RET Z RET Z
@ -521,7 +389,8 @@ FREE_vRAM: LD A,(SYS_PAGE.Block_ID.vRAM)
LD (SYS_PAGE.Block_ID.vRAM),A LD (SYS_PAGE.Block_ID.vRAM),A
RET RET
;--------------; ;--------------;
FREE_vMEMORY: CALL FREE_vRAM FREE_ALL_vMEMORY:
CALL FREE_vRAM
;--------------; ;--------------;
FREE_vROM: LD A,(SYS_PAGE.Block_ID.vROM) FREE_vROM: LD A,(SYS_PAGE.Block_ID.vROM)
OR A OR A
@ -549,13 +418,13 @@ RES_FLAG_ZXvROM: ;
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
;‚믮«­ï¥âáï ¤«ï ¢ë¤¥«¥­¨ï âàñå áâà ­¨æ އ“ 48k ;‚믮«­ï¥âáï ¤«ï ¢ë¤¥«¥­¨ï âàñå áâà ­¨æ އ“ 48k
GET_48k_MEM: LD D,ZX_MEMORY.MODE_48k GET_48k_MEM: LD D,BIOS.ZX_MEMORY_MANAGER.MODE_48k
JR GET_XXX_MEM JR GET_XXX_MEM
;‚믮«­ï¥âáï ¤«ï ¨­¨â  3 áâà ­¨æ އ“ 48k ¨ 29 áâà ­¨æ އ“ Pent512k ;‚믮«­ï¥âáï ¤«ï ¨­¨â  3 áâà ­¨æ އ“ 48k ¨ 29 áâà ­¨æ އ“ Pent512k
GET_512k_MEM: LD D,ZX_MEMORY.MODE_512k GET_512k_MEM: LD D,BIOS.ZX_MEMORY_MANAGER.MODE_512k
JR GET_XXX_MEM JR GET_XXX_MEM
;‚믮«­ï¥âáï ¤«ï ¢ë¤¥«¥­¨ï 3 áâà ­¨æ އ“ 48k ¨ 5 áâà ­¨æ އ“ 128k â ç¥ª ;‚믮«­ï¥âáï ¤«ï ¢ë¤¥«¥­¨ï 3 áâà ­¨æ އ“ 48k ¨ 5 áâà ­¨æ އ“ 128k â ç¥ª
GET_128k_MEM: LD D,ZX_MEMORY.MODE_128k GET_128k_MEM: LD D,BIOS.ZX_MEMORY_MANAGER.MODE_128k
;JR GET_XXX_MEM ;JR GET_XXX_MEM
GET_XXX_MEM: CALL FREE_vRAM GET_XXX_MEM: CALL FREE_vRAM
.init: LD B,D .init: LD B,D
@ -577,7 +446,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
; ¢ë¤¥«¨âì áâà ­¨æë ᪮௠ ; ¢ë¤¥«¨âì áâà ­¨æë ᪮௠
XOR A XOR A
LD DE,#F0D0 ; ¤«ï 䨫ìâà . #F0 - ¬ áª , #D0 - áâà ­¨æë ISA #D0..#DF LD DE,#F0D0 ; ¤«ï 䨫ìâà . #F0 - ¬ áª , #D0 - áâà ­¨æë ISA #D0..#DF
LD BC,256*ZX_MEMORY.MODE_256k/2 + #FF ; B - ª®«¨ç¥á⢮ áâà ­¨æ, C - Œ¥âª  ª®­æ  à ¬¡«®ª  LD BC,256*BIOS.ZX_MEMORY_MANAGER.MODE_256k/2 + #FF ; B - ª®«¨ç¥á⢮ áâà ­¨æ, C - Œ¥âª  ª®­æ  à ¬¡«®ª 
LD HL,SYS_PAGE.RAM_TABLE LD HL,SYS_PAGE.RAM_TABLE
.allocate_loop: DEC L .allocate_loop: DEC L
JR Z,.error_no_mem JR Z,.error_no_mem
@ -595,8 +464,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
AND A AND A
LD D,L LD D,L
; Get Pent128 mem ; Get Pent128 mem
LD B,ZX_MEMORY.MODE_128k LD BC,256*BIOS.ZX_MEMORY_MANAGER.MODE_128k + BIOS.GetMem
LD C,BIOS.GetMem
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
;CALL EMM.GetMem ;CALL EMM.GetMem
; A - Pent128 mem block id ; A - Pent128 mem block id
@ -640,22 +508,16 @@ GET_SCORP_RAM: CALL FREE_vRAM
; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨: ; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨:
; 4 - TR-DOS, 5 - BASIC 48 ; 4 - TR-DOS, 5 - BASIC 48
; E: §­ ç¥­¨¥ ¤«ï SYS_PORT/CNF_PORT ; E: §­ ç¥­¨¥ ¤«ï SYS_PORT/CNF_PORT
; H: ;!TODO Block_ID.vROM ; L: Block_ID.vROM
; L: Block_ID.vRAM ; H: Block_ID.vRAM
; A: TASK Number = 0
; B: Port All Mode ; B: Port All Mode
;A'[1..0]: 1 - int scorp, 2 - int pent, 3 - int ZX ;A [1..0]: 1 - int scorp, 2 - int pent, 3 - int ZX
; A'[2]: 0 - set default palette, 1 - don't change palette ; A'[2]: 0 - set default palette, 1 - don't change palette
; A'[7]: 0 - 320, 1 - 312 áâப ; A'[7]: 0 - 320, 1 - 312 áâப
GOTO_SPECTRUM: LD A,BIOS.Error.NotSupported GOTO_SPECTRUM: DI
AND A
SCF
RET NZ
;
.FN: DI
EX AF,AF'
LD C,A LD C,A
;
; set shared pages ; set shared pages
XOR A XOR A
OUT (SLOT2),A ; ZERO_PAGE OUT (SLOT2),A ; ZERO_PAGE
@ -694,6 +556,13 @@ GOTO_SPECTRUM: LD A,BIOS.Error.NotSupported
LD BC,BIOS.SET_PAL_INIT.ZX LD BC,BIOS.SET_PAL_INIT.ZX
CALL Z,ToBIOS_FromEXT CALL Z,ToBIOS_FromEXT
; ;
; [x] ä¨ªá ­¥¯®«­®© ¤¥è¨äà æ¨¨ ¯®àâ  #FFFD (¯¨èãâ ¢ #C0FD) ¤«ï ZX mode
LD A,#FF
LD HL,%00'010'1'1110'1101
LD DE,%10'111'1'1111'1111 ; CNF_0, CNF_1
LD BC,ACEX.AY_FFFD_WRITE*256 + BIOS.DCP_CONFIG
CALL ToBIOS_FromEXT
;
LD E,0 LD E,0
LD BC,BIOS.LP_OPEN_S.ZX_32x24_Default LD BC,BIOS.LP_OPEN_S.ZX_32x24_Default
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
@ -763,17 +632,17 @@ INIT_PAGES: LD A,SYS_PAGE
RES 7,H RES 7,H
; ;
LD A,D LD A,D
CP ZX_MEMORY.MODE_48k CP BIOS.ZX_MEMORY_MANAGER.MODE_48k
JR Z,.set_48k JR Z,.set_48k
; ;
LD E,0 ; pent128 LD E,0 ; pent128
CP ZX_MEMORY.MODE_256k CP BIOS.ZX_MEMORY_MANAGER.MODE_256k
JR Z,.set_scorp JR Z,.set_scorp
; ;
CP ZX_MEMORY.MODE_128k CP BIOS.ZX_MEMORY_MANAGER.MODE_128k
JR Z,.set_pent JR Z,.set_pent
INC E INC E
CP ZX_MEMORY.MODE_512k CP BIOS.ZX_MEMORY_MANAGER.MODE_512k
JR Z,.set_pent JR Z,.set_pent
;!FIXIT ®¡à ¡®âª  ®è¨¡ª¨ ;!FIXIT ®¡à ¡®âª  ®è¨¡ª¨
DI DI
@ -890,3 +759,137 @@ RES128_PROG:
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<; ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;
; ;
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ; ; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
/*
;!TODO ¯¥à¥¤¥« âì ¯®¤ ¯¥à¥ª«î祭¨¥ ­  à §­ë¥ ᯥªâàã¬ë á § ¯ã饭­ë¬¨ § ¤ ç ¬¨
TASK_SWITCH:
; *** ‘®åà ­¨âì § ¤ çã ***
PUSH IY
PUSH IX
PUSH AF
PUSH BC
PUSH DE
PUSH HL
EXX
EX AF,AF'
PUSH AF
PUSH BC
PUSH DE
PUSH HL
LD A,R
PUSH AF
LD A,I
PUSH AF
LD A,(HL)
GET_ZX_TASK_DATA_OFFSET
LD C,A
IN A,(SLOT3)
LD B,A ; 3-ï áâà ­¨æ  ⥪ã饩 § ¤ ç¨
LD A,SYS_PAGE
OUT (SLOT3),A
LD IX,SYS_PAGE.ZX_TASK.CURRENT ; ¤ ­­ë¥ § ¤ ç
LD A,_ZX_TASK_DATA ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
ADD A,(IX) ; ᬥ饭¨¥ ¤ ­­ëå ⥪ã饩 § ¤ ç¨
LD E,A
LD D,0
ADD IX,DE ; ¤ ­­ë¥ ⥪ã饩 § ¤ ç¨
LD (IX + _ZX_TASK_DATA.SLOT3_PAGE),B ; á®åà ­¨âì áâà ­¨æã 3
LD HL,0
ADD HL,SP
LD (IX + _ZX_TASK_DATA.SP),L ; á®åà ­¨âì á⥪ § ¤ ç¨
LD (IX + _ZX_TASK_DATA.SP + 1),H
SET 0,(IX + _ZX_TASK_DATA.STATE) ; ãáâ ­®¢¨âì ä« £ á®åà ­¥­­®á⨠⥪ã饩 § ¤ ç¨
RES 1,(IX + _ZX_TASK_DATA.STATE) ; ãáâ ­®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨­ãâ 
LD IX,SYS_PAGE.ZX_TASK.CURRENT
LD A,_ZX_TASK_DATA ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
ADD A,C ; ᬥ饭¨¥ ¤ ­­ëå ­®¢®© § ¤ ç¨
LD E,A
LD D,0
ADD IX,DE ; ¤ ­­ë¥ ­®¢®© § ¤ ç¨
; BIT 1,(IX + _ZX_TASK_DATA.STATE)
; JR NZ,TASK_IN_WORK ; § ¤ ç  ¢ à ¡®â¥ ??? ­¥¢¥à­®¥ § ¢¥à襭¨¥
; ; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
BIT 0,(IX + _ZX_TASK_DATA.STATE) ; ¡ë«  á®åà ­¥­ /­¥â
JR NZ,TASK_SET ; § ¤ ç  áãé¥áâ¢ã¥â
; § ¤ ç¨ ­¥ ¡ë«®!
LD IX,SYS_PAGE.ZX_TASK.CURRENT
LD A,C ; § ¤ ç 
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
JP GOTO_SPEC.START_TASK ; § ¯ãáâ¨âì ­®¢ãî § ¤ çã!
; ; ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥­¨¥ ¯ ¬ïâ¨!
TASK_SET:
IF FREE_ZX_PAGES
LD IY,TASK_RESTORE
ELSE
LD IX,TASK_RESTORE
ENDIF
LD A,C
EXX
JP INIT_PAGES ; ¯¥à¥ª«îç¨âì ¢á¥ áâà ­¨æë!
TASK_RESTORE:
EXX
LD A,SYS_PAGE
OUT (SLOT3),A
LD A,C
LD IX,SYS_PAGE.ZX_TASK.CURRENT
LD (IX),A ; ãáâ ­®¢¨âì ­®¢ãî § ¤ çã ⥪ã饩
; !TEST
;LD E,A
;LD D,0
;ADD IX,DE ; ­®¢ ï § ¤ ç 
;LD E,16
ADD A,_ZX_TASK_DATA ; ᬥ饭¨¥ ¤ ­­ëå ¢ â ¡«¨æ¥ § ¤ ç
LD E,A
LD D,0
;
ADD IX,DE
LD L,(IX + _ZX_TASK_DATA.SP) ; ¢á¯®¬­¨âì á⥪
LD H,(IX + _ZX_TASK_DATA.SP + 1)
LD SP,HL
LD A,(IX + _ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬­¨âì âà¥âìî áâà ­¨æã
OUT (SLOT3),A
POP AF ; ¢®ááâ ­®¢¨âì
LD I,A
POP AF
LD R,A
POP HL
POP DE
POP BC
POP AF
EX AF,AF'
EXX
POP HL
POP DE
POP BC
POP AF
POP IX
POP IY
; ¢¥à­ãâìáï ¢ § ¤ çã
NO_TASK:
POP BC
JP SW_ROM_1
*/
; 259F - ADRESS BASIC128 - MAIN_MENU

View File

@ -164,10 +164,8 @@ SH_4: LD HL,MENU_DAT - MENU_128
CALL RET_SP CALL RET_SP
CALL ZX_VARS.PROG.SWAP_ROM CALL ZX_VARS.PROG.SWAP_ROM
EX AF,AF' EX AF,AF'
;LD A,0
;OUT (CNF_PORT),A
LD A,SYS_PORT.EXTENSION LD A,SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“ OUT (SYS_PORT.ROM),A
EX AF,AF' EX AF,AF'
RET RET
MENU_DAT: MENU_DAT:
@ -438,30 +436,6 @@ CLEAR_RAM:
EI EI
RET RET
;SR_CL_MEM:
; DI
; LD A,10H
;SR_CL_R2:
; LD BC,1FFDH
; OUT (C),A
; EX AF,AF'
; XOR A
;SR_CL_R1:
; LD BC,7FFDH
; OUT (C),A
; LD HL,0C000H
; LD DE,0C001H
; LD BC,03FFFH
; LD (HL),L
; LDIR
; INC A
; CP 48H
; JR NZ,SR_CL_R1
; EX AF,AF'
; CP 0
; JP Z,BASIC_128 ; ¢ë室 ­  á¡à®á BASIC 128
; LD A,0
; JR SR_CL_R2
;***************************** ;*****************************
; *** MENU Hardware *** ; *** MENU Hardware ***
@ -504,21 +478,6 @@ Hardware_Menu_STR:
DC " " ; ¬ àª¥à ª®­æ  DC " " ; ¬ àª¥à ª®­æ 
.Size EQU $ - Hardware_Menu_STR .Size EQU $ - Hardware_Menu_STR
;******************************
;SP_DOS:
; LD B,0E2H
; LD A,0E1H
; JR TR_DOS1
;TR_DOS:
; LD B,0EAH
; LD A,0E1H
;TR_DOS1:
; CALL DOS_ON
; CALL SET_ROM_PAGES
; CALL DOS_OFF
; RET
;******************************
;[ ] free zx pages! ;[ ] free zx pages!
;************************************************** ;**************************************************
@ -567,9 +526,7 @@ PREPARE_TO_START_ZX:
LD A,(SYS_PAGE.Block_ID.vROM) LD A,(SYS_PAGE.Block_ID.vROM)
LD L,A LD L,A
LD A,C LD A,C
EX AF,AF' JP GOTO_SPECTRUM
XOR A
JP GOTO_SPECTRUM.FN
; ;
.loop_rst: LD BC,BIOS.REINIT.HARD_RESET .loop_rst: LD BC,BIOS.REINIT.HARD_RESET
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
@ -598,51 +555,6 @@ ZX_Spectrum_48: LD L,0 ;
LD BC,#FA*256 + %1000'0011 LD BC,#FA*256 + %1000'0011
JR Pentagon_48.zx JR Pentagon_48.zx
; CONFIG_SET:
; PUSH DE
; EI
; HALT
; DI
; IN A,(SLOT3)
; EX AF,AF'
; LD A,SYS_PAGE
; OUT (SLOT3),A
; LD (SYS_PAGE.CONFIG_DE),DE
; ;!FIXIT ¥áâì «¨ á¬ëá« ¤¥« âì ¤® FN_SYNC?
; LD A,(ZX_VARS.BORDER)
; RRCA
; RRCA
; RRCA
; AND 7
; OUT (BorderColor),A
; ;
; EX AF,AF'
; OUT (SLOT3),A
; LD A,L
; LD C,BIOS.FN_SYNC
; CALL ToBIOS_FromEXT
; LD HL,#4104 ;!HARDCODE
; LD E,0
; LD BC,256*4 + BIOS.LP_OPEN_S ;!HARDCODE
; CALL ToBIOS_FromEXT
; LD HL,#5104 ;!HARDCODE
; LD E,0
; LD BC,256*4 + BIOS.LP_OPEN_S
; CALL ToBIOS_FromEXT
; POP DE
; LD A,E
; OUT (SYS_PORT.ROM),A
; IM 1
; EI
; JP CLS ;!FIXIT ­ã¦­® «¨?
SPRINTER_reset: SPRINTER_reset:
DI DI
LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
@ -650,81 +562,57 @@ SPRINTER_reset:
LD BC,BIOS.REINIT.SOFT_RESET LD BC,BIOS.REINIT.SOFT_RESET
JP_to_BIOS JP_to_BIOS
; _SET_CNF:
; ;DI
; LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
; OUT (SYS_PORT.ROM),A
; RET
; CNF_SC_312:
; LD A,Port_VSYNC.SET_312L
; OUT (Port_VSYNC),A
; RET
; CNF_PN_320:
; LD A,Port_VSYNC.SET_320L
; OUT (Port_VSYNC),A
; RET
; LD A,CNF_0
; OUT (SYS_PORT.ROM),A
; CALL DOS_OFF
; JP 0
;***************************** ;*****************************
; *** MENU UTILITES *** ; *** MENU UTILITES ***
;***************************** ;*****************************
;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì ;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ­¥ ¤ã¬ î, çâ® íâ® ­ã¦­®, ¬®¦­® § ¬¥­¨âì
RUN_DISK_TRD: RUN_DISK_TRD:
LD HL,C_DISK_C LD HL,C_DISK_C
CALL CALL_DOS1 CALL CALL_DOS1
LD A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION ; [ ] ¨á¯à ¢«¥­ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0
OUT (SYS_PORT.ROM),A LD A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION
OUT (SYS_PORT.ROM),A
;
;CALL DOS_ON LD C,BIOS.HDD_INIT
;LD A,0 ; DETECT_HDD
;CALL EXP_HDD
LD C,BIOS.HDD_INIT
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
;CALL DOS_OFF JR C,.DISK_UTILIT
LD HL,C_DISK_C3
JR C,.DISK_UTILIT CALL CALL_DOS1
LD HL,C_DISK_C3
CALL CALL_DOS1
.UTIL_DISK: .UTIL_DISK:
XOR A XOR A
LD C,BIOS.FreeMemRMD LD C,BIOS.FreeMemRMD
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
LD HL,C_DEMO6 LD HL,C_DEMO6
CALL CALL_DOS1 CALL CALL_DOS1
XOR A XOR A
LD C,BIOS.GET_RAMD_ST LD C,BIOS.GET_RAMD_ST
CALL ToBIOS_FromEXT CALL ToBIOS_FromEXT
JR C,.UTIL_DISK_L1 JR C,.UTIL_DISK_L1
JR Z,.UTIL_DISK_L1 JR Z,.UTIL_DISK_L1
LD HL,C_DISK_C1 LD HL,C_DISK_C1
CALL CALL_DOS1 CALL CALL_DOS1
; [ ] ¨á¯à ¢«¥­ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0 ; [ ] ¨á¯à ¢«¥­ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0
IN A,(SLOT3) IN A,(SLOT3)
EX AF,AF' EX AF,AF'
LD A,SYS_PAGE LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
LD A,(SYS_PAGE.CONFIG_DE.CNF_PORT) LD A,(SYS_PAGE.CONFIG_DE.CNF_PORT)
EX AF,AF' EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
EX AF,AF' EX AF,AF'
OUT (SYS_PORT.ROM),A OUT (SYS_PORT.ROM),A
; ;
LD HL,C_DISK_C2 LD HL,C_DISK_C2
CALL CALL_DOS1 CALL CALL_DOS1
RET RET
.UTIL_DISK_L1: .UTIL_DISK_L1:
@ -749,6 +637,31 @@ RUN_DISK_TRD:
C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80 C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80
.Size EQU $-C_DEMO6-1 .Size EQU $-C_DEMO6-1
C_DISK_C: DB .Size,ZX_Token.rem,':',13,80
.Size EQU $-C_DISK_C-1
; C_DISK_C0: DB .Size,ZX_Token.rem,':/CLEAR E',13,80
; .Size EQU $-C_DISK_C0-1
C_DISK_C1: DB .Size,ZX_Token.rem,':/RMD E',13,80
.Size EQU $-C_DISK_C1-1
C_DISK_C2: DB .Size,ZX_Token.rem,':RUN',13,80
.Size EQU $-C_DISK_C2-1
C_DISK_C3: DB .Size,ZX_Token.rem,':/HDD',13,80
.Size EQU $-C_DISK_C3-1
C_DISK_C4: DB .Size,ZX_Token.rem,':/FDD',13,80
.Size EQU $-C_DISK_C4-1
C_DISK_C5: DB .Size,ZX_Token.rem,':/B:',13,80
.Size EQU $-C_DISK_C5-1
C_DISK_C6: DB .Size,ZX_Token.rem,':/A:',13,80
.Size EQU $-C_DISK_C6-1
;
;*************************************** ;***************************************
;VERSION: DEFB 22,21,0 ;VERSION: DEFB 22,21,0
@ -756,44 +669,80 @@ C_DEMO6: DB .Size, ZX_Token.rem, ':/disk.trd', 13,80
;********************************************** ;**********************************************
DOS_RUN: ;******************************
LD HL,C_DISK_C1 ;SP_DOS:
CALL CALL_DOS1 ; LD B,#E2
; LD A,#E1
; JR TR_DOS1
;TR_DOS:
; LD B,#EA
; LD A,#E1
;TR_DOS1:
; CALL DOS_ON
; CALL SET_ROM_PAGES
; CALL DOS_OFF
; RET
;******************************
LD HL,C_DISK_C2
CALL CALL_DOS1
RET
START_TRD: ; _SET_CNF:
LD HL,C_DISK_C ; ;DI
CALL CALL_DOS1 ; LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON
LD HL,C_DISK_C0 ; OUT (SYS_PORT.ROM),A
CALL CALL_DOS1 ; RET
LD HL,C_DISK_C3
CALL CALL_DOS1
RET
C_DISK_C: DB .Size, ZX_Token.rem, ':', 13,80 ; CNF_SC_312:
.Size EQU $-C_DISK_C-1 ; LD A,Port_VSYNC.SET_312L
; OUT (Port_VSYNC),A
; RET
C_DISK_C0: DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80 ; CNF_PN_320:
.Size EQU $-C_DISK_C0-1 ; LD A,Port_VSYNC.SET_320L
; OUT (Port_VSYNC),A
; RET
C_DISK_C1: DB .Size, ZX_Token.rem, ':/RMD E', 13,80 ; LD A,CNF_0
.Size EQU $-C_DISK_C1-1 ; OUT (SYS_PORT.ROM),A
; CALL DOS_OFF
; JP 0
C_DISK_C2: DB .Size, ZX_Token.rem, ':RUN', 13,80
.Size EQU $-C_DISK_C2-1
C_DISK_C3: DB .Size, ZX_Token.rem, ':/HDD', 13,80 ; DOS_RUN: LD HL,C_DISK_C1
.Size EQU $-C_DISK_C3-1 ; CALL CALL_DOS1
; ;
; LD HL,C_DISK_C2
; CALL CALL_DOS1
; RET
C_DISK_C4: DB .Size, ZX_Token.rem, ':/FDD', 13,80 ; START_TRD: LD HL,C_DISK_C
.Size EQU $-C_DISK_C4-1 ; CALL CALL_DOS1
; LD HL,C_DISK_C0
; CALL CALL_DOS1
; LD HL,C_DISK_C3
; CALL CALL_DOS1
; RET
C_DISK_C5: DB .Size, ZX_Token.rem, ':/B:', 13,80 ;SR_CL_MEM:
.Size EQU $-C_DISK_C5-1 ; DI
; LD A,10H
C_DISK_C6: DB .Size, ZX_Token.rem, ':/A:', 13,80 ;SR_CL_R2:
.Size EQU $-C_DISK_C6-1 ; LD BC,1FFDH
; ; OUT (C),A
; EX AF,AF'
; XOR A
;SR_CL_R1:
; LD BC,7FFDH
; OUT (C),A
; LD HL,0C000H
; LD DE,0C001H
; LD BC,03FFFH
; LD (HL),L
; LDIR
; INC A
; CP 48H
; JR NZ,SR_CL_R1
; EX AF,AF'
; CP 0
; JP Z,BASIC_128 ; ¢ë室 ­  á¡à®á BASIC 128
; LD A,0
; JR SR_CL_R2

Binary file not shown.