...
This commit is contained in:
		
							parent
							
								
									934353b970
								
							
						
					
					
						commit
						421eee63a9
					
				| @ -1 +1 @@ | ||||
| Subproject commit 817bba0c1abebdb890f77ee129578ebe06fb5131 | ||||
| Subproject commit 7e00c2aa909241367878004ad104b56abb907f80 | ||||
| @ -229,7 +229,7 @@ TAB_FNS: | ||||
|         DB      low  RST_CONF.SP97_1                    ; #F0  ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97  | ||||
|         DB      low  RST_CONF.SP97_2                    ; #F1  ¤«ï ᮢ¬¥á⨬®á⨠á á®ä⮬ Sp97  | ||||
|         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  CMOS_TEST                          ; #F5  | ||||
|         DB      low  CMOS_RD                            ; #F6  | ||||
|  | ||||
| @ -1122,9 +1122,9 @@ ZG_ADDRESS:      INCLUDE  'FONT.ASM' | ||||
| ;************************* | ||||
| 	_mInfoBLOCK #3CE0-$,0 | ||||
| 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 | ||||
|         LD      HL,#5B00        ;!HARDCODE | ||||
|         LD      HL,#5B00        ;!HARDCODE BASIC_FN.x128.ROM_SWAP | ||||
|         LD      A,(HL) | ||||
|         CP      #F5             ; #F5 - ®¯ª®¤ 'PUSH AF'. <20>஢¥àï¥âáï â® «¨ ¢ #5B00 | ||||
|         JR      Z,JP_HL_48      ; ‚އ‚<E280A1>€’ Š Œ…<C592>ž BASIC128 | ||||
|  | ||||
| @ -54,8 +54,8 @@ RST_CONF: | ||||
| ;--[] | ||||
| 
 | ||||
| ;--[] | ||||
| .CUSTOM: | ||||
| 	CP	#80 | ||||
| .CUSTOM:	 | ||||
| 	CP	#80 ;!FIXIT âãâ ⥯¥àì ¬®¦¥â «î¡®¥ ç¨á«® ¡ëâì ã áâ àëå ¯à®£ ; [ ] free zx pages | ||||
| 	JR	NC,.CHOOSE_CNF | ||||
|         ; only for old FLEX10K soft compatible | ||||
| 	LD	C,SLOT3 | ||||
| @ -95,6 +95,12 @@ RST_CONF: | ||||
| 	; | ||||
| 	;[x] | ||||
| .CHOOSE_CNF: | ||||
| 	; [ ] bug with "free zx pages" | ||||
| 	 LD	C,A | ||||
| 	 IN	A,(SLOT3) | ||||
| 	 CP	C | ||||
| 	 LD	A,C | ||||
| 	 JR	Z,.INT_PLD | ||||
|         ; [x] | ||||
|          CP	ACEX.Config_PG.Sp2000_SoftSetUp | ||||
| 	 JP	Z,.ReturnSoftReset | ||||
|  | ||||
| @ -151,7 +151,7 @@ RET_FROM_BIOS_TO_BASIC48: | ||||
|         CALL CH_2 | ||||
|         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_MENU.ASM' | ||||
| ;-----------------------------------------------------------------------; | ||||
| @ -245,21 +245,21 @@ BLOCK_Setup.Length      EQU $-BLOCK_Setup | ||||
| 
 | ||||
| ;************************* | ||||
| 	_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 | ||||
|         PUSH    HL | ||||
|         LD      HL,#5B00        ;!HARDCODE | ||||
|         LD      A,(HL) | ||||
|         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 | ||||
|         JR      SW_ROM          ; <20><>Ž‘’މ ‚އ‚<E280A1>€’ | ||||
|         JR      _SW_ROM_1	; <20><>Ž‘’މ ‚އ‚<E280A1>€’ | ||||
| ;************************* | ||||
| 
 | ||||
| 	_mInfoBLOCK #3CF0-$,#FF ;!TEST 0 | ||||
| ;JMP_48: | ||||
| ;        LD HL,00h | ||||
| ;        JR JP_HL_48 | ||||
| ;        JR _JP_HL_48 | ||||
| ; | ||||
| ;        NOP | ||||
| ;        NOP | ||||
| @ -268,9 +268,9 @@ BLOCK_Setup.Length      EQU $-BLOCK_Setup | ||||
| ;*************************************** | ||||
| 	_mInfoBLOCK #3CF8-$,#FF ;!TEST 0 | ||||
| 	; no basic-48! | ||||
| ;P_HL_48: | ||||
| _JP_HL_48 EQU JP_HL_48 | ||||
|        PUSH HL | ||||
| ;SW_ROM: | ||||
| _SW_ROM EQU SW_ROM | ||||
|        PUSH AF | ||||
|        LD A,ROM.BIOS | ||||
|        OUT (SYS_PORT.RAM),A | ||||
|  | ||||
| @ -827,7 +827,7 @@ ALT_BOOT: | ||||
| 
 | ||||
| 	;EI | ||||
|         CALL	INT_ON  | ||||
| AGAKEY:		CALL	WAITKEY | ||||
| StartUpKey:	CALL	WAITKEY | ||||
| 		LD	HL,#4F00	; DEL - go to settings | ||||
| 		;AND	A | ||||
| 		SBC	HL,DE | ||||
| @ -836,7 +836,7 @@ AGAKEY:		CALL	WAITKEY | ||||
| 		CP	#1B		; ESC - go to zx spectrum mode | ||||
| 		JP	Z,EXIT_SETUP | ||||
| 		CP	#0D		; ENTER - restart | ||||
| 		JP	NZ,AGAKEY | ||||
| 		JP	NZ,StartUpKey | ||||
| 		XOR	A | ||||
| 		JP	Start_again | ||||
| 
 | ||||
| @ -1755,7 +1755,6 @@ ZXMODE_SETUP:	IN	A,(SLOT3) | ||||
| 		;  JP	MANAGE_ZX_PAGES.INIT_vROM | ||||
| 		; XOR	A	;LD	A,SYS_PORT.BIOS | ||||
| 		; OUT	(SYS_PORT.ROM),A | ||||
| 		 XOR	A | ||||
| 		 LD	BC,128*256 + BIOS.ZX_MEMORY_MANAGER  ; [ ] free zx pages! HARDCODE | ||||
| 		 JP	ToBIOS_18 | ||||
| 		;RET | ||||
|  | ||||
| @ -87,137 +87,6 @@ COMMAND_HARDWARE_MENU: | ||||
|         POP BC | ||||
|         CALL Hardware_Menu | ||||
|         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 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;-------------------------------------------------------------------------------------------------------------------; | ||||
| ;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ âë: | ||||
| ;[~]	0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04 | ||||
| ;[~]	1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £  ZX | ||||
| ;[~]	2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®) | ||||
| ;[ ]	3 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 â ª, ç⮡ ª®¤ ¢ ¥© ¯®¤£à㦠« <20>‡“ ᯥªâà㬠 ¯à¨ ®¡à é¥¨¨ | ||||
| ;‚ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ âë: | ||||
| ;[x]	0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04 | ||||
| ;[x]	1 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ áâ à⥠¥á«¨ ¥â ä« £  ZX | ||||
| ;[x]	2 - ƒà㧨â <20>‡“ ᯥªâà㬠 ¨§ ROM ¯à¨ ª ¦¤®¬ ¯¥à¥§ ¯ã᪥ (¬®¦¥â ¡ëâì ®¯ á®) | ||||
| ;-------------------------------------------------------------------------------------------------------------------; | ||||
| ; 	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 | ||||
| ; 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_MEMORY: | ||||
| .MODE_48k	EQU	3 | ||||
| .MODE_128k	EQU	3+5 | ||||
| .MODE_256k	EQU	3+13 | ||||
| .MODE_512k	EQU	3+29 | ||||
| 
 | ||||
| 
 | ||||
| ;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°; | ||||
| ; [ ] free zx pages! | ||||
| @ -410,13 +266,13 @@ INIT_vROM:	LD	A,(HL) | ||||
| .PORTS:		DB	ACEX.vROM.BASIC_128	; ROM-ID - BASIC 128 | ||||
| 		DB	ACEX.vROM.BASIC_48	; ROM-ID - BASIC 48 | ||||
| 		DB	ACEX.vROM.TR_DOS	; ROM-ID - TR-DOS | ||||
| 		DB	ACEX.vROM.EXPANSION	; ROM-ID - EXPANSION | ||||
| 		DB	ACEX.vROM.BIOS_1	; ROM-ID - BIOS-1 | ||||
| 		DB	ACEX.vROM.BIOS_2	; ROM-ID - BIOS-2 | ||||
| 		DB	ACEX.vROM.ZX_EXPANSION	; ROM-ID - EXPANSION | ||||
| 		DB	ACEX.vROM.ZX_BIOS_1	; ROM-ID - BIOS-1 | ||||
| 		DB	ACEX.vROM.ZX_BIOS_2	; ROM-ID - BIOS-2 | ||||
| 		DB	ACEX.vROM.BASIC_128_2	; BASIC 128 - 2 | ||||
| 		DB	ACEX.vROM.BASIC_48_2	; BASIC 48 - 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 | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| @ -435,30 +291,31 @@ INIT_vROM:	LD	A,(HL) | ||||
| ;	       17..31 - § à¥§¥à¢¨à®¢ ë | ||||
| ; FN 2x ;!TODO | ||||
| ;		   32 - § à¥§¥à¢¨à®¢ ® | ||||
| ;		   33 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Spectrum  48k ¨ ¨¨â 2-å áâà ¨æ vROM | ||||
| ;		   33 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Spectrum  48k ¨ ¨¨â 1-© áâà ¨æ vROM | ||||
| ;		   34 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 128k ¨ ¨¨â 3-å áâà ¨æ vROM | ||||
| ;		   35 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Pentagon 512k ¨ ¨¨â 3-å áâà ¨æ vROM | ||||
| ;		   36 - ¢ë¤¥«¥¨¥ ¯ ¬ï⨠Scorpion 256k ¨ ¨¨â 3-å áâà ¨æ vROM | ||||
| ;	       33..63 - § à¥§¥à¢¨à®¢ ë | ||||
| ; FN 4x | ||||
| ;		   64 - ®á¢®¡®¤¨âì à ¬¡«®ª¨ vROM ¨ vRAM | ||||
| ;		   65 - ®á¢®¡®¤¨âì à ¬¡«®ª vRAM | ||||
| ;		   66 - ®á¢®¡®¤¨âì à ¬¡«®ª vROM | ||||
| ;	      65..127 - § à¥§¥à¢¨à®¢ ë | ||||
| ; FN 8x | ||||
| ;		  128 - ¨¨æ¨ «¨§¨à®¢ âì ᢮©  ¡®à áâà ¨æ vROM | ||||
| ; | ||||
| ;	ॣ HL:	¯à¨ ॣ B[7]=1  ¤à¥á áâà ¨æ (11 èâ): | ||||
| ;		        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 = 1:  A - ®¬¥à ®è¨¡ª¨ | ||||
| ; | ||||
| ;¥á«¨ áâíª  å®¤¨âáï ¢ âà¥â쥬 á«®â¥, â® ¢ë§®¢ á ¢ëª«îç¥ë¬¨ ¯à¥à뢠¨ï¬¨ | ||||
| FN_ENTRANCE:	;!TODO	A - TASK NUMBER | ||||
| 		AND	A | ||||
| 		LD	A,BIOS.Error.NotSupported | ||||
| 		SCF | ||||
| 		RET	NZ | ||||
| 		CCF | ||||
| 		; LD	A,BIOS.Error.NotSupported | ||||
| 		; SCF | ||||
| 		; RET	NZ | ||||
| 		; CCF | ||||
| 		; | ||||
| 		EXX | ||||
| 		 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) | ||||
| 		OR	A | ||||
| 		RET	Z | ||||
| @ -521,7 +389,8 @@ FREE_vRAM:	LD	A,(SYS_PAGE.Block_ID.vRAM) | ||||
| 		LD	(SYS_PAGE.Block_ID.vRAM),A | ||||
| 		RET | ||||
| ;--------------; | ||||
| FREE_vMEMORY:	CALL	FREE_vRAM | ||||
| FREE_ALL_vMEMORY: | ||||
| 		CALL	FREE_vRAM | ||||
| ;--------------; | ||||
| FREE_vROM:	LD	A,(SYS_PAGE.Block_ID.vROM) | ||||
| 		OR	A | ||||
| @ -549,13 +418,13 @@ RES_FLAG_ZXvROM:			;  | ||||
| 
 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;‚믮«ï¥âáï ¤«ï ¢ë¤¥«¥¨ï âàñå áâà ¨æ Ž‡“ 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 | ||||
| ;‚믮«ï¥âáï ¤«ï ¨¨â  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 | ||||
| ;‚믮«ï¥âáï ¤«ï ¢ë¤¥«¥¨ï 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 | ||||
| GET_XXX_MEM:	CALL	FREE_vRAM | ||||
| .init:		LD	B,D | ||||
| @ -577,7 +446,7 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| 	; ¢ë¤¥«¨âì áâà ¨æë ᪮௠ | ||||
| 		XOR	A | ||||
| 		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 | ||||
| .allocate_loop:	DEC	L | ||||
| 		JR	Z,.error_no_mem | ||||
| @ -595,8 +464,7 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| 		AND	A | ||||
| 		LD	D,L | ||||
| 		; Get Pent128 mem | ||||
| 		LD	B,ZX_MEMORY.MODE_128k | ||||
| 		LD	C,BIOS.GetMem | ||||
| 		LD	BC,256*BIOS.ZX_MEMORY_MANAGER.MODE_128k + BIOS.GetMem | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| 		;CALL	EMM.GetMem | ||||
| 		; A - Pent128 mem block id | ||||
| @ -640,22 +508,16 @@ GET_SCORP_RAM:	CALL	FREE_vRAM | ||||
| ; 	   3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨: | ||||
| ; 	   4 - TR-DOS, 5 - BASIC 48 | ||||
| ;	E: § ç¥¨¥ ¤«ï SYS_PORT/CNF_PORT | ||||
| ;	H: ;!TODO Block_ID.vROM | ||||
| ;	L: Block_ID.vRAM | ||||
| ;	A: TASK Number = 0 | ||||
| ;	L: Block_ID.vROM | ||||
| ;	H: Block_ID.vRAM | ||||
| ;	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'[7]: 0 - 320, 1 - 312 áâப | ||||
| 
 | ||||
| GOTO_SPECTRUM:	LD	A,BIOS.Error.NotSupported | ||||
| 		AND	A | ||||
| 		SCF | ||||
| 		RET	NZ | ||||
| 		; | ||||
| .FN:		DI | ||||
| 		EX	AF,AF' | ||||
| GOTO_SPECTRUM:	DI | ||||
| 		LD	C,A | ||||
| 		; | ||||
| 		; set shared pages | ||||
| 		XOR	A | ||||
| 		OUT	(SLOT2),A	; ZERO_PAGE | ||||
| @ -694,6 +556,13 @@ GOTO_SPECTRUM:	LD	A,BIOS.Error.NotSupported | ||||
| 		LD	BC,BIOS.SET_PAL_INIT.ZX | ||||
| 		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	BC,BIOS.LP_OPEN_S.ZX_32x24_Default | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| @ -763,17 +632,17 @@ INIT_PAGES:	LD	A,SYS_PAGE | ||||
| 		RES	7,H | ||||
| 		; | ||||
| 		LD	A,D | ||||
| 		CP	ZX_MEMORY.MODE_48k | ||||
| 		CP	BIOS.ZX_MEMORY_MANAGER.MODE_48k | ||||
| 		JR	Z,.set_48k | ||||
| 		; | ||||
| 		LD	E,0			; pent128 | ||||
| 		CP	ZX_MEMORY.MODE_256k | ||||
| 		CP	BIOS.ZX_MEMORY_MANAGER.MODE_256k | ||||
| 		JR	Z,.set_scorp | ||||
| 		; | ||||
| 		CP	ZX_MEMORY.MODE_128k | ||||
| 		CP	BIOS.ZX_MEMORY_MANAGER.MODE_128k | ||||
| 		JR	Z,.set_pent | ||||
| 		INC	E | ||||
| 		CP	ZX_MEMORY.MODE_512k | ||||
| 		CP	BIOS.ZX_MEMORY_MANAGER.MODE_512k | ||||
| 		JR	Z,.set_pent | ||||
| 		;!FIXIT ®¡à ¡®âª  ®è¨¡ª¨ | ||||
| 		 DI | ||||
| @ -890,3 +759,137 @@ RES128_PROG: | ||||
| ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;  | ||||
| ; | ||||
| ; _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    ZX_VARS.PROG.SWAP_ROM | ||||
|         EX      AF,AF' | ||||
|          ;LD    A,0 | ||||
|          ;OUT   (CNF_PORT),A | ||||
|          LD     A,SYS_PORT.EXTENSION | ||||
|          OUT    (SYS_PORT.ROM),A            ;!!!!! ¢¥àá¨ï ¤«ï <20>‡“ | ||||
|          OUT    (SYS_PORT.ROM),A | ||||
|         EX      AF,AF' | ||||
|         RET | ||||
| MENU_DAT: | ||||
| @ -438,30 +436,6 @@ CLEAR_RAM: | ||||
| 	EI | ||||
| 	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  *** | ||||
| @ -504,21 +478,6 @@ Hardware_Menu_STR: | ||||
|         DC      " "             ; ¬ àª¥à ª®æ  | ||||
| .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! | ||||
| ;************************************************** | ||||
| @ -567,9 +526,7 @@ PREPARE_TO_START_ZX: | ||||
| 		LD	A,(SYS_PAGE.Block_ID.vROM) | ||||
| 		LD	L,A | ||||
| 		LD	A,C | ||||
| 		EX	AF,AF' | ||||
| 		XOR	A | ||||
| 		JP	GOTO_SPECTRUM.FN | ||||
| 		JP	GOTO_SPECTRUM | ||||
| 		; | ||||
| .loop_rst:	LD	BC,BIOS.REINIT.HARD_RESET | ||||
| 		CALL	ToBIOS_FromEXT | ||||
| @ -598,51 +555,6 @@ ZX_Spectrum_48:	LD	L,0						;  | ||||
| 		LD	BC,#FA*256 + %1000'0011	 | ||||
| 		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: | ||||
| 	DI | ||||
| 	LD	A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON | ||||
| @ -650,81 +562,57 @@ SPRINTER_reset: | ||||
|         LD      BC,BIOS.REINIT.SOFT_RESET | ||||
| 	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 *** | ||||
| ;***************************** | ||||
| ;!FIXIT íâ® § ¯ã᪠c:\disk.trd - ¥ ¤ã¬ î, çâ® í⮠㦮, ¬®¦® § ¬¥¨âì | ||||
| RUN_DISK_TRD: | ||||
|         LD HL,C_DISK_C | ||||
|         CALL CALL_DOS1 | ||||
|         LD	HL,C_DISK_C | ||||
|         CALL	CALL_DOS1 | ||||
| 
 | ||||
| 	LD	A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION | ||||
| 	OUT	(SYS_PORT.ROM),A | ||||
| 	; [ ] ¨á¯à ¢«¥ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0 | ||||
| 	 LD	A,SYS_PORT.CNF_0 + SYS_PORT.EXTENSION | ||||
| 	 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 DOS_OFF | ||||
| 	JR	C,.DISK_UTILIT | ||||
| 
 | ||||
| 
 | ||||
| 	JR C,.DISK_UTILIT | ||||
| 
 | ||||
| 	LD HL,C_DISK_C3 | ||||
|         CALL CALL_DOS1 | ||||
| 	LD	HL,C_DISK_C3 | ||||
|         CALL	CALL_DOS1 | ||||
| 
 | ||||
| .UTIL_DISK: | ||||
|         XOR     A | ||||
|         LD     C,BIOS.FreeMemRMD | ||||
|         CALL	ToBIOS_FromEXT | ||||
| 
 | ||||
|         LD HL,C_DEMO6 | ||||
|         CALL CALL_DOS1 | ||||
|         LD	HL,C_DEMO6 | ||||
|         CALL	CALL_DOS1 | ||||
| 
 | ||||
|         XOR     A | ||||
|         LD     C,BIOS.GET_RAMD_ST | ||||
|         CALL	ToBIOS_FromEXT | ||||
| 
 | ||||
| 	JR C,.UTIL_DISK_L1 | ||||
| 	JR Z,.UTIL_DISK_L1 | ||||
| 	JR	C,.UTIL_DISK_L1 | ||||
| 	JR	Z,.UTIL_DISK_L1 | ||||
| 
 | ||||
|         LD HL,C_DISK_C1 | ||||
|         CALL CALL_DOS1 | ||||
|         LD	HL,C_DISK_C1 | ||||
|         CALL	CALL_DOS1 | ||||
| 	; [ ] ¨á¯à ¢«¥ ¡ £ á § ¯ã᪮¬ disk.trd á CNF != 0 | ||||
| 	IN	A,(SLOT3) | ||||
| 	EX	AF,AF' | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	A,(SYS_PAGE.CONFIG_DE.CNF_PORT) | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SLOT3),A | ||||
| 	EX	AF,AF' | ||||
| 	OUT	(SYS_PORT.ROM),A | ||||
| 	 IN	A,(SLOT3) | ||||
| 	 EX	AF,AF' | ||||
| 	 LD	A,SYS_PAGE | ||||
| 	 OUT	(SLOT3),A | ||||
| 	 LD	A,(SYS_PAGE.CONFIG_DE.CNF_PORT) | ||||
| 	 EX	AF,AF' | ||||
| 	 OUT	(SLOT3),A | ||||
| 	 EX	AF,AF' | ||||
| 	 OUT	(SYS_PORT.ROM),A | ||||
| 	; | ||||
|         LD HL,C_DISK_C2 | ||||
|         CALL CALL_DOS1 | ||||
|         LD	HL,C_DISK_C2 | ||||
|         CALL	CALL_DOS1 | ||||
|         RET | ||||
| 
 | ||||
| .UTIL_DISK_L1: | ||||
| @ -749,6 +637,31 @@ RUN_DISK_TRD: | ||||
| C_DEMO6:        DB .Size, ZX_Token.rem, ':/disk.trd', 13,80 | ||||
| .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 | ||||
| @ -756,44 +669,80 @@ C_DEMO6:        DB .Size, ZX_Token.rem, ':/disk.trd', 13,80 | ||||
| 
 | ||||
| ;********************************************** | ||||
| 
 | ||||
| DOS_RUN: | ||||
|         LD HL,C_DISK_C1 | ||||
|         CALL CALL_DOS1 | ||||
| ;****************************** | ||||
| ;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 | ||||
| ;****************************** | ||||
| 
 | ||||
|         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 | ||||
| ; _SET_CNF: | ||||
| ; 	;DI | ||||
| ; 	LD A,CNF_PORT.CNF_0 + CNF_PORT.TURBO.ON | ||||
| ; 	OUT (SYS_PORT.ROM),A | ||||
| ; 	RET | ||||
| 
 | ||||
| C_DISK_C:       DB .Size, ZX_Token.rem, ':', 13,80 | ||||
| .Size           EQU $-C_DISK_C-1 | ||||
| ; CNF_SC_312: | ||||
| ; 	LD A,Port_VSYNC.SET_312L | ||||
| ; 	OUT (Port_VSYNC),A | ||||
| ; 	RET | ||||
| 
 | ||||
| C_DISK_C0:      DB .Size, ZX_Token.rem, ':/CLEAR E', 13,80 | ||||
| .Size           EQU $-C_DISK_C0-1 | ||||
| ; 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 | ||||
| 
 | ||||
| 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 | ||||
| ; DOS_RUN:	LD	HL,C_DISK_C1 | ||||
| ; 		CALL	CALL_DOS1 | ||||
| ; 		; | ||||
| ; 		LD	HL,C_DISK_C2 | ||||
| ; 		CALL	CALL_DOS1 | ||||
| ; 		RET | ||||
| 
 | ||||
| C_DISK_C3:      DB .Size, ZX_Token.rem, ':/HDD', 13,80 | ||||
| .Size           EQU $-C_DISK_C3-1 | ||||
| ; 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_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 | ||||
| ; | ||||
| ;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
	 Tolik
						Tolik