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

@ -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,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.