- плагин доделан, описание/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.
		
			
				
	
	
		
			597 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			597 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | ||
| ; LAST UPDATE: 25.07.2025 savelij
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------[]
 | ||
| InitScrollBar	LD	C,(IX + BAR.PAGE_FILES)
 | ||
| 		LD	B,(IX + BAR.PAGE_FILES + 1)		; Š®«-¢® í«¥¬.   áâà.
 | ||
| 		LD	L,C
 | ||
| 		LD	H,B
 | ||
| 		LD	E,(IX + BAR.MAX_FILES)
 | ||
| 		LD	D,(IX + BAR.MAX_FILES + 1)		; ¬ ªá.í«¥¬¥â®¢
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	NZ,.L1
 | ||
| 		INC	DE
 | ||
| .L1		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		JR	C,.L2
 | ||
| 		ADD	HL,DE
 | ||
| 		EX	DE,HL
 | ||
| .L2		PUSH	DE
 | ||
| 		LD	E,(IX + BAR.MAX_LEN)
 | ||
| 		LD	D,(IX + BAR.MAX_LEN + 1)		; Š®«-¢® ¢¨¤. í«¥¬. * à §¬¥à ¡ à 
 | ||
| 		CALL	Mult16X16			; DE * BC = HL + DE
 | ||
| 		POP	BC				; /¬ ªá.í«¥¬¥â®¢
 | ||
| 		CALL	Divis32X16			; HL + DE / BC = DE (HL-®áâ)
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	Z,.L3
 | ||
| 		INC	DE
 | ||
| .L3		LD	HL,0x0003
 | ||
| 		SBC	HL,DE
 | ||
| 		JR	C,.L4
 | ||
| 		LD	DE,0x0003
 | ||
| .L4		LD	(IX + BAR.LEN_FILES),E		; = ¤«¨  ¡ à 
 | ||
| 		LD	(IX + BAR.LEN_FILES + 1),D		; = ¤«¨  ¡ à 
 | ||
| 		RET
 | ||
| 
 | ||
| PrnHScrBar	PUSH	IY
 | ||
| 	GETPORT WINSP.Y_PORT
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		LD	IYL,A
 | ||
| 		LD	L,(IX + BAR.FIRST_FILE)		; FirstFile
 | ||
| 		LD	H,(IX + BAR.FIRST_FILE + 1)
 | ||
| 		LD	E,(IX + BAR.PAGE_FILES)
 | ||
| 		LD	D,(IX + BAR.PAGE_FILES + 1)
 | ||
| 		LD	C,(IX + BAR.MAX_FILES)		; EquipFiles
 | ||
| 		LD	B,(IX + BAR.MAX_FILES + 1)
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,.L1
 | ||
| 		INC	BC
 | ||
| .L1		PUSH	BC
 | ||
| 		PUSH	HL
 | ||
| 		ADD	HL,DE
 | ||
| 		SBC	HL,BC
 | ||
| 		POP	HL
 | ||
| 		JR	C,.L2
 | ||
| 		JR	Z,.L2
 | ||
| 		LD	L,C
 | ||
| 		LD	H,B
 | ||
| 		SBC	HL,DE
 | ||
| 		JR	NC,.L2
 | ||
| 		LD	HL,0x0000
 | ||
| .L2		EX	DE,HL
 | ||
| 		LD	C,(IX + BAR.MAX_LEN)
 | ||
| 		LD	B,(IX + BAR.MAX_LEN + 1)
 | ||
| 		CALL	Mult16X16
 | ||
| 		POP	BC
 | ||
| 		CALL	Divis32X16
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	Z,.L3
 | ||
| 		PUSH	DE
 | ||
| 		SRL	D
 | ||
| 		RR	E
 | ||
| 		JR	NC,.L4
 | ||
| 		INC	DE
 | ||
| .L4		LD	L,(IX + BAR.X)
 | ||
| 		LD	H,(IX + BAR.X + 1)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SET	6,H
 | ||
| 		LD	A,(IX + BAR.Y)
 | ||
| 		LD	C,A
 | ||
| 		LD	B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x08
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| .L5		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),B
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DEC	DE
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	NZ,.L5
 | ||
| 		LD	A,IYL
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI 
 | ||
| 		POP	DE
 | ||
| .L3		PUSH	DE
 | ||
| 		LD	L,(IX + BAR.X)
 | ||
| 		LD	H,(IX + BAR.X + 1)
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	E,(IX + BAR.LEFT_FILES)
 | ||
| 		LD	D,(IX + BAR.LEFT_FILES + 1)
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	Z,.L6
 | ||
| 		EX	DE,HL
 | ||
| 	SETPORT WINSP.Y_PORT,0xC0
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),D
 | ||
| 		EX	DE,HL
 | ||
| .L6		PUSH	HL
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SET	6,H
 | ||
| 		LD	A,(IX + BAR.Y)
 | ||
| 		LD	C,A
 | ||
| 		LD	E,(IX + BAR.LEN_FILES)
 | ||
| 		LD	D,(IX + BAR.LEN_FILES + 1)
 | ||
| 		LD	A,D
 | ||
| 		OR	A
 | ||
| 		JR	NZ,.L7
 | ||
| 		LD	A,E
 | ||
| 		CP	0x06
 | ||
| 		JR	NC,.L7
 | ||
| 		LD	E,0x06
 | ||
| .L7		SRL	D
 | ||
| 		RR	E
 | ||
| 		JR	C,.L8
 | ||
| 		DEC	DE
 | ||
| .L8		DEC	DE
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x06
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	B,COLORP.WHITE + COLORI.WHITE;0xFF
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),B
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),B
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),0xF7
 | ||
| 		INC	HL
 | ||
| .L9		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),B
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	A,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 		INC	HL
 | ||
| 		DEC	DE
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	NZ,.L9
 | ||
| 		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),0xF7
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	A,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		EX	DE,HL
 | ||
| 		LD	A,IYL
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI 
 | ||
| 		POP	HL
 | ||
| 		LD	C,(IX + BAR.LEN_FILES)
 | ||
| 		LD	B,(IX + BAR.LEN_FILES + 1)
 | ||
| 		PUSH	BC
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(IX + BAR.RIGHT_FILES)
 | ||
| 		LD	B,(IX + BAR.RIGHT_FILES + 1)
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	Z,.L10
 | ||
| 	SETPORT WINSP.Y_PORT,0xC0
 | ||
| 		LD	A,L
 | ||
| 		LD	(BC),A
 | ||
| 		INC	BC
 | ||
| 		LD	A,H
 | ||
| 		LD	(BC),A
 | ||
| .L10		POP	BC
 | ||
| 		LD	L,(IX + BAR.MAX_LEN)
 | ||
| 		LD	H,(IX + BAR.MAX_LEN + 1)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		POP	BC
 | ||
| 		JR	Z,.L11
 | ||
| 		JR	C,.L11
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		JR	Z,.L11
 | ||
| 		JR	C,.L11
 | ||
| 		EX	DE,HL
 | ||
| 		SRL	D
 | ||
| 		RR	E
 | ||
| 		JR	Z,.L11
 | ||
| 		LD	A,(IX + BAR.Y)
 | ||
| 		LD	C,A
 | ||
| 		LD	B,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x08
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| .L12		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),B
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DEC	DE
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	NZ,.L12
 | ||
| 		LD	A,IYL
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI 
 | ||
| .L11		POP	AF
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		POP	IY
 | ||
| 		RET 
 | ||
| 
 | ||
| PrnVScrBar	PUSH	IY
 | ||
| 	GETPORT WINSP.Y_PORT
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		LD	IYH,A
 | ||
| 		LD	L,(IX + BAR.FIRST_FILE)		; FirstFile
 | ||
| 		LD	H,(IX + BAR.FIRST_FILE + 1)
 | ||
| 		LD	E,(IX + BAR.PAGE_FILES)
 | ||
| 		LD	D,(IX + BAR.PAGE_FILES + 1)
 | ||
| 		LD	C,(IX + BAR.MAX_FILES)		; EquipFiles
 | ||
| 		LD	B,(IX + BAR.MAX_FILES + 1)
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	NZ,.L1
 | ||
| 		INC	BC
 | ||
| .L1		PUSH	BC
 | ||
| 		PUSH	HL
 | ||
| 		ADD	HL,DE
 | ||
| 		SBC	HL,BC
 | ||
| 		POP	HL
 | ||
| 		JR	C,.L2
 | ||
| 		JR	Z,.L2
 | ||
| 		LD	L,C
 | ||
| 		LD	H,B
 | ||
| 		SBC	HL,DE
 | ||
| 		JR	NC,.L2
 | ||
| 		LD	HL,0x0000
 | ||
| .L2		EX	DE,HL
 | ||
| 		LD	C,(IX + BAR.MAX_LEN)
 | ||
| 		LD	B,(IX + BAR.MAX_LEN + 1)
 | ||
| 		CALL	Mult16X16
 | ||
| 		POP	BC
 | ||
| 		CALL	Divis32X16
 | ||
| 		LD	A,(IX + BAR.Y)
 | ||
| 		LD	IYL,A
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	Z,.L3
 | ||
| 		PUSH	DE
 | ||
| 		LD	A,E
 | ||
| 		LD	(.L4),A
 | ||
| 		LD	L,(IX + BAR.X)
 | ||
| 		LD	H,(IX + BAR.X + 1)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SET	6,H
 | ||
| 		LD	D,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .L4		EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	B,0x08
 | ||
| .L5		LD	A,IYL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),D
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.L5
 | ||
| 		LD	A,IYL
 | ||
| 		ADD	A,E
 | ||
| 		LD	IYL,A
 | ||
| 		LD	A,IYH
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI 
 | ||
| 		POP	DE
 | ||
| .L3		PUSH	DE
 | ||
| 		LD	L,(IX + BAR.Y)
 | ||
| 		LD	H,(IX + BAR.Y + 1)
 | ||
| 		ADD	HL,DE
 | ||
| 		LD	E,(IX + BAR.LEFT_FILES)
 | ||
| 		LD	D,(IX + BAR.LEFT_FILES + 1)
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	Z,.L6
 | ||
| 		EX	DE,HL
 | ||
| 	SETPORT WINSP.Y_PORT,0xC0
 | ||
| 		LD	(HL),E
 | ||
| 		INC	HL
 | ||
| 		LD	(HL),D
 | ||
| 		EX	DE,HL
 | ||
| .L6		PUSH	HL
 | ||
| 		LD	L,(IX + BAR.X)
 | ||
| 		LD	H,(IX + BAR.X + 1)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SET	6,H
 | ||
| 		LD	A,(IX + BAR.LEN_FILES)
 | ||
| 		LD	C,A
 | ||
| 		SUB	0x02
 | ||
| 		LD	(.L7),A
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI 
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .L7		EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	DE,(COLORP.WHITE + COLORI.WHITE) << 8 + COLORP.HIGHGRAY + COLORI.HIGHGRAY;0xFF88
 | ||
| 		LD	A,IYL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),D
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),D
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),COLORP.WHITE + COLORI.BLACKGRAY;0xF7
 | ||
| 		INC	HL
 | ||
| 		LD	B,0x06
 | ||
| .L8		LD	A,IYL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),D
 | ||
| 		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
 | ||
| 		DJNZ	.L8
 | ||
| 		LD	A,IYL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	(HL),COLORP.WHITE + COLORI.BLACKGRAY;0xF7
 | ||
| 		INC	A
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		LD	A,COLORP.BLACKGRAY + COLORI.BLACKGRAY;0x77
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	(HL),A
 | ||
| 		INC	HL
 | ||
| 		LD	A,IYL
 | ||
| 		ADD	A,C
 | ||
| 		LD	IYL,A
 | ||
| 		LD	A,IYH
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI 
 | ||
| 		POP	HL
 | ||
| 		LD	C,(IX + BAR.LEN_FILES)
 | ||
| 		LD	B,(IX + BAR.LEN_FILES + 1)
 | ||
| 		PUSH	BC
 | ||
| 		ADD	HL,BC
 | ||
| 		LD	C,(IX + BAR.RIGHT_FILES)
 | ||
| 		LD	B,(IX + BAR.RIGHT_FILES + 1)
 | ||
| 		LD	A,B
 | ||
| 		OR	C
 | ||
| 		JR	Z,.L9
 | ||
| 	SETPORT WINSP.Y_PORT,0xC0
 | ||
| 		LD	A,L
 | ||
| 		LD	(BC),A
 | ||
| 		INC	BC
 | ||
| 		LD	A,H
 | ||
| 		LD	(BC),A
 | ||
| .L9		POP	BC
 | ||
| 		LD	L,(IX + BAR.MAX_LEN)
 | ||
| 		LD	H,(IX + BAR.MAX_LEN + 1)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		POP	BC
 | ||
| 		JR	Z,.L10
 | ||
| 		JR	C,.L10
 | ||
| 		OR	A
 | ||
| 		SBC	HL,BC
 | ||
| 		JR	Z,.L10
 | ||
| 		JR	C,.L10
 | ||
| 		LD	A,L
 | ||
| 		LD	(.L11),A
 | ||
| 		LD	L,(IX + BAR.X)
 | ||
| 		LD	H,(IX + BAR.X + 1)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SET	6,H
 | ||
| 		LD	D,COLORP.HIGHGRAY + COLORI.HIGHGRAY;0x88
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x00
 | ||
| .L11		EQU $-1
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		LD	B,0x08
 | ||
| .L12		LD	A,IYL
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),D
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DJNZ	.L12
 | ||
| 		LD	A,IYH
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI
 | ||
| .L10		POP	AF
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		POP	IY
 | ||
| 		RET
 | ||
| 
 | ||
| ;[]-----------------------------------------------------------[]
 | ||
| InitProcess	SUB	A
 | ||
| 		LD	(IX + PROC.CURR_PAGE),A
 | ||
| 		LD	(IX + PROC.CURR_PAGE + 1),A
 | ||
| 		LD	(IX + PROC.CURR_PAGE + 2),A
 | ||
| 		LD	(IX + PROC.CURR_PAGE + 3),A
 | ||
| 		LD	(IX + PROC.CORR_INDEX),A
 | ||
| 		LD	(IX + PROC.CORR_INDEX + 1),A
 | ||
| 		LD	C,(IX + PROC.MAX_LEN)		; Œ ªá/¬ ªá.¤«¨ã ¯à®æ¥á 
 | ||
| 		LD	B,(IX + PROC.MAX_LEN + 1)
 | ||
| 		LD	E,(IX + PROC.MAX_PAGES)
 | ||
| 		LD	D,(IX + PROC.MAX_PAGES + 1)
 | ||
| 		LD	L,(IX + PROC.MAX_PAGES + 2)
 | ||
| 		LD	H,(IX + PROC.MAX_PAGES + 3)
 | ||
| 		CALL	Divis32X16			; HL + DE / BC = DE (HL-®áâ)
 | ||
| 		LD	A,H
 | ||
| 		OR	L
 | ||
| 		JR	Z,.L2
 | ||
| 		INC	DE				; = ª®íä䍿¨¥â
 | ||
| .L2		LD	HL,9
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		JR	C,.L1
 | ||
| 		LD	A,(IX + PROC.MAX_PAGES + 2)
 | ||
| 		OR	(IX + PROC.MAX_PAGES + 3)
 | ||
| 		JR	NZ,.L1
 | ||
| 		LD	E,(IX + PROC.MAX_PAGES)
 | ||
| 		LD	D,(IX + PROC.MAX_PAGES + 1)
 | ||
| 		LD	BC,1000
 | ||
| 		LD	(IX + PROC.CORR_INDEX),C
 | ||
| 		LD	(IX + PROC.CORR_INDEX + 1),B
 | ||
| 		CALL	Mult16X16
 | ||
| 		LD	C,(IX + PROC.MAX_LEN)		; Œ ªá/¬ ªá.¤«¨ã ¯à®æ¥á 
 | ||
| 		LD	B,(IX + PROC.MAX_LEN + 1)
 | ||
| 		CALL	Divis32X16			; HL + DE / BC = DE (HL-®áâ)
 | ||
| .L1		LD	(IX + PROC.INDEX),E
 | ||
| 		LD	(IX + PROC.INDEX + 1),D
 | ||
| 		RET
 | ||
| 
 | ||
| PrnProcess	PUSH	IY
 | ||
| 	GETPORT WINSP.Y_PORT
 | ||
| 		PUSH	AF
 | ||
| 	GETPORT WINSP.CPU1
 | ||
| 		LD	IYL,A
 | ||
| 		LD	E,(IX + PROC.CURR_PAGE)
 | ||
| 		LD	D,(IX + PROC.CURR_PAGE + 1)
 | ||
| 		LD	L,(IX + PROC.CURR_PAGE + 2)
 | ||
| 		LD	H,(IX + PROC.CURR_PAGE + 3)
 | ||
| 		LD	A,(IX + PROC.CORR_INDEX)
 | ||
| 		OR	(IX + PROC.CORR_INDEX + 1)
 | ||
| 		JR	Z,.L1
 | ||
| 		LD	C,(IX + PROC.CORR_INDEX)
 | ||
| 		LD	B,(IX + PROC.CORR_INDEX + 1)
 | ||
| 		CALL	Mult16X16
 | ||
| .L1		LD	C,(IX + PROC.INDEX)
 | ||
| 		LD	B,(IX + PROC.INDEX + 1)
 | ||
| 		CALL	Divis32X16
 | ||
| 		LD	L,(IX + PROC.X)
 | ||
| 		LD	H,(IX + PROC.X + 1)
 | ||
| 		SRL	H
 | ||
| 		RR	L
 | ||
| 		SET	6,H
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	Z,.L2
 | ||
| 		PUSH	DE
 | ||
| 		PUSH	HL
 | ||
| 		LD	L,(IX + PROC.MAX_LEN)
 | ||
| 		LD	H,(IX + PROC.MAX_LEN + 1)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		JR	NC,.L3
 | ||
| 		ADD	HL,DE
 | ||
| 		EX	DE,HL
 | ||
| .L3		POP	HL
 | ||
| 		SRL	D
 | ||
| 		RR	E
 | ||
| 		JR	NC,.L4
 | ||
| 		INC	DE
 | ||
| .L4		LD	A,(IX + PROC.Y)
 | ||
| 		LD	C,A
 | ||
| 		LD	A,(IX + PROC.COLOR)
 | ||
| 		AND	0xF0
 | ||
| 		LD	B,A
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		RRCA 
 | ||
| 		OR	B
 | ||
| 		LD	B,A
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x0A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| .L5		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),B
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DEC	DE
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	NZ,.L5
 | ||
| 		LD	A,IYL
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI
 | ||
| 		POP	DE
 | ||
| .L2		PUSH	HL
 | ||
| 		LD	L,(IX + PROC.MAX_LEN)
 | ||
| 		LD	H,(IX + PROC.MAX_LEN + 1)
 | ||
| 		OR	A
 | ||
| 		SBC	HL,DE
 | ||
| 		EX	DE,HL
 | ||
| 		POP	HL
 | ||
| 		JR	Z,.L6
 | ||
| 		JR	C,.L6
 | ||
| 		SRL	D
 | ||
| 		RR	E
 | ||
| 		JR	NC,.L7
 | ||
| 		INC	DE
 | ||
| .L7		LD	A,(IX + PROC.Y)
 | ||
| 		LD	C,A
 | ||
| 		LD	A,(IX + PROC.COLOR)
 | ||
| 		AND	0x0F
 | ||
| 		LD	B,A
 | ||
| 		RLCA
 | ||
| 		RLCA
 | ||
| 		RLCA
 | ||
| 		RLCA
 | ||
| 		OR	B
 | ||
| 		LD	B,A
 | ||
| 	SETPORT WINSP.CPU1,0x50
 | ||
| 		DI
 | ||
| 	ACCEL ACCELCMD.SET_BUFFER
 | ||
| 		LD	A,0x0A
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| .L8		LD	A,C
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 	ACCEL ACCELCMD.FILL_VERT
 | ||
| 		LD	(HL),B
 | ||
| 	ACCEL ACCELCMD.OFF
 | ||
| 		INC	HL
 | ||
| 		DEC	DE
 | ||
| 		LD	A,D
 | ||
| 		OR	E
 | ||
| 		JR	NZ,.L8
 | ||
| 		LD	A,IYL
 | ||
| 	SETPORT WINSP.CPU1,,0
 | ||
| 		EI
 | ||
| .L6		POP	AF
 | ||
| 	SETPORT WINSP.Y_PORT,,0
 | ||
| 		POP	IY
 | ||
| 		RET
 |