LP_PR_LINE_DIR готова
This commit is contained in:
		
							parent
							
								
									f8f75dc091
								
							
						
					
					
						commit
						9430a99f2b
					
				| @ -1 +1 @@ | ||||
| Subproject commit 9143dcb7f8fd9cd3ae0bc179b94fced5efd8667f | ||||
| Subproject commit a9f5915a3275f5ffbafa0994bb97c5846aab826c | ||||
| @ -7,6 +7,8 @@ | ||||
| ; | ||||
| ;************************************************************* | ||||
| 
 | ||||
| 	DISPLAY "\r\n/=====================[EXP part]=====================\\" | ||||
| 
 | ||||
| ;*************************************** | ||||
| ;*********** BEGIN EXPANSION *********** | ||||
| ;*************************************** | ||||
| @ -243,9 +245,22 @@ ID_SPRINTER:	DB	'Firmware v' | ||||
| BoardID: | ||||
| .start:         WORD    BoardID_start                                   ; BoardID_start | ||||
| .end:           WORD    BoardID_end                                     ; BoardID_end | ||||
| ;#######################################################################; | ||||
| 
 | ||||
| 
 | ||||
| ;#######################################################################; | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; ROM-Disk pages                                                        ; [x]  ªâ¨¢¨à®¢  ROM-DISK  | ||||
| ROM_DISK.Pages.Number: | ||||
| 	BYTE    ROM_DISK.Pages.Size                                     ; ç¨á«® áâà ¨æ   | ||||
| ; ã áâà ¨æ ¢ëáâ ¢«¥ bit4 ¤«ï ª®à४⮩ ¯®¤áâ ®¢ª¨ | ||||
| ;(¯®¤à®¡¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥¨ï áâࠨ栬¨ <20>‡“) | ||||
| ROM_DISK.Pages:                                                         ; áâà ¨æë ROM-Disk | ||||
|         ABYTE   #10       #05,#06,#07,#09,#0A,#0B                       ; 98304 bytes | ||||
| .Size   EQU     $-ROM_DISK.Pages | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;#######################################################################; | ||||
| 
 | ||||
| ; ;======================================= | ||||
| ; 	BLOCK #100-$,0 | ||||
| 
 | ||||
| 
 | ||||
| ;======================================= | ||||
| @ -1304,48 +1319,39 @@ RESTARTS_PROG:	; !TODO LDConf  | ||||
| ;-----------------------------------------------------------------------; | ||||
| 
 | ||||
| ;----------------------------[Setup Starter]----------------------------; | ||||
| 	MODULE	Setup_Starter | ||||
| ;	¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯®  ¤à¥áã 0C000h | ||||
| ;	¤«ï § ¯ã᪠ Setup | ||||
| Start: | ||||
|   DISP	COMPILE_ADDR.SETUP_STARTER | ||||
| Exec:	LD A,CNF_PORT.CNF_0 + ROM.EXTENSION | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 
 | ||||
| 	LD HL,ROM_MAP.SETUP | ||||
| 	LD DE,MEM_MAP.SETUP | ||||
| 	LD BC,BLOCK_Setup.Length | ||||
| 	LDIR | ||||
| 
 | ||||
| 	LD A,CNF_PORT.CNF_0 + ROM.BIOS | ||||
| 	OUT (SYS_PORT.ROM),A | ||||
| 
 | ||||
|  MODULE	Setup_Starter | ||||
| ; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯®  ¤à¥áã #C000 ¤«ï § ¯ã᪠ Setup | ||||
| Start:	DISP	COMPILE_ADDR.SETUP_STARTER | ||||
| Exec:		LD	A,CNF_PORT.CNF_0 + ROM.EXTENSION | ||||
| 		OUT	(SYS_PORT.ROM),A | ||||
| 		; | ||||
| 		LD	HL,ROM_MAP.SETUP | ||||
| 		LD	DE,MEM_MAP.SETUP | ||||
| 		LD	BC,BLOCK_Setup.Length | ||||
| 		LDIR | ||||
| 		; | ||||
| 		LD	A,CNF_PORT.CNF_0 + ROM.BIOS | ||||
| 		OUT	(SYS_PORT.ROM),A | ||||
| ;-----------[Check SPACE] | ||||
| 	LD A,Port_All_Mode.DEFAULT - Port_All_Mode.SPECTRUM_MODE_OFF	; !HARDCODE | ||||
| 	LD BC,Port_All_Mode					        ; keyboard int & acc off | ||||
| 	OUT (C),A | ||||
| 	LD A,high ZXKeys.Line_7 | ||||
| 	IN A,(ZXKeys) | ||||
| 	CPL | ||||
| 	AND 1 | ||||
| ; ¢ ॣ¨áâॠA ¯¥à¥¤ ñâáï  ¦ â  «¨ ª« ¢¨è  SPACE. | ||||
| ; ¯®â®¬ ¯à®¢¥àï¥âáï ¢ main.asm [space_check] | ||||
| ; ¨ ¥á«¨  ¦ â , â® ¯à®¨á室¨â ¨£®à ¯ à ¬¥âà  | ||||
| ; "<22>ëáâàë© áâ àâ <20>‡“" ¢® ¢à¥¬ï ¯¥à¥§ £à㧪¨ | ||||
| 	EX AF,AF' | ||||
| 	 LD A,#FF							; !HARDCODE | ||||
| 	 OUT (C),A							; keyboard int & acc on, zx_screen & original waits off (for conf >= 3.05) | ||||
| 	EX AF,AF' | ||||
| 	; ¢ CF ¯¥à¥¤ ñâáï  ¦ â  «¨ ª« ¢¨è  SPACE. CF=0: ª« ¢¨è   ¦ â  | ||||
| 	; ¯®â®¬ ¯à®¢¥àï¥âáï ¢ main.asm [space_check] ¨ ¥á«¨  ¦ â , | ||||
| 	; â® ¯à®¨á室¨â ¨£®à ¯ à ¬¥âà  "<22>ëáâàë© áâ àâ <20>‡“" | ||||
| 	; ¢® ¢à¥¬ï ¯¥à¥§ £à㧪¨ ¢ [Check Quick Start ROM] | ||||
| 		LD	BC,Port_All_Mode			         | ||||
| 		IN	H,(C)						; ¨«¨ LD H,#FF | ||||
| 		LD	A,Port_All_Mode.DEFAULT - Port_All_Mode.SPECTRUM_MODE_OFF | ||||
| 		OUT	(C),A						; keyboard int & acc off | ||||
| 		LD	A,high ZXKeys.Line_7 | ||||
| 		IN	A,(ZXKeys) | ||||
| 		RRA		; CF=0 ª« ¢¨è   ¦ â  | ||||
| ;----------------------[] | ||||
|         DI  | ||||
|         POP	HL                                                      ;  ¤à¥á ¢®§¢à â  ¢ EXP ¨§ SETUP | ||||
|         ; LD	SP,#8000                                                ;!HARDCODE  | ||||
|         ; PUSH	HL | ||||
|         ; PUSH	AF | ||||
|         JP SETUP_MAIN | ||||
|   ENT | ||||
| 		OUT	(C),H | ||||
| 		DI  | ||||
| 		POP	HL      					;  ¤à¥á ¢®§¢à â  ¢ EXP ¨§ SETUP | ||||
| 		JP SETUP_MAIN | ||||
| 	ENT | ||||
| Size		EQU $-Setup_Starter.Start | ||||
| 	ENDMODULE | ||||
|  ENDMODULE | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;  | ||||
| @ -1490,29 +1496,37 @@ kbd_loop2: | ||||
| 	AND A | ||||
| 	RET | ||||
| ;----------------------------------------------------------------------; | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;----------------------------------------------------------------------; | ||||
| ; DE - ç áâ®â  | ||||
| ; HL - ¯à®¤®«¦¨â¥«ì®áâì | ||||
| BEEP:		LD	A,#10 | ||||
| 		CALL	.beep_loop | ||||
| 		; | ||||
| 		;XOR	A | ||||
| 		CALL	.beep_loop | ||||
| 		; | ||||
| 		DEC	HL | ||||
| 		LD	A,H | ||||
| 		OR	L | ||||
| 		JR	NZ,BEEP | ||||
| 		RET | ||||
| 		; | ||||
| .beep_loop:	OUT	(ZX_Beeper),A | ||||
| 		LD	B,D | ||||
| 		LD	C,E | ||||
| 		; | ||||
| .loop:		DEC	BC | ||||
| 		LD	A,B | ||||
| 		OR	C | ||||
| 		JR	NZ,.loop | ||||
| 		RET | ||||
| ;----------------------------------------------------------------------; | ||||
| 
 | ||||
| 
 | ||||
| ;#######################################################################; | ||||
| ;#######################################################################; | ||||
| ;-----------------------------------------------------------------------; | ||||
| ; ROM-Disk pages                                                        ; [x]  ªâ¨¢¨à®¢  ROM-DISK  | ||||
|         _mInfoALIGN 256,#FF | ||||
| ;	BLOCK #3F00-$,#FF | ||||
| ROM_DISK.Pages.Number: | ||||
| 	BYTE    ROM_DISK.Pages.Size                                     ; ç¨á«® áâà ¨æ   | ||||
| ; ã áâà ¨æ ¢ëáâ ¢«¥ bit4 ¤«ï ª®à४⮩ ¯®¤áâ ®¢ª¨ | ||||
| ;(¯®¤à®¡¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥¨ï áâࠨ栬¨ <20>‡“) | ||||
| ROM_DISK.Pages:                                                         ; áâà ¨æë ROM-Disk | ||||
|         ABYTE   #10       #05,#06,#07,#09,#0A,#0B                       ; 98304 bytes | ||||
| .Size   EQU     $-ROM_DISK.Pages | ||||
| ;-----------------------------------------------------------------------; | ||||
| ;#######################################################################; | ||||
| ; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
| @ -63,14 +63,15 @@ | ||||
| ;				H - ¢ëá®â , L - è¨à¨  | ||||
| ;============================================================= | ||||
| 
 | ||||
|  MACRO	CORRECT_SCR_40 ;[x] ¢ª«î稫 31/10/23, ç¨áâ®   •í««®ããã㨨¨ | ||||
|  MACRO	CORRECT_SCR_40_FORWARD ;[x] ¢ª«î稫 31/10/23, ç¨áâ®   •í««®ããã㨨¨ | ||||
| 		EX	AF,AF' | ||||
| 		 JR	C,.LLL | ||||
| 		 INC	D	; ०¨¬ 40 | ||||
| .LLL:		EX	AF,AF' | ||||
|  ENDM	; | ||||
| 
 | ||||
|  MACRO	CORRECT_SCR_40_BACK | ||||
| 
 | ||||
|  MACRO	CORRECT_SCR_40_BACKWARD | ||||
| 		EX	AF,AF' | ||||
| 		 JR	C,.LLL | ||||
| 		 DEC	D	; ०¨¬ 40 | ||||
| @ -158,7 +159,7 @@ LP_PRINT_ALL:	CALL	LP_BEG_P | ||||
| 		 INC	L | ||||
| 		 LD	(HL),A | ||||
| 		 DEC	L | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -181,7 +182,7 @@ LP_PRINT_SYM:	CALL	LP_BEG_P | ||||
| 		 OUT	(PORT_Y),A | ||||
| .cont:		 LD	(HL),C | ||||
| 		 INC	D | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -206,7 +207,7 @@ LP_PRINT_ATR:	CALL	LP_BEG_P | ||||
| 		 INC	L | ||||
| 		 LD	(HL),C | ||||
| 		 DEC	L | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -237,7 +238,7 @@ LP_PRINT_LINE:	CALL	LP_BEG_P | ||||
| 		 INC	L | ||||
| 		 LD	(HL),A | ||||
| 		 DEC	L | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -260,7 +261,7 @@ LP_PRINT_LINE2:	CALL	LP_BEG_P | ||||
| 		 OUT	(C),D | ||||
| 		 INC	D | ||||
| 		 LD	(HL),A | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -299,7 +300,7 @@ LP_PRINT_LINE3:	CALL	LP_BEG_P | ||||
| 		 INC	L | ||||
| 		 LD	(HL),A | ||||
| 		 DEC	L | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -330,7 +331,7 @@ LP_PRINT_LINE4:	CALL	LP_BEG_P | ||||
| .NoEndSymbol:	EXX | ||||
| 		 LD	(HL),A | ||||
| 		 INC	D | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -364,7 +365,7 @@ LP_PRINT_LINE5:	CALL	LP_BEG_P | ||||
| 		 LD	(HL),A | ||||
| 		 DEC	L | ||||
| 		 INC	D | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -378,8 +379,8 @@ LP_END_P:	LD	A,SYS_PAGE | ||||
| 		EXX | ||||
| 		 RLA | ||||
| 		 LD	E,A | ||||
| 		 LD	(WIN_ID_0.reg_HL),HL	; ¬¥áâ® ¯¥ç â¨ | ||||
| 		 LD	(WIN_ID_0.reg_DE),DE | ||||
| 		 LD	(WIN_ID_0.LineAddr),HL			; ¬¥áâ® ¯¥ç â¨ | ||||
| 		 LD	(WIN_ID_0.ColumnRGADR_TXTMode),DE | ||||
| 		 LD	(WIN_ID_0.reg_BC),BC | ||||
| 		 CALL	LP_CLOSE_PG | ||||
| 		EXX | ||||
| @ -413,7 +414,7 @@ LP_PRINT_LINE6:	CALL	LP_BEG_P | ||||
| 		EXX | ||||
| 		 LD	(HL),A | ||||
| 		 INC	D | ||||
| 		 CORRECT_SCR_40 | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		 DJNZ_NEXT_HL | ||||
| 		EXX | ||||
| 		DJNZ	.loop | ||||
| @ -466,15 +467,25 @@ LP_GET_PLACE:	CALL	LP_BEG_P | ||||
| ;-------------------------------------------------------------[#89, #8D] | ||||
| ;--------------------------------------------------------[#8D] | ||||
| LP_CLS_WIN2:	LD	C,A | ||||
| 		JR	CLS_WIN | ||||
| 		JR	LP_CLS_WIN.START | ||||
| ;--------------------------------------------------------[#8D] | ||||
| ;--------------------------------------------------------[#89] | ||||
| LP_CLS_WIN:	LD	C,' ' | ||||
| ;----------------           -----------------------------[#89] | ||||
| CLS_WIN:	CALL	LP_BEG_P | ||||
| 		LD	(SYS_PAGE.SYS_WORK1),BC	; á®åà ¨âì æ¢¥â	; !TODO ¨á¯®«ì§®¢ âì ¯¥à¥¬¥ë¥ ®ª  | ||||
| 		PUSH	DE | ||||
| .START:		CALL	LP_BEG_P | ||||
| 		CALL	.CLS | ||||
| 		JP	LP_END_P.SYS_PAGE | ||||
| 		; | ||||
| .CLS:		LD	(SYS_PAGE.SYS_WORK1),BC	; á®åà ¨âì æ¢¥â	; !TODO ¨á¯®«ì§®¢ âì ¯¥à¥¬¥ë¥ ®ª  | ||||
| 		PUSH	DE | ||||
| 	; [ ] 02/04/2025 ¯à®¢¥àª    ¯à¥¢ë襨¥ à §¬¥à  ®ª  | ||||
| 		EXX | ||||
| 		 LD	A,B | ||||
| 		EXX | ||||
| 		CP	L | ||||
| 		JR	NC,.loop1 | ||||
| 		LD	L,A | ||||
| 	; | ||||
| .loop1:		CALL	LP_SET_CUR | ||||
| 		PUSH	DE | ||||
| 		EXX | ||||
| @ -492,6 +503,7 @@ CLS_WIN:	CALL	LP_BEG_P | ||||
| 		 LD	(HL),B | ||||
| 		 DEC	L | ||||
| 		 INC	D | ||||
| 		 CORRECT_SCR_40_FORWARD | ||||
| 		EXX | ||||
| 		DJNZ	.loop2 | ||||
| 		; | ||||
| @ -503,8 +515,7 @@ CLS_WIN:	CALL	LP_BEG_P | ||||
| 		JR	NZ,.loop1 | ||||
| 		; | ||||
| 		POP	DE | ||||
| 		CALL	LP_SET_CUR | ||||
| 		JP	LP_END_P.SYS_PAGE | ||||
| 		JP	LP_SET_CUR | ||||
| ;-------------------------------------------------------------[#89, #8D] | ||||
| ; | ||||
| 
 | ||||
| @ -610,9 +621,6 @@ LP_SIZE:	CALL	LP_OPEN_PG | ||||
| 		CALL	LP_CLOSE_PG | ||||
| 		RET	NZ | ||||
| 		; txt 40 | ||||
| 		; LD	A,E | ||||
| 		; ADD	A,A | ||||
| 		; LD	E,A | ||||
| 		SLA	E | ||||
| 		RET | ||||
| ; | ||||
| @ -672,78 +680,6 @@ LP_SET_CUR:	; LP_AT_D: | ||||
| 		RET | ||||
| ;************************************************************* | ||||
| 
 | ||||
| LP_NEXT_HL_DIR:	LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	A,4		;!HARDCODE ¤«¨  ®¤®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  | ||||
| 		ADD	L | ||||
| 		LD	L,A | ||||
| 		LD	A,(WIN_ID_0.V_END) | ||||
| 		CP	L | ||||
| 		CALL	C,.end_line | ||||
| 		; | ||||
| .no_end_line:	LD	A,(WIN_ID_0.H_BEG) | ||||
| 		LD	D,A | ||||
| 		LD	A,(WIN_ID_0.SIZE_REL) | ||||
| 		LD	B,A | ||||
| 		RET | ||||
| 		; | ||||
| .end_line:	LD	A,L | ||||
| 		SUB	4		;!HARDCODE ¤«¨  ®¤®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  | ||||
| 		LD	L,A | ||||
| 		PUSH	HL | ||||
| 		DEC	HL | ||||
| 		PUSH	BC | ||||
| 		PUSH	DE | ||||
| 		EXX | ||||
| 		 PUSH	BC | ||||
| 		 PUSH	HL | ||||
| 		 LD	A,(WIN_ID_0.V_BEG) | ||||
| 		 LD	D,A | ||||
| 		 LD	A,(WIN_ID_0.USER.SIZE_V) | ||||
| 		 LD	B,A | ||||
| 		 LD	E,0		; ¢áî áâப㠮ª  áªà®««¨¬ | ||||
| 		 CALL	LP_SCROLL_UP.RUN | ||||
| 		EXX | ||||
| 		LD	C," " | ||||
| 		; | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	HL,(WIN_ID_0.V_END) | ||||
| 		DEC	L | ||||
| 		DEC	L | ||||
| 		DEC	L | ||||
| 		LD	H,#C3		;!HARDCODE ᬥ饨¥ ¢ áâà ¨æ¥ 3 ª  ç «ã ®¯¨á â¥«¥© íªà   | ||||
| 		; | ||||
| 		LD	A,(WIN_ID_0.H_BEG) | ||||
| 		LD	D,A | ||||
| 		; | ||||
| 		LD	A,#50 | ||||
| 		OUT	(SLOT3),A | ||||
| 		; | ||||
| 		EXX | ||||
| 		 LD	A,(WIN_ID_0.SIZE_REL) | ||||
| 		 LD	B,A | ||||
| .loop_cl_line:	EXX | ||||
| 		LD	A,D | ||||
| 		OUT	(PORT_Y),A | ||||
| 		LD	(HL),C | ||||
| 		INC	D | ||||
| 		CORRECT_SCR_40 | ||||
| 		EXX | ||||
| 		 DJNZ	.loop_cl_line | ||||
| 		; | ||||
| 		 POP	HL | ||||
| 		 POP	BC | ||||
| 		EXX | ||||
| 		POP	DE | ||||
| 		POP	BC | ||||
| 		POP	HL | ||||
| 		; | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		RET | ||||
| 
 | ||||
| 
 | ||||
| ; ¢ëç¨á«¥¨¥ ®¢®£® ¬¥áâ  | ||||
| LP_NEXT_HL:	LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| @ -771,13 +707,13 @@ LP_NEXT_HL:	LD	A,SYS_PAGE | ||||
| LP_BEG_P:	EX	AF,AF' | ||||
| 		EXX | ||||
| 		 CALL	LP_OPEN_PG | ||||
| 		 LD	HL,(WIN_ID_0.reg_HL) | ||||
| 		 LD	DE,(WIN_ID_0.reg_DE) | ||||
| 		 LD	HL,(WIN_ID_0.LineAddr) | ||||
| 		 LD	DE,(WIN_ID_0.ColumnRGADR_TXTMode) | ||||
| 		 LD	BC,(WIN_ID_0.reg_BC) | ||||
| 		 LD	A,E | ||||
| 		 AND	A | ||||
| 		 RRA | ||||
| 		 OUT	(PORT_Y),A | ||||
| 		 ;OUT	(PORT_Y),A | ||||
| 		EXX | ||||
| 		EX	AF,AF' | ||||
| 		RET | ||||
| @ -795,7 +731,8 @@ LP_INI_P:	EX	AF,AF' | ||||
| 		 LD	A,(WIN_ID_0.USER.MODE) | ||||
| 		 BIT	4,A | ||||
| 		 JR	Z,.NO_ZG			; ®âªàë⨥ £à ä¨ç¥áª®£® íªà   | ||||
| 		 LD	DE,(SYS_PAGE.WIN_ZG)		; § ª®£¥¥à â®à | ||||
| 		 ;LD	DE,(SYS_PAGE.WIN_ZG)		; § ª®£¥¥à â®à | ||||
| 		 LD	DE,ZG_ADDRESS			; § ª®£¥¥à â®à | ||||
| 		EXX | ||||
| 		EX	AF,AF' | ||||
| 		CALL	WIN_SET_ZG.SET			;LP_SET_ZG1	;!TODO á⮨⠫¨ ª ¦¤ë© à § § ª¨¤ë¢ âì èà¨äâ? | ||||
| @ -903,10 +840,12 @@ WIN_OPEN:	CALL	.Prepare | ||||
| 		JP	WIN_OPEN_W1 | ||||
| 		; | ||||
| .Prepare:	CALL	LP_OPEN_PG | ||||
| 		LD	(SYS_PAGE.WIN_MAP_SC),IX			; ª àâ  ®ª  | ||||
| 		PUSH	HL | ||||
| 		PUSH	DE | ||||
| 		LD	HL,(SYS_PAGE.WIN_MAP_SC) | ||||
| 		;LD	(SYS_PAGE.WIN_MAP_SC),IX			; ª àâ  ®ª  | ||||
| 		;LD	HL,(SYS_PAGE.WIN_MAP_SC) | ||||
| 		PUSH	IX | ||||
| 		POP	HL | ||||
| 		LD	DE,WIN_ID_0 | ||||
| 		LD	BC,Window_UserVars | ||||
| 		LDIR | ||||
| @ -956,14 +895,14 @@ WIN_OPEN_W1:	LD	A,L | ||||
| 		ADD	A,A | ||||
| 		ADD	A,D | ||||
| 		LD	(IX+Window_Variables.H_END),A | ||||
| 		LD	(SYS_PAGE.WIN_MODE_SC),DE			; ¬¥áâ® ¯® £®à¨§®â «¨ ¨ áâà ¨æ  ¬®¤ë | ||||
| 		;LD	(SYS_PAGE.WIN_MODE_SC),DE			; ¬¥áâ® ¯® £®à¨§®â «¨ ¨ áâà ¨æ  ¬®¤ë | ||||
| 		LD	A,H | ||||
| 		AND	#3F | ||||
| 		ADD	A,A | ||||
| 		ADD	A,A | ||||
| 		LD	L,A | ||||
| 		LD	H,#C3 | ||||
| 		LD	(SYS_PAGE.WIN_MODE_SH),HL			; ¬¥áâ® ¯® ¢¥à⨪ «¨ á  ¤à¥á®¬ | ||||
| 		LD	H,A | ||||
| 		;LD	(SYS_PAGE.WIN_MODE_SH),HL			; ¬¥áâ® ¯® ¢¥à⨪ «¨ á  ¤à¥á®¬ | ||||
| 		LD	(IX+Window_Variables.V_BEG),A | ||||
| 		LD	A,(IX+Window_Variables.USER.SIZE_V) | ||||
| 		ADD	A,A | ||||
| @ -971,7 +910,8 @@ WIN_OPEN_W1:	LD	A,L | ||||
| 		ADD	A,L | ||||
| 		LD	(IX+Window_Variables.V_END),A | ||||
| 		; | ||||
| 		LD	L,(IX+Window_Variables.V_BEG) | ||||
| 		;LD	L,(IX+Window_Variables.V_BEG) | ||||
| 		LD	L,H | ||||
| 		LD	H,#C3 | ||||
| 		LD	B,(IX+Window_Variables.USER.SIZE_V)		; à §¬¥à ¯® ¢¥à⨪ «¨ | ||||
| 		LD	(IX+Window_Variables.WORK_1),0 | ||||
| @ -1015,7 +955,7 @@ WIN_OPEN_W1:	LD	A,L | ||||
| 		; | ||||
| 		LD	A,(IX+Window_Variables.MODE_E) | ||||
| 		AND	1 | ||||
| 		OUT	(RGMOD),A | ||||
| 		OUT	(SCREEN_SWITCH),A | ||||
| 		;LD	A,(IX+Window_Variables.MODE) | ||||
| 		;BIT	4,A | ||||
| 		CALL	LP_CLOSE_PG | ||||
| @ -1023,8 +963,11 @@ WIN_OPEN_W1:	LD	A,L | ||||
| 		CALL	LP_INI_P | ||||
| 		;LD	A,(SYS_PAGE.WIN_MODE_SC) | ||||
| 		;OUT	(RGMOD),A | ||||
| 		CALL	LP_SIZE | ||||
| 		XOR	A | ||||
| 		; ¨£¤¥ ¥ ¡ë«® ®¯¨á ® | ||||
| 		 CALL	LP_SIZE | ||||
| 		 ; DE - à §¬¥àë ®ª  | ||||
| 		; | ||||
| 		XOR	A		;!TODO	®¬¥à ®ª  | ||||
| 		RET | ||||
| ; | ||||
| 
 | ||||
| @ -1278,12 +1221,14 @@ LP_SCROLL_UP:	DEC	E | ||||
| 		CALL	LP_OPEN_PG | ||||
| 		; | ||||
| 		LD	B,E | ||||
| 		LD	E,0		; ¢áî áâப㠮ª  áªà®««¨¬ | ||||
| 		LD	E,0			; ¢áî áâப㠮ª  áªà®««¨¬ | ||||
| 		CALL	.RUN | ||||
| .EXIT:		JP	LP_CLOSE_PG | ||||
| 		JP	LP_CLOSE_PG | ||||
| 		; | ||||
| 		; | ||||
| .RUN:		CALL	LP_SET_CUR	; ¢ëç¨á«¨âì ¯¥à¥¬¥ë¥ ¤«ï áâப¨ | ||||
| .RUN:		CALL	LP_SET_CUR		; ¢ëç¨á«¨âì ¯¥à¥¬¥ë¥ ¤«ï áâப¨ | ||||
| 		PUSH	IX | ||||
| 		LD	IX,(WIN_ID_0.USER.SIZE_H) | ||||
| 		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO | ||||
| 		; ®â«¨ç¨¥ ®â LP_SCROLL_DN | ||||
| 		LD	A,(WIN_ID_0.V_END) | ||||
| @ -1305,20 +1250,26 @@ LP_SCROLL_UP:	DEC	E | ||||
| 		ADD	L | ||||
| 		LD	L,A | ||||
| 		; | ||||
| 		LD	A,C | ||||
| 		LD	A,C			; LD A,(WIN_ID_0.V_END) | ||||
| 		CP	L | ||||
| 		RET	C			; ¥á«¨ ª®¥æ, â® ¢ë室 | ||||
| 		JR	C,.exit			; ¥á«¨ ª®¥æ, â® ¢ë室 | ||||
| 		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| 		PUSH	BC | ||||
| 		LD	A,L | ||||
| 		EXX | ||||
| 		 LD	L,A | ||||
| 		EXX | ||||
| 		LD	A,(WIN_ID_0.USER.SIZE_H) | ||||
| 		;XH | ||||
| 		LD	A,XL			; WIN_ID_0.USER.SIZE_H | ||||
| 		; LD	A,SYS_PAGE | ||||
| 		; OUT	(SLOT3),A | ||||
| 		; LD	A,(WIN_ID_0.USER.SIZE_H) | ||||
| 		ADD	A,A			; ç¨á«® ¡ ©â ¢ áâப¥ ¤«ï ¯¥à¥®á  | ||||
| 		ADD	A,A | ||||
| 		LD	C,A | ||||
| 		LD	B,0 | ||||
| 		; LD	A,#50 | ||||
| 		; OUT	(SLOT3),A		; ®âªàëâì áâà ¨æã ¤«ï ¯¥à¥®á  | ||||
| 		; | ||||
| 		EXX | ||||
| 		 LD	A,D			; ¯®«ãç¨âì ¯®àâ  ç «  áâப¨ | ||||
| @ -1327,6 +1278,7 @@ LP_SCROLL_UP:	DEC	E | ||||
| 		INC	A			; á«¥¤ãî饥 § ç¥¨¥ ¯®àâ  | ||||
| 		LDI | ||||
| 		LDD | ||||
| 		; | ||||
| 		OUT	(PORT_Y),A | ||||
| 		INC	A			; á«¥¤ãî饥 § ç¥¨¥ ¯®àâ  | ||||
| 		LDI | ||||
| @ -1335,6 +1287,7 @@ LP_SCROLL_UP:	DEC	E | ||||
| 		; | ||||
| 		POP	BC | ||||
| 		DJNZ	.loop2 | ||||
| .exit:		POP	IX | ||||
| 		RET | ||||
| 
 | ||||
| 
 | ||||
| @ -1356,6 +1309,8 @@ LP_SCROLL_DN:	DEC	E		;!FIXIT  | ||||
| 		; | ||||
| 		; | ||||
| .RUN:		CALL	LP_SET_CUR | ||||
| 		PUSH	IX | ||||
| 		LD	IX,(WIN_ID_0.USER.SIZE_H) | ||||
| 		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO | ||||
| 		; ®â«¨ç¨¥ ®â LP_SCROLL_UD | ||||
| 		LD	A,(WIN_ID_0.V_BEG) | ||||
| @ -1380,18 +1335,24 @@ LP_SCROLL_DN:	DEC	E		;!FIXIT  | ||||
| 		LD	A,C | ||||
| 		CP	L		; .CONT: L >= A  | ||||
| 		JR	Z,.CONT | ||||
| 		RET	NC		; ¥á«¨ ª®¥æ, â® ¢ë室 | ||||
| 		JR	NC,.exit		; ¥á«¨ ª®¥æ, â® ¢ë室 | ||||
| 		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| .CONT:		PUSH	BC | ||||
| 		LD	A,L | ||||
| 		EXX | ||||
| 		 LD	L,A | ||||
| 		EXX | ||||
| 		LD	A,(WIN_ID_0.USER.SIZE_H) | ||||
| 		; | ||||
| 		LD	A,XL			; WIN_ID_0.USER.SIZE_H | ||||
| 		; LD	A,SYS_PAGE | ||||
| 		; OUT	(SLOT3),A | ||||
| 		; LD	A,(WIN_ID_0.USER.SIZE_H) | ||||
| 		ADD	A,A			; ç¨á«® ¡ ©â ¢ áâப¥ ¤«ï ¯¥à¥®á  | ||||
| 		ADD	A,A | ||||
| 		LD	C,A | ||||
| 		LD	B,0 | ||||
| 		; LD	A,#50 | ||||
| 		; OUT	(SLOT3),A		; ®âªàëâì áâà ¨æã ¤«ï ¯¥à¥®á  | ||||
| 		; | ||||
| 		EXX | ||||
| 		 LD	A,D			; ¯®«ãç¨âì ¯®àâ  ç «  áâப¨ | ||||
| @ -1400,6 +1361,7 @@ LP_SCROLL_DN:	DEC	E		;!FIXIT  | ||||
| 		INC	A			; á«¥¤ãî饥 § ç¥¨¥ ¯®àâ  | ||||
| 		LDI | ||||
| 		LDD | ||||
| 		; | ||||
| 		OUT	(PORT_Y),A | ||||
| 		INC	A			; á«¥¤ãî饥 § ç¥¨¥ ¯®àâ  | ||||
| 		LDI | ||||
| @ -1408,6 +1370,7 @@ LP_SCROLL_DN:	DEC	E		;!FIXIT  | ||||
| 		; | ||||
| 		POP	BC | ||||
| 		DJNZ	.loop2 | ||||
| .exit:		POP	IX | ||||
| 		RET | ||||
| 
 | ||||
| 
 | ||||
| @ -1458,29 +1421,60 @@ WIN_PUT_SYM:	AND	A | ||||
| 		OUT	(SLOT3),A | ||||
| 		; | ||||
| 		EXX | ||||
| 		 ;CORRECT_SCR_40 | ||||
| 		 LD	A,D | ||||
| 		 OUT	(PORT_Y),A | ||||
| 		EXX | ||||
| 		LD	A,L | ||||
| 		EXX | ||||
| 		 LD	(HL),A | ||||
| 		 INC	L | ||||
| 		EXX | ||||
| 		LD	A,H | ||||
| 		EXX | ||||
| 		 LD	(HL),A | ||||
| 		 DEC	L | ||||
| 		 DEC	L | ||||
| 		EXX | ||||
| 		; [ ] 31/03/2025 ¥á«¨ B=0, â® ª« ¤ñ¬ ⮫쪮 ᨬ¢®« | ||||
| 		;		 ¥á«¨ B=1, â® ª« ¤ñ¬ ᨬ¢®« á  âਡã⮬ | ||||
| 		; ᨬ¢®« | ||||
| 		 ; LD	A,L | ||||
| 		 ; EXX | ||||
| 		 ;  LD	(HL),A | ||||
| 		 ;  INC	L | ||||
| 		 ; EXX | ||||
| 		 ; ;  âਡãâ | ||||
| 		 ; LD	A,H | ||||
| 		 ; EXX | ||||
| 		 ;  LD	(HL),A | ||||
| 		 ;  DEC	L | ||||
| 		 ;  DEC	L | ||||
| 		 ; EXX | ||||
| 		 ; ; èà¨äâ | ||||
| 		 ; LD	A,B | ||||
| 		 ; EXX | ||||
| 		 ;  LD	(HL),A | ||||
| 		 ;  INC	L | ||||
| 		 ; EXX | ||||
| 		 ; JP	LP_END_P | ||||
| 		 ; | ||||
| 		; èà¨äâ | ||||
| 		LD	A,B | ||||
| 		OR	A | ||||
| 		JR	Z,.onlySymbol | ||||
| 		DEC	B | ||||
| 		JR	Z,.noChangeZG | ||||
| 		; | ||||
| 		EXX | ||||
| 		 DEC	L | ||||
| 		 LD	(HL),A | ||||
| 		 INC	L | ||||
| 		EXX | ||||
| 		;  âਡãâ | ||||
| .noChangeZG:	LD	A,H | ||||
| 		EXX | ||||
| 		 INC	L | ||||
| 		 LD	(HL),A | ||||
| 		 DEC	L | ||||
| 		EXX | ||||
| 		; ᨬ¢®« | ||||
| .onlySymbol:	LD	A,L | ||||
| 		EXX | ||||
| 		 LD	(HL),A | ||||
| 		EXX | ||||
| 		JP	LP_END_P | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ; HL - à §¬¥à ®ª  | ||||
| ; DE - ¯®«®¦¥¨¥ ®ª  | ||||
| ; A - ®¬¥à ®ª  | ||||
| @ -1506,72 +1500,62 @@ WIN_MOVE:	AND	A | ||||
| ; DE - ¬¥áâ® á®åà ï¥¬®£® ®ª  | ||||
| ; IX -  ¤à¥á á®åà ï¥¬®£® ®ª , ¢ áâà ¨æ¥ 4000h | ||||
| ; € - ®¬¥à ®ª , B - áâà ¨æ  | ||||
| WIN_COPY: | ||||
| 		AND	A | ||||
| WIN_COPY:	AND	A | ||||
| 		SCF | ||||
| 		RET	NZ | ||||
| WIN_COPY_WIN1: | ||||
| 		CALL	LP_BEG_P | ||||
| 
 | ||||
| WIN_COPY_WIN1:	CALL	LP_BEG_P | ||||
| 		IN	A,(SLOT1) | ||||
| 		PUSH	AF | ||||
| 
 | ||||
| 		; | ||||
| 		CALL	LP_SET_CUR | ||||
| 		LD	(SYS_PAGE.SYS_WORK1),SP | ||||
| 
 | ||||
| 		LD	A,B | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	A,#50 | ||||
| 		OUT	(SLOT1),A | ||||
| 
 | ||||
| 		; | ||||
| 		EXX | ||||
| 		 RES	7,H | ||||
| 		 LD	C,D | ||||
| 		EXX | ||||
| 
 | ||||
| .COPY_loop2: | ||||
| 		LD	A,L | ||||
| 		; | ||||
| .COPY_loop2:	LD	A,L | ||||
| 		EXX | ||||
| 		LD	B,A | ||||
| 	 ; | ||||
| 		ADD	A,A | ||||
| 		ADD	A,XL | ||||
| 		LD	XL,A | ||||
| 		JR	NC,.NO_INC_XH | ||||
| 		INC	XH | ||||
| .NO_INC_XH: | ||||
| 		LD	SP,IX | ||||
| 	 ; | ||||
| 		LD	A,C | ||||
| 		ADD	A,B | ||||
| .COPY_loop: | ||||
| 		DEC	A | ||||
| 		OUT	(PORT_Y),A | ||||
| 		LD	E,(HL) | ||||
| 		INC	L | ||||
| 		LD	D,(HL) | ||||
| 		DEC	L | ||||
| 		PUSH	DE | ||||
| 		DJNZ	.COPY_loop | ||||
| 	 ; | ||||
| 		INC	HL | ||||
| 		INC	HL | ||||
| 		INC	HL | ||||
| 		INC	HL | ||||
| 		 LD	B,A | ||||
| 		 ADD	A,A | ||||
| 		 ADD	A,XL | ||||
| 		 LD	XL,A | ||||
| 		 JR	NC,.NO_INC_XH | ||||
| 		 ; | ||||
| 		 INC	XH | ||||
| .NO_INC_XH:	 LD	SP,IX | ||||
| 		 LD	A,C | ||||
| 		 ADD	A,B | ||||
| .COPY_loop:	 DEC	A | ||||
| 		 OUT	(PORT_Y),A | ||||
| 		 LD	E,(HL) | ||||
| 		 INC	L | ||||
| 		 LD	D,(HL) | ||||
| 		 DEC	L | ||||
| 		 PUSH	DE | ||||
| 		 DJNZ	.COPY_loop | ||||
| 		 ; | ||||
| 		 INC	HL | ||||
| 		 INC	HL | ||||
| 		 INC	HL | ||||
| 		 INC	HL | ||||
| 		EXX | ||||
| 		DEC	H | ||||
| 		JR	NZ,.COPY_loop2 | ||||
| 	; | ||||
| 		; | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	SP,(SYS_PAGE.SYS_WORK1) | ||||
| 	; | ||||
| 		; | ||||
| 		POP	AF | ||||
| 		OUT	(SLOT1),A | ||||
| 		JP	LP_END_P.short | ||||
| 	;AND A | ||||
| 	;RET | ||||
| 
 | ||||
| ; | ||||
| 
 | ||||
| ; HL - à §¬¥à á®åà ï¥¬®£® ®ª  | ||||
| ; DE - ¬¥áâ® á®åà ï¥¬®£® ®ª  | ||||
| @ -1633,42 +1617,70 @@ WIN_RESTORE:	AND	A | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ;!FIXIT ¥â ®¯¨á ¨ï, ¥¤®¤¥«  . <20>¥ç âì á ã¯à ¢«ïî騬¨ ᨬ¢®« ¬¨ | ||||
| ; <20>¥ç âì á ã¯à ¢«ïî騬¨ ᨬ¢®« ¬¨ ¢ ª®á®«ì | ||||
| ;------------------------------------------------------------------[#E0] | ||||
| LP_PR_LINE_DIR: | ||||
| 	;!TODO ¥¤®¤¥«   | ||||
| .BELL:		 ; ... | ||||
| 		 ; ... | ||||
| 	;>------------------------------------------------[BELL] | ||||
| .BELL:		EXX | ||||
| 		PUSH	HL | ||||
| 		PUSH	BC | ||||
| 		; | ||||
| 		LD	DE,1200 | ||||
| 		LD	HL,4 | ||||
| 		CALL	BEEP | ||||
| 		; | ||||
| 		POP	BC | ||||
| 		POP	HL | ||||
| 		EXX | ||||
| 		 JR	.loop | ||||
| 	;!TODO ¥¤®¤¥«   | ||||
| .BACK:		 LD	A,SYS_PAGE | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 ; | ||||
| 		 LD	A,(WIN_ID_0.H_BEG) | ||||
| 	;-------------------------------------------------[BELL] | ||||
| 
 | ||||
| 	;>------------------------------------------------[Backspace] | ||||
| .BACK:		 LD	A,(WIN_ID_0.H_BEG) | ||||
| 		 CP	D | ||||
| 		 JR	Z,.loop | ||||
| 		 INC	B | ||||
| 		 DEC	D | ||||
| 		 CORRECT_SCR_40_BACK | ||||
| 		 CORRECT_SCR_40_BACKWARD | ||||
| 		 JP	.loop | ||||
| 		; | ||||
| 	;>------------------------------------------------[Backspace] | ||||
| 	; | ||||
| .EXIT_SpecSymbol: | ||||
| 		DEC	HL | ||||
| 		CALL	LP_END_P | ||||
| 		POP	IX | ||||
| 		SCF | ||||
| 		RET | ||||
| ; | ||||
| .EXIT:		POP	IX | ||||
| 		JP	LP_END_P | ||||
| ;;;;;;;;;;;;;;;;; | ||||
| ; DE - ¬¥á⮠ᨬ¢®«  ¢ ®ª¥, ¥á«¨ A != 0 | ||||
| ; HL -  ¤à¥á á ¢ë¢®¤¨¬®© áâப®© | ||||
| ;  B - à §¤¥«¨â¥«ì | ||||
| ;  A - mode | ||||
| ;   A -  âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®«  ¥á«¨ CF' | ||||
| ;  CF - XY-mode | ||||
| ;  DE - ¬¥á⮠ᨬ¢®«  ¢ ®ª¥, ¥á«¨ CF=1 | ||||
| ;  HL -  ¤à¥á á ¢ë¢®¤¨¬®© áâப®© | ||||
| ;   B - à §¤¥«¨â¥«ì | ||||
| ;  IY - ¤¢  ᯥæ.ᨬ¢®«  ¤«ï ¢ë室  á CF=1. „®«¦ë ¡ëâì à ¢ë B, ¥á«¨ ¥ ã¦ë | ||||
| ;  A' - 梥⠪®á®«¨ (¨á¯®«ì§ã¥âáï ¯à¨ áªà®««¥ ¨ ®ç¨á⪥ ®ª ) | ||||
| ; CF' - ¢ë¢®¤¨âì ᨬ¢®« á  âਡãâ ¬¨ | ||||
| ;;;;;;;;;;;;;;;;; | ||||
| .START:		PUSH	IX | ||||
| 		AND	A		; check mode for DE | ||||
| 		LD	XL,A			;  âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®«  | ||||
| 		; | ||||
| 		EX	AF,AF' | ||||
| 		 PUSH	AF			; 梥⠪®á®«¨, attr-mode | ||||
| 		EX	AF,AF' | ||||
| 		; | ||||
| 		IN	A,(SLOT3) | ||||
| 		LD	C,A | ||||
| 		CALL	LP_BEG_P | ||||
| 		CALL	NZ,LP_SET_CUR	; mode for DE | ||||
| 		; | ||||
| 		CALL	C,LP_SET_CUR		; mode for DE | ||||
| 		POP	AF			; 梥⠪®á®«¨, attr-mode | ||||
| 		LD	(SYS_PAGE.SYS_WORK2),A	; 梥⠪®á®«¨ | ||||
| 		EXX | ||||
| 		 LD	C,0 | ||||
| 		 JR	NC,.loop | ||||
| 		 INC	C			; C' - attr flag. ¢ë¢®¤¨âì  âਡãâ | ||||
| .loop:		 LD	A,D | ||||
| 		 OUT	(PORT_Y),A | ||||
| 		EXX | ||||
| @ -1679,7 +1691,12 @@ LP_PR_LINE_DIR: | ||||
| 		LD	XH,A | ||||
| 		INC	HL | ||||
| 		CP	B | ||||
| 		JP	Z,.EXIT | ||||
| 		JR	Z,.EXIT | ||||
| 		CP	YH | ||||
| 		JR	Z,.EXIT_SpecSymbol | ||||
| 		CP	YL | ||||
| 		JR	Z,.EXIT_SpecSymbol | ||||
| 		; | ||||
| 		EXX | ||||
| 		 ; ¯¥ç â ¥¬ë¥ ᨬ¢®«ë | ||||
| 		 CP	14 | ||||
| @ -1687,6 +1704,10 @@ LP_PR_LINE_DIR: | ||||
| 		 CP	7 | ||||
| 		 JR	C,.print | ||||
| 		 ; ã¯à ¢«ïî騥 ᨬ¢®«ë | ||||
| 		 LD	A,SYS_PAGE | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 LD	A,XH | ||||
| 		 ; | ||||
| 		 SUB	7 | ||||
| 		 JR	Z,.BELL		; A = 07 "BELL" | ||||
| 		 DEC	A | ||||
| @ -1699,80 +1720,192 @@ LP_PR_LINE_DIR: | ||||
| 		 JR	Z,.VertTab	; € = 11 "Vertical Tabulation" | ||||
| 		 DEC	A | ||||
| 		 JR	Z,.CLS		; € = 12 "Form feed" - à §àë¢ áâà ¨æë,  ç «® ®¢®£® «¨áâ , ¬®¦¥â à ¡®â âì ª ª VT | ||||
| 		 DEC	A | ||||
| 		 JR	Z,.CR		; € = 13 "Carriage Return" | ||||
| 	; ¢ë¢®¤¨âì! | ||||
| 	; | ||||
| 		 ;DEC	A | ||||
| 		 ;JR	Z,.CR		; € = 13 "Carriage Return" | ||||
| 	;>------------------------------------------------[CR] | ||||
| .CR:		 LD	A,(WIN_ID_0.H_BEG) | ||||
| 		 LD	D,A | ||||
| 		 LD	A,(WIN_ID_0.SIZE_REL) | ||||
| 		 LD	B,A | ||||
| 		 JP	.loop | ||||
| 	;-------------------------------------------------[CR] | ||||
| 
 | ||||
| 	;>------------------------------------------------[PRINT] | ||||
| .print:		 LD	A,#50 | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 LD	A,XH | ||||
| 		 LD	(HL),A | ||||
| 		 ; ¢ë¢®¤¨âì  âਡãâ | ||||
| 		 RR	C		; C' - attr flag | ||||
| 		 JR	NC,.NoPutAttr | ||||
| 		 ; | ||||
| 		 INC	L | ||||
| 		 LD	A,XL | ||||
| 		 LD	(HL),A | ||||
| 		 DEC	L | ||||
| .NoPutAttr:	 RL	C		; C' - attr flag | ||||
| 		 INC	D | ||||
| .next_full:	 CORRECT_SCR_40 | ||||
| .next_full:	 CORRECT_SCR_40_FORWARD | ||||
| .next:		 DJNZ	.loop | ||||
| 		 CALL	LP_NEXT_HL_DIR | ||||
| 		 JP	.loop | ||||
| 	;-------[TAB] ;!FIXIT § ¯®«ï¥â ¯à®¡¥« ¬¨ | ||||
| .TAB:		 LD	A,SYS_PAGE | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 LD	A,(WIN_ID_0.H_BEG) | ||||
| 	;-------------------------------------------------[PRINT] | ||||
| 
 | ||||
| 	;>------------------------------------------------[TAB] | ||||
| .TAB:		 LD	A,(WIN_ID_0.H_BEG) | ||||
| 		 SUB	D | ||||
| 		 NEG | ||||
| 		 AND	%0000'0111 | ||||
| 		 NEG | ||||
| 		 ADD	A,8 | ||||
| 		 CP	B | ||||
| 		 JR	C,.keep_A | ||||
| 		 ; | ||||
| 		 LD	A,B | ||||
| 		 DEC	A | ||||
| .keep_A:	 ;NEG | ||||
| 		 PUSH	BC	; save C' - attr flag | ||||
| 		 LD	C,A | ||||
| 		 LD	A,#50 | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 EX	AF,AF' | ||||
| 		  JR	C,.LLL | ||||
| 		 ;  | ||||
| 		 EX	AF,AF' | ||||
| 		 ADD	A,A		; ०¨¬ 40 | ||||
| 		 EX	AF,AF' | ||||
| .LLL:		 EX	AF,AF' | ||||
| 		 ; | ||||
| .loop_tab:	 LD	(HL),' ' | ||||
| 		 INC	D | ||||
| 		 DEC	B | ||||
| 		 JR	Z,.end_Line | ||||
| 		 DEC	C | ||||
| 		 JR	NZ,.loop_tab | ||||
| 		 JR	.next_full | ||||
| 		 ; | ||||
| .end_Line:	 LD	A,SYS_PAGE | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 LD	A,(WIN_ID_0.H_BEG) | ||||
| .tabNxt:	 ADD	A,D | ||||
| 		 LD	D,A | ||||
| 		 LD	A,(WIN_ID_0.SIZE_REL) | ||||
| 		 LD	A,B | ||||
| 		 SUB	C	; set XL | ||||
| 		 POP	BC	; restore C' - attr flag | ||||
| 		 LD	B,A | ||||
| 		 JP	.LineFeed_go | ||||
| 	;-------[TAB end] | ||||
| 	; | ||||
| 	;-------[Line Feed] | ||||
| .VertTab:	 ; | ||||
| .LineFeed:	 LD	A,SYS_PAGE | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 JP	.loop | ||||
| 		 ; | ||||
| .LineFeed_go:	 LD	A,4		;!HARDCODE ¤«¨  ®¤®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  | ||||
| 	;-------------------------------------------------[TAB] | ||||
| 
 | ||||
| 	;>------------------------------------------------[Line Feed] | ||||
| .VertTab:	 ; | ||||
| .LineFeed:	 LD	A,4		;!HARDCODE ¤«¨  ®¤®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  | ||||
| 		 ADD	L | ||||
| 		 LD	L,A | ||||
| 		 ;		  | ||||
| 		 LD	A,(WIN_ID_0.V_END) | ||||
| 		 CP	L | ||||
| 		 CALL	C,LP_NEXT_HL_DIR.end_line | ||||
| 		JP	.loop | ||||
| 	;-------[Line Feed end] | ||||
| 	; | ||||
| .CLS:		 ; ... | ||||
| 		 ;!TODO	CLS | ||||
| 		 JP	.loop | ||||
| 		 ; | ||||
| .CR:		 LD	A,SYS_PAGE | ||||
| 	;-------------------------------------------------[Line Feed] | ||||
| 
 | ||||
| 	;>------------------------------------------------[Form feed] | ||||
| .CLS:		 PUSH	BC	; C' - attr flag | ||||
| 		EXX | ||||
| 		PUSH	BC | ||||
| 		PUSH	HL | ||||
| 		PUSH	DE | ||||
| 		; | ||||
| 		LD	A,(SYS_PAGE.SYS_WORK2)		; 梥⠪®á®«¨ | ||||
| 		LD	B,A | ||||
| 		LD	DE,0 | ||||
| 		LD	HL,(WIN_ID_0.USER.SIZE_H)	; get WIN XY | ||||
| 		LD	A,(WIN_ID_0.SIZE_REL) | ||||
| 		LD	L,A | ||||
| 		LD	C," " | ||||
| 		CALL	LP_CLS_WIN.CLS | ||||
| 		; | ||||
| 		POP	DE | ||||
| 		POP	HL | ||||
| 		POP	BC | ||||
| 		EXX | ||||
| 		 LD	A,B | ||||
| 		 POP	BC	; C' - attr flag | ||||
| 		 LD	B,A | ||||
| 		 JP	.loop | ||||
| 	;-------------------------------------------------[Form feed] | ||||
| ;------------------------------------------------------------------[#E0] | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| LP_NEXT_HL_DIR:	 LD	A,SYS_PAGE | ||||
| 		 OUT	(SLOT3),A | ||||
| 		 LD	A,4			;!HARDCODE ¤«¨  ®¤®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  | ||||
| 		 ADD	L | ||||
| 		 LD	L,A | ||||
| 		 LD	A,(WIN_ID_0.V_END) | ||||
| 		 CP	L | ||||
| 		 CALL	C,.end_line | ||||
| 		 ; | ||||
| 		 LD	A,(WIN_ID_0.H_BEG) | ||||
| .no_end_line:	 LD	A,(WIN_ID_0.H_BEG) | ||||
| 		 LD	D,A | ||||
| 		 LD	A,(WIN_ID_0.SIZE_REL) | ||||
| 		 LD	B,A | ||||
| 		 RET | ||||
| 		 ; | ||||
| 		 ;LD	A,#50 | ||||
| 		 ;OUT	(SLOT3),A | ||||
| 		JP	.loop | ||||
| ;------------------------------------------------------------------[#E0] | ||||
| .end_line:	 LD	A,L | ||||
| 		 SUB	4			;!HARDCODE ¤«¨  ®¤®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  | ||||
| 		 LD	L,A | ||||
| 		 PUSH	HL | ||||
| 		 DEC	L | ||||
| 		 PUSH	BC | ||||
| 		 PUSH	DE | ||||
| 		EXX | ||||
| 		PUSH	BC | ||||
| 		PUSH	HL | ||||
| 		PUSH	DE | ||||
| 		LD	A,(WIN_ID_0.V_BEG) | ||||
| 		LD	D,A | ||||
| 		LD	A,(WIN_ID_0.USER.SIZE_V) | ||||
| 		LD	B,A | ||||
| 		LD	E,0			; ¢áî áâப㠮ª  áªà®««¨¬ | ||||
| 		CALL	LP_SCROLL_UP.RUN | ||||
| 		; | ||||
| 		LD	A,SYS_PAGE | ||||
| 		OUT	(SLOT3),A | ||||
| 		LD	C," " | ||||
| 		LD	A,(SYS_PAGE.SYS_WORK2)	; 梥⠪®á®«¨ | ||||
| 		LD	B,A | ||||
| 		LD	A,(WIN_ID_0.USER.SIZE_V) | ||||
| 		DEC	A | ||||
| 		LD	D,A | ||||
| 		LD	E,0 | ||||
| 		LD	HL,(WIN_ID_0.SIZE_REL) | ||||
| 		LD	H,1 | ||||
| 		LD	C," " | ||||
| 		CALL	LP_CLS_WIN.CLS		 | ||||
| 		; | ||||
| 		POP	DE | ||||
| 		POP	HL | ||||
| 		POP	BC | ||||
| 		EXX | ||||
| 		 POP	DE | ||||
| 		 POP	BC | ||||
| 		 POP	HL | ||||
| 		 RET | ||||
| ; | ||||
| ; 		LD	HL,(WIN_ID_0.V_END) | ||||
| ; 		DEC	L | ||||
| ; 		DEC	L | ||||
| ; 		DEC	L | ||||
| ; 		LD	H,#C3 | ||||
| ; 		; | ||||
| ; 		LD	A,(WIN_ID_0.H_BEG) | ||||
| ; 		LD	D,A | ||||
| ; 		; | ||||
| ; 		LD	A,#50 | ||||
| ; 		OUT	(SLOT3),A | ||||
| ; 		; | ||||
| ; 		EXX | ||||
| ; 		 LD	A,(WIN_ID_0.SIZE_REL) | ||||
| ; 		 LD	B,A | ||||
| ; .loop_cl_line:	EXX | ||||
| ; 		LD	A,D | ||||
| ; 		OUT	(PORT_Y),A | ||||
| ; 		LD	(HL),C | ||||
| ; 		INC	D | ||||
| ; 		CORRECT_SCR_40_FORWARD | ||||
| ; 		EXX | ||||
| ; 		 DJNZ	.loop_cl_line | ||||
| ; 		 LD	A,SYS_PAGE | ||||
| ; 		 OUT	(SLOT3),A | ||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| LP_OPEN_PG:	IN	A,(SLOT3) | ||||
|  | ||||
| @ -1025,83 +1025,69 @@ BLK_RD_WR: | ||||
| ; DE - ®¬¥à ᥪâ®à  (áç¨â âì ¯® 256b ᥪâ®à)  | ||||
| ; B  - ç¨á«® ᥪâ®à®¢ | ||||
| ; A' - à §¬¥à ᥪâ®à  (1 - 256b, 2 - 512 b) | ||||
| ROM_DISK: | ||||
| 	; á®åà ï¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| 	;LD A,R | ||||
| 		EX	AF,AF' | ||||
| ROM_DISK:	EX	AF,AF' | ||||
| 		LD	C,0							  ; áç¥â稪 | ||||
| 		DEC	A | ||||
| 		JR	Z,.loop | ||||
| 	;JR Z,.start | ||||
| 		; | ||||
| 		DEC	A | ||||
| 		SCF | ||||
| 		RET	NZ | ||||
| 
 | ||||
| 		; | ||||
| 		EX	DE,HL | ||||
| 		ADD	HL,HL | ||||
| 		EX	DE,HL | ||||
| 		LD	A,B | ||||
| 		ADD	A,A | ||||
| 		LD	B,A | ||||
| 	;!!!!! | ||||
| 		RET	C | ||||
| 
 | ||||
| 		; | ||||
| 		DI | ||||
| 		CALL	.loop | ||||
| ;	 ; ¢®ááâ  ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| ; 	EX AF,AF' | ||||
| ;	 JP PO,.noInterrupts | ||||
| ;	 EI | ||||
| ; .noInterrupts: | ||||
| ; 	EX AF,AF' | ||||
| ;	 ; | ||||
| 		RET	C | ||||
| 		; | ||||
| 		AND	A | ||||
| 		RR	D | ||||
| 		RR	E | ||||
| 		XOR	A | ||||
| 		RET | ||||
| 
 | ||||
| ; .start: | ||||
| ;	 DI | ||||
| ;	 CALL .loop | ||||
| ;	 ; ¢®ááâ  ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥à뢠¨© | ||||
| ; 	EX AF,AF' | ||||
| ;	 JP PO,.noInterrupts2 | ||||
| ;	 EI | ||||
| ; .noInterrupts2: | ||||
| ; 	EX AF,AF' | ||||
| ;	 ; | ||||
| ; 	RET	 | ||||
| 
 | ||||
| 
 | ||||
| 		; | ||||
| .loop:		PUSH	DE						; ®¬¥à ᥪâ®à  | ||||
| 		PUSH	BC | ||||
| 
 | ||||
| 		; | ||||
| 		LD	A,E | ||||
| 		AND	#3F						; ADRESS in ROM-Page | ||||
| 		PUSH	AF						; á®åà ¨âì  ¤à¥á | ||||
| 
 | ||||
| 		; | ||||
| 		EX	DE,HL						; DE -  ¤à¥á ¡ãä¥à  | ||||
| 		ADD	HL,HL | ||||
| 		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! | ||||
| 		; [ ] ¡¥§ ¯à¨¢ï§ª¨ ஬-¤¨áª  ª align 256 | ||||
| 		 ;LD	A,(ROM_DISK.Pages.Number) | ||||
| 		 ;INC	H | ||||
| 		 ;CP	H | ||||
| 		 ; | ||||
| 		 LD	C,H | ||||
| 		 LD	B,0 | ||||
| 		 LD	HL,ROM_DISK.Pages | ||||
| 		 ADD	HL,BC | ||||
| 		 ; | ||||
| 		 LD	A,(ROM_DISK.Pages.Number)			; rdlow-ok | ||||
| 		 INC	C | ||||
| 		 CP	C | ||||
| 		 ; | ||||
| 		 ;LD	L,H | ||||
| 		 ;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 | ||||
| ; DE - ¡ãä¥à | ||||
| ; HL -  ¤à¥á ¢ ROM | ||||
| ; B - ç¨á«® ᥪâ®à®¢ | ||||
| ; A - ROM-Page | ||||
| .loopRead: | ||||
| 		PUSH	HL						; ®âªã¤  | ||||
| 	; DE - ¡ãä¥à | ||||
| 	; HL -  ¤à¥á ¢ ROM | ||||
| 	; B - ç¨á«® ᥪâ®à®¢ | ||||
| 	; A - ROM-Page | ||||
| .loopRead:	PUSH	HL						; ®âªã¤  | ||||
| 		PUSH	DE						; ªã¤  | ||||
| 
 | ||||
| 		LD	HL,-.stackDepth-.readProcedure.size		; memory stack use! | ||||
| @ -1115,10 +1101,9 @@ ROM_DISK: | ||||
| 		LDIR							; ¯à®£à ¬¬    á⥪¥ | ||||
| 		LD	BC,#100						; ¤«¨  ᥪâ®à  | ||||
| 		RET							; ¨á¯®«¨âì ¯à®£à ¬¬ã .readProcedure,   á⥪¥  ¤à¥á  ¡ãä¥à  ¨ ROM | ||||
| ; DE - next address | ||||
| ; HL - ROM address | ||||
| .readNext: | ||||
| 		POP	BC						; ç¨á«® ᥪâ®à®¢ | ||||
| 	; DE - next address | ||||
| 	; HL - ROM address | ||||
| .readNext:	POP	BC						; ç¨á«® ᥪâ®à®¢ | ||||
| 
 | ||||
| 		INC	C						; áç¥â稪 áç¨â ëå ᥪâ®à®¢ | ||||
| 		DEC	B						; ᥪâ®à  ª®ç¨«¨áì? | ||||
| @ -1141,20 +1126,19 @@ ROM_DISK: | ||||
| 
 | ||||
| 		JP	.loop						;  ç âì ¢á¥ á®¢ ! | ||||
| ; ç⥨¥ § ª®ç¥® | ||||
| .normExit: | ||||
| 		POP	HL						; ᥪâ®à, ®âªã¤  ¢¥«®áì ç⥨¥ | ||||
| .normExit:	POP	HL						; ᥪâ®à, ®âªã¤  ¢¥«®áì ç⥨¥ | ||||
| 		ADD	HL,BC						; ¯® ¢®§¢à âã: HL - á«¥¤. ¤à¥á | ||||
| 		EX	DE,HL						;		 DE - á«¥¤.ᥪâ®à | ||||
| 		AND	A | ||||
| 		RET | ||||
| ; ®è¨¡ª  | ||||
| .errorExit:								; !TODO ᤥ« âì, ç⮡   ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ëå ᥪâ®à®¢ | ||||
| .errorExit:	; !TODO ᤥ« âì, ç⮡   ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ëå ᥪâ®à®¢ | ||||
| 		POP	BC | ||||
| 		POP	DE | ||||
| 		SCF | ||||
| 		RET | ||||
| ; ¯à®æ¥¤ãà , ¯¥à¥®á¨¬ ï   á⥪ ¤«ï çâ¥¨ï ¨§ ROM-Disk | ||||
| ; ®áâ®à®¦¥¥ á PUSH, ¥á«¨  ¤® ¬®£®, ⮠㢥«¨ç¨¢ © .stackDepth | ||||
| ; ®áâ®à®¦¥¥ á PUSH, ¥á«¨  ¤® ¬®£®, ⮠㢥«¨ç¨âì .stackDepth | ||||
| .readProcedure: | ||||
| 		POP	DE						; ªã¤  | ||||
| 		POP	HL						; ®âªã¤  | ||||
|  | ||||
| @ -254,8 +254,8 @@ INIT_SYS_ALL: | ||||
| 	; | ||||
| 	 ;;; init task's | ||||
| 	; | ||||
| 	LD	DE,ZG_ADDRESS						;  ¤à¥á § ª®£¥¥à â®à  | ||||
| 	LD	(SYS_PAGE.WIN_ZG - #4000),DE | ||||
| 	;LD	DE,ZG_ADDRESS						;  ¤à¥á § ª®£¥¥à â®à  | ||||
| 	;LD	(SYS_PAGE.WIN_ZG - #4000),DE | ||||
| ; | ||||
| ;-----------[new code start]------------; !!!!!  ¯®á¬®âà¥âì-¯à¨ç¥á âì | ||||
| INIT_VSyncAndWaits: | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| ; | ||||
| ;	MODULE	ROM_PART | ||||
| 	DISPLAY "\r\n/=====================[ROM part]=====================\\"	 | ||||
| ;------------[Begin of ROM]------------- | ||||
| ROM_START: | ||||
| 	DI  | ||||
| @ -7,17 +8,17 @@ ROM_START: | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;--------------[checksum]--------------- | ||||
| 	BLOCK 4-$,#FF | ||||
| 	_mInfoBLOCK 4-$,#FF | ||||
| Check_Sum: | ||||
| 	DB #FF,#FF,#FF,#FF					; ¬¥áâ® ¤«ï ª®â஫쮩 á㬬ë | ||||
| ;--------------------------------------- | ||||
| 	BLOCK #10-$,#FF | ||||
| 	_mInfoBLOCK #10-$,#FF | ||||
| 	RET  | ||||
| ;--------------------------------------- | ||||
| 
 | ||||
| ;!TODO ¯à¨ªàãâ¨âì ª ROM.BIOS | ||||
| ;----------------[int]------------------ | ||||
| 	BLOCK #38-$,#FF	 | ||||
| 	_mInfoBLOCK #38-$,#FF	 | ||||
| ; INT:	PUSH	BC | ||||
| ; 	PUSH	AF | ||||
| 
 | ||||
| @ -434,5 +435,13 @@ RET_TO_TRDOS: | ||||
|         _mInfoBLOCK #4000-$,#FF | ||||
| ;======================================= | ||||
| 
 | ||||
|  IFNDEF PREBUILD | ||||
| 	DISPLAY '  -------------------[Main.asm]-------------------'		 | ||||
| 	DISPLAY 'End code address:                ',/A,MAIN_END_CODE_ADDRESS | ||||
| 	DISPLAY 'Code size:                       ',/A,MAIN_END_CODE_ADDRESS + 1 - COMPILE_ADDR.MAIN | ||||
| 	DISPLAY 'End buffers address:             ',/A,memBUFFER.End - 1 | ||||
| 	DISPLAY 'Free memory:                     ',/A,#C000 - (memBUFFER.End-1) - STACK.Size | ||||
| 	DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer | ||||
|  ENDIF | ||||
| ;	ENDMODULE ;ROM_PART | ||||
| ; | ||||
| @ -724,27 +724,27 @@ Ent     EQU     #0D | ||||
| ; | ||||
| ;================================ | ||||
| 
 | ||||
| BEEP:		LD	A,#10 | ||||
| 		OUT	(ZX_Beeper),A | ||||
| 		LD	B,D | ||||
| 		LD	C,E | ||||
| .loop1:		DEC	BC | ||||
| 		LD	A,B | ||||
| 		OR	C | ||||
| 		JR	NZ,.loop1 | ||||
| 		XOR	A	;LD	A,#00 | ||||
| 		OUT	(ZX_Beeper),A | ||||
| 		LD	B,D | ||||
| 		LD	C,E | ||||
| .loop2:		DEC	BC | ||||
| 		LD	A,B | ||||
| 		OR	C | ||||
| 		JR	NZ,.loop2 | ||||
| 		DEC	HL | ||||
| 		LD	A,H | ||||
| 		OR	L | ||||
| 		JR	NZ,BEEP | ||||
| 		RET | ||||
| ; BEEP:		LD	A,#10 | ||||
| ; 		OUT	(ZX_Beeper),A | ||||
| ; 		LD	B,D | ||||
| ; 		LD	C,E | ||||
| ; .loop1:		DEC	BC | ||||
| ; 		LD	A,B | ||||
| ; 		OR	C | ||||
| ; 		JR	NZ,.loop1 | ||||
| ; 		XOR	A	;LD	A,#00 | ||||
| ; 		OUT	(ZX_Beeper),A | ||||
| ; 		LD	B,D | ||||
| ; 		LD	C,E | ||||
| ; .loop2:		DEC	BC | ||||
| ; 		LD	A,B | ||||
| ; 		OR	C | ||||
| ; 		JR	NZ,.loop2 | ||||
| ; 		DEC	HL | ||||
| ; 		LD	A,H | ||||
| ; 		OR	L | ||||
| ; 		JR	NZ,BEEP | ||||
| ; 		RET | ||||
| 
 | ||||
| ;COM_A  EQU     #19     Z84.SIO.Ch_A.Ctrl | ||||
| ;DAT_A  EQU     #18     Z84.SIO.Ch_A.Data | ||||
|  | ||||
| @ -631,13 +631,12 @@ START: | ||||
| 	CALL	ZXMODE_SETUP | ||||
| 	CALL	XY_SCREEN | ||||
| 
 | ||||
| ;R06 | ||||
| ;R06	;[Check Quick Start ROM] | ||||
| 	LD	BC,CMOS_CELL.BootUpParams.Mask.QuickStartROM		;#010E | ||||
| 	CALL	GET_CMOS_VALUE | ||||
| 	POP	BC | ||||
| 	INC	B | ||||
| 	DEC	B | ||||
| 	JR	NZ,IGNORE_QuickStartROM					; १ã«ìâ â ¯à®¢¥àª¨ Space ¨§ exp.asm [space_check] | ||||
| 	RR	C | ||||
| 	JR	NC,IGNORE_QuickStartROM					; १ã«ìâ â ¯à®¢¥àª¨ Space ¨§ exp.asm [Check SPACE] | ||||
| 	PUSH	AF | ||||
| 	LD	C,SLOT3 | ||||
| 	IN	B,(C) | ||||
| @ -1646,47 +1645,45 @@ SETLAND: | ||||
| 	LDIR | ||||
| 	RET | ||||
| 
 | ||||
| ; | ||||
| ; print boot drive number | ||||
| PRINT_CHANEL:	AND	#0F | ||||
| 		LD	C,A | ||||
| 		; | ||||
| 		LD	A,msgStrings.parPriIdeMA | ||||
| 		JR	Z,.print_chanel | ||||
| 		; | ||||
| 		LD	A,msgStrings.parPriIdeSl | ||||
| 		DEC	C | ||||
| 		JR	Z,.print_chanel | ||||
| 		; | ||||
| 		LD	A,msgStrings.parSecIdeMA | ||||
| 		DEC	C | ||||
| 		JR	Z,.print_chanel | ||||
| 		; | ||||
| 		LD	A,msgStrings.parSecIdeSl | ||||
| .print_chanel:	CALL	FindStringAddr | ||||
| 	 	;CALL	LP_GET_PLACE | ||||
| 	 	;LD	A,ScreenPOS.SUBNAME.POS | ||||
| 	 	;SUB	E | ||||
| 	 	;LD	B,A | ||||
| 	 	LD	B,0 | ||||
| 	 	LD	D,#FF | ||||
| 	 	JP	LP_PRINT_LINE6 | ||||
| ; | ||||
| 
 | ||||
| POSTMSC:	CALL    FindStringAddr | ||||
| 		LD	A,E | ||||
| 		JP	CPRINTZ | ||||
| ; | ||||
| ////////////////////////////////////////////////////////////////////// | ||||
|  INCLUDE	'IM2_INT.asm' | ||||
| ////////////////////////////////////////////////////////////////////// | ||||
| 
 | ||||
| POSTMSG: | ||||
| 	CALL    FindStringAddr | ||||
| 	JP	PRINTZ | ||||
| POSTMSG:	CALL    FindStringAddr | ||||
| 		JP	PRINTZ | ||||
| 
 | ||||
| POSTMSC: | ||||
| 	CALL    FindStringAddr | ||||
| 	LD	A,E | ||||
| 	JP	CPRINTZ | ||||
| 
 | ||||
| ; | ||||
| ; print boot drive number | ||||
| PRINT_CHANEL: | ||||
| 	 AND	#0F | ||||
| 	 LD	C,A | ||||
| 	 ; | ||||
| 	 LD	A,msgStrings.parPriIdeMA | ||||
| 	 JR	Z,.print_chanel | ||||
| 	 ; | ||||
| 	 LD	A,msgStrings.parPriIdeSl | ||||
| 	 DEC	C | ||||
| 	 JR	Z,.print_chanel | ||||
| 	 ; | ||||
| 	 LD	A,msgStrings.parSecIdeMA | ||||
| 	 DEC	C | ||||
| 	 JR	Z,.print_chanel | ||||
| 	 ; | ||||
| 	 LD	A,msgStrings.parSecIdeSl | ||||
| .print_chanel: | ||||
| 	 CALL	FindStringAddr | ||||
| 	 ;CALL	LP_GET_PLACE | ||||
| 	 ;LD	A,ScreenPOS.SUBNAME.POS | ||||
| 	 ;SUB	E | ||||
| 	 ;LD	B,A | ||||
| 	 LD	B,0 | ||||
| 	 LD	D,#FF | ||||
| 	 JP	LP_PRINT_LINE6 | ||||
| ; | ||||
| 
 | ||||
| ;----------------------------------------------------------------------[] | ||||
| ;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ âë: | ||||
| @ -1870,12 +1867,13 @@ STACK           EQU #C000 | ||||
| 	INCLUDE 'src/bios/logo/Set_Pictures.asm' | ||||
| 	DISPLAY '-----[Set_Pictures Prebuild done ]-----' | ||||
|  ELSE | ||||
|         DISPLAY '------------------[Main.asm]------------------'		 | ||||
|         DISPLAY 'End code address:                ',/A,$-1 | ||||
|         DISPLAY 'Code size:                       ',/A,$-COMPILE_ADDR.MAIN | ||||
|         DISPLAY 'End buffers address:             ',/A,memBUFFER.End-1 | ||||
|         DISPLAY 'Free memory:                     ',/A,#C000-(memBUFFER.End-1)-STACK.Size | ||||
|         DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer | ||||
| MAIN_END_CODE_ADDRESS	EQU	$-1 | ||||
| 	; DISPLAY '  -------------------[Main.asm]-------------------'		 | ||||
| 	; DISPLAY 'End code address:                ',/A,$-1 | ||||
| 	; DISPLAY 'Code size:                       ',/A,$-COMPILE_ADDR.MAIN | ||||
| 	; DISPLAY 'End buffers address:             ',/A,memBUFFER.End-1 | ||||
| 	; DISPLAY 'Free memory:                     ',/A,#C000-(memBUFFER.End-1)-STACK.Size | ||||
| 	; DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer | ||||
|  ENDIF | ||||
| ; | ||||
| 
 | ||||
|  | ||||
| @ -25,7 +25,7 @@ BIOS_ver_hex		EQU	EXP_ID.VER*256+EXP_ID.MOD | ||||
| ;-[Version of disk subsystem "VER.MOD"]- | ||||
| ROM_ID: | ||||
| .VER			EQU	2					; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ! | ||||
| .MOD			EQU	55					; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ! | ||||
| .MOD			EQU	56					; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ! | ||||
| Disk_subsystem_ver_hex	EQU	ROM_ID.VER*256+ROM_ID.MOD | ||||
| 
 | ||||
|  DEFINE Disk_subsystem_ver_txt '0'+ROM_ID.VER, '.', '0'+ROM_ID.MOD/10, '0'+ROM_ID.MOD-(ROM_ID.MOD/10)*10 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Tolik
						Tolik