1146 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
			
		
		
	
	
			1146 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			NASM
		
	
	
	
	
	
| 
 | ||
| ;******************************************************************
 | ||
| ; ¢å®¤:	DE - ¢¥à⨪ «ì, HL - £®à¨§®â «ì,
 | ||
| ;	B - 梥â â®çª¨, A - íªà 
 | ||
| PIC_FN1:
 | ||
| 	AND A
 | ||
| 	SCF
 | ||
| 	RET NZ
 | ||
| 	CCF
 | ||
| 
 | ||
| 	IN A,(PORT_Y)
 | ||
| 	PUSH AF
 | ||
| 
 | ||
| 	IN A,(SLOT3)
 | ||
| 	EX AF,AF'
 | ||
| 	LD A,SYS_PAGE
 | ||
| 	OUT (SLOT3),A
 | ||
| 
 | ||
| 	LD A,(WIN_ID_0.GRAF_Y)
 | ||
| 	ADD A,E
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	LD A,B
 | ||
| 	LD BC,(WIN_ID_0.GRAF_X)
 | ||
| 	ADD HL,BC
 | ||
| 	LD B,A
 | ||
| 	LD A,#50
 | ||
| 	OUT (SLOT3),A
 | ||
| 	LD (HL),A
 | ||
| 	EX AF,AF'
 | ||
| 	OUT (SLOT3),A
 | ||
| 
 | ||
| 	POP AF
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	RET
 | ||
| 
 | ||
| ; ¢å®¤:	DE - ¢¥à⨪ «ì, HL - £®à¨§®â «ì.
 | ||
| ;	IX - ¤«¨  «¨¨¨ ¢ â®çª å ¥ 0 !!!
 | ||
| ; FILL - by A
 | ||
| ; ?????
 | ||
| PIC_FN2:
 | ||
| 	LD D,A
 | ||
| 	IN A,(SLOT1)
 | ||
| 	EX AF,AF'
 | ||
| 
 | ||
| 	LD A,B
 | ||
| 	ADD A,#50
 | ||
| 	OUT (SLOT1),A
 | ||
| 
 | ||
| 	BIT 0,B
 | ||
| 	LD BC,#40+#4000
 | ||
| 	JR Z,PIC_FN2_NO_2ND
 | ||
| 	LD BC,#40+320+#4000
 | ||
| PIC_FN2_NO_2ND:
 | ||
| 	ADD HL,BC
 | ||
| 
 | ||
| 	LD A,E
 | ||
| 	OUT (PORT_Y),A
 | ||
| 
 | ||
| 	LD A,XH
 | ||
| 	AND A
 | ||
| 	JR Z,PIC_FN2_NO256
 | ||
| PIC_FN2_256L:
 | ||
| 	LD B,64
 | ||
| PIC_FN2_256:
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	DJNZ PIC_FN2_256
 | ||
| 	DEC A
 | ||
| 	JR NZ,PIC_FN2_256L
 | ||
| 
 | ||
| PIC_FN2_NO256:
 | ||
| 	LD B,XL
 | ||
| 	AND A
 | ||
| 	RR B
 | ||
| 	JR NC,PIC_FN2_NO1
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	AND A
 | ||
| PIC_FN2_NO1:
 | ||
| 	RR B
 | ||
| 	JR NC,PIC_FN2_NO2
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	AND A
 | ||
| PIC_FN2_NO2:
 | ||
| 	XOR A
 | ||
| 	CP B
 | ||
| 	JR Z,PIC_FN2_NO4
 | ||
| PIC_FN2_4:
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	LD (HL),D
 | ||
| 	INC HL
 | ||
| 	DJNZ PIC_FN2_4
 | ||
| PIC_FN2_NO4:
 | ||
| 
 | ||
| 	EX AF,AF'
 | ||
| 	OUT (SLOT1),A
 | ||
| 	XOR A
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	RET
 | ||
| 
 | ||
| ;************************************************************************
 | ||
| ; ¢å®¤:	dE - ¢¥à⨪ «ì, HL - £®à¨§®â «ì.
 | ||
| ;	A',HL' -  ¤à¥á ¤ ëå ¢® ¢â®à®© áâà ¨æ¥ !
 | ||
| ;	BC' - ¤«¨  ¤ ëå
 | ||
| ; ‚›‚Ž„ ‹ˆ<E280B9>ˆˆ ’Ž—…Š
 | ||
| PIC_FN3:
 | ||
| 	IN A,(SLOT3)
 | ||
| 	LD C,A
 | ||
| 	LD A,SYS_PAGE
 | ||
| 	OUT (SLOT3),A
 | ||
| 	LD A,C
 | ||
| 	LD (SYS_PAGE.COPY_SLOT3),A
 | ||
| 	IN A,(SLOT2)
 | ||
| 	LD (SYS_PAGE.COPY_SLOT2),A
 | ||
| 	IN A,(SLOT1)
 | ||
| 	LD (SYS_PAGE.COPY_SLOT1),A
 | ||
| 
 | ||
| 	LD A,B
 | ||
| 	ADD A,#50
 | ||
| 	OUT (SLOT1),A
 | ||
| 
 | ||
| 	BIT 0,B
 | ||
| 	LD BC,#40 + #4000
 | ||
| 	JR Z,PIC_FN3_NO_2ND
 | ||
| 	LD BC,#40 + 320 + #4000
 | ||
| PIC_FN3_NO_2ND:
 | ||
| 	ADD HL,BC
 | ||
| 
 | ||
| 	LD A,E
 | ||
| 	OUT (PORT_Y),A
 | ||
| 
 | ||
| 	LD A,H
 | ||
| 	EXX
 | ||
| 	LD D,A
 | ||
| 	EXX
 | ||
| 	LD A,L
 | ||
| 	EXX
 | ||
| 	LD E,A
 | ||
| 	EXX
 | ||
| 
 | ||
| 	EX AF,AF'
 | ||
| 	OUT (SLOT2),A
 | ||
| 	EX AF,AF'
 | ||
| 	LD HL,SYS_PAGE.RAM_TABLE
 | ||
| 	LD L,A
 | ||
| 	LD A,SYS_PAGE
 | ||
| 	OUT (SLOT3),A
 | ||
| 	LD A,(HL)
 | ||
| 	OUT (SLOT3),A
 | ||
| 	EXX
 | ||
| 	LDIR
 | ||
| 	BIT 6,H
 | ||
| 	JR Z,PIC_FN3_NO
 | ||
| 	RES 6,H
 | ||
| 	EX AF,AF'
 | ||
| PIC_FN3_NO:
 | ||
| 	EXX
 | ||
| 
 | ||
| 	LD A,SYS_PAGE
 | ||
| 	OUT (SLOT3),A
 | ||
| 	LD A,(SYS_PAGE.COPY_SLOT1)
 | ||
| 	OUT (SLOT1),A
 | ||
| 	LD A,(SYS_PAGE.COPY_SLOT2)
 | ||
| 	OUT (SLOT2),A
 | ||
| 	LD A,(SYS_PAGE.COPY_SLOT3)
 | ||
| 	OUT (SLOT3),A
 | ||
| 
 | ||
| 	XOR A
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	RET
 | ||
| 
 | ||
| ;**************************************************************************
 | ||
| ;PIC_FN4:
 | ||
| ; ¢å®¤:	HL - ¤ ë¥ ¯ «¨âàë RGB, E -  ç «ìë© æ¢¥â
 | ||
| ;	D - ç¨á«® 梥⮢, B - PAL-mask, A - page PAL
 | ||
| PIC_SET_PAL:
 | ||
| 	PUSH	IX
 | ||
| 
 | ||
| 	EX	AF,AF'
 | ||
| 	 IN	A,(PORT_Y)
 | ||
| 	 PUSH	AF		; á®åà ¨âì ¯®«®¦¥¨¥ PORT_Y
 | ||
| 	 LD	A,E
 | ||
| 	 OUT	(PORT_Y),A	;  ç «ìë© æ¢¥â ¢ ¯®àâ
 | ||
| 	 LD	A,D		; á®åà ¨âì ç¨á«® 梥⮢
 | ||
| 	EX	AF,AF'		; ¢¥àãâì áâà ¨æã PAL
 | ||
| 
 | ||
| 	BIT	7,H		; ¯à®¢¥à¨âì  ¤à¥á ¤ ëå
 | ||
| 	LD	C,SLOT3		; ¥á«¨ ¨¦¥ 8000h
 | ||
| 	LD	D,#C3		; â® £à ä.íªà    áâà ¨æ¥ 3
 | ||
| 	JR	Z,.NO_PAGE1
 | ||
| 	LD	D,#43		; ¨ ç¥
 | ||
| 	LD	C,SLOT1		;   áâà ¨æ¥ 1
 | ||
| .NO_PAGE1:
 | ||
| 	ADD	A,A
 | ||
| 	PUSH	AF
 | ||
| 
 | ||
| 	ADD	A,A
 | ||
| 	AND	#1C
 | ||
| 	XOR	#E0		; ¬« ¤è¨© ¡ ©â  ¤à¥á  PAL
 | ||
| 	LD	E,A		; DE -  ¤à¥á ¢ ¢¨¤¥®-އ“
 | ||
| 	PUSH	DE
 | ||
| 	POP	IX		;  ¤à¥á ¯ «¨âàë
 | ||
| 
 | ||
| 	LD	D,B		; ¬ áª  PAL
 | ||
| 	EX	AF,AF'		; ¢¥àãâì ç¨á«® 梥⮢
 | ||
| 	LD	B,A		; ç¨á«® 梥⮢
 | ||
| 
 | ||
| 	IN	E,(C)		; á®åà ¨âì áâà ¨æã 3
 | ||
| 	LD	A,#50		; áâà ¨æ  £à ä¨ç¥áª®£® RAM
 | ||
| 	OUT	(C),A
 | ||
| 
 | ||
| 	POP	AF
 | ||
| 	JR	C,PIC_GET_PAL
 | ||
| 	; 横« ãáâ ®¢ª¨ 梥⮢ ¯ «¨âàë
 | ||
| .loopPal:
 | ||
| 	LD	A,(HL)	; B
 | ||
| 	AND	D
 | ||
| 	LD	(IX+2),A
 | ||
| 	INC	HL
 | ||
| 
 | ||
| 	LD	A,(HL)	; G
 | ||
| 	AND	D
 | ||
| 	LD	(IX+1),A
 | ||
| 	INC	HL
 | ||
| 
 | ||
| 	LD	A,(HL)	; R
 | ||
| 	AND	D
 | ||
| 	LD	(IX+0),A
 | ||
| 	INC	HL
 | ||
| 
 | ||
| 	LD	A,(HL)	; Y
 | ||
| 	AND	D
 | ||
| 	LD	(IX+3),A
 | ||
| 	INC	HL
 | ||
| 
 | ||
| 	IN	A,(PORT_Y)
 | ||
| 	INC	A
 | ||
| 	OUT	(PORT_Y),A
 | ||
| 	DJNZ	.loopPal	; ¢ë¯®«ïâì, ¯®ª  ¥ 0
 | ||
| 
 | ||
| .exit:	OUT (C),E	; ¢®ááâ ®¢¨âì áâà ¨æã 3
 | ||
| 	POP AF
 | ||
| 	OUT (PORT_Y),A	; ¢®ááâ ®¢¨âì Y_PORT
 | ||
| 	POP IX
 | ||
| 	AND A
 | ||
| 	RET
 | ||
| 
 | ||
| PIC_GET_PAL:
 | ||
| 	; 横« çâ¥¨ï æ¢¥â®¢ ¯ «¨âàë
 | ||
| .loopPal:
 | ||
| 	LD A,(IX+2)
 | ||
| 	LD (HL),A	; B
 | ||
| 	INC HL
 | ||
| 
 | ||
| 	LD A,(IX+1)
 | ||
| 	LD (HL),A	; G
 | ||
| 	INC HL
 | ||
| 
 | ||
| 	LD A,(IX+0)
 | ||
| 	LD (HL),A	; R
 | ||
| 	INC HL
 | ||
| 
 | ||
| 	LD A,(IX+3)
 | ||
| 	LD (HL),A	; Y
 | ||
| 	INC HL
 | ||
| 
 | ||
| 	IN A,(PORT_Y)
 | ||
| 	INC A
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	DJNZ .loopPal	; ¢ë¯®«ïâì, ¯®ª  ¥ 0
 | ||
| 
 | ||
| 	JR	PIC_SET_PAL.exit
 | ||
| 
 | ||
| ;********************************************************************
 | ||
| PIC_FN5:	; “‘’€<E28099>ނЀ ‘’<E28098>€<EFBFBD>ˆ–› MODE
 | ||
| 	LD A,E
 | ||
| 	AND 1
 | ||
| 	OUT (RGMOD),A
 | ||
| 	RET
 | ||
| ;*******************************************************************
 | ||
| ; “áâ ®¢ª  ¢ãâ॥© ¯ «¨âàë
 | ||
| ; A - page_pal, E - ®¬¥à ¯ «¨âàë, B - ⨯ ¯ «¨âàë
 | ||
| SET_PAL_INIT:
 | ||
| 	LD D,A
 | ||
| 	DEC B
 | ||
| 	JP Z,SET_GRAPH_PALETTE
 | ||
| 	DEC B
 | ||
| 	JP Z,SET_TXT_PALETTE.ZX
 | ||
| 	DEC B
 | ||
| 	JP Z,SET_TXT_PALETTE.IBM
 | ||
| 
 | ||
| ;	LD IX,PAL_DAT1
 | ||
| ;	JR Z,PIC_FN6_L1
 | ||
| ;	DEC B
 | ||
| ;	LD IX,PAL_DAT
 | ||
| ;	JR Z,PIC_FN6_L1
 | ||
| 
 | ||
| 	SCF
 | ||
| 	RET
 | ||
| 
 | ||
| ;PIC_FN6_L1:
 | ||
| ;	AND 3
 | ||
| ;	ADD A,A
 | ||
| ;	ADD A,A
 | ||
| ;	ADD A,#E0
 | ||
| ;	LD L,A
 | ||
| ;	LD H,#43
 | ||
| ;	IN A,(SLOT1)
 | ||
| ;	PUSH AF
 | ||
| ;
 | ||
| ;	LD A,#50
 | ||
| ;	OUT (SLOT1),A
 | ||
| ;	XOR A
 | ||
| ;	OUT (PORT_Y),A
 | ||
| ;	EX AF,AF'
 | ||
| ;	call PAL_LOOP_M
 | ||
| ;
 | ||
| ;	POP AF
 | ||
| ;	OUT (SLOT1),A
 | ||
| ;	XOR A
 | ||
| ;	OUT (PORT_Y),A
 | ||
| ;
 | ||
| ;	RET
 | ||
| 
 | ||
| ;******************************************************************
 | ||
| ; <20>¨á®¢ ¨¥ «¨¨¨.
 | ||
| ;	d… - ¢¥à⨪ «ì, HL - £®à¨§®â «ì
 | ||
| ;	H' - ¢ëá®â , C'/DE',B' - add_parameters
 | ||
| ;	A - color
 | ||
| PIC_FN7:
 | ||
| 	LD D,A
 | ||
| 	IN A,(SLOT1)
 | ||
| 	PUSH AF
 | ||
| 
 | ||
| 	LD A,B
 | ||
| 	ADD A,#50
 | ||
| 	OUT (SLOT1),A
 | ||
| 
 | ||
| 	BIT 0,B
 | ||
| 	LD BC,#40+#4000
 | ||
| 	JR Z,.no_2nd
 | ||
| 	LD BC,#40+320+#4000
 | ||
| .no_2nd:
 | ||
| 	ADD HL,BC
 | ||
| 	LD A,E
 | ||
| 
 | ||
| .loop:	OUT (PORT_Y),A	; áâà ¨æ  ¢¨¤¥®-އ“
 | ||
| 	LD (HL),D
 | ||
| 
 | ||
| 	EXX
 | ||
| 	 EX AF,AF'
 | ||
| 
 | ||
| 	 DEC H
 | ||
| 	 JR Z,.exit
 | ||
| 
 | ||
| 	 LD A,C		; NEXT HORIZONTAL
 | ||
| 	 ADD A,B
 | ||
| 	 LD C,A
 | ||
| 	 LD A,E
 | ||
| 	EXX
 | ||
| 
 | ||
| 	ADC A,L
 | ||
| 	LD L,A
 | ||
| 
 | ||
| 	EXX
 | ||
| 	 LD A,D
 | ||
| 	EXX
 | ||
| 
 | ||
| 	ADC A,H
 | ||
| 	LD H,A
 | ||
| 	INC E		; NEXT VERTICAL
 | ||
| 	EX AF,AF'
 | ||
| 	INC A
 | ||
| 	JR .loop
 | ||
| 
 | ||
| .exit:	EXX
 | ||
| 	POP AF
 | ||
| 	OUT (SLOT1),A
 | ||
| 	XOR A
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	RET
 | ||
| 
 | ||
| ;******************************************************************
 | ||
| ; <20>¨á®¢ ¨¥ «¨¨¨.
 | ||
| ;       d… - ¢¥à⨪ «ì, HL - £®à¨§®â «ì
 | ||
| ;	H' - ¢ëá®â , C'/DE',B' - add_parameters
 | ||
| ;	(IX) - colors
 | ||
| PIC_FN8:
 | ||
| 	IN A,(SLOT1)
 | ||
| 	PUSH AF
 | ||
| 
 | ||
| 	LD A,B
 | ||
| 	ADD A,#50
 | ||
| 	OUT (SLOT1),A
 | ||
| 
 | ||
| 	BIT 0,B
 | ||
| 	LD BC,#40+#4000
 | ||
| 	JR Z,.no_2nd
 | ||
| 	LD BC,#40+320+#4000
 | ||
| .no_2nd:
 | ||
| 	ADD HL,BC
 | ||
| 	LD A,E
 | ||
| 
 | ||
| .loop:	OUT (PORT_Y),A	; áâà ¨æ  ¢¨¤¥®-އ“
 | ||
| 	LD D,(IX)
 | ||
| 	INC IX
 | ||
| 	LD (HL),D
 | ||
| 
 | ||
| 	EXX
 | ||
| 	 EX AF,AF'
 | ||
| 
 | ||
| 	 DEC H
 | ||
| 	 JR Z,.exit
 | ||
| 
 | ||
| 	 LD A,C		; NEXT HORIZONTAL
 | ||
| 	 ADD A,B
 | ||
| 	 LD C,A
 | ||
| 	 LD A,E
 | ||
| 	EXX
 | ||
| 
 | ||
| 	ADC A,L
 | ||
| 	LD L,A
 | ||
| 
 | ||
| 	EXX
 | ||
| 	 LD A,D
 | ||
| 	EXX
 | ||
|         
 | ||
| 	ADC A,H
 | ||
| 	LD H,A
 | ||
| 
 | ||
| 	INC E		; NEXT VERTICAL
 | ||
| 
 | ||
| 	EX AF,AF'
 | ||
| 	INC A
 | ||
| 	JR .loop
 | ||
| 
 | ||
| .exit:	EXX
 | ||
| 	POP AF
 | ||
| 	OUT (SLOT1),A
 | ||
| 	XOR A
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	RET
 | ||
| 
 | ||
| ;**************************************************
 | ||
| ;		‚뢮¤ á¯à ©â    íªà 
 | ||
| ; HL - £®à¨§®â «ì, dE - ¢¥à⨪ «ì
 | ||
| ; A',HL' -  ¤à¥á ¤ ëå
 | ||
| PIC_FN9:
 | ||
| 	
 | ||
| ;*********************************
 | ||
| ; HL,E - ª®®à¤¨ âë D - color
 | ||
| ; B - Magnify
 | ||
| PIC_FN10:
 | ||
| PIC_FN11:
 | ||
| PIC_FN12:
 | ||
| PIC_FN13:
 | ||
| PIC_FN14:
 | ||
| PIC_FN15:
 | ||
| 	SCF
 | ||
| 	RET
 | ||
| ;************************************
 | ||
| 
 | ||
| 
 | ||
| ;************************************
 | ||
| ; SYCLES  EQU 0
 | ||
| ; ;START   EQU 1
 | ||
| ; ST1     EQU 2
 | ||
| ; DPAL1   EQU 3
 | ||
| ; ST2     EQU 4
 | ||
| ; DPAL2   EQU 5
 | ||
| 
 | ||
| ; 	MACRO NEXT_LIN_H
 | ||
| ; 		EX AF,AF'
 | ||
| ; 		INC A
 | ||
| ; 		OUT (PORT_Y),A
 | ||
| ; 		EX AF,AF'
 | ||
| ; 	ENDM
 | ||
| 
 | ||
| ; 	MACRO NEXT_LIN_HP
 | ||
| ; 		EX AF,AF'
 | ||
| ; 		INC A
 | ||
| ; 		OUT (PORT_Y),A
 | ||
| ; 		JR NZ,.MD_NO_INC_H
 | ||
| ; 		INC L
 | ||
| ; .MD_NO_INC_H:
 | ||
| ; 		EX AF,AF'
 | ||
| ; 	ENDM
 | ||
| 
 | ||
| ;****************************************
 | ||
| ;       ‡ £à㧪  ०¨¬  íªà  .
 | ||
| ;****************************************
 | ||
| 
 | ||
| ;	CALL SINC_DEF
 | ||
| ;	CALL SET_TXT_PALETTE.ZX
 | ||
| ;	RET
 | ||
| 
 | ||
| ;****************************************
 | ||
| 
 | ||
| ;!TODO âãâ äãªæ¨ï 
 | ||
| CL0     EQU 200
 | ||
| CL1     EQU 240
 | ||
| 
 | ||
| 
 | ||
| SET_TXT_PALETTE:
 | ||
| .IBM:	LD DE,#8000
 | ||
| 	JR .TXT
 | ||
| 	;
 | ||
| .ZX:	LD DE,0
 | ||
| .TXT:	PUSH IX
 | ||
| 	IN A,(PORT_Y)
 | ||
| 	PUSH AF
 | ||
| 	IN A,(SLOT3)
 | ||
| 	EX AF,AF'
 | ||
| 	LD A,#50
 | ||
| 	OUT (SLOT3),A
 | ||
| 	;
 | ||
| 	LD IX,#C3F0                                                     ; !HARDCODE  ¤à¥á ¯ «¨âàë?
 | ||
| .generate_loop:
 | ||
| 	CALL GENERATE_PAL1
 | ||
| 	LD A,E
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	LD (IX),L	; R
 | ||
| 	LD (IX+1),B	; G
 | ||
| 	LD (IX+2),C	; B
 | ||
| 	LD (IX+3),H	; i ?
 | ||
| 	INC E
 | ||
| 	JR NZ,.generate_loop
 | ||
| 	;
 | ||
| 	LD BC,4
 | ||
| 	ADD IX,BC
 | ||
| 	INC D
 | ||
| 	LD A,D
 | ||
| 	AND 3
 | ||
| 	JR NZ,.generate_loop
 | ||
| 	;
 | ||
| 	EX AF,AF'
 | ||
| 	OUT (SLOT3),A
 | ||
| 	POP AF
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	POP IX
 | ||
| 	RET
 | ||
| 
 | ||
| ;	£¥¥à æ¨ï ᯥªâà㬮¢áª®© ¯ «¨âàë.
 | ||
| ; ‚室:	 E -  âਡãâ, D - ®¬¥à ¯ «¨âàë
 | ||
| ; ‚›•Ž„: L - red, B - green, C - blue, H - intensity
 | ||
| GENERATE_PAL1:	XOR	A
 | ||
| 		LD	C,A
 | ||
| 		LD	B,A
 | ||
| 		LD	L,A
 | ||
| 		BIT	7,D
 | ||
| 		JR	NZ,GENERATE_IBM
 | ||
| 		BIT	1,D
 | ||
| 		JR	NZ,.FLH
 | ||
| .NOF:		BIT	0,D
 | ||
| 		JR	Z,.PAPER
 | ||
| .INK:		LD	A,CL0
 | ||
| 		BIT	6,E
 | ||
| 		JR	Z,.NOI1
 | ||
| 		LD	A,CL1
 | ||
| .NOI1:		BIT	0,E		; BLUE
 | ||
| 		JR	Z,.NO1
 | ||
| 		LD	C,A
 | ||
| .NO1:		BIT	1,E		; RED
 | ||
| 		JR	Z,.PP_NO2
 | ||
| 		LD	L,A
 | ||
| .PP_NO2:	BIT	2,E		; GREEN
 | ||
| 		JR	Z,.PP_NO6
 | ||
| 		LD	B,A
 | ||
| .PP_NO3:	JR	.PP_NO6
 | ||
| ;
 | ||
| .FLH:		BIT	7,E
 | ||
| 		JR	Z,.NOF
 | ||
| 		BIT	0,D
 | ||
| 		JR	Z,.INK
 | ||
| .PAPER:		LD	A,CL0
 | ||
| 		BIT	6,E
 | ||
| 		JR	Z,.NOI2
 | ||
| 		LD	A,CL1
 | ||
| .NOI2:		BIT	3,E		; BLUE
 | ||
| 		JR	Z,.PP_NO4
 | ||
| 		LD	C,A
 | ||
| .PP_NO4:	BIT	4,E		; RED
 | ||
| 		JR	Z,.PP_NO5
 | ||
| 		LD	L,A
 | ||
| .PP_NO5:	BIT	5,E		; GREEN
 | ||
| 		JR	Z,.PP_NO6
 | ||
| 		LD	B,A
 | ||
| .PP_NO6:	LD	A,C
 | ||
| 		AND	A
 | ||
| 		RRA
 | ||
| 		ADD	A,L
 | ||
| 		RRA
 | ||
| 		ADD	A,B
 | ||
| 		RRA
 | ||
| 		LD	H,A		; B/W mode
 | ||
| 		RET
 | ||
| ;****************************************
 | ||
| 
 | ||
| GENERATE_IBM:
 | ||
| 	BIT 7,E
 | ||
| 	JR Z,.NO_FLH
 | ||
| 	BIT 1,D
 | ||
| 	JR Z,.PAPER
 | ||
| .NO_FLH:
 | ||
| 	BIT 0,D
 | ||
| 	JR Z,.PAPER
 | ||
| .INK:
 | ||
| .NO_INTENS:
 | ||
| 	LD A,#A8
 | ||
| .INTENS:
 | ||
| 	BIT 0,E		; BLUE
 | ||
| 	JR Z,.PPI_NO4
 | ||
| 	LD C,A
 | ||
| .PPI_NO4:
 | ||
| 	BIT 2,E		; RED
 | ||
| 	JR Z,.PPI_NO5
 | ||
| 	LD L,A
 | ||
| .PPI_NO5:
 | ||
| 	BIT 1,E		; GREEN
 | ||
| 	JR Z,.PPI_NO6
 | ||
| 	LD B,A
 | ||
| .PPI_NO6:
 | ||
| 	LD A,E
 | ||
| 	AND #0F
 | ||
| 	CP 6
 | ||
| 	JR NZ,.no_correct
 | ||
| 	LD B,#54
 | ||
| .no_correct:
 | ||
| 	BIT 3,E
 | ||
| 	JR Z,GENERATE_PAL1.PP_NO6
 | ||
| 
 | ||
| 	LD A,#54
 | ||
| 	ADD A,C
 | ||
| 	LD C,A
 | ||
| 	LD A,#54
 | ||
| 	ADD A,B
 | ||
| 	LD B,A
 | ||
| 	LD A,#54
 | ||
| 	ADD A,L
 | ||
| 	LD L,A
 | ||
| 	JR GENERATE_PAL1.PP_NO6
 | ||
| .PAPER:
 | ||
| 	LD A,#A8
 | ||
| 	BIT 4,E		; BLUE
 | ||
| 	JR Z,.PPI_NO4X
 | ||
| 	LD C,A
 | ||
| .PPI_NO4X:
 | ||
| 	BIT 6,E		; RED
 | ||
| 	JR Z,.PPI_NO5X
 | ||
| 	LD L,A
 | ||
| .PPI_NO5X:
 | ||
| 	BIT 5,E		; GREEN
 | ||
| 	JR Z,.PPI_NO6X
 | ||
| 	LD B,A
 | ||
| .PPI_NO6X:
 | ||
| 	LD A,E
 | ||
| 	AND #70
 | ||
| 	CP #60
 | ||
| 	JR NZ,GENERATE_PAL1.PP_NO6
 | ||
| 	LD B,#54
 | ||
| 	JR GENERATE_PAL1.PP_NO6
 | ||
| ;****************************************
 | ||
| 
 | ||
| ;****************************************
 | ||
| ;****************************************
 | ||
| 
 | ||
| ; D - ®¬¥à £à ä¨ç¥áª®© ¯ «¨âàë
 | ||
| SET_GRAPH_PALETTE:
 | ||
| 	PUSH IX
 | ||
| 	IN A,(PORT_Y)
 | ||
| 	PUSH AF
 | ||
| 
 | ||
| 	IN A,(SLOT3)
 | ||
| 	EX AF,AF'
 | ||
| 	LD A,#50
 | ||
| 	OUT (SLOT3),A
 | ||
| 
 | ||
| 
 | ||
| 	LD IX,#C3E0
 | ||
| 	LD A,D
 | ||
| 	AND 3
 | ||
| 	ADD A,A
 | ||
| 	ADD A,A
 | ||
| 	LD E,A
 | ||
| 	LD D,0
 | ||
| 	ADD IX,DE
 | ||
| 
 | ||
| 	LD E,0
 | ||
| 
 | ||
| 	XOR A
 | ||
| 	LD B,A
 | ||
| 	LD C,A
 | ||
| 	LD L,A
 | ||
| 	LD H,A
 | ||
| 
 | ||
| SET_PAL_GR1:
 | ||
| 	LD A,E
 | ||
| 	OUT (PORT_Y),A
 | ||
| 
 | ||
| 	LD (IX),L
 | ||
| 	LD (IX+1),B
 | ||
| 	LD (IX+2),C
 | ||
| 	LD (IX+3),H
 | ||
| 
 | ||
| 	CALL GENERATE_PAL3
 | ||
| 
 | ||
| 	INC E
 | ||
| 	LD A,E
 | ||
| 	CP 40
 | ||
| 	JR NZ,SET_PAL_GR1
 | ||
| 
 | ||
| 	XOR A
 | ||
| 	LD B,A
 | ||
| 	LD C,A
 | ||
| 	LD L,A
 | ||
| 	LD H,A
 | ||
| 
 | ||
| SET_PAL_GR2:
 | ||
| 	LD A,E
 | ||
| 	OUT (PORT_Y),A
 | ||
| 
 | ||
| 	LD (IX),L
 | ||
| 	LD (IX+1),B
 | ||
| 	LD (IX+2),C
 | ||
| 	LD (IX+3),H
 | ||
| 
 | ||
| 	CALL GENERATE_PAL2
 | ||
| 
 | ||
| 	INC E
 | ||
| 	JR NZ,SET_PAL_GR2
 | ||
| 
 | ||
| 	EX AF,AF'
 | ||
| 	OUT (SLOT3),A
 | ||
| 	POP AF
 | ||
| 	OUT (PORT_Y),A
 | ||
| 	POP IX
 | ||
| 	RET
 | ||
| ;
 | ||
| ;;*********************************
 | ||
| ;
 | ||
| 
 | ||
| GENERATE_PAL3:		; gray-scale
 | ||
| 	LD A,B
 | ||
| 	ADD A,6
 | ||
| 	LD B,A
 | ||
| 	LD C,A
 | ||
| 	LD L,A
 | ||
| 
 | ||
| 	LD A,C
 | ||
| 	AND A
 | ||
| 	RRA
 | ||
| 	ADD A,L
 | ||
| 	RRA
 | ||
| 	ADD A,B
 | ||
| 	RRA
 | ||
| 	LD H,A
 | ||
| 
 | ||
| 	RET
 | ||
| 
 | ||
| GENERATE_PAL2:		; C - BLUE; L - RED; B - GREEN; H - INTENSITY
 | ||
| 	LD A,C
 | ||
| 	ADD A,50
 | ||
| 	LD C,A
 | ||
| 	JR NC,GEN_PAL2_L1
 | ||
| 	LD C,0
 | ||
| 	LD A,L
 | ||
| 	ADD A,50
 | ||
| 	LD L,A
 | ||
| 	JR NC,GEN_PAL2_L1
 | ||
| 	LD L,0
 | ||
| 	LD A,B
 | ||
| 	ADD A,50
 | ||
| 	LD B,A
 | ||
| 	JR NC,GEN_PAL2_L1
 | ||
| 	LD B,0
 | ||
| 
 | ||
| GEN_PAL2_L1:
 | ||
| 	LD A,C
 | ||
| 	AND A
 | ||
| 	RR A
 | ||
| 	ADD A,L
 | ||
| 	RR A
 | ||
| 	ADD A,B
 | ||
| 	RR A
 | ||
| 	LD H,A
 | ||
| 
 | ||
| 	RET
 | ||
| ;
 | ||
| ;************************************
 | ||
| 
 | ||
| FN_SYNC:	BIT	7,A
 | ||
| 		JR	Z,.old_mode
 | ||
| 		;
 | ||
| 		LD	H,A
 | ||
| 		AND	#60						; check reserved bits
 | ||
| 		JR	NZ,.error
 | ||
| 		;
 | ||
| 		BIT	2,H						; Set V-Sinc?
 | ||
| 		JR	NZ,.set_v_sinc
 | ||
| 		;
 | ||
| 		BIT	4,H						; Set Waits?
 | ||
| 		JR	Z,.error					; Error - no parameters
 | ||
| 		;
 | ||
| .set_waits:	LD	A,H
 | ||
| 		AND	8						; check waits. Z - no waits, NZ - waits
 | ||
| 		LD	H,Port_All_Mode.DEFAULT
 | ||
| 		JR	Z,.no_change
 | ||
| 		LD	H,Port_All_Mode.DEFAULT-Port_All_Mode.MEM_WAITS_OFF
 | ||
| .no_change:	LD	BC,(Port_All_Mode)
 | ||
| 		IN	A,(C)
 | ||
| 		AND	H
 | ||
| 		OUT	(C),A
 | ||
| 		RET
 | ||
| 		;
 | ||
| .set_v_sinc:	LD	A,H
 | ||
| 		AND	3
 | ||
| 		JR	Z,.SetDefLines
 | ||
| 		DEC	A
 | ||
| 		JR	Z,.SetCmosLines
 | ||
| 		DEC	A
 | ||
| 		JR	Z,.Set320Lines
 | ||
| 		;JR	.Set312Lines
 | ||
| .set312lines:	LD	A,Port_VSYNC.SET_312L
 | ||
| 		OUT	(Port_VSYNC),A
 | ||
| 		;
 | ||
| 		LD	C,SLOT3
 | ||
| 		IN	B,(C)
 | ||
| 		LD	A,SYS_PAGE
 | ||
| 		OUT	(C),A
 | ||
| 		LD	A,(SYS_PAGE.VSyncAndWaits)
 | ||
| 		AND	2
 | ||
| 		LD	(SYS_PAGE.VSyncAndWaits),A
 | ||
| 		OUT	(C),B
 | ||
| 		;
 | ||
| .end_set_v_sinc:
 | ||
| 		BIT	4,H
 | ||
| 		RET	Z
 | ||
| 		JR	.set_waits
 | ||
| 		;
 | ||
| .Set320Lines:	LD	A,Port_VSYNC.SET_320L
 | ||
| 		OUT	(Port_VSYNC),A
 | ||
| 		;
 | ||
| 		LD	C,SLOT3
 | ||
| 		IN	B,(C)
 | ||
| 		LD	A,SYS_PAGE
 | ||
| 		OUT	(C),A
 | ||
| 		LD	A,(SYS_PAGE.VSyncAndWaits)
 | ||
| 		OR	1
 | ||
| 		LD	(SYS_PAGE.VSyncAndWaits),A
 | ||
| 		OUT	(C),B
 | ||
| 		JR	.end_set_v_sinc
 | ||
| 		;
 | ||
| .SetCmosLines:	LD	D,CMOS_CELL.ScreenSET
 | ||
| 		CALL	CMOS_RD
 | ||
| 		;
 | ||
| 		AND	high CMOS_CELL.ScreenSET.Mask.Sinc		; ¢ ॣ¨áâॠA § ç¥¨¥ ScreenSET
 | ||
| 		JR	Z,.SetDefLines
 | ||
| 		;
 | ||
| 		BIT	6,A
 | ||
| 		JR	Z,.set312lines
 | ||
| 		JR	.Set320Lines
 | ||
| 		;
 | ||
| .old_mode:	AND	A
 | ||
| 		JR	Z,.INT_DEF
 | ||
| 		DEC	A
 | ||
| 		JR	Z,.INT_SCORP
 | ||
| 		DEC	A
 | ||
| 		JR	Z,.INT_PENT
 | ||
| 		DEC	A
 | ||
| 		JR	Z,.INT_ORIG
 | ||
| 		DEC	A
 | ||
| 		JR	Z,.INT_CMOS_SINC
 | ||
| 		; [x] ª áâ®¬ë© íªà  ¯® â ¡«¨æ¥ ¯®«ì§®¢ â¥«ï
 | ||
| 		DEC	A
 | ||
| 		JR	Z,.PROG_SCR
 | ||
| 		;
 | ||
| .error:		SCF
 | ||
| 		RET
 | ||
| 		;
 | ||
| .SetDefLines:	LD	C,SLOT3
 | ||
| 		IN	B,(C)
 | ||
| 		LD	A,SYS_PAGE
 | ||
| 		OUT	(C),A
 | ||
| 		LD	A,(SYS_PAGE.VSyncAndWaits)
 | ||
| 		OUT	(C),B
 | ||
| 		AND	1
 | ||
| 		JR	Z,.set312lines
 | ||
| 		JR	.Set320Lines
 | ||
| 		;
 | ||
| .INT_DEF:	LD	C,SLOT3
 | ||
| 		IN	B,(C)
 | ||
| 		LD	A,SYS_PAGE
 | ||
| 		OUT	(C),A
 | ||
| 		LD	DE,(SYS_PAGE.SCREEN_TABLE)
 | ||
| 		OUT	(C),B
 | ||
| 		;
 | ||
| 		CALL	Test_SCREEN_TABLE
 | ||
| 		JR	NZ,.INT_CMOS_SINC
 | ||
| 		JP	(IX)
 | ||
| 		;
 | ||
| .INT_CMOS_SINC:	LD	C,SLOT3
 | ||
| 		IN	B,(C)
 | ||
| 		LD	A,SYS_PAGE
 | ||
| 		OUT	(C),A
 | ||
| 		LD	DE,(SYS_PAGE.SCREEN_TABLE)
 | ||
| 		OUT	(C),B
 | ||
| 		;
 | ||
| 		LD	D,CMOS_CELL.ScreenSET
 | ||
| 		CALL	CMOS_RD
 | ||
| 		;
 | ||
| 		AND	high CMOS_CELL.ScreenSET.Mask.Int		; ¢ ॣ¨áâॠA § ç¥¨¥ ScreenSET
 | ||
| 		JR	NZ,.skiptest
 | ||
| 		;
 | ||
| 		CALL	Test_SCREEN_TABLE
 | ||
| 		JP	(IX)						; default int (non CMOS) 
 | ||
| 		;
 | ||
| .skiptest:	CP	#10
 | ||
| 		JR	Z,.INT_SCORP					; scorpion int	
 | ||
| 		;
 | ||
| 		CP	#20
 | ||
| 		JR	Z,.INT_PENT					; pentagon int		
 | ||
| 		;
 | ||
| 		;JR	.INT_ORIG					; original int
 | ||
| .INT_ORIG:	LD	IX,SCREEN_TABLES.ORIGINAL
 | ||
| 		JR	.PROG_SCR
 | ||
| 		;
 | ||
| .INT_SCORP:	LD	IX,SCREEN_TABLES.SCORPION
 | ||
| 		JR	.PROG_SCR
 | ||
| 		;
 | ||
| .INT_PENT:	LD	IX,SCREEN_TABLES.PENTAGON
 | ||
| 		;JR	.PROG_SCR
 | ||
| .PROG_SCR:	IN	A,(SLOT3)
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	A,SYS_PAGE
 | ||
| 		OUT	(SLOT3),A
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	(SYS_PAGE.COPY_SLOT3),A
 | ||
| 		IN	A,(PORT_Y)
 | ||
| 		LD	(SYS_PAGE.COPY_RGADR),A
 | ||
| 		;
 | ||
| 		LD	(SYS_PAGE.SCREEN_TABLE),IX
 | ||
| 		XOR	A
 | ||
| ;----[START]-----------------------[? 1]
 | ||
| .loop_1:	OUT	(PORT_Y),A
 | ||
| 		EX	AF,AF'
 | ||
| 		LD	A,#50
 | ||
| 		OUT	(SLOT3),A
 | ||
| 		LD	HL,#C300
 | ||
| ;----[START]------------------[v 2]-----
 | ||
| .loop_2:	LD	C,(IX)
 | ||
| ;----[START]-------------[v 3]----------
 | ||
| .loop_3:	; ¢§ïâì  ¤à¥á ¤ ëå ¤«ï § ¯¨á¨ ¢ á«ã¦¥¡ãî ®¡« áâì íªà  
 | ||
| 		LD	E,(IX+1)					; take adress of line X
 | ||
| 		LD	D,(IX+2)
 | ||
| ;----[START]--------[v 4]---------------
 | ||
| .loop_4:	LD	A,(DE)						; take counter in table 1, line X, column Y
 | ||
| 		INC	DE
 | ||
| 		AND	A
 | ||
| 		JR	Z,.loop_4_exit					; exit if zero-counter
 | ||
| 		LD	B,A
 | ||
| 		LD	A,(DE)
 | ||
| 		INC	DE
 | ||
| ;----[START]---[v 5]--------------------
 | ||
| .loop_5:	LD	(HL),A
 | ||
| 		INC	L
 | ||
| 		LD	(HL),0
 | ||
| 		INC	L
 | ||
| 		LD	(HL),0
 | ||
| 		;
 | ||
| 		EX	AF,AF'
 | ||
| 		INC	A
 | ||
| 		OUT	(PORT_Y),A
 | ||
| 		EX	AF,AF'
 | ||
| 		;
 | ||
| 		LD	(HL),0
 | ||
| 		DEC	L
 | ||
| 		LD	(HL),0
 | ||
| 		DEC	L
 | ||
| 		LD	(HL),A
 | ||
| 		;
 | ||
| 		EX	AF,AF'
 | ||
| 		INC	A
 | ||
| 		OUT	(PORT_Y),A
 | ||
| 		EX	AF,AF'
 | ||
| 		;
 | ||
| 		DJNZ	.loop_5
 | ||
| ;--------------[^ 5]--------------------
 | ||
| 		JR	.loop_4
 | ||
| ;-------------------[^ 4]---------------
 | ||
| .loop_4_exit:	INC	HL						; next line
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		INC	HL
 | ||
| 		IN	A,(PORT_Y)
 | ||
| 		AND	#80
 | ||
| 		OUT	(PORT_Y),A
 | ||
| 		DEC	C
 | ||
| 		JR	NZ,.loop_3
 | ||
| ;------------------------[^ 3]----------
 | ||
| 		INC	IX						; next counter
 | ||
| 		INC	IX
 | ||
| 		INC	IX
 | ||
| 		LD	A,(IX)
 | ||
| 		AND	A
 | ||
| 		JR	NZ,.loop_2
 | ||
| ;-----------------------------[^ 2]-----
 | ||
| 		LD	A,SYS_PAGE
 | ||
| 		OUT	(SLOT3),A
 | ||
| 		LD	IX,(SYS_PAGE.SCREEN_TABLE)
 | ||
| 		;
 | ||
| 		EX	AF,AF'
 | ||
| 		ADD	A,#80
 | ||
| 		JR	NC,.loop_1
 | ||
| ;----------------------------------[^ 1]
 | ||
| 		; Exit
 | ||
| 		LD	A,(SYS_PAGE.COPY_RGADR)
 | ||
| 		OUT	(PORT_Y),A
 | ||
| 		LD	A,(SYS_PAGE.COPY_SLOT3)
 | ||
| 		OUT	(SLOT3),A
 | ||
| .exit:		OR	A
 | ||
| 		RET
 | ||
| 		;
 | ||
| 	;DE - ᮤ¥à¦¨¬®¥ SYS_PAGE.SCREEN_TABLE
 | ||
| Test_SCREEN_TABLE:
 | ||
| 		LD	HL,SCREEN_TABLES.SCORPION
 | ||
| 		AND	A
 | ||
| 		SBC	HL,DE
 | ||
| 		LD	IX,FN_SYNC.INT_SCORP
 | ||
| 		RET	Z
 | ||
| 		;
 | ||
| 		LD	HL,SCREEN_TABLES.ORIGINAL
 | ||
| 		AND	A
 | ||
| 		SBC	HL,DE
 | ||
| 		LD	IX,FN_SYNC.INT_ORIG
 | ||
| 		RET	Z
 | ||
| 		;
 | ||
| 		LD	HL,SCREEN_TABLES.PENTAGON
 | ||
| 		AND	A
 | ||
| 		SBC	HL,DE
 | ||
| 		LD	IX,FN_SYNC.INT_PENT
 | ||
| 		RET	Z
 | ||
| 		AND	A
 | ||
| 		RET
 | ||
| ;--- Screen data table 1: counter1, data1 .. counterX, dataX
 | ||
| SCREEN_TABLES:
 | ||
| ;        | ç¨á«®  | § ç¥¨ï |
 | ||
| ;        | áâப  |    ¢     |
 | ||
| ;        |   /2   |  áâப å |
 | ||
| .SCR:   DB   41   ,   #F8
 | ||
|         DB   3    ,   #FC
 | ||
|         DB   4    ,   #FC
 | ||
|         DB   7    ,   #FC
 | ||
|         DB   9    ,   #F8
 | ||
|         DB   0
 | ||
| 
 | ||
| ;.SCR:   DB	41,#F8,  3,#FC,  4,#FC,  7,#FC,  9,#F8,  0   
 | ||
| .INT:	 DB	40,#FC,	 2,#FD,	 6,#FC,	 7,#FC,	 9,#FC,	 0
 | ||
| .INT_SC: DB	41,#F8,	 1,#FD,	 6,#FC,	 7,#FC,	 9,#F8,	 0
 | ||
| .BLN:	 DB	41,#FC,	 3,#FC,	 4,#FC,	 7,#FC,	 9,#FC,	 0
 | ||
| .SNC:	 DB	41,#FC,	 3,#FC,	 4,#FC,	 7,#FC,	 9,#FC,	 0
 | ||
| .RES:	 DB	41,#F8,	 3,#FE,	 4,#FE,	 7,#FE,	 9,#F8,	 0
 | ||
| ;---------------------------------------
 | ||
| 
 | ||
| ;--- Screen data tables 2: counter1, data address1 .. counterX, data addressX
 | ||
| ;
 | ||
| ;                | ª®«-¢® | § ç¥¨ï |
 | ||
| ;                | áâப  |     ¢    |
 | ||
| ;                |        |  áâப¥  |
 | ||
| .PENTAGON:      DB   33   :  DW .SCR
 | ||
|                 DB   1    :  DW .INT      ;	DW .BLN
 | ||
|                 DB   3    :  DW .SNC
 | ||
|                 DB   1    :  DW .BLN
 | ||
|                 DB   1    :  DW .SCR
 | ||
|                 DB   1    :  DW .RES
 | ||
|                 DB   0    ; end
 | ||
| .SCORPION:      DB   31   :  DW .SCR
 | ||
|                 DB   1    :  DW .INT_SC
 | ||
|                 DB   1    :  DW .SCR
 | ||
|                 DB   1    :  DW .SNC
 | ||
|                 DB   3    :  DW .SNC
 | ||
|                 DB   1    :  DW .BLN
 | ||
|                 DB   2    :  DW .RES
 | ||
|                 DB   0    ; end
 | ||
| .ORIGINAL:      DB   33   :  DW .SCR
 | ||
|                 DB   1    :  DW .SNC
 | ||
|                 DB   1    :  DW .INT
 | ||
|                 DB   2    :  DW .SNC
 | ||
|                 DB   1    :  DW .BLN
 | ||
|                 DB   1    :  DW .SCR
 | ||
|                 DB   1    :  DW .RES
 | ||
|                 DB   0    ; end
 | ||
| ;---------------------------------------
 | ||
| 
 | ||
| ;************************************
 | ||
| ;
 | ||
| ;       <20>ªà ë¥ â ¡«¨æë
 | ||
| ;
 | ||
| ;⥪á⮢®¥ ®ª® 80x32
 | ||
| LP_SCR_80:
 | ||
| 	DB	40,32,0,0,%0001'1011,0,0,0
 | ||
| 	BLOCK	8,0
 | ||
| 
 | ||
| ;⥪á⮢®¥ ®ª® 40x32
 | ||
| LP_SCR_40:
 | ||
| 	DB	40,32,0,0,%0111'1011,0,0,0
 | ||
| 	BLOCK	8,0
 | ||
| 
 | ||
| ;ᯥªâà㬮¢áª®¥ ®ª® 32x24
 | ||
| LP_SCR_32:
 | ||
| 	DB	32,24,4,4,%0011'0000,1,0,0
 | ||
| 	BLOCK	8,0
 | ||
| 
 | ||
| ;⥪á⮢®¥ ®ª® 64x24
 | ||
| LP_SCR_64:
 | ||
| 	DB	32,24,4,4,%1001'1011,0,0,0
 | ||
| 	BLOCK	8,0
 | ||
| 
 | ||
| ;£à ä¨ç¥áª®¥ ®ª® 0
 | ||
| PIC_320X256_1:
 | ||
| 	DB	40,32,0,0,%0010'0000,0,8,0
 | ||
| 	BLOCK	8,0
 | ||
| 
 | ||
| ;£à ä¨ç¥áª®¥ ®ª® 1
 | ||
| PIC_320X256_2:
 | ||
| 	DB	40,32,0,0,%0110'0000,0,48,0
 | ||
| 	BLOCK	8,0
 | ||
| 
 | ||
| ;************************************
 | ||
| ;
 | ||
| 
 | ||
| 
 | 
