;******************************************************************************
;          T6963C CONTROLLER
;******************************************************************************
                .SYMBOLS
;******************************************************************************
;          DEFINE  OUTPUT PORORT
;******************************************************************************
CD              REG     P3.0
FS              REG     P3.1
MD2             REG     P3.2
RESET           REG     P3.3
CE              REG     P3.4
HLT             REG     P3.5
WR              REG     P3.6
RD              REG     P3.7
STP             REG     P2.0
S_S             REG     P2.1

BCD             EQU     01H
HIGH_8BIT       EQU     7FH
LOW_8BIT        EQU     7EH
CHAR_START      EQU     7DH

MaxColumn       EQU     160
MaxRow          EQU     128
;-------------------------------------------------------------------*
                ORG     0H
                LJMP    START
                ORG     50H
START:
                CLR     RESET                   ;Reset siganl on
                NOP
                SETB    RESET                   ;Reset signal off
                SETB    MD2                     ;Set Max Column*8
                CLR     FS                      ;Set 8*8 Font
;-------------------------------------------------------------------*

INITIAL:
                                                ;Text home address
                MOV     LOW_8BIT,#00H           ;Set text address Low bit
                MOV     HIGH_8BIT,#00H          ;Set text address Hihg bit
                CALL	WRITE_DATA2             ;Write text home address=0000H
                MOV     A,#40H                  ;Text home address control set
                CALL	WRITE_COMMAND
                                                ;Text area column set
                MOV     LOW_8BIT,#MaxColumn/8   ;Set Low bit= MaxColumn/8
                MOV     HIGH_8BIT,#00H          ;Set Hihg bit
                CALL	WRITE_DATA2             ;Write text area address=001FH
                MOV     A,#41H                  ;Text area control set
                CALL	WRITE_COMMAND
                
                MOV     LOW_8BIT,#00H           ;Set graphic address Low bit
                MOV     HIGH_8BIT,#40H          ;Set graphic address Hihg bit
                CALL	WRITE_DATA2             ;Write graphic home address=4000H
                MOV     A,#42H                  ;Graphic home address control set
                CALL	WRITE_COMMAND
                                                ;Graphics area column set
                MOV     LOW_8BIT,#MaxColumn/8   ;Set Low bit= MaxColumn/8
                MOV     HIGH_8BIT,#00H          ;Set Hihg bit
                CALL	WRITE_DATA2             ;Write graphic area address=001FH
                MOV     A,#43H                  ;Graphic area control set
                CALL	WRITE_COMMAND
                                                ;Mode set
                MOV     A,#80H
                CALL	WRITE_COMMAND           ;set display mode
                                                ;Display mode set (Graphic only enable)
                MOV     A,#98H
                CALL	WRITE_COMMAND           ;Graphic display enable

MAIN:
                	
	CALL 	FULLON
	CALL  	DELAY                   ;Wait
	CALL	STP_SC
	
	CALL	SHOWM
	CALL  	DELAY                   ;Wait
	CALL	STP_SC

	CALL	VLINE
	CALL  	DELAY                   ;Wait
	CALL	STP_SC

	CALL	HLINE
	CALL  	DELAY                   ;Wait
	CALL	STP_SC

	CALL	CROSS_DOT
	CALL	DELAY                   ;Wait
	CALL	STP_SC
	
	CALL	SHOWCHAR
	CALL	DELAY                   ;Wait
	CALL	STP_SC	
	
	JMP	START

;*****************************************************************************
;               FULL ON
;*****************************************************************************
FULLON:
                MOV     LOW_8BIT,#00H           ;Set graphic address Low bit
                MOV     HIGH_8BIT,#40H          ;Set graphic address Hihg bit
                
                CALL	WRITE_DATA2             ;Write graphic home address=4000H
                MOV     A,#24H                  ;Set address pointer
                CALL	WRITE_COMMAND           ;Write to external RAM from 4000H

                MOV     A,#B0H                  ;Set auto write
                CALL	WRITE_COMMAND

                MOV     R4,#MaxRow              ;Row loop count = 128 LINE
FLLOOP1:
                MOV     R5,#MaxColumn/8         ;Col loop count = 160/8
FLLOOP2:
                MOV     A,#FFH                  ;Set full dot on
                CALL	WRITE_DATA              ;Auto data write
                DJNZ    R5,FLLOOP2
                DJNZ    R4,FLLOOP1

                MOV     A,#B2H
                CALL	WRITE_COMMAND           ;Auto-write mode reset
                RET
;*****************************************************************************
;               SHOW MODEL NUMBER
;*****************************************************************************
SHOWM:
                MOV     LOW_8BIT,#00H           ;Set graphic address Low bit
                MOV     HIGH_8BIT,#40H          ;Set graphic address Hihg bit
                CALL	WRITE_DATA2             ;Write graphic home address=4000H
                MOV     A,#24H                  ;Set address pointer
                CALL	WRITE_COMMAND           ;Write to external RAM from 4000H

                MOV     A,#B0H                  ;Set auto write
                CALL	WRITE_COMMAND

                MOV     DPTR,#SHOW_WG
                
                MOV     R4,#MaxRow              ;4.設定印整個畫面的迴圈
SMLOOP1:
                MOV     R5,#MaxColumn/8         ;2.設定一次印一行的迴圈
SMLOOP2:
                CLR     A
                MOVC    A,@A+DPTR
                CALL	WRITE_DATA              ;Auto data write
                INC     DPTR
                DJNZ    R5,SMLOOP2		;1.一次印一行
                DJNZ    R4,SMLOOP1		;3.印整個畫面

                MOV     A,#B2H
                CALL	WRITE_COMMAND           ;Auto-write mode reset
                RET
;*****************************************************************************
;               VERTIAL LINE
;*****************************************************************************
VLINE:
                MOV     LOW_8BIT,#00H           ;Set graphic address Low bit
                MOV     HIGH_8BIT,#40H          ;Set graphic address Hihg bit
                CALL	WRITE_DATA2             ;Write graphic home address=4000H
                MOV     A,#24H                  ;Set address pointer
                CALL	WRITE_COMMAND           ;Write to external RAM from 4000H

                MOV     A,#B0H                  ;Set auto write
                CALL	WRITE_COMMAND

                MOV     R4,#MaxRow              ;6.設定10101010變成整個畫面的迴圈數
VLLOOP1:
                MOV     R5,#MaxColumn/8         ;4.設定10101010變成一行的迴圈數
VLLOOP2:
                MOV     A,#AAH			;1.印出10101010
                CALL	WRITE_DATA              ;2.寫入10101010
                DJNZ    R5,VLLOOP2		;3.將10101010變成一行	
                DJNZ    R4,VLLOOP1		;5.將10101010變成整個畫面

                MOV     A,#B2H
                CALL	WRITE_COMMAND           ;Auto-write mode reset
                RET
;*****************************************************************************
;               HORIZONTAL LINE
;*****************************************************************************
HLINE:
                MOV     LOW_8BIT,#00H           ;Set graphic address Low bit
                MOV     HIGH_8BIT,#40H          ;Set graphic address Hihg bit
                CALL	WRITE_DATA2             ;Write graphic home address=4000H
                MOV     A,#24H                  ;Set address pointer
                CALL	WRITE_COMMAND           ;Write to external RAM from 4000H

                MOV     A,#B0H                  ;Set auto write
                CALL	WRITE_COMMAND
                
                MOV     R4,#MaxRow/2  		;10.設定兩行變成整個畫面的迴圈數量
				
HLLOOP_0.5:      	
                
		MOV    	R5,#MaxColumn/8         ;4.設定迴圈數量
HLLOOP_H:	MOV     A,#FFH			;1.印11111111
		CALL	WRITE_DATA              ;2.寫入11111111
                DJNZ	R5,HLLOOP_H		;3.將11111111用迴圈變成一行
;                
                MOV     R5,#MaxColumn/8         ;8.設定迴圈數量
HLLOOP_E:	MOV     A,#00H			;5.印00000000
                CALL	WRITE_DATA              ;6.寫入00000000
                DJNZ	R5,HLLOOP_E		;7.將00000000用迴圈變成一行
                	
                DJNZ    R4,HLLOOP_0.5		;9.將兩行利用迴圈變成整個畫面

                MOV     A,#B2H
                CALL	WRITE_COMMAND           ;Auto-write mode reset
                RET
;*****************************************************************************
;               DOUBLR CROSS DOT
;*****************************************************************************
CROSS_DOT:
                MOV     LOW_8BIT,#00H           ;Set graphic address Low bit
                MOV     HIGH_8BIT,#40H          ;Set graphic address Hihg bit
                CALL	WRITE_DATA2             ;Write graphic home address=4000H
                MOV     A,#24H                  ;Set address pointer
                CALL	WRITE_COMMAND           ;Write to external RAM from 4000H

                MOV     A,#B0H                  ;Set auto write
                CALL	WRITE_COMMAND
				
    		MOV	R7,#MaxRow/4		;14.設定一次印4行的話,多少迴圈才可印整個畫面
    			
CROSS_FULL: 	MOV	R6,#2			;6.設定11001100變成兩行的迴圈數量
	
CROSS_1100X2L:  MOV	R5,#MaxColumn/8		;4.設定將11001100變成一行的迴圈數量
		
CROSS_1100:	MOV	A,#CCH			;1.設定11001100
            	CALL	WRITE_DATA		;2.印出11001100
            	DJNZ	R5,CROSS_1100		;3.將11001100變成一行
            
        	DJNZ	R6,CROSS_1100X2L	;5.將11001100變成兩行
                
        	MOV	R6,#2			;12.設定00110011變成兩行的迴圈數量
        		
CROSS_0011X2L:  MOV	R5,#MaxColumn/8		;10.設定將00110011變成一行的迴圈數量
				
CROSS_0011:	MOV	A,#33H			;7.設定00110011
            	CALL	WRITE_DATA		;8.印出00110011
            	DJNZ	R5,CROSS_0011		;9.將00110011變成一行
            
        	DJNZ	R6,CROSS_0011X2L	;11.將00110011變成兩行
        
    		DJNZ	R7,CROSS_FULL		;13.將整個畫面印滿,上面的迴圈已經印4行了
                
                MOV     A,#B2H
                CALL	WRITE_COMMAND           ;Auto-write mode reset
                RET
;*****************************************************************************
;               8*8 Character pattern test (Text)
;*****************************************************************************
SHOWCHAR:
                MOV     A,#94H
                CALL    WRITE_COMMAND          ;Text display only

                MOV     LOW_8BIT,#00H          ;Set text address Low bit
                MOV     HIGH_8BIT,#00H         ;Set text address Hihg bit
                CALL    WRITE_DATA2            ;Write text home address=0000H
                MOV     A,#24H                 ;Address pointer set
                CALL    WRITE_COMMAND          ;Set address pinter = Text home

                MOV     A,#B0H
                CALL    WRITE_COMMAND          ;Set auto-write mode on
                                
		MOV	R4,#4

LOP4ROW:   	MOV	R3,#MaxColumn/2
		MOV	CHAR_START,#00H
		
LOPHMWO1C:      MOV	A,CHAR_START
                CALL	WRITE_DATA
                INC	CHAR_START
                DJNZ	R3,LOPHMWO1C
                DJNZ	R4,LOP4ROW
                
                MOV     A,#B2H
                CALL    WRITE_COMMAND          ;Auto-write mode reset
                RET
;*****************************************************************************
;               Subroutine
;*****************************************************************************
S_DATA_WRITE:
                CALL	WRITE_DATA2             ;Write graphic home address
                MOV     A,#24H                  ;Set address pointer
                CALL	WRITE_COMMAND           ;Write to external RAM from

                CLR     A
                MOVC    A,@A+DPTR
                CALL	WRITE_DATA              ;Data write

                MOV     A,#C4H                  ;Data write & inc ADP
                CALL	WRITE_COMMAND

                RET
;*****************************************************************************
WRITE_DATA2:
                MOV     A,LOW_8BIT
                CALL    WRITE_DATA              ;Write first data

                MOV     A,HIGH_8BIT
                CALL    WRITE_DATA              ;Write second data

                RET

;*****************************************************************************
;       DELAY
;*****************************************************************************
DELAY:
                CALL       CBCD
                MOV        R4,BCD
LOPC:
                MOV        R5,#2FH
LOPB:
                MOV        R6,#0FFH
LOPA:
                DJNZ       R6,LOPA
                DJNZ       R5,LOPB
                DJNZ       R4,LOPC
                RET
;*****************************************************************************
WRITE_COMMAND:
                SETB       CD
                CLR        CE
                CLR        WR
                MOV        P1,A
                SETB       CE
                SETB       WR
                RET
;*****************************************************************************
WRITE_DATA:
                CLR        CD
                CLR        CE
                CLR        WR
                MOV        P1,A
                SETB       CE
                SETB       WR
                RET
;*****************************************************************************
READ_STATUS:
                SETB       CD
                CLR        CE
                CLR        RD
                MOV        P1,A
                SETB       CE
                SETB       RD
                RET
;*****************************************************************************
READ_DATA:
                CLR        CD
                CLR        CE
                CLR        RD
                MOV        P1,A
                SETB       CE
                SETB       RD
                RET
;*****************************************************************************
;       Procedure of step by step   and  scan
;*****************************************************************************
STP_SC:
                MOV        C,S_S
                JC         STEP
                RET

STEP:           MOV        C,STP
                MOV        R5,#0FH
LOPE:           MOV        R6,#0FFH
LOPH:           DJNZ       R6,LOPH
                DJNZ       R5,LOPE
                JNB        S_S,LOUT
                JNC        STEP
LOUT:
                RET
;*****************************************************************************
;       BCD DELAY TIME SELECT
;*****************************************************************************
CBCD:
                PUSH       A
                MOV        A,P0
                ANL        A,#0FH
                RL         A
                RL         A
                MOV        BCD,A
                POP        A
                RET

;*****************************************************************************
;       SHOW DISPLAY DATA AREA
;*****************************************************************************
SHOW_WG:
          DB      0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
          DB      0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
          DB      0FFh,0FFh,0FFh,0FFh,088h,042h,010h,084h
          DB      021h,008h,042h,010h,084h,021h,008h,042h
          DB      010h,084h,021h,008h,042h,010h,084h,021h
          DB      080h,040h,010h,004h,001h,000h,040h,010h
          DB      004h,001h,000h,040h,010h,004h,001h,000h
          DB      040h,010h,004h,001h,080h,040h,010h,004h
          DB      001h,000h,040h,010h,004h,001h,000h,040h
          DB      010h,004h,001h,000h,040h,010h,004h,001h
          DB      0C0h,000h,000h,000h,000h,000h,000h,000h
          DB      000h,000h,000h,000h,000h,000h,000h,000h
          DB      000h,000h,000h,001h,080h,000h,000h,000h
          DB      000h,000h,000h,000h,000h,000h,000h,000h
          DB      000h,000h,000h,000h,000h,000h,000h,001h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0A0h,000h,0AAh
          DB      0AAh,0AAh,0AAh,0A8h,000h,00Ah,0AAh,0AAh
          DB      0AAh,0AAh,000h,003h,081h,055h,055h,055h
          DB      055h,043h,0B8h,055h,055h,055h,055h,050h
          DB      0BBh,085h,055h,055h,055h,054h,02Eh,0E1h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0A2h,028h,0AAh
          DB      0AAh,0AAh,0AAh,0A8h,0AAh,08Ah,0AAh,0AAh
          DB      0AAh,0AAh,028h,0A3h,0F1h,055h,055h,055h
          DB      055h,043h,0A8h,055h,055h,055h,055h,050h
          DB      0AAh,085h,055h,055h,055h,054h,02Eh,0A1h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0A0h,0A8h,0AAh
          DB      0AAh,0AAh,0AAh,0A8h,0AAh,08Ah,0AAh,0AAh
          DB      0AAh,0AAh,022h,0A3h,081h,055h,055h,055h
          DB      055h,043h,0B8h,055h,055h,055h,055h,050h
          DB      0BBh,085h,055h,055h,055h,054h,02Eh,0E1h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0A0h,000h,0AAh
          DB      0AAh,0AAh,0AAh,0A8h,000h,00Ah,0AAh,0AAh
          DB      0AAh,0AAh,000h,003h,081h,055h,055h,055h
          DB      055h,040h,000h,055h,055h,055h,055h,050h
          DB      000h,005h,055h,055h,055h,054h,000h,001h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,000h,005h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,000h,00Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,01Dh,0C5h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,011h,04Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F0h,01Dh,045h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,005h,04Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,01Dh,0C5h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,000h,00Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,000h,005h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,000h,005h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,000h,00Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,05Dh,0C5h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,055h,04Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F0h,055h,045h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,055h,04Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,05Dh,0C5h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      080h,000h,00Ah,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,080h,000h,005h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0F1h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      0C2h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,081h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      055h,055h,055h,055h,055h,055h,055h,055h
          DB      082h,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh,0AAh
          DB      0AAh,0AAh,0AAh,0ABh,0FFh,0FFh,0FFh,0FFh
          DB      0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
          DB      0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
END