...
This commit is contained in:
		
							parent
							
								
									085ef3c332
								
							
						
					
					
						commit
						b96578c2a0
					
				| @ -1 +1 @@ | ||||
| Subproject commit 3ac606f87285e76a56c826ad33efdd26ada872f6 | ||||
| Subproject commit e73e9f8d4f4e72de4f6b54abaec159684fdcebe1 | ||||
| @ -321,7 +321,7 @@ TAB_FNS: | ||||
|         DB      high EMM.GetMemRMD       | ||||
|         DB      high EMM.FreeMemRMD      | ||||
|         DB      high EMM.GetMemPageRMD   | ||||
|         DB      high EMM.GetMemPageNext  | ||||
|         DB      high EMM.GetMemPageNext | ||||
|         DB      high EMM.GetBanksPorts   | ||||
|         DB      high EMM.CheckColdInit | ||||
|         DB      high RAMD_CALC_PAGE      | ||||
|  | ||||
| @ -36,6 +36,7 @@ DPAL2   EQU 5 | ||||
| ;	!!! NO USE STACK !!! | ||||
| ; | ||||
| ;***************************************** | ||||
| ;!TODO | ||||
| ; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum | ||||
| INIT_PAGES: | ||||
| 	AND A | ||||
| @ -126,7 +127,7 @@ INIT_VIDEO_REG: | ||||
| 
 | ||||
| 	 ; EX AF,AF' | ||||
| 
 | ||||
| 	 ; LD A,7								; ᥤ쬠ï íªà  ï áâà ¨æ  | ||||
| 	 ; LD A,7							; ᥤ쬠ï íªà  ï áâà ¨æ  | ||||
| 	 ; LD BC,#7FFD | ||||
| 	 ; OUT (C),A | ||||
| 
 | ||||
|  | ||||
| @ -194,13 +194,12 @@ EMM.GetMemRMD: | ||||
| 	CALL BLK_TO_RAMD | ||||
| 	RET NC | ||||
| .error2: | ||||
| 	LD L,2		; RAM-Disk § ïâ				;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ à¨ âë ®è¨¡®ª ¨ ¨å ®¬¥à  ª ª ¤«ï „‘‘ | ||||
| 	LD L,2		; RAM-Disk § ïâ	;!HARDCODE error number	;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ à¨ âë ®è¨¡®ª ¨ ¨å ®¬¥à  ª ª ¤«ï „‘‘ | ||||
| 	LD A,L | ||||
| 	RET | ||||
| .error1: | ||||
| 	POP HL		; 腮痰━ 痰オ | ||||
| 	LD L,A | ||||
| 	;SCF | ||||
| 	RET | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
|  | ||||
| @ -279,9 +279,9 @@ INIT_CONFIG_ALL: | ||||
| 	LD DE,CNF_PORT.CNF_0 + ROM.BIOS | ||||
| 	LD (SYS_PAGE.CONFIG_DE-#4000),DE | ||||
| 
 | ||||
| 	LD HL,SYS_PAGE.TASK_DATA-#4000          ; 㡨âì ¢á¥ § ¤ ç¨ | ||||
| 	LD DE,SYS_PAGE.TASK_DATA+1-#4000 | ||||
| 	LD BC,#FF | ||||
| 	LD HL,SYS_PAGE.CURRENT_TASK - #4000				; 㡨âì ¢á¥ § ¤ ç¨ | ||||
| 	LD DE,SYS_PAGE.CURRENT_TASK+1 - #4000 | ||||
| 	LD BC,ZX_TASK_DATA * SYS_PAGE.CURRENT_TASK.Size	- 1		; #FF | ||||
| 	LD (HL),0 | ||||
| 	LDIR | ||||
| 
 | ||||
|  | ||||
| @ -95,7 +95,7 @@ COMAND_ISD2: | ||||
|         CALL ISDOS | ||||
|         JP SW_ROM_1 | ||||
| 
 | ||||
| 
 | ||||
| ;!TODO ¯¥à¥¤¥« âì ¯®¤ ¯¥à¥ª«î票¥   à §ë¥ á¯¥ªâàã¬ë á § ¯ãé¥ë¬¨ § ¤ ç ¬¨ | ||||
| TASK_SWITCH: | ||||
| ;	*** ‘®åà ¨âì § ¤ çã *** | ||||
| 	PUSH IY | ||||
| @ -123,76 +123,93 @@ TASK_SWITCH: | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	RLCA | ||||
| 	AND #30		; ®¢ ï § ¤ ç  0..3 | ||||
| 	AND #30					; ®¢ ï § ¤ ç  0..3 | ||||
|         LD C,A | ||||
| 
 | ||||
| 	IN A,(SLOT3) | ||||
| 	LD B,A		; 3-ï áâà ¨æ  â¥ªã饩 § ¤ ç¨ | ||||
| 	LD B,A					; 3-ï áâà ¨æ  â¥ªã饩 § ¤ ç¨ | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 
 | ||||
| 	LD IX,SYS_PAGE.TASK_DATA	; ¤ ë¥ § ¤ ç | ||||
| 	LD E,(IX)	; áâ à ï § ¤ ç  | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ¤ ë¥ ⥪ã饩 § ¤ ç¨ | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 
 | ||||
| 	LD (IX+1),B	; á®åà ¨âì áâà ¨æã 3 | ||||
| 	LD	IX,SYS_PAGE.CURRENT_TASK	; ¤ ë¥ § ¤ ç | ||||
| 	; !TEST | ||||
| 	 ;LD	E,(IX) | ||||
| 	 ;LD	D,0 | ||||
| 	 ;ADD	IX,DE | ||||
| 	 ;LD	E,SYS_PAGE.CURRENT_TASK.Size | ||||
| 	 ;ADD	IX,DE | ||||
| 	 LD	A,SYS_PAGE.CURRENT_TASK.Size	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	 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+2),L	; á®åà ¨âì á⥪ § ¤ ç¨ | ||||
| 	LD (IX+3),H | ||||
| 	SET 0,(IX)	; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨ | ||||
| 	RES 1,(IX)	; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç  ¯®ª¨ãâ  | ||||
| 	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.TASK_DATA | ||||
| 	LD E,C | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ®¢ ï § ¤ ç  | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	LD	IX,SYS_PAGE.CURRENT_TASK | ||||
| 	; !TEST | ||||
| 	 ;LD	E,C | ||||
| 	 ;LD	D,0 | ||||
| 	 ;ADD	IX,DE				; ®¢ ï § ¤ ç  | ||||
| 	 ;LD	E,16 | ||||
| 	 LD	A,SYS_PAGE.CURRENT_TASK.Size	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	 ADD	A,C				; ᬥ饨¥ ¤ ëå ®¢®© § ¤ ç¨ | ||||
| 	 LD	E,A | ||||
| 	 LD	D,0 | ||||
| 	; | ||||
| 	ADD	IX,DE				; ¤ ë¥ ®¢®© § ¤ ç¨ | ||||
| 
 | ||||
| 	BIT 1,(IX) | ||||
| ;	JR NZ,TASK_IN_WORK	; § ¤ ç  ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥ | ||||
| 				; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï | ||||
| 	BIT 1,(IX + ZX_TASK_DATA.STATE) | ||||
| ;	JR NZ,TASK_IN_WORK			; § ¤ ç  ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥ | ||||
| ;						; á¡à á뢠âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï | ||||
| 
 | ||||
| 	BIT 0,(IX)	; ¡ë«  á®åà ¥ /¥â | ||||
| 	JR NZ,TASK_SET	; § ¤ ç  áãé¥áâ¢ã¥â | ||||
| 	BIT 0,(IX + ZX_TASK_DATA.STATE)		; ¡ë«  á®åà ¥ /¥â | ||||
| 	JR NZ,TASK_SET				; § ¤ ç  áãé¥áâ¢ã¥â | ||||
| 
 | ||||
| ;	§ ¤ ç¨ ¥ ¡ë«®! | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD A,C		; § ¤ ç  | ||||
| 	LD (IX),A	; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 	LD IX,SYS_PAGE.CURRENT_TASK | ||||
| 	LD A,C					; § ¤ ç  | ||||
| 	LD (IX),A				; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 
 | ||||
| 	JP SPECTRUM_TASK ; § ¯ãáâ¨âì ®¢ãî § ¤ çã! | ||||
| ;                          ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨! | ||||
| 	JP SPECTRUM_TASK 			; § ¯ãáâ¨âì ®¢ãî § ¤ çã! | ||||
| ;                          			; ¨ ¯®ª  ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨! | ||||
| 
 | ||||
| TASK_SET: | ||||
| 	LD IX,TASK_RESTORE | ||||
| 	LD A,C | ||||
| 	EXX | ||||
| 	JP INIT_PAGES	; ¯¥à¥ª«îç¨âì ¢á¥ áâà ¨æë! | ||||
| 	JP INIT_PAGES				; ¯¥à¥ª«îç¨âì ¢á¥ áâà ¨æë! | ||||
| 
 | ||||
| TASK_RESTORE: | ||||
| 	EXX | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,C | ||||
| 	LD IX,SYS_PAGE.TASK_DATA | ||||
| 	LD (IX),A	; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 	LD IX,SYS_PAGE.CURRENT_TASK | ||||
| 	LD (IX),A				; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩 | ||||
| 
 | ||||
| 	LD E,A | ||||
| 	LD D,0 | ||||
| 	ADD IX,DE	; ®¢ ï § ¤ ç  | ||||
| 	LD E,16 | ||||
| 	ADD IX,DE | ||||
| 	; !TEST | ||||
| 	 ;LD	E,A | ||||
| 	 ;LD	D,0 | ||||
| 	 ;ADD	IX,DE				; ®¢ ï § ¤ ç  | ||||
| 	 ;LD	E,16 | ||||
| 	 ADD	A,SYS_PAGE.CURRENT_TASK.Size	; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç | ||||
| 	 LD	E,A | ||||
| 	 LD	D,0 | ||||
| 	; | ||||
| 	ADD	IX,DE | ||||
| 
 | ||||
| 	LD L,(IX+2)	; ¢á¯®¬¨âì á⥪ | ||||
| 	LD H,(IX+3) | ||||
| 	LD SP,HL | ||||
| 	LD A,(IX+1)	; ¢á¯®¬¨âì âà¥âìî áâà ¨æã | ||||
| 	OUT (SLOT3),A | ||||
| 	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	; ¢®ááâ ®¢¨âì | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik