...
This commit is contained in:
		
							parent
							
								
									5791d4e591
								
							
						
					
					
						commit
						4e20113d78
					
				| @ -1 +1 @@ | ||||
| Subproject commit b541d4221846090878c1de0138977e28139f7d14 | ||||
| Subproject commit aca9ce3f859bf53c76b0d710e108543226697f91 | ||||
| @ -754,12 +754,12 @@ EXP_FNS:;  | ||||
| 
 | ||||
| ;!      !       !       !       !       !       !       ! | ||||
| FN_RESERVED_5x: | ||||
|         LD A,1                      ;!HARDCODE error code | ||||
|         LD A,BIOS.Error.InvalidSubFunction | ||||
| FN_RESERVED: | ||||
|         SCF | ||||
|         RET | ||||
| FN_ABSENT_5x: | ||||
| 	LD	A,#AA               ;!HARDCODE error code | ||||
| 	LD	A,BIOS.Error.NotSupported | ||||
| 	SCF  | ||||
| 	RET | ||||
| ;!      !       !       !       !       !       !       ! | ||||
|  | ||||
| @ -768,10 +768,10 @@ set_config: | ||||
| 	OUT (RGADR),A | ||||
| 	OUT (RGMOD),A | ||||
| 	OUT (SLOT3),A | ||||
| 	OUT (SLOT0),A | ||||
| 	LD A,5						; !HARDCODE page 5 | ||||
| 	OUT (SLOT0),A					;!HARDCODE zx page number | ||||
| 	LD A,5						;!HARDCODE zx page number | ||||
| 	OUT (SLOT1),A | ||||
| 	LD A,2						; !HARDCODE page 2 | ||||
| 	LD A,2						;!HARDCODE zx page number | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| ;********************************* | ||||
|  | ||||
| @ -129,7 +129,8 @@ CD_5x_Extended: | ||||
| 	JR	C,TRAY_FN | ||||
| 	; ... | ||||
| 	; ... | ||||
| 	LD	A,#AA               ;!HARDCODE error code | ||||
| 	;LD	A,#AA | ||||
| 	LD	A,BIOS.Error.InvalidSubFunction | ||||
| 	SCF | ||||
| 	RET | ||||
| ;[]================================================================[#5E] | ||||
| @ -263,9 +264,10 @@ AP_COM:	EXX | ||||
| 	SCF  | ||||
| 	RET  | ||||
| .NO_ERR: | ||||
| 	BIT	IDE.ControlBit.DataRequest,A | ||||
| 	LD	A,BIOS.Error.NoErrors | ||||
| 	RET	Z	;NO DATA REQUEST | ||||
| 	;BIT	IDE.ControlBit.DataRequest,A | ||||
| 	AND	IDE.ControlByte.DataRequest | ||||
| 	;LD	A,BIOS.Error.NoErrors | ||||
| 	RET	Z	;NO DATA REQUEST	A = 0: BIOS.Error.NoErrors | ||||
| 	EX	DE,HL | ||||
| 	LD	BC,IDE.Read.CylinderLow | ||||
| 	IN	E,(C) | ||||
|  | ||||
| @ -178,7 +178,7 @@ EMM.GetMem:	PUSH	BC | ||||
| 		POP	BC | ||||
| 		RET | ||||
| 		; | ||||
| .noRAM:		LD	L,1		; !HARDCODE bios errors <20>…’ <20>€ŒŸ’ˆ | ||||
| .noRAM:		LD	L,BIOS.Error.EMM.NoMemory | ||||
| 		EX	AF,AF' | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	A,L | ||||
| @ -207,7 +207,7 @@ EMM.GetMemRMD: | ||||
| 	CALL BLK_TO_RAMD | ||||
| 	RET NC | ||||
| .error2: | ||||
| 	LD L,2		; RAM-Disk § ïâ	;!HARDCODE error number	;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ à¨ âë ®è¨¡®ª ¨ ¨å ®¬¥à  ª ª ¤«ï „‘‘ | ||||
| 	LD L,BIOS.Error.BadNumber	; RAM-Disk § ïâ | ||||
| 	LD A,L | ||||
| 	RET | ||||
| .error1: | ||||
|  | ||||
| @ -399,10 +399,10 @@ REINIT:	DEC     B | ||||
| 		OUT     (C),A | ||||
| 		OUT     (RGADR),A | ||||
| 		OUT     (RGMOD),A | ||||
| 		OUT     (SLOT0),A | ||||
| 		LD      A,5 | ||||
| 		OUT     (SLOT0),A	;!HARDCODE zx page number | ||||
| 		LD      A,5		;!HARDCODE zx page number | ||||
| 		OUT     (SLOT1),A | ||||
| 		LD      A,2 | ||||
| 		LD      A,2		;!HARDCODE zx page number | ||||
| 		OUT     (SLOT2),A | ||||
| 		LD      A,DCP_PAGE | ||||
| 		OUT     (SLOT3),A | ||||
|  | ||||
| @ -3,63 +3,75 @@ | ||||
| 
 | ||||
| 
 | ||||
| ; [ ] free zx pages! | ||||
| ; ????? SYS_PAGE.SHARED_BUFFER_256b | ||||
|  IF	FREE_ZX_PAGES | ||||
| ;----------------[‚뤥«¥¨¥/®á¢®¡®¦¤¥¨¥ áâà ¨æ ᯥªâà㬠]-------------; | ||||
| ;¢å®¤:	ॣ B b3..0: | ||||
| ;		0 - ¨¨â ¯ ¬ï⨠Pentagon 128 | ||||
| ;		1 - ¨¨â ¯ ¬ï⨠Pentagon 512 | ||||
| ;		2 - ¨¨â ¯ ¬ï⨠Scorpion 256  | ||||
| ;	ॣ B b7: | ||||
| ;		¢ë¤¥«¨âì/¢¥àãâì à ¬¡«®ª ¤«ï áâà ¨æ ZX-ROM à §¬¥à®¬ A áâà. | ||||
| ;¢ë室:	CF = 0: A - ®¬¥à à ¬¡«®ª  ¥á«¨ âॡ®¢ «áï | ||||
| ;¢å®¤:	ॣ B:	0 - ¨¨â ¯ ¬ï⨠Spectrum 48k | ||||
| ;		1 - ¨¨â ¯ ¬ï⨠Pentagon 128k | ||||
| ;		2 - ¨¨â ¯ ¬ï⨠Pentagon 512k | ||||
| ;		3 - ¨¨â ¯ ¬ï⨠Scorpion 256k  | ||||
| ;	ॣ A:	âॡ㥬®¥ ª®«-¢® áâà ¨æ ¤«ï vROM | ||||
| ; | ||||
| ;¢ë室:	CF = 0: A - ®¬¥à à ¬¡«®ª  | ||||
| ;	CF = 1: A - ®¬¥à ®è¨¡ª¨ | ||||
| MANAGE_ZX_PAGES: | ||||
| 
 | ||||
| 
 | ||||
| .GET_SCORP:	IN	A,(SLOT3) | ||||
| 		PUSH	AF | ||||
| 		LD	E,A | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		; | ||||
| 		LD	HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 | ||||
| 		LD	DE,SYS_PAGE.SHARED_BUFFER_256b | ||||
| 		LD	BC,SYS_PAGE.RAMD_FAT.Size | ||||
| 		LDIR | ||||
| 		DEC	H | ||||
| 	; ¯à®¢¥à¨âì  «¨ç¨¥ ᢮¡®¤ëå áâà ¨æ ᪮௠ | ||||
| 		; B = ª®«¨ç¥á⢮ áâà ¨æ | ||||
| 		LD	B,8 | ||||
| 		XOR	A | ||||
| 		; ‡ ¯®«¨âì RAMD_FAT | ||||
| 		; A = 0 | ||||
| .loop2:		DEC	L | ||||
| .check_loop:	DEC	L | ||||
| 		JR	Z,.error_no_mem | ||||
| 		CP	(HL) | ||||
| 		JR	NZ,.loop2 | ||||
| 		JR	NZ,.check_loop | ||||
| 		; | ||||
| .check_barred_pages: | ||||
| 		; ¯à®¢¥àª    ¥à §à¥èñë¥ áâà ¨æë | ||||
| 		EX	AF,AF' | ||||
| 		 LD	A,L | ||||
| 		 CP	RESET_PAGE | ||||
| 		 JR	C,.good_page | ||||
| 		 JR	NZ,.check_isa_page | ||||
| 		 DEC	L | ||||
| 		 JR	.good_page | ||||
| .check_isa_page: ; | ||||
| 		 AND	#F0 | ||||
| 		 XOR	#D0		; áâà ¨æë ISA #D0..#DF | ||||
| 		 JR	NZ,.good_page | ||||
| 		 LD	L,#D0 - 1 | ||||
| .good_page:	EX	AF,AF' | ||||
| 		CALL	.check_barred_pages | ||||
| 		LD	A,0 | ||||
| 		JR	Z,.check_loop | ||||
| 		DJNZ	.check_loop | ||||
| 		; A = 0 | ||||
| 	; ¢ë¤¥«¨âì áâà ¨æë ᪮௠ | ||||
| 		LD	B,8 | ||||
| .allocate_loop:	DEC	L | ||||
| 		CP	(HL) | ||||
| 		JR	NZ,.allocate_loop | ||||
| 		; | ||||
| 		CALL	.check_barred_pages | ||||
| 		LD	A,0 | ||||
| 		JR	Z,.allocate_loop | ||||
| 		; | ||||
| 		LD	(HL),C | ||||
| 		LD	C,L | ||||
| 		DJNZ	.loop2 | ||||
| 		; L = 㪠§ â¥«ì 楯®çª¨. | ||||
| 		; | ||||
| 		POP	AF | ||||
| 		OUT	(SLOT3),A | ||||
| 		; | ||||
| 		LD	A,L | ||||
| 		DJNZ	.allocate_loop | ||||
| 	; L = 㪠§ â¥«ì 楯®çª¨. | ||||
| 		AND	A | ||||
| .exit:		LD	A,E | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	A,L | ||||
| 		RET | ||||
| 	; 䨫ìâà ¤«ï áâà ¨æ ᪮௠ | ||||
| 		;¢ë室:	ZF=1 - áâà ¨æ  ¥ ¯®¤å®¤¨â | ||||
| .check_barred_pages: | ||||
| 		; check reset page | ||||
| 		LD	A,L | ||||
| 		CP	RESET_PAGE | ||||
| 		RET	C | ||||
| 		RET	Z | ||||
| 		; check isa page | ||||
| 		AND	#F0 | ||||
| 		XOR	#D0		; áâà ¨æë ISA #D0..#DF | ||||
| 		RET	NZ | ||||
| 		LD	L,#D0 | ||||
| 		RET | ||||
| 		; | ||||
| .error_no_mem:	LD	L,BIOS.Error.EMM.NoMemory | ||||
| 		SCF | ||||
| 		JR	.exit | ||||
| ;-----------------------------------------------------------------------; | ||||
|  ENDIF | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik