- плагин доделан, описание/history в cdplayer.txt рядом с плагином. FE 1.09 - исправлено: при выходе из редактора с несохраненным файлом и запросе на сохранение клавиша Enter теперь работает как подтверждение сохранения. FN 1.16 - встроенный editor переехал в плагин откуда и запускается по F4, из FN удален. - встроенный viewer переехал в плагин откуда и запускается по F3, из FN удален. - встроенный help переехал в плагин откуда и запускается при нажатии F1, из FN удален. - загрузка плагина отделена от запуска, теперь можно запускать плагины не только из панели FN. - добавлен макрос формирования заголовка для плагинов. - добавлена поддержка работы плагинов в адреса 0x4000-0x7FFF (окно 1) в дополнение к старым 0xC000-0xBFFF (окно 3), пока используется в плагине cdplayer. - в окнах с ошибкой переделан на 2 типа окон вместо многих под каждую ошибку. - исправлена потеря цвета при печати текста по указанному адресу. - текстовым файлам вернул кодировку CP866, readme.md оставлен в кодировке UTF8.
		
			
				
	
	
		
			1127 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1127 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 17.07.2025 savelij
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ;<3B>à®æ¥¤ãà  ®âç¨áª¨ 0 íªà  
 | ||
| ;<3B>  ¢å®¤:  A - 梥⠮âç¨á⪨ (00-0Fh)
 | ||
| ClearScreen	AND	0x0F
 | ||
| 		LD	E,A
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		OR	E
 | ||
| 		LD	E,A
 | ||
| 	GETPORT WINSP.Y_PORT
 | ||
| 		LD	C,A
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		LD	B,A
 | ||
| 		PUSH	BC
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	HL,0x4000
 | ||
| 		LD	BC,320
 | ||
| 		DI 
 | ||
| 		EXX 
 | ||
| 	SPMOUSE MOUSEF.REFRESH
 | ||
| 		EXX 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| InScrLp
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DEC	BC
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,InScrLp
 | ||
| 		EI
 | ||
| 		POP	BC
 | ||
| 		LD	A,B
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		RET
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ;    <20>à®æ¥¤ãà  ¢ë¢®¤  ®ª®   £à ä¨ç¥áª¨© íªà 	640x256x16    ;
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| MakeWindow:	EX	(SP),IY
 | ||
| 		PUSH	IX
 | ||
| 		PUSH	HL
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	BC
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.Y_PORT		; ‘®åà ï¥¬ Y ¯®àâ
 | ||
| 		PUSH	AF
 | ||
| 		LD	A,(IY+0x00)
 | ||
| 		LD	(MakeWindow.Type),A
 | ||
| 		BIT	7,A
 | ||
| 		JR	Z,.L4
 | ||
| 		INC	IY
 | ||
| 		LD	HL,0x0000
 | ||
| 		LD	(MakeWindow.PositX),HL
 | ||
| 		LD	(MakeWindow.PositY),HL
 | ||
| 		LD	(MakeWindow.LenX),HL
 | ||
| 		LD	(MakeWindow.LenY),HL
 | ||
| 		JR	.L2
 | ||
| 
 | ||
| .L4		CP	0x7F
 | ||
| 		JR	Z,.L2
 | ||
| 		LD	L,(IY+0x01)	; Š®®à¤¨ â  X
 | ||
| 		LD	H,(IY+0x02)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		LD	(MakeWindow.PositX),HL
 | ||
| 		LD	L,(IY+0x03)	; Š®®à¤¨ â  Y
 | ||
| 		LD	H,(IY+0x04)
 | ||
| 		LD	(MakeWindow.PositY),HL
 | ||
| 		LD	L,(IY+0x05)	; H „«¨  ®ª  ¯® X
 | ||
| 		LD	H,(IY+0x06)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		LD	(MakeWindow.LenX),HL
 | ||
| 		LD	L,(IY+0x07)	; V „«¨  ®ª  ¯® Y
 | ||
| 		LD	H,(IY+0x08)
 | ||
| 		LD	(MakeWindow.LenY),HL
 | ||
| 		LD	A,(MakeWindow.Type)
 | ||
| 		DEC	A
 | ||
| 		JR	NZ,.L3
 | ||
| 		LD	HL,MakeWindow.Buffer
 | ||
| 		LD	A,(MakeWindow.Open)
 | ||
| 		ADD	A,A
 | ||
| 		LD	C,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,C
 | ||
| 		ADD	A,L
 | ||
| 		LD	L,A
 | ||
| 		JR	NC,.L1
 | ||
| 		INC	H
 | ||
| .L1		LD	DE,(MakeWindow.PositX)
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),D
 | ||
| 		INC	HL
 | ||
| 		LD	DE,(MakeWindow.PositY)
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),D
 | ||
| 		INC	HL
 | ||
| 		LD	DE,(MakeWindow.LenX)
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),D
 | ||
| 		INC	HL
 | ||
| 		LD	DE,(MakeWindow.LenY)
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),D
 | ||
| 		INC	HL
 | ||
| 		LD	DE,(MakeWindow.Free)
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),D
 | ||
| .L3		LD	DE,0x0009
 | ||
| 		ADD	IY,DE		; ޝ¨á â¥«ì    ç «® ¯®¤®¡'¥ªâ®¢
 | ||
| 		LD	A,(MakeWindow.Type)
 | ||
| 		OR	A
 | ||
| 		CALL	NZ,StoreWindow
 | ||
| 		CALL	PutRectan	; —¥à⨬ ¯àאַ㣮«ì¨ª ®ª 
 | ||
| .L2		LD	HL,.L2
 | ||
| 		PUSH	HL
 | ||
| 		LD	A,(IY+0x00)	; ⥪ã騩 ¯®¤®¡'¥ªâ ®ª 
 | ||
| 		INC	IY
 | ||
| 		CP	WINSUBOBJ.TEXT				; ⥪á⮢ ï áâப 
 | ||
| 		JP	Z,PutTxtLine
 | ||
| 		CP	WINSUBOBJ.FILL				; ¬¥áâ® ¤«ï § £®«®¢ª 
 | ||
| 		JP	Z,PutHeadPlc
 | ||
| 		CP	WINSUBOBJ.BORDER			; 㣫㡫¥¨¥ ¢ ®ª¥
 | ||
| 		JP	Z,PutDRectan
 | ||
| 		CP	WINSUBOBJ.BUTTON			; ª®¯ª 
 | ||
| 		JP	Z,PutURectan
 | ||
| 		CP	WINSUBOBJ.BUTTONTEXT			; ª®¯ª  á ⥪á⮬
 | ||
| 		JP	Z,PutButton
 | ||
| 		CP	WINSUBOBJ.HORIZLINE			; £®à¨§®â «ì ï «¨¨ï
 | ||
| 		JP	Z,PutHorizLine
 | ||
| 		CP	WINSUBOBJ.VERTICLINE			; ¢¥à⨪ «ì ï «¨¨ï
 | ||
| 		JP	Z,PutVertLine
 | ||
| 		CP	WINSUBOBJ.ICONLEFTARROW			; ¨ª®ª  "áâ५ª  ¢«¥¢®"
 | ||
| 		JP	Z,PutSBleft
 | ||
| 		CP	WINSUBOBJ.ICONRIGHTARROW		; ¨ª®ª  "áâ५ª  ¢¯à ¢®"
 | ||
| 		JP	Z,PutSBright
 | ||
| 		CP	WINSUBOBJ.ICONUPARROW			; ¨ª®ª  "áâ५ª  ¢¢¥àå"
 | ||
| 		JP	Z,PutSBup
 | ||
| 		CP	WINSUBOBJ.ICONDOWNARROW			; ¨ª®ª  "áâ५ª  ¢¨§"
 | ||
| 		JP	Z,PutSBdown
 | ||
| 		CP	WINSUBOBJ.RESTOREWIN			; ¢®ááâ ®¢«¥¨¥ ç á⨠íªà  
 | ||
| 		JP	Z,RestoreWindow
 | ||
| 		CP WINSUBOBJ.ADRTEXT
 | ||
| 		JP Z,PutAdrTxtLine
 | ||
| 		POP	HL
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.Y_PORT,,0		; ¢®ááâ. Y port
 | ||
| 		POP	AF
 | ||
| 		POP	BC
 | ||
| 		POP	DE
 | ||
| 		POP	HL
 | ||
| 		POP	IX
 | ||
| 		EX	(SP),IY
 | ||
| 		RET 
 | ||
| 
 | ||
| ;--------------------------------------------------------------
 | ||
| ; Ž¡« áâì ¤ ëå ®ª 
 | ||
| .PositX		DW 0				;  ¤à¥á X ª®®à¤¨ âë ®ª 
 | ||
| .PositY		DW 0				; Y ª®®à¤¨ â  ®ª 
 | ||
| .LenX		DW 0				; ¤«¨  ®ª  X/2
 | ||
| .LenY		DW 0				; ¤«¨  ®ª  Y
 | ||
| .Free		DW 0
 | ||
| .Open		DB 0				; Š®«-¢® ®âªàëâëå ®ª®
 | ||
| .Type		DB 0
 | ||
| .Buffer		DB 0x40 DUP 0
 | ||
| 
 | ||
| ;--------------------------------------------------------------
 | ||
| ; <20>à®æ¥¤ãà  á®åà ¥¨ï ¯àאַ㣮«ì®© ¯«®áª®á⨠¢ ¡ãä¥à
 | ||
| StoreWindow	DI 
 | ||
| 		PUSH	IY
 | ||
| 	SPMOUSE MOUSEF.REFRESH
 | ||
| 		POP	IY
 | ||
| 	GETPORT WINSP.CPU3
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	HL,(MakeWindow.Free)
 | ||
| 		LD	A,H
 | ||
| 		AND	0xC0
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		EXX 
 | ||
| 		LD	HL,RAMPAGES.BuffPg1
 | ||
| 		ADD	A,L
 | ||
| 		LD	L,A
 | ||
| 		JR	NC,.L1
 | ||
| 		INC	H
 | ||
| .L1		LD	A,(HL)
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		EXX 
 | ||
| 		LD	A,H
 | ||
| 		OR	0xC0
 | ||
| 		LD	H,A
 | ||
| 		LD	DE,(MakeWindow.PositX)
 | ||
| 		SET	6,D
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		LD	IXH,A
 | ||
| 		LD	A,(MakeWindow.LenY)
 | ||
| 		LD	IXL,A
 | ||
| 		LD	(.SavLen1),A
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .SavLen1	EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	BC,(MakeWindow.LenX)
 | ||
| .SavRect	PUSH	BC
 | ||
| 		LD	B,0x00
 | ||
| 		LD	C,IXL
 | ||
| 		PUSH	HL
 | ||
| 		ADC	HL,BC
 | ||
| 		POP	HL
 | ||
| 		JR	Z,.L2
 | ||
| 		JR	NC,.SavRec1
 | ||
| .L2		LD	HL,0xC000
 | ||
| 		EXX 
 | ||
| 		INC	HL
 | ||
| 		LD	A,(HL)
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		EXX 
 | ||
| .SavRec1	LD	A,IXH
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY_VERT
 | ||
| 		LD	A,(DE)
 | ||
| 	ACCEL ACCELCMD.COPY
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		ADD	HL,BC
 | ||
| 		POP	BC
 | ||
| 		INC	DE
 | ||
| 		DEC	BC
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,.SavRect
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		LD	A,H
 | ||
| 		AND	0x3F
 | ||
| 		LD	H,A
 | ||
| 		EXX 
 | ||
| 		LD	A,L
 | ||
| 		SUB	LOW (RAMPAGES.BuffPg1)
 | ||
| 		EXX 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		OR	H
 | ||
| 		LD	H,A
 | ||
| 		LD	(MakeWindow.Free),HL
 | ||
| 		LD	HL,MakeWindow.Open
 | ||
| 		INC	(HL)
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ; <20>à®æ¥¤ãà  ¢®ááâ ®¢«¥¨ï ¯àאַ㣮«ì®© ¯«®áª®áâ¨
 | ||
| RestoreWindow	LD	HL,MakeWindow.Open
 | ||
| 		LD	A,(HL)
 | ||
| 		OR	A
 | ||
| 		RET	Z
 | ||
| 		DEC	(HL)
 | ||
| 		HALT 
 | ||
| 		DI 
 | ||
| 		PUSH	IY
 | ||
| 	SPMOUSE MOUSEF.REFRESH
 | ||
| 		POP	IY
 | ||
| 	GETPORT WINSP.CPU3
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	HL,MakeWindow.Buffer
 | ||
| 		LD	A,(MakeWindow.Open)
 | ||
| 		ADD	A,A
 | ||
| 		LD	C,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,A
 | ||
| 		ADD	A,C
 | ||
| 		ADD	A,L
 | ||
| 		LD	L,A
 | ||
| 		JR	NC,.L1
 | ||
| 		INC	H
 | ||
| .L1		LD	E,(HL)
 | ||
| 		INC	HL
 | ||
| 		LD	D,(HL)
 | ||
| 		INC	HL
 | ||
| 		SET	6,D
 | ||
| 		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		LD	IXH,A
 | ||
| 		LD	C,(HL)
 | ||
| 		INC	HL
 | ||
| 		LD	B,(HL)
 | ||
| 		INC	HL
 | ||
| 		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		LD	(.RstLen1),A
 | ||
| 		LD	IXL,A
 | ||
| 		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		LD	H,(HL)
 | ||
| 		LD	L,A
 | ||
| 		LD	(MakeWindow.Free),HL
 | ||
| 		LD	A,H
 | ||
| 		AND	0xC0
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		EXX 
 | ||
| 		LD	HL,RAMPAGES.BuffPg1
 | ||
| 		ADD	A,L
 | ||
| 		LD	L,A
 | ||
| 		JR	NC,.L2
 | ||
| 		INC	H
 | ||
| .L2		LD	A,(HL)
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		EXX 
 | ||
| 		LD	A,H
 | ||
| 		OR	0xC0
 | ||
| 		LD	H,A
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .RstLen1	EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| .RstRect	PUSH	BC
 | ||
| 		LD	B,0x00
 | ||
| 		LD	C,IXL
 | ||
| 		PUSH	HL
 | ||
| 		ADC	HL,BC
 | ||
| 		POP	HL
 | ||
| 		JR	Z,.L3
 | ||
| 		JR	NC,.RstRec1
 | ||
| .L3		LD	HL,0xC000
 | ||
| 		EXX 
 | ||
| 		INC	HL
 | ||
| 		LD	A,(HL)
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		EXX 
 | ||
| .RstRec1
 | ||
| 	ACCEL ACCELCMD.COPY
 | ||
| 		LD	A,(HL)
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	A,IXH
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY_VERT
 | ||
| 		LD	(DE),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		ADD	HL,BC
 | ||
| 		POP	BC
 | ||
| 		INC	DE
 | ||
| 		DEC	BC
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,.RstRect
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU3,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]==========================================================[]
 | ||
| ; <20>à®æ¥¤ãà  ç¥àç¥¨ï ¯àאַ㣮«ì®© ¯«®é ¤¨ ®ª 
 | ||
| PutRectan	HALT 
 | ||
| 		DI 
 | ||
| 		PUSH	IY
 | ||
| 	SPMOUSE MOUSEF.REFRESH
 | ||
| 		POP	IY
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	HL,(MakeWindow.PositX)	; ¯®§. ®ª 
 | ||
| 		SET	6,H
 | ||
| 		LD	A,(MakeWindow.LenY)	; ¤«¨  ®ª  -(¯®¤á¢¥âª +â¥ì)
 | ||
| 		SUB	0x02
 | ||
| 		LD	(.TmpLen1),A
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		LD	D,A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| 		LD	(HL),E
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	BC,(MakeWindow.LenX)
 | ||
| 		DEC	BC
 | ||
| 		DEC	BC
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen1	EQU $-1
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),COLORP.WHITE + COLORI.BLACKGRAY;0xF7
 | ||
| 		INC	HL
 | ||
| 		LD	E,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
 | ||
| .PtRect1	LD	A,D
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 		INC	HL
 | ||
| 		DEC	BC
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,.PtRect1
 | ||
| 		LD	A,D
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),COLORP.WHITE + COLORI.BLACKGRAY;0xF7
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),E
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ; <20>¥ç âì ⥪á⮢®© áâப¨ ¯® 㪠§ ®¬ã  ¤à¥áã
 | ||
| PutAdrTxtLine	LD	HL,(MakeWindow.PositX)
 | ||
| 		SLA	L
 | ||
| 		RL	H
 | ||
| 		LD	E,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	D,(IY+0x00)	; Xpos
 | ||
| 		INC	IY
 | ||
| 		ADD	HL,DE
 | ||
| 		EX	DE,HL
 | ||
| 		LD	HL,(MakeWindow.PositY)
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)	; Ypos
 | ||
| 		INC	IY
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,L
 | ||
| 		LD	B,H
 | ||
| 		LD	A,(IY+0x00)	; Color
 | ||
| 		INC	IY
 | ||
| 		LD L,(IY+0)
 | ||
| 		INC IY
 | ||
| 		LD H,(IY+0)		; €¤à¥á ⥪áâ 
 | ||
| 		INC IY
 | ||
| 		PUSH IY
 | ||
| 		LD IYL,A
 | ||
| 		LD A,H
 | ||
| 		OR L
 | ||
| 		LD A,IYL
 | ||
| 		CALL NZ,PrnTxtLnIFF	; ¯¥ç â âì ¥á«¨  ¤à¥á ¥ 0
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutTxtLine	LD	HL,(MakeWindow.PositX)
 | ||
| 		SLA	L
 | ||
| 		RL	H
 | ||
| 		LD	E,(IY+0x00)	; Xpos
 | ||
| 		INC	IY
 | ||
| 		LD	D,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		ADD	HL,DE
 | ||
| 		EX	DE,HL
 | ||
| 		LD	HL,(MakeWindow.PositY)
 | ||
| 		LD	C,(IY+0x00)	; Ypos
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,L
 | ||
| 		LD	B,H
 | ||
| 		LD	A,(IY+0x00)	; Color
 | ||
| 		INC	IY
 | ||
| 		PUSH	IY
 | ||
| 		POP	HL
 | ||
| 		CALL	PrnTxtLnIFF
 | ||
| 		PUSH	HL
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutHeadPlc	DI 
 | ||
| 		PUSH	IY
 | ||
| 	SPMOUSE MOUSEF.REFRESH
 | ||
| 		POP	IY
 | ||
| 		LD	HL,(MakeWindow.PositX)
 | ||
| 		SET	6,H
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		ADD	A,C
 | ||
| 		LD	IXL,A
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		LD	A,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		LD	(.TmpLen2),A
 | ||
| 		LD	A,(IY+0x00)
 | ||
| 		AND	0x0F
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		OR	(IY+0x00)
 | ||
| 		LD	D,A
 | ||
| 		INC	IY
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen2	EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| .PtHead1	LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),D
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DEC	BC
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,.PtHead1
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutDRectan	LD	HL,(MakeWindow.PositX)
 | ||
| 		SET	6,H
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		ADD	A,C
 | ||
| 		LD	IXL,A
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		DEC	BC
 | ||
| 		LD	A,C
 | ||
| 		DEC	A
 | ||
| 		LD	(.TmpLen4),A
 | ||
| 		LD	A,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		SUB	0x02
 | ||
| 		LD	(.TmpLen3),A
 | ||
| 		ADD	A,IXL
 | ||
| 		INC	A
 | ||
| 		LD	IXH,A
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen3	EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 		LD	(HL),E
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),COLORP.BLACKGRAY + COLORI.WHITE;0x7F
 | ||
| 		PUSH	HL
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| 		LD	(HL),E
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),E
 | ||
| 		POP	HL
 | ||
| 		INC	HL
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen4	EQU $-1
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	A,IXH
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutURectan	LD	HL,(MakeWindow.PositX)
 | ||
| 		SET	6,H		; | 0x4000
 | ||
| 		LD	C,(IY+0x00)	; 00
 | ||
| 		INC	IY		; 0->1
 | ||
| 		LD	B,(IY+0x00)	; 01
 | ||
| 		INC	IY		; 1->2
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(IY+0x00)	; 02
 | ||
| 		INC	IY		; 2->3
 | ||
| 		INC	IY		; 3->4
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		ADD	A,C
 | ||
| 		LD	IXL,A
 | ||
| 		LD	C,(IY+0x00)	; 04
 | ||
| 		INC	IY		; 4->5
 | ||
| 		LD	B,(IY+0x00)	; 05
 | ||
| 		INC	IY		; 5->6
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		DEC	BC
 | ||
| 		LD	A,C
 | ||
| 		DEC	A
 | ||
| 		LD	(.TmpLen6),A
 | ||
| 		LD	A,(IY+0x00)	; 06
 | ||
| 		INC	IY		; 6->7
 | ||
| 		INC	IY		; 7->8
 | ||
| 		SUB	0x02
 | ||
| 		LD	(.TmpLen5),A
 | ||
| 		ADD	A,IXL
 | ||
| 		INC	A
 | ||
| 		LD	IXH,A
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen5	EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| 		LD	(HL),E
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),COLORP.WHITE + COLORI.BLACKGRAY;0xF7
 | ||
| 		PUSH	HL
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 		LD	(HL),E
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),E
 | ||
| 		POP	HL
 | ||
| 		INC	HL
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen6	EQU $-1
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	A,IXH
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	E,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutButton	LD	HL,(MakeWindow.PositX)
 | ||
| 		SLA	L
 | ||
| 		RL	H
 | ||
| 		LD	E,(IY+0x00)	; Xpos
 | ||
| 		LD	D,(IY+0x01)
 | ||
| 		ADD	HL,DE
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		EX	DE,HL
 | ||
| 		LD	HL,(MakeWindow.PositY)
 | ||
| 		LD	C,(IY+0x02)	; Ypos
 | ||
| 		LD	B,(IY+0x03)
 | ||
| 		ADD	HL,BC
 | ||
| 		INC	HL
 | ||
| 		LD	C,L
 | ||
| 		LD	B,H
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	BC
 | ||
| 		CALL	PutURectan
 | ||
| 		POP	BC
 | ||
| 		POP	DE
 | ||
| 		LD	A,(IY+0x00)	; Color
 | ||
| 		INC	IY
 | ||
| 		PUSH	IY
 | ||
| 		POP	HL
 | ||
| 		CALL	PrnTxtLnIFF
 | ||
| 		PUSH	HL
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutHorizLine	LD	HL,(MakeWindow.PositX)
 | ||
| 		SET	6,H
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		ADD	A,C
 | ||
| 		LD	IXL,A
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		LD	E,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 		PUSH	HL
 | ||
| 		CALL	.HorizLn
 | ||
| 		POP	HL
 | ||
| 		INC	IXL
 | ||
| 		LD	E,COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| .HorizLn	DI 
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	A,B
 | ||
| 		OR	A
 | ||
| 		JR	Z,.HorLn1
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	H
 | ||
| .HorLn1		LD	A,C
 | ||
| 		LD	(.TmpLen8),A
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen8	EQU $-1
 | ||
| 	ACCEL ACCELCMD.FILL
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutVertLine	LD	HL,(MakeWindow.PositX)
 | ||
| 		SET	6,H
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		ADD	A,C
 | ||
| 		LD	IXL,A
 | ||
| 		LD	A,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		LD	(.TmpLen9),A
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 		LD	DE,(COLORP.BLACKGRAY + COLORI.BLACKGRAY) << 8 + COLORP.WHITE + COLORI.WHITE;0x77FF
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .TmpLen9	EQU $-1
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),D
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		LD	A,IXL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),E
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ;[]===========================================================[]
 | ||
| PutSBleft	LD	HL,SBleft
 | ||
| 		JR	PutSButton
 | ||
| 
 | ||
| PutSBright	LD	HL,SBright
 | ||
| 		JR	PutSButton
 | ||
| 
 | ||
| PutSBup		LD	HL,SBup
 | ||
| 		JR	PutSButton
 | ||
| 
 | ||
| PutSBdown	LD	HL,SBdown
 | ||
| PutSButton	EX	DE,HL
 | ||
| 		LD	HL,(MakeWindow.PositX)
 | ||
| 		SET	6,H
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		LD	B,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		SRL	B
 | ||
| 		RR	C
 | ||
| 		ADD	HL,BC
 | ||
| 		EX	DE,HL
 | ||
| 		LD	C,(IY+0x00)
 | ||
| 		INC	IY
 | ||
| 		INC	IY
 | ||
| 		LD	A,(MakeWindow.PositY)
 | ||
| 		ADD	A,C
 | ||
| 		LD	C,A
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x08
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	B,0x08
 | ||
| PutSBlp		PUSH	BC
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.COPY
 | ||
| 		LD	A,(HL)
 | ||
| 		LD	(DE),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	BC,0x0008
 | ||
| 		ADD	HL,BC
 | ||
| 		POP	BC
 | ||
| 		INC	C
 | ||
| 		DJNZ	PutSBlp
 | ||
| 		EI 
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		RET 
 | ||
| 
 | ||
| ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢«¥¢®"
 | ||
| SBleft
 | ||
| ;		DEFB	0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x88,0x80,0x00,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x80,0x00,0x00,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x80,0x00,0x00,0x08,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x80,0x00,0x00,0x08,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x00,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x80,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77
 | ||
| 		DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x77		; 0
 | ||
| 		DB 0xFF,0x88,0x88,0x88,0x80,0x00,0x88,0x77		; 1
 | ||
| 		DB 0xFF,0x88,0x88,0x80,0x00,0x08,0x88,0x77		; 2
 | ||
| 		DB 0xFF,0x88,0x80,0x00,0x00,0x88,0x88,0x77		; 3
 | ||
| 		DB 0xFF,0x88,0x80,0x00,0x00,0x88,0x88,0x77		; 4
 | ||
| 		DB 0xFF,0x88,0x88,0x80,0x00,0x08,0x88,0x77		; 5
 | ||
| 		DB 0xFF,0x88,0x88,0x88,0x80,0x00,0x88,0x77		; 6
 | ||
| 		DB 0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77		; 7
 | ||
| 
 | ||
| ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢¯à ¢®"
 | ||
| SBright
 | ||
| ;		DEFB	0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x08,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x00,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x00,0x08,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x00,0x08,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x00,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x08,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77
 | ||
| 		DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF		; 0
 | ||
| 		DB 0xFF,0x88,0x00,0x08,0x88,0x88,0x88,0x77		; 1
 | ||
| 		DB 0xFF,0x88,0x80,0x00,0x08,0x88,0x88,0x77		; 2
 | ||
| 		DB 0xFF,0x88,0x88,0x00,0x00,0x08,0x88,0x77		; 3
 | ||
| 		DB 0xFF,0x88,0x88,0x00,0x00,0x08,0x88,0x77		; 4
 | ||
| 		DB 0xFF,0x88,0x80,0x00,0x08,0x88,0x88,0x77		; 5
 | ||
| 		DB 0xFF,0x88,0x00,0x08,0x88,0x88,0x88,0x77		; 6
 | ||
| 		DB 0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77		; 7
 | ||
| 
 | ||
| ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢¢¥àå"
 | ||
| SBup
 | ||
| ;		DEFB	0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x80,0x08,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x00,0x00,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x00,0x00,0x00,0x00,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77
 | ||
| 		DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF		; 0
 | ||
| 		DB 0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77		; 1
 | ||
| 		DB 0xFF,0x88,0x88,0x80,0x08,0x88,0x88,0x77		; 2
 | ||
| 		DB 0xFF,0x88,0x88,0x00,0x00,0x88,0x88,0x77		; 3
 | ||
| 		DB 0xFF,0x88,0x80,0x00,0x00,0x08,0x88,0x77		; 4
 | ||
| 		DB 0xFF,0x88,0x00,0x08,0x80,0x00,0x88,0x77		; 5
 | ||
| 		DB 0xFF,0x88,0x00,0x88,0x88,0x00,0x88,0x77		; 6
 | ||
| 		DB 0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77		; 7
 | ||
| 
 | ||
| ; á¯à ©â¨ª ¤«ï áªà®««¡ à  "áâ५ª  ¢¨§"
 | ||
| SBdown
 | ||
| ;		DEFB	0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x00,0x00,0x00,0x00,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x00,0x00,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x80,0x08,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77
 | ||
| ;		DEFB	0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77
 | ||
| 		DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF		; 0
 | ||
| 		DB 0xFF,0x88,0x88,0x88,0x88,0x88,0x88,0x77		; 1
 | ||
| 		DB 0xFF,0x88,0x00,0x88,0x88,0x00,0x88,0x77		; 2
 | ||
| 		DB 0xFF,0x88,0x00,0x08,0x80,0x00,0x88,0x77		; 3
 | ||
| 		DB 0xFF,0x88,0x80,0x00,0x00,0x08,0x88,0x77		; 4
 | ||
| 		DB 0xFF,0x88,0x88,0x00,0x00,0x88,0x88,0x77		; 5
 | ||
| 		DB 0xFF,0x88,0x88,0x80,0x08,0x88,0x88,0x77		; 6
 | ||
| 		DB 0xFF,0x77,0x77,0x77,0x77,0x77,0x77,0x77		; 7
 | ||
| 
 | ||
| ;[]----------------------------------------------------------[]
 | ||
| ; <20>à®æ¥¤ãà  ¨¢¥àâ¨à®¢ ¨ï ¯àאַ㣮«ì®© ¯«®áª®áâ¨
 | ||
| ; <20>  ¢å®¤:
 | ||
| ;	 HL - X	ª®®à¤¨ â 
 | ||
| ;	 BC - Y	ª®®à¤¨ â 
 | ||
| ;	 HX - ¤«¨  Y
 | ||
| ;	 LX - ¤«¨  X
 | ||
| ;	 D  - ⥪ã騩 梥â
 | ||
| ;	 E  - ã¦ë© 梥â
 | ||
| InvertRectan	PUSH	IY
 | ||
| 	GETPORT WINSP.Y_PORT		; ‘®åà ï¥¬ Y ¯®àâ
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		PUSH	AF
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		LD	IYL,C
 | ||
| 		LD	C,IXH
 | ||
| 		LD	B,IXL
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SET	6,H
 | ||
| 		LD	IXL,E
 | ||
| 		LD	IXH,D
 | ||
| 		LD	A,D
 | ||
| 		AND	0xF0
 | ||
| 		LD	IYH,A
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		OR	IYH
 | ||
| 		LD	D,A
 | ||
| 		AND	0x0F
 | ||
| 		LD	IYH,A
 | ||
| 		LD	E,IXH
 | ||
| 		LD	A,E
 | ||
| 		AND	0x0F
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		OR	IYH
 | ||
| 		LD	IXH,A
 | ||
| 		EXX 
 | ||
| 		LD	A,IXL
 | ||
| 		AND	0xF0
 | ||
| 		LD	IYH,A
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		OR	IYH
 | ||
| 		LD	D,A
 | ||
| 		AND	0x0F
 | ||
| 		LD	IYH,A
 | ||
| 		LD	E,IXL
 | ||
| 		LD	A,E
 | ||
| 		AND	0x0F
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		RLCA 
 | ||
| 		OR	IYH
 | ||
| 		LD	B,A
 | ||
| 		AND	0xF0
 | ||
| 		LD	IYH,A
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		OR	IYH
 | ||
| 		LD	C,A
 | ||
| 		EXX 
 | ||
| .PrnInvLp	LD	A,IYL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		PUSH	HL
 | ||
| 		EXX 
 | ||
| 		POP	HL
 | ||
| 		EXX 
 | ||
| 		PUSH	HL
 | ||
| 		PUSH	BC
 | ||
| 		CALL	InvLnLp
 | ||
| 		POP	BC
 | ||
| 		POP	HL
 | ||
| 		INC	IYL
 | ||
| 		DEC	C
 | ||
| 		JR	NZ,.PrnInvLp
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		POP	AF
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| InvLnLp		LD	A,(HL)
 | ||
| 		INC	HL
 | ||
| 		CP	D
 | ||
| 		JR	NZ,CmpInv2
 | ||
| 		EXX 
 | ||
| 		LD	(HL),D
 | ||
| 		INC	HL
 | ||
| 		EXX 
 | ||
| 		DJNZ	InvLnLp
 | ||
| 		RET 
 | ||
| 
 | ||
| CmpInv2		CP	E
 | ||
| 		JR	NZ,CmpInv3
 | ||
| 		EXX 
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		EXX 
 | ||
| 		DJNZ	InvLnLp
 | ||
| 		RET 
 | ||
| 
 | ||
| CmpInv3		CP	IXH
 | ||
| 		JR	NZ,SetInv4
 | ||
| 		EXX 
 | ||
| 		LD	(HL),B
 | ||
| 		INC	HL
 | ||
| 		EXX 
 | ||
| 		DJNZ	InvLnLp
 | ||
| 		RET 
 | ||
| 
 | ||
| SetInv4		EXX 
 | ||
| 		LD	(HL),C
 | ||
| 		INC	HL
 | ||
| 		EXX 
 | ||
| 		DJNZ	InvLnLp
 | ||
| 		RET 
 |