чёт поковырял
This commit is contained in:
		
							parent
							
								
									2d0ee5e639
								
							
						
					
					
						commit
						8cc1bd11af
					
				| @ -1 +1 @@ | ||||
| Subproject commit 93ab93917db326a86a0ffecc02a62f6f6ef7a938 | ||||
| Subproject commit 1535d92eeecb8aa730ae7fe6eb82e9d32a4acb4d | ||||
| @ -137,7 +137,9 @@ | ||||
| 	OUTEND	 | ||||
| ;--------------------------------------- | ||||
| ; | ||||
| 	EXPORT	ROM_NUMBER		; !FIXIT part1, part2 ¤«ï Flasher | ||||
| 	;EXPORT	ROM_NUMBER		; !FIXIT part1, part2 ¤«ï Flasher | ||||
| 	EXPORT	BOARD_INFO.number | ||||
| 	EXPORT	BOARD_INFO.type | ||||
| 	EXPORT	BoardID.start | ||||
| 	EXPORT	BoardID.end | ||||
| 	EXPORT	FN_CRIPT.cnf | ||||
|  | ||||
| @ -43,8 +43,6 @@ | ||||
|         Set_Block 'ROM free space:				', #4000 | ||||
| ; | ||||
| ;PAGE 1 | ||||
| ;       INCBIN 'Build/Bin/LOGO_PAL.BIN'	 | ||||
| ;       INCBIN 'Build/Bin/LOGO_DAT.BIN' | ||||
|         INCBIN 'Build/Bin/LOGO.BIN' | ||||
|         Set_Block 'LOGO free space:				', #8000 | ||||
| ; | ||||
| @ -76,7 +74,6 @@ | ||||
| ;PAGE 9-11 (#09, #0A, #0B)						Recovery image part 2 | ||||
|         INCBIN IMG_RECOVERY,#C000,#C000 | ||||
|         DISPLAY "ROM Disk recovery part2, pages 9..11: 2x4000..3x0000" | ||||
| 
 | ||||
|         Set_Block 'Empty space:					', #30000 | ||||
| ;			 | ||||
| ;PAGE 12-15 (#0C, #0D, #0E, #0F) | ||||
|  | ||||
| @ -12,14 +12,13 @@ | ||||
| ;                         CCED/AAAAAAAAA | ||||
| ;                         NN1OW116517210 | ||||
| ;                         FF2SR54  3         | ||||
| ;DCP_DATA:                108      | ||||
| ;                         ....0..11.1110          | ||||
| ;        WORD            %00000001101110      ; -  ¤à¥á | ||||
| ;        WORD            %00001001101111      ; - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
| ;        BYTE            ACEX.Border_FE  ; - ¯®àâ | ||||
| ;		                     108      | ||||
| ;DCP_DATA:       ....0..11.1110          | ||||
| ;        WORD	%00000001101110 ; - b13..12 cnf, b11 pent512, b10 dos, b9 r/w, b8..0  ¤à¥á | ||||
| ;        WORD	%00001001101111 ; - ¬ áª  - 0 ¨§¬¥ï¥¬ë¥ ¡¨âë, 1 ¥¨§¬¥ï¥¬ë¥ | ||||
| ;        BYTE	ACEX.Border_FE  ; - ¯®àâ | ||||
| 
 | ||||
| 
 | ||||
| ; DCP END MARKER | ||||
| ;	DW	0,0,0 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; | ||||
| ; | ||||
| @ -135,30 +134,6 @@ | ||||
| 	DB	ACEX.CMOS_DATA.WRITE | ||||
| ; | ||||
| ;---------HDD[v] | ||||
| /* | ||||
| Write: | ||||
| .Data          		EQU     #0150 ; cnf 20	; HDW_DAT  W170           ; #1F0 Data register | ||||
| .Features		EQU     #0151 ; cnf 21	; HDW_ERR  W171           ; #1F1 Features register | ||||
| .Counter       		EQU     #0152 ; cnf 22	; HDW_CNT  P_S_CNT  W172  ; #1F2 Counter register | ||||
| .Sector        		EQU     #0153 ; cnf 23	; HDW_SEC  P_S_NUM  W173  ; #1F3 Sector register | ||||
| .CylinderLow   		EQU     #0154 ; cnf 24	; HDW_CLL  P_C_LOW  W174  ; #1F4 Cylinder Low register | ||||
| .CylinderHigh  		EQU     #0155 ; cnf 25	; HDW_CLH  P_C_HIG  W175  ; #1F5 Cylinder High register | ||||
| .DeviceHead    		EQU     #4152 ; cnf 26	; HDW_DRV  P_HD_CS        ; #1F6 Device/Head register | ||||
| .Command       		EQU     #4153 ; cnf 27	; HDW_COM  P_CMD          ; #1F7 Command register | ||||
| .DeviceControl		EQU	#4154 ; cnf 28	; 			  ; #3F6 Device Control register | ||||
| 
 | ||||
| Read: | ||||
| .Data                   EQU	#0050 ; cnf 20	; HDR_DAT  P_DATS   R170  ; #1F0 Data register | ||||
| .Error                  EQU	#0051 ; cnf 21	; HDR_ERR  P_ERR    R171  ; #1F1 Error register | ||||
| .Counter                EQU	#0052 ; cnf 22	; HDR_CNT           R172  ; #1F2 Counter register | ||||
| .Sector                 EQU	#0053 ; cnf 23	; HDR_SEC           R173  ; #1F3 Sector register | ||||
| .CylinderLow            EQU	#0054 ; cnf 24	; HDR_CLL           R174  ; #1F4 Cylinder Low register | ||||
| .CylinderHigh           EQU	#0055 ; cnf 25	; HDR_CLH           R175  ; #1F5 Cylinder High register | ||||
| .Control		EQU	#4052 ; cnf 26	; HDR_DRV           R176  ; #1F6 Device/Head register | ||||
| .Status                 EQU	#4053 ; cnf 27	; HDR_CTL  P_HDST   R177  ; #1F7 Status (Control) register | ||||
| .AltStatus		EQU	#4054 ; cnf 28	;			  ; #3F6 Alternate Status register | ||||
| .DrvAddress		EQU	#4055 ; cnf 29	;			  ; #3F7 | ||||
| */ | ||||
| 	DW	%00'000'0'0100'0000 | ||||
| 	DW	%11'000'0'0110'1111 | ||||
| 	DB	ACEX.IDE_DATA_1F0 | ||||
| @ -465,7 +440,7 @@ Read: | ||||
| 	DW	%11'010'0'0110'1010 | ||||
| 	DW	%11'010'0'0110'1111 | ||||
| 	DB	ACEX.SLOT3 | ||||
| ; DCP END MARKER | ||||
| 	; DCP END MARKER | ||||
| 	DW	0,0,0 | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; | ||||
|  | ||||
| @ -15,9 +15,12 @@ EXP_START: | ||||
|         JP GLOBAL_RESET | ||||
| 
 | ||||
| ;--------------------------------------- | ||||
| ROM_NUMBER: | ||||
| .part1:		DW	MotherBoardID | ||||
| .part2:		DB	0 | ||||
| ;ROM_NUMBER: | ||||
| ;.part1:	DW	MotherBoardID | ||||
| ;.part2:	DB	0 | ||||
| BOARD_INFO: | ||||
| .number:	DW	MotherBoardID | ||||
| .type:		DB	MotherBoardType | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;--------------------------------------- | ||||
| @ -305,20 +308,19 @@ NO_RESTART: | ||||
|         OUT (Z84.SIO.Ch_A.Ctrl),A | ||||
|         LD A,#62 | ||||
|         OUT (Z84.SIO.Ch_A.Ctrl),A | ||||
| 
 | ||||
| 	; | ||||
| 	LD A,#CF							; BITS I/O | ||||
| 	OUT (Z84.PIO.Port_A.Command),A | ||||
| 	XOR A | ||||
| 	OUT (Z84.PIO.Port_A.Command),A | ||||
| 	OUT (Z84.PIO.Port_A.Data),A					; PRINTER - PORT - all zeros | ||||
| 
 | ||||
| 	; -¨¨æ¨ «¨§ æ¨ï á¨á⥬ëå ¯®à⮢ Z84C15- | ||||
| 	LD	BC,#FF*256 + Z84.SYS.Control | ||||
| 	XOR	A	; Z84.REG.WaitState_Ctrl  | ||||
| 	OUT	(C),A	; Z84.SYS.Control | ||||
| 	INC	C	; Z84.REG.WaitState_MemBound  | ||||
| 	OUT	(C),A	; Z84.SYS.Data					; set 0 Waits | ||||
| 
 | ||||
| 	; | ||||
| 	DEC	C | ||||
| 	LD	A,3	; Z84.REG.Misc_Ctrl | ||||
| 	OUT	(C),A	; Z84.SYS.Control | ||||
| @ -745,7 +747,7 @@ POST_5_OK: | ||||
|         ; SBC HL,BC | ||||
|         ;JR Z,set_config				;!TODO  ªâ¨¢ æ¨ï ¬¥âª¨ IX:IY ¨§ «® ¤¥à  | ||||
| 	;LD IX,ACEX.Config_ID.Sp97_2 | ||||
| 	LD HL,ACEX.Config_ID.Sp2000 | ||||
| 	LD	HL,ACEX.Config_ID.Sp2000 | ||||
| set_config: | ||||
| 	LD      (SYS_PAGE.CONFIG_BYTE),HL		; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨ | ||||
| 	 ;LD (SYS_PAGE.CONFIG_BYTE),IX			; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨ | ||||
| @ -767,14 +769,14 @@ set_config: | ||||
| 	OUT (RGMOD),A | ||||
| 	OUT (SLOT3),A | ||||
| 	OUT (SLOT0),A | ||||
| 	LD A,5 | ||||
| 	LD A,5						; !HARDCODE page 5 | ||||
| 	OUT (SLOT1),A | ||||
| 	LD A,2 | ||||
| 	LD A,2						; !HARDCODE page 2 | ||||
| 	OUT (SLOT2),A | ||||
| 
 | ||||
| ;********************************* | ||||
| ; Don't use stack (SP) before this point if it`s normal booting!!! | ||||
| 	LD      SP,#BFFE				; <20> ç «® ¨á¯®«ì§®¢ ¨ï á⥪ !!! | ||||
| 	LD      SP,#C000				; <20> ç «® ¨á¯®«ì§®¢ ¨ï á⥪ !!! | ||||
| 	PUSH    HL					; á®åà ¨âì ®¬¥à ¯à®è¨¢ª¨ | ||||
| 
 | ||||
| 	CALL    PORTS_INIT				; ¨¨æ¨ «¨§¨à®¢ âì ¯®àâë | ||||
| @ -782,20 +784,7 @@ set_config: | ||||
| 	OUT     (BorderColor),A | ||||
| 	CALL    EMM.CheckColdInit			; ¨¨æ¨ «¨§ æ¨ï ¯ ¬ï⨠| ||||
| 	POP     HL					; ª®ä¨£ãà æ¨ï | ||||
| 	JR      Reset_Handler.start | ||||
| ; ************************************* | ||||
| ; ‘ç¨â ¥¬, çâ® ¢å®¤ ¢ SETUP ¢á¥£¤  !!! | ||||
| ; ************************************* | ||||
| 
 | ||||
| ;	LD A,H | ||||
| ;	CP #FF | ||||
| ;	JR NZ,NO_SETUP_1 | ||||
| ;	LD A,L | ||||
| 
 | ||||
| 
 | ||||
| ;	JR NZ,NO_SETUP_2 | ||||
| 
 | ||||
| ;[---------------------------------------------------------------------] | ||||
| ;	JR      Reset_Handler.start | ||||
| 
 | ||||
| 	MODULE	Reset_Handler | ||||
| start:		DI | ||||
| @ -908,7 +897,7 @@ init_rom_address EQU	#8200						;!HARDCODE | ||||
| 		LD	BC,RAM_BIOS_PROG.Length | ||||
| 		LDIR | ||||
| 		*/ | ||||
| No_Need_To_Load_ZXROMS: | ||||
| ;No_Need_To_Load_ZXROMS: | ||||
| 		POP	AF | ||||
| 		OUT	(SLOT3),A | ||||
| ;-------------------------------------------------------------------------------------------------------------------; | ||||
|  | ||||
| @ -256,8 +256,7 @@ FN_HDD_READ_NEXT: | ||||
| 	RET C | ||||
| 	CALL NEXT_ADD_SEC | ||||
| 	JR FN_HDD_READ.L1 | ||||
| 
 | ||||
| 
 | ||||
| 	; | ||||
| ; HL - BUFER, A - PAGE | ||||
| FN_HDD_READ: | ||||
| 	AND A | ||||
| @ -488,7 +487,7 @@ FN_HDD_TEST_IDE: | ||||
| ; <20>¥ ¤®«¦  ¯®àâ¨âì ॣ¨áâà E!!! | ||||
| TEST_HDD_DRV: | ||||
| ; EXP_HDD.ASM variant | ||||
| 	LD HL,#01FE							; ????? | ||||
| 	LD HL,#01FE | ||||
| 	LD BC,IDE.Write.Counter | ||||
| 	OUT (C),L | ||||
|  IF IDE_Optimization | ||||
| @ -496,36 +495,36 @@ TEST_HDD_DRV: | ||||
| 	OUT (C),H							; IDE.Write.Sector | ||||
| 	; | ||||
| 	DEC C | ||||
| 	INC B | ||||
| 	IN A,(C)							; ????? IDE.Write.Counter+#100 | ||||
| 	DEC B | ||||
| 	IN A,(C)							; IDE.Read.Counter | ||||
| 	CP L | ||||
| 	RET NZ | ||||
| 	INC C | ||||
|  ELSE | ||||
| 	LD BC,IDE.Write.Sector | ||||
| 	OUT (C),H | ||||
| 	LD BC,IDE.Write.Counter+#100 | ||||
| 	LD BC,IDE.Read.Counter | ||||
| 	IN A,(C) | ||||
| 	CP L | ||||
| 	RET NZ | ||||
| 	LD BC,IDE.Write.Sector+#100 | ||||
| 	LD BC,IDE.Read.Sector | ||||
|  ENDIF | ||||
| 	IN A,(C)							; ????? IDE.Write.Sector+#100 | ||||
| 	IN A,(C)							; IDE.Read.Sector | ||||
| 	CP H | ||||
| 	RET | ||||
| 
 | ||||
| ; TEST_HDD_DRV: | ||||
| ; ; EXTENDED.ASM variant | ||||
| ; 	LD	HL,#00FF						;????? | ||||
| ; 	LD	HL,#00FF | ||||
| ; 	LD	BC,IDE.Write.CylinderLow | ||||
| ; 	OUT	(C),L | ||||
| ;  IF IDE_Optimization | ||||
| ; 	INC C | ||||
| ; 	OUT	(C),H							; IDE.Write.CylinderHigh | ||||
| ; 	OUT	(C),H				; IDE.Write.CylinderHigh | ||||
| 					 | ||||
| ; 	INC B | ||||
| ; 	DEC C | ||||
| ; 	IN	A,(C)							; ????? ’ãâ ॣ¨áâà BC = #0254 - çâ® §  ¯®àâ â ª®© ¨ çâ® ®ââ㤠 ¯à®ç¨â ¥âáï? | ||||
| ; 	IN	A,(C)				; ’ãâ ॣ¨áâà BC = #0254 - .CylinderLow | ||||
| ; 	CP	L | ||||
| ; 	RET	NZ | ||||
| ; 	INC C | ||||
| @ -533,14 +532,14 @@ TEST_HDD_DRV: | ||||
| ;  ELSE | ||||
| ; 	LD	BC,IDE.Write.CylinderHigh | ||||
| ; 	OUT	(C),H | ||||
| ; 	LD	BC,#0254						;???!!!! | ||||
| ; 	LD	BC,#0254 | ||||
| ; 	IN	A,(C) | ||||
| ; 	CP	L | ||||
| ; 	RET	NZ | ||||
| ; 	LD	BC,#0255						;???!!!! | ||||
| ; 	LD	BC,#0255 | ||||
| ;  ENDIF | ||||
| 
 | ||||
| ; 	IN	A,(C)				; ????? ’ãâ ॣ¨áâà BC = #0255 - çâ® §  ¯®àâ â ª®© ¨ çâ® ®ââ㤠 ¯à®ç¨â ¥âáï? | ||||
| ; 	IN	A,(C)				; ’ãâ ॣ¨áâà BC = #0255 - .CylinderHigh | ||||
| ; 	CP	H | ||||
| ; 	RET | ||||
| 
 | ||||
| @ -628,7 +627,7 @@ FN_HDD_INIT: | ||||
| 	LD	A,IDE.ATA.IdentifyDevice	;!FIXIT ¯¥à¥¤¥« âì | ||||
| 	OUT	(C),A | ||||
| 	WAIT_HDD | ||||
| 	BIT	IDE.ControlBit.DataRequest,A | ||||
| 	AND	IDE.ControlByte.DataRequest | ||||
| 	;JR	NZ,.L2 | ||||
| 	SCF  | ||||
| 	RET 	Z | ||||
| @ -704,22 +703,21 @@ HD_WAIT: | ||||
| 	PUSH	BC | ||||
| 	PUSH	AF | ||||
| 	LD	DE,0 | ||||
| HD_WAIT1: | ||||
| 	LD	BC,IDE.Read.Status | ||||
| .loop:	LD	BC,IDE.Read.Status | ||||
| 	IN	A,(C) | ||||
| 	AND	IDE.ControlByte.Busy | ||||
| 	JR	Z,HD_W_EXIT | ||||
| 	JR	Z,.EXIT | ||||
| 	DEC	DE | ||||
| 	LD	A,D | ||||
| 	OR	E | ||||
| 	JR	NZ,HD_WAIT1 | ||||
| 	JR	NZ,.loop | ||||
| 	POP	AF | ||||
| 	POP	BC | ||||
| 	POP	DE | ||||
| 	SCF  | ||||
| 	RET  | ||||
| HD_W_EXIT: | ||||
| 	POP AF | ||||
| 	; | ||||
| .EXIT:	POP AF | ||||
| 	POP BC | ||||
| 	POP DE | ||||
| 	AND A | ||||
|  | ||||
| @ -768,7 +768,7 @@ LP_BEG_P: | ||||
| LP_INI_P: | ||||
| 	EX AF,AF' | ||||
| 	EXX | ||||
| 	 LP_OPEN_PG | ||||
| 	LP_OPEN_PG | ||||
| 	LD A,(WIN_ID_0.USER.MODE) | ||||
| 	CP #C0 | ||||
| 	JR NC,LP_INI_NO_ZG			; ®âªàë⨥ ¡®à¤¥à ... | ||||
| @ -1221,12 +1221,12 @@ LP_MODE_LINE3:	;  | ||||
| 	LD A,#50 | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,L	; ¢¥à⨪ «ì®¥ ¯®«®¦¥¨¥ | ||||
| 	CP 80H | ||||
| 	CP #80 | ||||
| 	JR NC,LP_EXIT_MODE3 | ||||
| 
 | ||||
| LP_MODE_RECURSE3: | ||||
| 	LD A,D	; £®à¨§®â «ì®¥ ¯®«®¦¥¨¥ | ||||
| 	AND 7FH | ||||
| 	AND #7F | ||||
| 	SUB 80 | ||||
| 	JR C,LP_MODE_LL3 | ||||
| 	SUB 48 | ||||
| @ -1238,7 +1238,7 @@ LP_MODE_RECURSE3: | ||||
| 
 | ||||
| 	LD A,E	; ¢®ááâ ®¢¨âì | ||||
| 	RRA | ||||
| 	AND 3FH | ||||
| 	AND #3F | ||||
| 	SUB C | ||||
| 	JR NC,LP_EXIT_MODE3 | ||||
| 	NEG | ||||
| @ -1248,7 +1248,7 @@ LP_MODE_RECURSE3: | ||||
| LP_MODE_LL3: | ||||
| 	NEG | ||||
| 	RRA | ||||
| 	AND 3FH | ||||
| 	AND #3F | ||||
| 	CP C | ||||
| 	JR NC,LP_MODE_LR3 | ||||
| 	LD C,A | ||||
|  | ||||
| @ -1,10 +1,10 @@ | ||||
| ;===================[ ”ãªæ¨¨ à á¯à¥¤¥«¥¨ï ¯ ¬ï⨠]===================; | ||||
| ;        ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM | ||||
| ;	‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM | ||||
| ;!TEST ¢á¥ SLOT2   SLOT1 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;                    Ž¯à¥¤¥«¥¨¥ ®¡ê¥¬  ¯ ¬ïâ¨. | ||||
| ;        ‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM | ||||
| ; Ž¯à¥¤¥«¥¨¥ ®¡ê¥¬  ¯ ¬ïâ¨. | ||||
| ;	‚ë室: BC - FREE MEM ¢ ¡«®ª å ¯® 16k, HL - FULL MEM | ||||
| EMM.GetMemSize: | ||||
| 	IN A,(SLOT1) | ||||
| 	LD B,A | ||||
| @ -32,7 +32,7 @@ EMM.GetMemSize: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;               ˆ¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ïâ¨. | ||||
| ;		  ˆ¨æ¨ «¨§ æ¨ï à á¯à¥¤¥«¥¨ï ¯ ¬ïâ¨. | ||||
| EMM.InitMem: | ||||
| 	PUSH	BC | ||||
| 	PUSH	HL | ||||
| @ -42,7 +42,7 @@ EMM.InitMem: | ||||
| 	LD	C,A | ||||
| 	LD	A,SYS_PAGE | ||||
| 	OUT	(SLOT3),A | ||||
| 	LD	HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000			; €¤à¥á FAT އ“. | ||||
| 	LD	HL,SYS_PAGE.RAMD_FAT					; €¤à¥á RAM FAT ¢ އ“. | ||||
| 	; ®¡ã«ï¥¬ â ¡«¨æã | ||||
| 	XOR	A | ||||
| .loopFree: | ||||
| @ -50,7 +50,7 @@ EMM.InitMem: | ||||
| 	INC	L | ||||
| 	JR	NZ,.loopFree | ||||
| 	; १¥à¢¨à㥬 ᯥæ.áâà ¨æë ¨ áâà ¨æë ZX | ||||
|         LD	B,RESERVED_PAGES.Blocks | ||||
| 	LD	B,RESERVED_PAGES.Blocks | ||||
| 	LD	DE,RESERVED_PAGES					; â ¡«¨æ  § ïâëå á¨á⥬ëå áâà ¨æ | ||||
| .loop:	LD	A,(DE) | ||||
| 	CP	#FF | ||||
| @ -63,10 +63,10 @@ EMM.InitMem: | ||||
| 	CP	#FF | ||||
| 	JR	NZ,.loopBlk | ||||
| .exitLoop: | ||||
|         INC	DE | ||||
|         DJNZ	.loop | ||||
|         LD	L,A | ||||
|         LD	(HL),A | ||||
| 	INC	DE | ||||
| 	DJNZ	.loop | ||||
| 	LD	L,A | ||||
| 	LD	(HL),A | ||||
| 	; ˆ¨æ¨ «¨§ æ¨ï ª«î祩 RAM-Disks | ||||
| 	XOR	A | ||||
| 	LD	HL,SYS_PAGE.RAMD_KEYS; - #4000 - #4000 | ||||
| @ -89,27 +89,27 @@ EMM.InitMem: | ||||
| 	RET | ||||
| ;---------------------------------------------------------------------[] | ||||
| RESERVED_PAGES: | ||||
|         ; [x] Block #1 - ¬®¦® ®á¢®¡®¤¨âì ¯® ID 1 | ||||
| 	; [x] Block #1 - ¬®¦® ®á¢®¡®¤¨âì ¯® ID 1 | ||||
| 	 DB	1,3,4,6,7,8,9,10,11,12,13,14,15				; for Spectrum | ||||
| 	 ;!FIXIT áâà ¨æë 16..31 ¥ § à¥§¥à¢¨à®¢ ë, ® ¨á¯®«ì§ãîâáï ¢ Pentagon 512 | ||||
|          ; | ||||
| 	 ; | ||||
| 	 ; í¬ã«ïâ®à <20>‡“ ;!FIXIT ROM-Emulator ᤥ« âì ¤¨ ¬¨ç¥áª¨¥ áâà ¨æë | ||||
| 	  DB	#42,#43,#44,#45,#46,#47;,#48,#49,#4A,#4B		; For (BASIC128, BASIC48, TRDOS, SCORP_ROM)*2, vBIOS, vEXTENSION | ||||
| 	  DB	#FF							; End of the block | ||||
| 	 ; | ||||
| 	; | ||||
|         ;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì | ||||
|          DB	0,2,5							; for Spectrum and BIOS starting | ||||
| 	;; Block #2 - ¥«ì§ï ®á¢®¡®¦¤ âì | ||||
| 	 DB	0,2,5							; for Spectrum and BIOS starting | ||||
| 	 DB	DCP_PAGE 						; Ports map | ||||
| 	 DB	Spec_Page						; Page for Spectrum mode | ||||
|          ; Screen pages | ||||
| 	 ; Screen pages | ||||
| 	  DB	#50,#51,#52,#53,#54,#55,#56,#57 | ||||
|           DB	#58,#59,#5A,#5B,#5C,#5D,#5E,#5F   | ||||
|          ; | ||||
| 	  DB	#58,#59,#5A,#5B,#5C,#5D,#5E,#5F   | ||||
| 	 ; | ||||
| 	 ;DB	MODE_PAGE						; ????? | ||||
| 	 DB	CBL.BUFFER_PAGE                                         ; Page for CBL audio | ||||
| 	 DB	SYS_PAGE                                                ; Page for system (BIOS) variables | ||||
| 	 DB	#FF                                                     ; End of the block | ||||
| 	 DB	CBL.BUFFER_PAGE						; Page for CBL audio | ||||
| 	 DB	SYS_PAGE						; Page for system (BIOS) variables | ||||
| 	 DB	#FF							; End of the block | ||||
| 	; | ||||
| .Blocks EQU 2 | ||||
| ;----------------------------------------------------------------------; | ||||
| @ -119,10 +119,10 @@ RESERVED_PAGES: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;                  <EFBFBD>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes, | ||||
| ;               ‚室:   B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢ | ||||
| ;               ‚ë室:  L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨ | ||||
| ;                       CF - ¯à¨§ ª ®è¨¡ª¨ | ||||
| ; <EFBFBD>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes, | ||||
| ;	‚室:   B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢ | ||||
| ;	‚ë室:  L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨ | ||||
| ;		CF - ¯à¨§ ª ®è¨¡ª¨ | ||||
| ;EMM_FN2M: | ||||
| EMM.GetMem: | ||||
| 	;PUSH DE | ||||
| @ -141,7 +141,7 @@ EMM.GetMem: | ||||
| 	JR NZ,.loop | ||||
| 	DJNZ .loop | ||||
| 
 | ||||
|         ; Œ¥áâ® ¥áâì ! | ||||
| 	; Œ¥áâ® ¥áâì ! | ||||
| 	LD B,C		; ‚®ááâ ®¢¨âì ã¦ë© ®¡ê¥¬ ¤¨áª  | ||||
| 	LD C,#FF	; Œ…’Š€ ŠŽ<C5A0>–€ RAM-Disk | ||||
| 	LD HL,SYS_PAGE.RAMD_FAT; - #4000 - #4000 | ||||
| @ -155,7 +155,7 @@ EMM.GetMem: | ||||
| 	LD C,L | ||||
| 	DJNZ .loop2 | ||||
| 
 | ||||
|         ; L - 㪠§ â¥«ì 楯®çª¨. | ||||
| 	; L - 㪠§ â¥«ì 楯®çª¨. | ||||
| 	EX AF,AF' | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,L | ||||
| @ -179,10 +179,10 @@ EMM.GetMem: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;               <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes, ¤«ï RAM-Disk A | ||||
| ;               ‚室:   B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢, A - RAM-Disk | ||||
| ;               ‚ë室:  L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨ | ||||
| ;                       CF - ¯à¨§ ª ®è¨¡ª¨ | ||||
| ;		  <20>®«ãç¨âì ¡«®ª ¯ ¬ï⨠N bytes, ¤«ï RAM-Disk A | ||||
| ;		  ‚室:   B - ç¨á«® ¥®¡å®¤¨¬ëå ¡«®ª®¢, A - RAM-Disk | ||||
| ;		  ‚ë室:  L,A - Š‹ž— RAM-Disk/ª®¤ ®è¨¡ª¨ | ||||
| ;			  CF - ¯à¨§ ª ®è¨¡ª¨ | ||||
| ;EMM.GetMem: | ||||
| EMM.GetMemRMD: | ||||
| 	PUSH AF | ||||
| @ -194,7 +194,7 @@ EMM.GetMemRMD: | ||||
| 	CALL BLK_TO_RAMD | ||||
| 	RET NC | ||||
| .error2: | ||||
| 	LD L,2		; RAM-Disk § ïâ                                ;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ à¨ âë ®è¨¡®ª ¨ ¨å ®¬¥à  ª ª ¤«ï „‘‘ | ||||
| 	LD L,2		; RAM-Disk § ïâ				;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ à¨ âë ®è¨¡®ª ¨ ¨å ®¬¥à  ª ª ¤«ï „‘‘ | ||||
| 	LD A,L | ||||
| 	RET | ||||
| .error1: | ||||
| @ -208,8 +208,8 @@ EMM.GetMemRMD: | ||||
| 
 | ||||
| 
 | ||||
| ;----------------------------------------------------------------------; | ||||
| ;               Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠ª«îç  K | ||||
| ;               ‚室:	A - Š‹ž— RAM-Disk | ||||
| ;		  Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠ª«îç  K | ||||
| ;		  ‚室:	A - Š‹ž— RAM-Disk | ||||
| EMM.FreeMemRMD: | ||||
| 	CALL GET_RAMD_ST | ||||
| 	RET C | ||||
| @ -227,8 +227,8 @@ EMM.FreeMemRMD: | ||||
| 	LD A,C | ||||
| 	;JR EMM.FreeMem | ||||
| ;------[ | ||||
| ;               Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠| ||||
| ;               ‚室: A - <20>€—€‹Ž –…<E28093>Ž—Šˆ | ||||
| ;		  Žá¢®¡®¤¨âì ¡«®ª ¯ ¬ï⨠| ||||
| ;		  ‚室: A - <20>€—€‹Ž –…<E28093>Ž—Šˆ | ||||
| ; <20>… <20>Ž<EFBFBD>’ˆ’œ DE!!! | ||||
| ;EMM_FN3M: | ||||
| EMM.FreeMem: | ||||
| @ -274,19 +274,19 @@ EMM_FN3M_ERR: | ||||
| 
 | ||||
| ;		WARNING!!! ¥ âண âì DE | ||||
| ;----------------------------------------------------------------------; | ||||
| ;               <20>®«ãç¨âì áâà ¨æã N ª«îç  K | ||||
| ;               ‚室:	 A - Š‹ž— RAM-Disk, B - ®¬¥à áâà ¨æë | ||||
| ;               ‚ë室: A - áâà ¨æ  | ||||
| ;		  <20>®«ãç¨âì áâà ¨æã N ª«îç  K | ||||
| ;		  ‚室:	 A - Š‹ž— RAM-Disk, B - ®¬¥à áâà ¨æë | ||||
| ;		  ‚ë室: A - áâà ¨æ  | ||||
| EMM.GetMemPageRMD: | ||||
| 	CALL GET_RAMD_ST | ||||
| 	RET C | ||||
| 	SCF | ||||
| 	RET Z | ||||
| 	;JR EMM.GetMemPage | ||||
| ;------[                                 | ||||
| ;                   <20>®«ãç¨âì áâà ¨æã N ¡«®ª  K | ||||
| ;               ‚室: A - ¡«®ª, B - ®¬¥à áâà ¨æë | ||||
| ;     ‚ë室: A - áâà ¨æ , IF CF - A=0 - ¥â ¡«®ª , A=FF - END | ||||
| ;------[				 | ||||
| ;		   <20>®«ãç¨âì áâà ¨æã N ¡«®ª  K | ||||
| ;		  ‚室: A - ¡«®ª, B - ®¬¥à áâà ¨æë | ||||
| ;	‚ë室: A - áâà ¨æ , IF CF - A=0 - ¥â ¡«®ª , A=FF - END | ||||
| ;EMM_FN4M: | ||||
| EMM.GetMemPage: | ||||
| 	LD L,A | ||||
| @ -327,9 +327,9 @@ EMM_F4M_END: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;               <20>®«ãç¨âì á«¥¤ãîéãî áâà ¨æã ¯® FAT | ||||
| ;               ‚室:	A - áâà ¨æ  Ž‡“ | ||||
| ;               ‚ë室:	A - á«¥¤ãîé ï áâà ¨æ  Ž‡“ | ||||
| ;		  <20>®«ãç¨âì á«¥¤ãîéãî áâà ¨æã ¯® FAT | ||||
| ;		  ‚室:	A - áâà ¨æ  Ž‡“ | ||||
| ;		  ‚ë室:	A - á«¥¤ãîé ï áâà ¨æ  Ž‡“ | ||||
| ;EMM_FN5: | ||||
| EMM.GetMemPageNext: | ||||
| 	LD L,A | ||||
| @ -357,9 +357,9 @@ EMM.GetMemPageNext: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;                  <20>®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª  ¢ HL | ||||
| ;             ‚室:   A - ¡«®ª, HL -  ¤à¥á ¡ãä¥à  - 256 ¡ ©â. | ||||
| ;        ‚ë室:  HL -  ¤à¥á ¡«®ª , B - ¤«¨  ¡«®ª  ¢ áâà ¨æ å އ“ | ||||
| ;		  <20>®«ãç¨âì ᯨ᮪ áâà ¨æ ¡«®ª  ¢ HL | ||||
| ;		‚室:   A - ¡«®ª, HL -  ¤à¥á ¡ãä¥à  - 256 ¡ ©â. | ||||
| ;	‚ë室:  HL -  ¤à¥á ¡«®ª , B - ¤«¨  ¡«®ª  ¢ áâà ¨æ å އ“ | ||||
| ;EMM_FN5M: | ||||
| EMM.GetMemBlkPages: | ||||
| 	PUSH DE | ||||
| @ -433,17 +433,17 @@ EMM.GetMemBlkPages: | ||||
| ; | ||||
| ;----------------------------------------------------------------------;	!FIXIT SAFE_RGADR | ||||
| ;RAMD_R_W: | ||||
| ;       ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» | ||||
| ;       º RD/WR SECTOR                                   º\ | ||||
| ;       º HL - BUFER                                     º\ | ||||
| ;       º DE - ABS sector ¢ 256b ¡«®ª å                  º\ | ||||
| ;       º B  - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å                º\ | ||||
| ;       º A  - block RAM                                 º\ | ||||
| ;       º A' - ª®¬ ¤  ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk     º\ | ||||
| ;       º      0 - read, 255 - write, 70 - read ROM DISK º\ | ||||
| ;       º ** NOT USED TR-DOS VARS **                     º\ | ||||
| ;       ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\ | ||||
| ;        \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | ||||
| ;	  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» | ||||
| ;	  º RD/WR SECTOR				   º\ | ||||
| ;	  º HL - BUFER					º\ | ||||
| ;	  º DE - ABS sector ¢ 256b ¡«®ª å		  º\ | ||||
| ;	  º B  - ç¨á«® ¤ ëå ¢ 256b ¡«®ª å		º\ | ||||
| ;	  º A  - block RAM				 º\ | ||||
| ;	  º A' - ª®¬ ¤  ç⥨¥/§ ¯¨áì/ç⥨¥ ROM Disk	º\ | ||||
| ;	  º	 0 - read, 255 - write, 70 - read ROM DISK º\ | ||||
| ;	  º ** NOT USED TR-DOS VARS **			º\ | ||||
| ;	  ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\ | ||||
| ;	\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | ||||
| BLK_RD_WR: | ||||
| 	AND A | ||||
| 	SCF | ||||
| @ -453,42 +453,42 @@ BLK_RD_WR: | ||||
| 	INC	B | ||||
| 	DEC	B | ||||
| 	RET	Z | ||||
|         ; | ||||
|         ; á®åà ï¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
|         LD      C,A | ||||
|         LD      A,R | ||||
|         PUSH    AF | ||||
| 	; | ||||
| 	; á®åà ï¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| 	LD	 C,A | ||||
| 	LD	 A,R | ||||
| 	PUSH    AF | ||||
| 	; á®åà ï¥¬ PORT_Y | ||||
| 	IN	A,(PORT_Y) | ||||
| 	PUSH	AF | ||||
| 	LD	A,#C0 | ||||
| 	OUT	(PORT_Y),A | ||||
| 	; | ||||
|         LD      A,C | ||||
|         DI | ||||
|         CALL    .start | ||||
|         EX      AF,AF' | ||||
|         ; ¢®ááâ  ¢«¨¢ ¥¬ PORT_Y | ||||
| 	LD	 A,C | ||||
| 	DI | ||||
| 	CALL    .start | ||||
| 	EX	 AF,AF' | ||||
| 	; ¢®ááâ  ¢«¨¢ ¥¬ PORT_Y | ||||
| 	POP	AF | ||||
| 	OUT	(PORT_Y),A | ||||
| 	; ¢®ááâ  ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
|         POP     AF | ||||
|         JP PO,.noInterrupts | ||||
|         EI | ||||
| 	POP	AF | ||||
| 	JP PO,.noInterrupts | ||||
| 	EI | ||||
| .noInterrupts: | ||||
|  	EX AF,AF' | ||||
|  	RET | ||||
|         ; | ||||
|          | ||||
| 	; | ||||
| 		 | ||||
| .start:	EX AF,AF' | ||||
| 	AND A                   ; 0 - read | ||||
| 	AND A		   ; 0 - read | ||||
| 	JR Z,.reset_Z | ||||
| 	CP #FF                  ; write | ||||
| 	CP #FF		  ; write | ||||
| 	JR Z,.keep_Z | ||||
| 
 | ||||
| 	CP 5                    ; old read  | ||||
| 	CP 5		    ; old read  | ||||
| 	JR Z,.reset_Z | ||||
| 	CP 6                    ; old write  | ||||
| 	CP 6		    ; old write  | ||||
| 	JR Z,.keep_Z | ||||
| 
 | ||||
| 	CP #46 | ||||
| @ -499,19 +499,19 @@ BLK_RD_WR: | ||||
| 	RET | ||||
| 
 | ||||
| .reset_Z: | ||||
| 	INC A                   ; set Z for WRITE | ||||
| 	INC A		   ; set Z for WRITE | ||||
| .keep_Z: | ||||
| 	EX AF,AF' | ||||
|         ; | ||||
| 	; | ||||
| 
 | ||||
| 	PUSH HL | ||||
| 	PUSH BC | ||||
| 	LD C,SLOT1 | ||||
| 	IN B,(C) | ||||
|         LD H,A | ||||
| 	LD H,A | ||||
| 	LD A,SYS_PAGE | ||||
| 	OUT (SLOT1),A | ||||
|         LD A,H | ||||
| 	LD A,H | ||||
| 
 | ||||
| 	LD H,high (SYS_PAGE.RAMD_FAT - #4000 - #4000) | ||||
| 	LD L,A | ||||
| @ -562,7 +562,7 @@ BLK_RD_WR: | ||||
| 	RES 7,D | ||||
| 	SET 6,D | ||||
| 
 | ||||
| .BLK_CONT1:		        ; DE - RamDisk, HL - data | ||||
| .BLK_CONT1:			; DE - RamDisk, HL - data | ||||
| 	EX AF,AF' | ||||
| 	JR Z,.NO_EX_RW1		; WRITE | ||||
| 	EX DE,HL		; for READ | ||||
| @ -574,7 +574,7 @@ BLK_RD_WR: | ||||
| 	DUP 16 | ||||
| 	 LDI | ||||
| 	EDUP | ||||
|                  | ||||
| 		 | ||||
| 	DEC A | ||||
| 	JR NZ,.BLK_LL1 | ||||
| 
 | ||||
| @ -582,7 +582,7 @@ BLK_RD_WR: | ||||
| 	JR Z,.NO_EX_RW2		; WRITE | ||||
| 	EX DE,HL		; for READ | ||||
| .NO_EX_RW2: | ||||
| 	EX AF,AF'       ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï | ||||
| 	EX AF,AF'	  ; DEC C ¯à®ªàã⨫áï 256 à § ¨ ¢¥àã«áï | ||||
| 	INC B		; B 㦥 㬥ì訫áï   1, | ||||
| 	DEC B | ||||
| 	JP Z,.BLK_EXIT_1 | ||||
| @ -628,7 +628,7 @@ BLK_RD_WR: | ||||
| 
 | ||||
| .BLK_EXIT_1: | ||||
| 	LD A,D | ||||
|         DEC A | ||||
| 	DEC A | ||||
| 	RLCA | ||||
| 	LD A,C | ||||
| 	JR  C,.BLK_EXIT_2 | ||||
| @ -645,19 +645,19 @@ BLK_RD_WR: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
|         ;**************************************** | ||||
|         ;!!!!! READ_ROM_PAGE_X ç⥨¥ ¯®á«¥¤¨å | ||||
|         ; 256 ¡ ©â®¢ <20>‡“ ¢ á«ã¦¥¡ãî áâà ¨æã § ç¥¬-â® | ||||
|         ; READ_ROM_PAGE_X: | ||||
|         ; 	LD DE,0 | ||||
|         ; 	LD BC,#100						; ®¤¨ ᥪâ®à | ||||
|         ; 	PUSH DE | ||||
|         ; 	PUSH BC | ||||
|         ; 	LD HL,#3F00 | ||||
|         ; 	LD DE,#FF00 | ||||
|         ; 	LD A,#1F						; last page ROM | ||||
|         ; 	JR ROM_DISK.loopRead | ||||
|         ;**************************************** | ||||
| 	;**************************************** | ||||
| 	;!!!!! READ_ROM_PAGE_X ç⥨¥ ¯®á«¥¤¨å | ||||
| 	; 256 ¡ ©â®¢ <20>‡“ ¢ á«ã¦¥¡ãî áâà ¨æã § ç¥¬-â® | ||||
| 	; READ_ROM_PAGE_X: | ||||
| 	; 	LD DE,0 | ||||
| 	; 	LD BC,#100						; ®¤¨ ᥪâ®à | ||||
| 	; 	PUSH DE | ||||
| 	; 	PUSH BC | ||||
| 	; 	LD HL,#3F00 | ||||
| 	; 	LD DE,#FF00 | ||||
| 	; 	LD A,#1F						; last page ROM | ||||
| 	; 	JR ROM_DISK.loopRead | ||||
| 	;**************************************** | ||||
| 
 | ||||
| ; —⥨¥ á ROM-Disk | ||||
| ; HL -  ¤à¥á, ªã¤  ç¨â âì | ||||
| @ -665,10 +665,10 @@ BLK_RD_WR: | ||||
| ; B  - ç¨á«® ᥪâ®à®¢ | ||||
| ; A' - à §¬¥à ᥪâ®à  (1 - 256b, 2 - 512 b) | ||||
| ROM_DISK: | ||||
|         ; á®åà ï¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
|         ;LD A,R | ||||
| 	; á®åà ï¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| 	;LD A,R | ||||
| 	EX AF,AF' | ||||
|         LD C,0                                                          ; áç¥â稪 | ||||
| 	LD C,0							  ; áç¥â稪 | ||||
| 	DEC A | ||||
| 	JR Z,.loop | ||||
| 	;JR Z,.start | ||||
| @ -682,18 +682,18 @@ ROM_DISK: | ||||
| 	LD A,B | ||||
| 	ADD A,A | ||||
| 	LD B,A | ||||
|         ;!!!!! | ||||
| 	;!!!!! | ||||
| 	RET C | ||||
| 
 | ||||
|         DI | ||||
|         CALL .loop | ||||
| ;         ; ¢®ááâ  ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| 	DI | ||||
| 	CALL .loop | ||||
| ;	 ; ¢®ááâ  ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| ; 	EX AF,AF' | ||||
| ;         JP PO,.noInterrupts | ||||
| ;         EI | ||||
| ;	 JP PO,.noInterrupts | ||||
| ;	 EI | ||||
| ; .noInterrupts: | ||||
| ; 	EX AF,AF' | ||||
| ;         ; | ||||
| ;	 ; | ||||
| 	RET C | ||||
| 	AND A | ||||
| 	RR D | ||||
| @ -702,39 +702,39 @@ ROM_DISK: | ||||
| 	RET | ||||
| 
 | ||||
| ; .start: | ||||
| ;         DI | ||||
| ;         CALL .loop | ||||
| ;         ; ¢®ááâ  ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| ;	 DI | ||||
| ;	 CALL .loop | ||||
| ;	 ; ¢®ááâ  ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| ; 	EX AF,AF' | ||||
| ;         JP PO,.noInterrupts2 | ||||
| ;         EI | ||||
| ;	 JP PO,.noInterrupts2 | ||||
| ;	 EI | ||||
| ; .noInterrupts2: | ||||
| ; 	EX AF,AF' | ||||
| ;         ; | ||||
| ; 	RET      | ||||
| ;	 ; | ||||
| ; 	RET	 | ||||
| 
 | ||||
| 
 | ||||
| .loop:	PUSH DE                                                         ; ®¬¥à ᥪâ®à  | ||||
| .loop:	PUSH DE							 ; ®¬¥à ᥪâ®à  | ||||
| 	PUSH BC | ||||
| 
 | ||||
| 	LD A,E | ||||
| 	AND #3F								; ADRESS in ROM-Page | ||||
| 	PUSH AF                                                         ; á®åà ¨âì  ¤à¥á | ||||
| 	PUSH AF							 ; á®åà ¨âì  ¤à¥á | ||||
| 
 | ||||
| 	EX DE,HL                                                        ; DE -  ¤à¥á ¡ãä¥à  | ||||
| 	EX DE,HL							; DE -  ¤à¥á ¡ãä¥à  | ||||
| 	ADD HL,HL | ||||
| 	ADD HL,HL                                                       ; H - ®¬¥à ¡ ª¨ | ||||
| 	ADD HL,HL							  ; H - ®¬¥à ¡ ª¨ | ||||
| 
 | ||||
| 	LD A,(ROM_DISK.Pages.Number) | ||||
| 	INC H | ||||
| 	CP H | ||||
| 	LD L,H | ||||
| 	LD H, high ROM_DISK.Pages.Number                                ; ROM-Disk pages! | ||||
| 	LD A,(HL)                                                       ; PAGE-ROM | ||||
| 	LD H, high ROM_DISK.Pages.Number				; ROM-Disk pages! | ||||
| 	LD A,(HL)							  ; PAGE-ROM | ||||
| 
 | ||||
| 	POP HL                                                          ; ¢®ááâ ®¢¨âì  ¤à¥á ¢ ROM-Page | ||||
| 	LD L,0                                                          ; ¥á«¨ ¤ «¥ª® § å®â¥«¨ - ¢ë室 á ®è¨¡ª®© | ||||
| 	JR C,.errorExit                                                 ; ROM-Disk-end | ||||
| 	POP HL							  ; ¢®ááâ ®¢¨âì  ¤à¥á ¢ ROM-Page | ||||
| 	LD L,0							  ; ¥á«¨ ¤ «¥ª® § å®â¥«¨ - ¢ë室 á ®è¨¡ª®© | ||||
| 	JR C,.errorExit						 ; ROM-Disk-end | ||||
| ; DE - ¡ãä¥à | ||||
| ; HL -  ¤à¥á ¢ ROM | ||||
| ; B - ç¨á«® ᥪâ®à®¢ | ||||
| @ -757,37 +757,37 @@ ROM_DISK: | ||||
| ; DE - next address | ||||
| ; HL - ROM address | ||||
| .readNext: | ||||
|         POP BC								; ç¨á«® ᥪâ®à®¢ | ||||
| 	POP BC								; ç¨á«® ᥪâ®à®¢ | ||||
| 
 | ||||
|         INC C								; áç¥â稪 áç¨â ëå ᥪâ®à®¢ | ||||
|         DEC B								; ᥪâ®à  ª®ç¨«¨áì? | ||||
| 	INC C								; áç¥â稪 áç¨â ëå ᥪâ®à®¢ | ||||
| 	DEC B								; ᥪâ®à  ª®ç¨«¨áì? | ||||
| 
 | ||||
|         JR Z,.normExit | ||||
|         BIT 6,H								; ç⥨¥ ¥ § ª®ç¥® | ||||
| 	JR Z,.normExit | ||||
| 	BIT 6,H								; ç⥨¥ ¥ § ª®ç¥® | ||||
| 
 | ||||
|         PUSH BC								; á®åà ¨âì áç¥â稪¨ | ||||
|         JR Z,.loopRead							; ç¨â âì ¤ «ìè¥ | ||||
|         POP BC | ||||
| 	PUSH BC								; á®åà ¨âì áç¥â稪¨ | ||||
| 	JR Z,.loopRead							; ç¨â âì ¤ «ìè¥ | ||||
| 	POP BC | ||||
| 
 | ||||
|         POP HL								; ®¬¥à ᥪâ®à  | ||||
| 	POP HL								; ®¬¥à ᥪâ®à  | ||||
| 
 | ||||
|         LD A,B | ||||
|         LD B,0 | ||||
|         ADD HL,BC | ||||
|         LD B,A								; ¢ëç¨á«¨âì á«¥¤.ᥪâ®à | ||||
| 	LD A,B | ||||
| 	LD B,0 | ||||
| 	ADD HL,BC | ||||
| 	LD B,A								; ¢ëç¨á«¨âì á«¥¤.ᥪâ®à | ||||
| 
 | ||||
|         EX DE,HL							; ⥯¥àì HL -  ¤à¥á, DE ᥪâ®à, B - ᪮«ìª® ¥é¥ ç¨â âì | ||||
| 	EX DE,HL							; ⥯¥àì HL -  ¤à¥á, DE ᥪâ®à, B - ᪮«ìª® ¥é¥ ç¨â âì | ||||
| 
 | ||||
|         JP .loop							;  ç âì ¢á¥ á®¢ ! | ||||
| 	JP .loop							;  ç âì ¢á¥ á®¢ ! | ||||
| ; ç⥨¥ § ª®ç¥® | ||||
| .normExit: | ||||
| 	POP HL								; ᥪâ®à, ®âªã¤  ¢¥«®áì ç⥨¥ | ||||
| 	ADD HL,BC							; ¯® ¢®§¢à âã: HL - á«¥¤. ¤à¥á | ||||
| 	EX DE,HL							;              DE - á«¥¤.ᥪâ®à | ||||
| 	EX DE,HL							;		 DE - á«¥¤.ᥪâ®à | ||||
| 	AND A | ||||
| 	RET | ||||
| ; ®è¨¡ª  | ||||
| .errorExit:                                                             ; !TODO ᤥ« âì, ç⮡   ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ëå ᥪâ®à®¢ | ||||
| .errorExit:								; !TODO ᤥ« âì, ç⮡   ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ëå ᥪâ®à®¢ | ||||
| 	POP BC | ||||
| 	POP DE | ||||
| 	SCF | ||||
| @ -814,8 +814,8 @@ ROM_DISK: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;               ¢å®¤:  DE - ram_disk trk_sec, A - RAM-Disk | ||||
| ;               ¢ë室: HL -  ¤à¥á, A - page | ||||
| ;		  ¢å®¤:  DE - ram_disk trk_sec, A - RAM-Disk | ||||
| ;		  ¢ë室: HL -  ¤à¥á, A - page | ||||
| RAMD_CALC_PAGE: | ||||
| 	CP 16 | ||||
| 	CCF | ||||
| @ -843,32 +843,32 @@ RAMD_CALC_PAGE: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;       ‚室: | ||||
| ;        A - RAM Disk ID | ||||
| ;       ‚ë室: | ||||
| ;         A - Number (0..15) | ||||
| ;	  ‚室: | ||||
| ;	A - RAM Disk ID | ||||
| ;	  ‚ë室: | ||||
| ;	 A - Number (0..15) | ||||
| GET_RAMD_NUM: | ||||
|         EX      AF,AF' | ||||
|         IN      A,(SLOT1) | ||||
|         EX      AF,AF' | ||||
|         LD      BC,SYS_PAGE * 256 + SLOT1 | ||||
|         OUT     (C),B | ||||
| 	EX	 AF,AF' | ||||
| 	IN	 A,(SLOT1) | ||||
| 	EX	 AF,AF' | ||||
| 	LD	 BC,SYS_PAGE * 256 + SLOT1 | ||||
| 	OUT	(C),B | ||||
| 
 | ||||
|         LD      HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 | ||||
|         LD      BC,SYS_PAGE.RAMD_KEYS.NUM | ||||
|         CPIR | ||||
| 	LD	 HL,SYS_PAGE.RAMD_KEYS - #4000 - #4000 | ||||
| 	LD	 BC,SYS_PAGE.RAMD_KEYS.NUM | ||||
| 	CPIR | ||||
| 
 | ||||
|         EX      AF,AF' | ||||
|         OUT     (SLOT1),A | ||||
|         EX      AF,AF' | ||||
| 	EX	 AF,AF' | ||||
| 	OUT	(SLOT1),A | ||||
| 	EX	 AF,AF' | ||||
| 
 | ||||
|         SCF | ||||
|         RET     PE | ||||
| 	SCF | ||||
| 	RET	PE | ||||
| 
 | ||||
|         DEC     L | ||||
|         LD      A,L | ||||
|         SUB     low SYS_PAGE.RAMD_KEYS | ||||
|         RET       | ||||
| 	DEC	L | ||||
| 	LD	 A,L | ||||
| 	SUB	low SYS_PAGE.RAMD_KEYS | ||||
| 	RET	  | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| @ -876,12 +876,12 @@ GET_RAMD_NUM: | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ; [x] 04/11/2023 | ||||
| ;       ‚室: | ||||
| ;        B = 0:	  swap to Sp | ||||
| ;	  ‚室: | ||||
| ;	B = 0:	  swap to Sp | ||||
| ;	 B = #FF: swap to ZX | ||||
| ;	 B = #FE: no swap, only get info | ||||
| ;       ‚ë室: | ||||
| ;         A - current RAM Drives set | ||||
| ;	  ‚ë室: | ||||
| ;	 A - current RAM Drives set | ||||
| SWAP_RAM_DRIVES: | ||||
| 	IN	A,(SLOT3) | ||||
| 	EX	AF,AF' | ||||
| @ -928,7 +928,7 @@ SWAP_RAM_DRIVES: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;         ¢ë室¥ ¯à¨ € = 0 ¤®«¦¥ ¡ëâì ãáâ ®¢«¥ ä« £ Z | ||||
| ;	    ¢ë室¥ ¯à¨ € = 0 ¤®«¦¥ ¡ëâì ãáâ ®¢«¥ ä« £ Z | ||||
| ; ¥ 㡨¢ ¥â DE ¨ BC | ||||
| GET_RAMD_ST: | ||||
| 	CP SYS_PAGE.RAMD_KEYS.NUM | ||||
| @ -959,7 +959,7 @@ GET_RAMD_ST: | ||||
| 
 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ;               RAM-Disk A, BLK - B | ||||
| ;		  RAM-Disk A, BLK - B | ||||
| BLK_TO_RAMD: | ||||
| 	CP SYS_PAGE.RAMD_KEYS.NUM | ||||
| 	CCF | ||||
|  | ||||
| @ -391,39 +391,36 @@ REINIT:	DEC     B | ||||
| ; | ||||
| 
 | ||||
| ;[x] | ||||
| .Restart: | ||||
| 	DI | ||||
| 	LD      A,0 | ||||
| 	LD      BC,#1FFD | ||||
| 	OUT     (C),A | ||||
| 	LD      B,#7F | ||||
| 	OUT     (C),A | ||||
| 	LD      A,#40 | ||||
| 	OUT     (SLOT3),A | ||||
| 	LD      A,5 | ||||
| 	OUT     (SLOT1),A | ||||
| 	LD      A,2 | ||||
| 	OUT     (SLOT3),A | ||||
| 	LD      A,0 | ||||
| 	OUT     (SLOT0),A | ||||
| 	OUT     (RGADR),A | ||||
| 	OUT     (RGMOD),A | ||||
| 	JP 0                                                            ;Restart | ||||
| .Restart:	DI | ||||
| 		XOR	A | ||||
| 		LD      BC,#1FFD | ||||
| 		OUT     (C),A | ||||
| 		LD      B,#7F | ||||
| 		OUT     (C),A | ||||
| 		OUT     (RGADR),A | ||||
| 		OUT     (RGMOD),A | ||||
| 		OUT     (SLOT0),A | ||||
| 		LD      A,5 | ||||
| 		OUT     (SLOT1),A | ||||
| 		LD      A,2 | ||||
| 		OUT     (SLOT2),A | ||||
| 		LD      A,DCP_PAGE | ||||
| 		OUT     (SLOT3),A | ||||
| 		JP	0						;Restart | ||||
| ; | ||||
| 
 | ||||
| ; | ||||
| .SoftReset: | ||||
|         DI | ||||
| 	LD A,#10 | ||||
| 	LD BC,#1FFD | ||||
| 	OUT (C),A							; 8-ï áâà ¨æ  !! | ||||
| 
 | ||||
| 	LD A,RESET_PAGE | ||||
| 	OUT (SLOT3),A | ||||
| 	LD A,CNF_PORT.TURBO.OFF | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| .loop2:	LD (#C000),A                                                    ; Soft RESET !!! | ||||
| 	JR .loop2 | ||||
| .SoftReset:	DI | ||||
| 		LD A,#10 | ||||
| 		LD BC,#1FFD | ||||
| 		OUT (C),A						; 8-ï áâà ¨æ  !! | ||||
| 		; | ||||
| 		LD A,RESET_PAGE | ||||
| 		OUT (SLOT3),A | ||||
| 		LD A,CNF_PORT.TURBO.OFF | ||||
| 		OUT (SYS_PORT.ROM),A | ||||
| .loop2:		LD (#C000),A						; Soft RESET !!! | ||||
| 		JR .loop2 | ||||
| ; | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
|  | ||||
| @ -63,8 +63,8 @@ FN_CRIPT: | ||||
| 	; BoardID_start old address     #312A | ||||
| 	; BoardID_end old address       #312D | ||||
| .board_id: | ||||
| 	LD	HL,(ROM_NUMBER.part1) ;rdlow-ok | ||||
| 	LD	A,(ROM_NUMBER.part2)  ;rdlow-ok | ||||
| 	LD	HL,(BOARD_INFO.number) ;rdlow-ok | ||||
| 	LD	A,(BOARD_INFO.type)  ;rdlow-ok | ||||
| 	LD	BC,(BoardID.start)    ;rdlow-ok | ||||
| 	LD	DE,(BoardID.end)      ;rdlow-ok | ||||
| 	AND	A | ||||
|  | ||||
| @ -811,7 +811,7 @@ RESCREEN:	;R06 | ||||
| 		; LD	E,A | ||||
| 		; LD	A,DCP_PAGE | ||||
| 		; OUT	(SLOT3),A | ||||
| 		; LD	A,(#C400)		;c400 for first cfg 50176       ; !TODO ¬®¦® ¯¥à¥¤¥« âì   ¢ë§®¢ äãªæ¨¨ ¡¨®á  | ||||
| 		; LD	A,(#C400)		;c400 for first cfg 50176 | ||||
| 		; LD	D,A | ||||
| 		; LD	A,ACEX.HOLD | ||||
| 		; LD	(#C400),A | ||||
| @ -1142,30 +1142,64 @@ PIDNUM:	LD	HL,memBUFFER.ID | ||||
| 	CALL	PRINTZ | ||||
| 	RET | ||||
| 
 | ||||
| PIDBOARD: | ||||
|         CALL    FN_CRIPT.board_id | ||||
| PIDBOARD:      	CALL    FN_CRIPT.board_id | ||||
| 		; | ||||
| 	IF MotherBoardType > 0 | ||||
| 		PUSH	AF | ||||
| 	ENDIF | ||||
| 		PUSH	DE | ||||
| 		PUSH	HL | ||||
| 		PUSH	BC | ||||
| 		LD	A,B | ||||
| 		CALL	PRNHEX | ||||
| 		LD	A,'-' | ||||
| 		CALL	PRINT_CHAR | ||||
| 		POP	BC | ||||
| 		LD	A,C | ||||
| 		CALL	PRNHEX | ||||
| 		LD	A,'-' | ||||
| 		CALL	PRINT_CHAR | ||||
| 		POP	HL | ||||
| 		CALL	IZPRINT | ||||
| 		POP	DE | ||||
| 		PUSH	DE | ||||
| 		LD	A,D | ||||
| 		CALL	PRNHEX | ||||
| 		POP	DE | ||||
| 		LD	A,E | ||||
| 	IF MotherBoardType == 0 | ||||
| 		JP	PRNHEX | ||||
| 	ELSE | ||||
| 		CALL	PRNHEX | ||||
| 		LD	A,' ' | ||||
| 		CALL	PRINT_CHAR | ||||
| 		POP	AF | ||||
| 		; type 0 - Classic | ||||
| 		RET	Z | ||||
| 		; type 1 - DX | ||||
| 		LD	HL,.ver_DX	 | ||||
| 		DEC	A | ||||
| 		JP	Z,PRINTZ | ||||
| 		; type 2 - DP | ||||
| 		LD	HL,.ver_DP	 | ||||
| 		DEC	A | ||||
| 		JP	Z,PRINTZ | ||||
| 		; type 3 - Max | ||||
| 		LD	HL,.ver_Max	 | ||||
| 		DEC	A | ||||
| 		JP	Z,PRINTZ | ||||
| 		; type 4 - test | ||||
| 		LD	HL,.Test	 | ||||
| 		DEC	A | ||||
| 		JP	Z,PRINTZ | ||||
| 		RET | ||||
| 		; | ||||
| .ver_DX:	DZ	"DX" | ||||
| .ver_DP:	DZ	"DP" | ||||
| .ver_Max:	DZ	"Max" | ||||
| .Test		DZ	"0123456789A" | ||||
| 	ENDIF | ||||
| 
 | ||||
| 	PUSH	DE | ||||
| 	PUSH	HL | ||||
| 	PUSH	BC | ||||
| 	LD	A,B | ||||
| 	CALL	PRNHEX | ||||
| 	LD	A,'-' | ||||
| 	CALL	PRINT_CHAR | ||||
| 	POP	BC | ||||
| 	LD	A,C | ||||
| 	CALL	PRNHEX | ||||
| 	LD	A,'-' | ||||
| 	CALL	PRINT_CHAR | ||||
| 	POP	HL | ||||
| 	CALL	IZPRINT | ||||
| 	POP	DE | ||||
| 	PUSH	DE | ||||
| 	LD	A,D | ||||
| 	CALL	PRNHEX | ||||
| 	POP	DE | ||||
| 	LD	A,E | ||||
| 	JP	PRNHEX | ||||
| 
 | ||||
| CNF_VER_PRINT: | ||||
|  	LD	HL,memBUFFER.ID | ||||
|  | ||||
| @ -259,7 +259,7 @@ SHOW_LOGO:	LD	IX,win_descriptor.tab320x256 | ||||
| 	SAFE_PORTY | ||||
| 
 | ||||
| 		DI | ||||
| 		 LD	A,1 | ||||
| 		 LD	A,SYS_PORT.PAGE0 | ||||
|         	 OUT	(SYS_PORT.ON),A   | ||||
| 		 OUT	(ROM.SLOT0),A | ||||
| 
 | ||||
| @ -283,21 +283,12 @@ SHOW_LOGO:	LD	IX,win_descriptor.tab320x256 | ||||
| 	SAFE_PORTY | ||||
| 
 | ||||
| 		DI | ||||
| 		 LD     A,1 | ||||
| 		 LD     A,SYS_PORT.PAGE0 | ||||
| 		 OUT    (SYS_PORT.ON),A   | ||||
| 		 ;LD     A,1 | ||||
| 		 OUT    (ROM.SLOT0),A | ||||
| 
 | ||||
| 		 LD     HL,MAIN_LOGO.Raster	;  ç «® ª à⨪¨ ¢ ¡ ª¥ <20>‡“ | ||||
| 		; CALL   DECODE | ||||
| 		 CALL   LOGO_TO_SCREEN | ||||
|         	 ; | ||||
|         	 ;--------------[<5B> áå «ª ]--------------[] | ||||
|         	 IF Pashalki | ||||
|         	        _PASHALKI_CODE  | ||||
|         	 ENDIF | ||||
|         	 ;--------------------------------------[] | ||||
|         	 ; | ||||
| 		 XOR    A | ||||
|         	 OUT    (SYS_PORT.ON),A   | ||||
| 		 OUT    (ROM.SLOT0),A | ||||
|  | ||||
| @ -14,6 +14,7 @@ BIOS_ver_hex		EQU	EXP_ID.VER*256+EXP_ID.MOD | ||||
|         DEFINE BoardID_start	#5283
 | ||||
|         DEFINE BoardID_end	#47E8
 | ||||
|         DEFINE MotherBoardID	#0000
 | ||||
| 	DEFINE MotherBoardType	#00	; !TODO 0 - Legacy, 1 - DX, 2 - Max
 | ||||
| ;======================================= | ||||
| 
 | ||||
| ;============[For ROM part]=============	;!FIXIT ¢ë ¥ ¯®¨¬ ¥â¥, íâ® ¤à㣮¥)) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik