...
This commit is contained in:
parent
934353b970
commit
421eee63a9
@ -1 +1 @@
|
|||||||
Subproject commit 817bba0c1abebdb890f77ee129578ebe06fb5131
|
Subproject commit 7e00c2aa909241367878004ad104b56abb907f80
|
||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
@ -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,26 +562,6 @@ 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 ***
|
||||||
@ -679,17 +571,13 @@ RUN_DISK_TRD:
|
|||||||
LD HL,C_DISK_C
|
LD HL,C_DISK_C
|
||||||
CALL CALL_DOS1
|
CALL CALL_DOS1
|
||||||
|
|
||||||
|
; [ ] ¨á¯à ¢«¥ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0
|
||||||
LD A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION
|
LD A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION
|
||||||
OUT (SYS_PORT.ROM),A
|
OUT (SYS_PORT.ROM),A
|
||||||
|
;
|
||||||
|
|
||||||
;CALL DOS_ON
|
|
||||||
;LD A,0 ; DETECT_HDD
|
|
||||||
;CALL EXP_HDD
|
|
||||||
LD C,BIOS.HDD_INIT
|
LD C,BIOS.HDD_INIT
|
||||||
CALL ToBIOS_FromEXT
|
CALL ToBIOS_FromEXT
|
||||||
;CALL DOS_OFF
|
|
||||||
|
|
||||||
|
|
||||||
JR C,.DISK_UTILIT
|
JR C,.DISK_UTILIT
|
||||||
|
|
||||||
LD HL,C_DISK_C3
|
LD HL,C_DISK_C3
|
||||||
@ -749,35 +637,11 @@ 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
|
||||||
|
|
||||||
;***************************************
|
|
||||||
|
|
||||||
;VERSION: DEFB 22,21,0
|
|
||||||
; DEFB 16,2,"Expansion 3.02 1997 ELSY Co.",16,1,0FFh
|
|
||||||
|
|
||||||
;**********************************************
|
|
||||||
|
|
||||||
DOS_RUN:
|
|
||||||
LD HL,C_DISK_C1
|
|
||||||
CALL CALL_DOS1
|
|
||||||
|
|
||||||
LD HL,C_DISK_C2
|
|
||||||
CALL CALL_DOS1
|
|
||||||
RET
|
|
||||||
|
|
||||||
START_TRD:
|
|
||||||
LD HL,C_DISK_C
|
|
||||||
CALL CALL_DOS1
|
|
||||||
LD HL,C_DISK_C0
|
|
||||||
CALL CALL_DOS1
|
|
||||||
LD HL,C_DISK_C3
|
|
||||||
CALL CALL_DOS1
|
|
||||||
RET
|
|
||||||
|
|
||||||
C_DISK_C: DB .Size,ZX_Token.rem,':',13,80
|
C_DISK_C: DB .Size,ZX_Token.rem,':',13,80
|
||||||
.Size EQU $-C_DISK_C-1
|
.Size EQU $-C_DISK_C-1
|
||||||
|
|
||||||
C_DISK_C0: DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80
|
; C_DISK_C0: DB .Size,ZX_Token.rem,':/CLEAR E',13,80
|
||||||
.Size EQU $-C_DISK_C0-1
|
; .Size EQU $-C_DISK_C0-1
|
||||||
|
|
||||||
C_DISK_C1: DB .Size,ZX_Token.rem,':/RMD E',13,80
|
C_DISK_C1: DB .Size,ZX_Token.rem,':/RMD E',13,80
|
||||||
.Size EQU $-C_DISK_C1-1
|
.Size EQU $-C_DISK_C1-1
|
||||||
@ -797,3 +661,88 @@ C_DISK_C5: DB .Size, ZX_Token.rem, ':/B:', 13,80
|
|||||||
C_DISK_C6: DB .Size,ZX_Token.rem,':/A:',13,80
|
C_DISK_C6: DB .Size,ZX_Token.rem,':/A:',13,80
|
||||||
.Size EQU $-C_DISK_C6-1
|
.Size EQU $-C_DISK_C6-1
|
||||||
;
|
;
|
||||||
|
|
||||||
|
;***************************************
|
||||||
|
|
||||||
|
;VERSION: DEFB 22,21,0
|
||||||
|
; DEFB 16,2,"Expansion 3.02 1997 ELSY Co.",16,1,0FFh
|
||||||
|
|
||||||
|
;**********************************************
|
||||||
|
|
||||||
|
;******************************
|
||||||
|
;SP_DOS:
|
||||||
|
; 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
|
||||||
|
;******************************
|
||||||
|
|
||||||
|
|
||||||
|
; _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
|
||||||
|
|
||||||
|
|
||||||
|
; DOS_RUN: LD HL,C_DISK_C1
|
||||||
|
; CALL CALL_DOS1
|
||||||
|
; ;
|
||||||
|
; LD HL,C_DISK_C2
|
||||||
|
; CALL CALL_DOS1
|
||||||
|
; RET
|
||||||
|
|
||||||
|
; START_TRD: LD HL,C_DISK_C
|
||||||
|
; CALL CALL_DOS1
|
||||||
|
; LD HL,C_DISK_C0
|
||||||
|
; CALL CALL_DOS1
|
||||||
|
; LD HL,C_DISK_C3
|
||||||
|
; CALL CALL_DOS1
|
||||||
|
; 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
|
||||||
|
|||||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user