AVR 8515

  • Download avr8515.zip (enthält lcdmda.asm)
  • zurück zum Inhalt

  • 
    
    ;********************************************************************
    ;*	LCDMDA.ASM Version 0.80 (latest)         		    *
    ;*      last change: 23.04.2001                                     *
    ;********************************************************************	
    .include "8515def.inc"
    	;Port A-Pins
    .equ	A0	=0
    .equ	A1	=1
    .equ	A2	=2
    .equ	A3	=3
    .equ	A4	=4
    .equ	A5	=5
    .equ	A6	=6
    .equ	BSY	=7
    
    	;Port B-Pins
    .equ	RDWR	=0	;ReaD or WRite for LCD-Display
    .equ	CODA	=1	;COntrol or DAta for LCD-Display
    .equ	UPPER	=2	;Enable for UPPER DisplayLines
    .equ	LOWER	=3	;Enable for LOWER DisplayLines
    .equ	KEY	=4	;Input für KEYPad
    
    	;Port D-Pins
    .equ	RESET	=4	;Counter RESET for ispLsi
    .equ	STEP	=5	;Counter STEP for ispLsi
    .equ	UPREQ	=6	;µP REQuest for Address
    .equ	UPENA	=7	;µP ENAble for Address
    
    	;Key-Defines (Maske A-Port)
    .equ	K_ENTER =0x7F	;Bit der Enter-Taste
    .equ	K_UP    =0xEF	;Bit der Move-UP-Taste
    .equ	K_DOWN  =0xF7	;Bit der Move-DOWN-Taste
    .equ	K_RIGHT =0xFB	;Bit der Move-Right-Taste
    .equ	K_LEFT  =0xFD	;Bit der MOVE-LEFT-Taste
    
    
    	rjmp	SPINIT	;reset handle
            reti		;External Interrupt0 Vector Address
            reti		;External Interrupt1 Vector Address
            reti		;Input Capture1 Interrupt Vector Address
            reti		;Output Compare1A Interrupt Vector Address
            reti		;Output Compare1B Interrupt Vector Address
            reti		;Overflow1 Interrupt Vector Address
            reti		;Overflow0 Interrupt Vector Address
            reti		;SPI Interrupt Vector Address
            reti		;UART Receive Complete Interrupt Vector Address
            reti		;UART Data Register Empty Interrupt Vector Address
            reti		;UART Transmit Complete Interrupt Vector Address
            reti		;Analog Comparator Interrupt Vector Address	
    	
    ;********************************************************************
    ;*	Initialisierung (Beginn)				    *
    ;********************************************************************	
    	
    SPINIT:	ldi	temp,high(RAMEND)
    	out	SPH,temp	;init Stack Pointer
    	ldi	temp,low(RAMEND)
    	out	SPL,temp	
    
    	;Portinitialisierung IN/OUT
    	ser	temp		;r16=0xff
    	out	ddra,temp	;porta all pins out 
    	ldi	temp,0x6f
    	out	ddrb,temp	;portb pin 0-6 out, pin 4,7 in
    	ldi	temp,0x7f
    	out	ddrd,temp	;portd pin 0-6 out, pin 7 in
    	ldi	temp,0
    	out	ddrc,temp	;portc all pins in
    	;Portinitialisierung DATA
    	out	porta,temp	;out porta 0x00, no pull-up
    	out	portc,temp	;out portc 0x00, no pull-up
    	out	portd,temp	;out portd 0x00, no pull-up
    	;Initialisierung Interrupt
    	out	gimsk,temp	;disable external int
    	;Pull-up B4
    	ldi	temp,0x10
    	out	portb,temp
    
    	;Initialisierung LCD
    	rcall	lcinit
    	rcall	cginit		;Sonderzeichen laden
    	rcall	lcinit
    
    ;********************************************************************
    ;*	Initialisierung (Ende)					    *
    ;********************************************************************	
    
    
    
    ;********************************************************************
    ;*	Usercode 						    *
    ;********************************************************************	
    
    	;Ausgabe einiger Zeichen(hintereiander)
    
    	ldi	r21,0 
    	ldi	r23,80
    sp1:	rcall 	wb1data
    	inc	r21	
    	dec	r23
    	brbc	1,sp1
    
    	ldi	r21,80
    	ldi	r23,80
    sp2:	rcall 	wb2data
    	inc	r21	
    	dec	r23
    	brbc	1,sp2
    
    	rcall	wkpet		;warten auf ENTER
    	
    	ldi	temp,1
    	mov	r10,temp	;R10 Zeilenregister
    	mov	r11,temp	;R11 Spaltenregister;
    	ldi	temp,64
    	mov	r12,temp	;R12 Pausenzähler zwischen den Key's
    
    ;********************************************************************
    ;*	BSRAM-Ausleseschleife					    *
    ;********************************************************************	
    lo1:	rcall	lc1_res		;upper LCD home
    	rcall	lc2_res		;lower LCD home
    
    	rcall	keypad		;Keypad abfragen
    	mov     r21,r10
    	rcall   ct_lgo		;Zeile einstellen
    	mov     r21,r11
    	rcall   ct_cgo		;Spalte einstellen
    
    
    ;----- 1.BS-Zeile -----
    	ldi	r24,40		;40 Zeichen Nutzinformation
    lom1:	rcall	bs1read
            rcall	ct_step
            rcall	ct_step
            dec	r24
            brbc	1,lom1
    
            ldi	r24,40		;40 Zeichen Zeilenrest
    lom1r:  dec	r24
            rcall	ct_step
            rcall	ct_step
            brbc	1,lom1r
    
    ;----- 2.BS-Zeile -----
    	ldi	r24,40		;40 Zeichen Nutzinformation
    lom2:	rcall	bs1read
            rcall	ct_step
            rcall	ct_step 
            dec	r24
            brbc	1,lom2
    
            ldi	r24,40		;40 Zeichen Zeilenrest
    lom2r:  dec	r24
            rcall	ct_step
            rcall	ct_step
            brbc	1,lom2r
    
    ;----- 3.BS-Zeile -----
    	ldi	r24,40		;40 Zeichen Nutzinformation
    lom3:	rcall	bs2read
            rcall	ct_step
            rcall	ct_step
            dec	r24
            brbc	1,lom3
    
            ldi	r24,40		;40 Zeichen Zeilenrest
    lom3r:  dec	r24
            rcall	ct_step
            rcall	ct_step
            brbc	1,lom3r
    
    ;----- 4.BS-Zeile -----
    	ldi	r24,40		;40 Zeichen Nutzinformation
    lom4:	rcall	bs2read
            rcall	ct_step
            rcall	ct_step 
            dec	r24
            brbc	1,lom4
    
            ldi	r24,40		;40 Zeichen Zeilenrest
    lom4r:  dec	r24
            rcall	ct_step
            rcall	ct_step
            brbc	1,lom4r
    
    	ldi	r24,10
    lp2:	rcall 	del3		;~ 10 * 5 ms warten
    	dec	r24
    	brbc	1,lp2
    	
    	rjmp	lo1
    	rjmp	lo1
    
    ;********************************************************************
    ;*	Funktionen						    *
    ;********************************************************************	
    
    	;************************************************************
    	;* LCD-INIT Initialisierung des LCD-Displays
    	;* DESTROY:	R21,(R22 in del3)
    	;************************************************************
    lcinit:	rcall	del3		;15ms warten
    	rcall	del3
    	rcall	del3
    	
    	ldi	r21,0x30	;30h an LCD "8 Bit"	
    	rcall	wr_ctrl		
    	rcall	del3
    	
    	ldi	r21,0x30	;30h an LCD "8 Bit"
    	rcall	wr_ctrl
    	rcall	del2		
    	
    	ldi	r21,0x30	;30h an LCD "8 Bit"
    	rcall	wb1ctrl
    	rcall	wb2ctrl
    		
    	ldi	r21,0x3F	;3Fh an LCD "2 lines 5x10"
    	rcall	wb1ctrl
    	rcall	wb2ctrl
    	
    	ldi	r21,0x08	;08h an LCD "Disp off,Cur off,Blink off"
    	rcall	wb1ctrl
    	rcall	wb2ctrl
    	
    	ldi	r21,1		;01h an LCD "Clear and Home"
    	rcall	wb1ctrl
    	rcall	wb2ctrl
    		
     	ldi	r21,6		;06h an LCD "Increment, no shift"
    	rcall	wb1ctrl
    	rcall	wb2ctrl
    
    	ldi	r21,0x0C	;0Ch an LCD "Disp on,Cur off,Blink off"
    	rcall	wb1ctrl		;0Eh an LCD "Disp on,Cur on, Blink off"
    	rcall	wb2ctrl
    	
    	ret
    
    	;************************************************************
    	;* CG-INIT Initialisierung der Sonderzeichen des LCD-Displays
    	;* DESTROY:	R21,R25,R26
    	;************************************************************
    cginit:	ldi	r21,0x40	;Adresse für Zeichen-Code 00
    	rcall	wb1ctrl		;adr ausgeben (upper)
    	rcall	wb2ctrl		;adr ausgeben (lower)
    	ldi	r26,0
    	ldi	r25,64
    cg1:	rcall	rd_eepr
    	rcall 	wb1data		;Bitzeile ausgeben (upper)
    	rcall 	wb2data		;Bitzeile ausgeben (lower)
    	inc	r26	
    	dec	r25
    	brbc	1,cg1
    	ret
    
    	;************************************************************
    	;* RD_EEPR Lesen aus EEPROM	
    	;* PARM:	R26 Adresse
    	;* RETURN:	R21 Daten
    	;************************************************************
    rd_eepr:ldi	temp,0
    	out	eearh,temp
    	out	eearl,r26
    	sbi	eecr,0
    rd_lp:	sbic	eecr,0
    	rjmp 	rd_lp
    	in	r21,eedr
    	ret
    
    
    	;************************************************************
    	;* Delay1 Zeitschleife (r21 40h loop) ca 48µs
    	;* DESTROY:	R21
    	;************************************************************
    del1:	ldi	r21,0x40
    d1_lp:	dec	r21
    	brbc	1,d1_lp
    	ret
    
    	;************************************************************
    	;* Delay2 Zeitschleife (r21 88h loop) ca 100µs
    	;* DESTROY:	R21
    	;************************************************************
    del2:	ldi	r21,0x88
    d2_lp:	dec	r21
    	brbc	1,d2_lp
    	ret
    	
    	;************************************************************
    	;* DELAY3 Zeitschleife (r22 1Ch outloop, r21 FFh inloop) ca 5ms
    	;* DESTROY:	R21,R22
    	;************************************************************
    del3:	ldi	r22,0x1c
    d3_olp:	ldi	r21,0
    d3_ilp:	dec	r21
    	brbc	1,d3_ilp	;Sprung, wenn Z-Bit=0 (solange r21 !=0)
    	dec	r22
    	brbc	1,d3_olp	;Sprung, wenn Z-Bit=0 (solange r22 !=0)
    	ret
    
    	;************************************************************
    	;* write_control_byte ohne BSY (RW=low (B0),CD=low (B0))
    	;* PARM:	R21 auszugebendes Byte
    	;************************************************************
    wr_ctrl:out	porta,r21
    	nop			;Einschwingen
    	sbi	portb,UPPER	;setzen Bit2 (Enable upper Rows)
    	sbi	portb,LOWER	;setzen Bit3 (Enable lower Rows)
    	nop
    	nop
    	nop
    	nop
    	cbi	portb,UPPER	;rücksetzen Bit2
    	cbi	portb,LOWER	;rücksetzen Bit3
    	ret	
    
    	;************************************************************
    	;* write_1_busy_control_byte mit BSY (RW=low (B0),CD=low (B0))
    	;* PARM:	R21 auszugebendes Control-Byte
    	;************************************************************
    wb1ctrl:cbi	ddra,7		;pin A7 auf Input setzen
    	sbi	portb,RDWR	;RW auf READ
    	nop			;einschwingen READ
    	sbi	portb,UPPER	;setzen Bit2 (Enable upper Rows)
    	nop			;einschwingen Enable
    
    wbc1lo: sbic	pina,7		;warten auf BSY Ready
    	rjmp	wbc1lo
    	cbi	portb,UPPER	;Enable wieder rücksetzen	
    	nop			;ausschwingen Enable
    	sbi	ddra,BSY	;pin A7 wieder auf Output setzen
    	cbi	portb,RDWR	;RW auf WRITE
    	nop			;einschwingen write
    	out	porta,r21	;Ausgabe Control-Byte
    	nop			;Einschwingen
    	sbi	portb,UPPER	;setzen Bit2 (Enable upper Rows)
    	nop
    	nop
    	nop
    	nop
    	cbi	portb,UPPER	;rücksetzen Bit2
    	ret	
    
    	;************************************************************
    	;* write_2_busy_control_byte mit BSY (RW=low (B0),CD=low (B0))
    	;* PARM:	R21 auszugebendes Control-Byte
    	;************************************************************
    wb2ctrl:cbi	ddra,BSY	;pin A7 auf Input setzen
    	sbi	portb,RDWR	;RW auf READ
    	nop			;einschwingen READ
    	sbi	portb,LOWER	;setzen Bit3 (Enable lower Rows)
    	nop			;einschwingen Enable
    
    wbc2lo: sbic	pina,BSY	;warten auf BSY Ready
    	rjmp	wbc2lo
    	cbi	portb,LOWER	;Enable wieder rücksetzen	
    	nop			;ausschwingen Enable
    	sbi	ddra,BSY	;pin A7 wieder auf Output setzen
    	cbi	portb,RDWR	;RW auf WRITE
    	nop			;einschwingen write
    	out	porta,r21	;Ausgabe Control-Byte
    	nop			;Einschwingen
    	sbi	portb,LOWER	;setzen Bit3 (Enable lower Rows)
    	nop
    	nop
    	nop
    	nop
    	cbi	portb,LOWER	;rücksetzen Bit3
    	ret
    
    	;************************************************************
    	;* write_1_busy_data_byte mit BSY (RW=low (B0),CD=high (B0))
    	;* PARM:	R21 auszugebendes Daten-Byte
    	;************************************************************
    wb1data:cbi	ddra,BSY	;pin A7 auf Input setzen
    	sbi	portb,RDWR	;RW auf READ
    	nop
    	sbi	portb,UPPER	;setzen Bit3 (Enable upper Rows)
    	nop
    
    wbd1lo: sbic	pina,BSY	;warten auf BSY Ready
    	rjmp	wbd1lo
    
    	cbi	portb,UPPER	;Enable wieder rücksetzen	
    	nop
    	sbi	ddra,BSY	;pin A7 wieder auf Output setzen
    	cbi	portb,RDWR	;RW auf WRITE
    	nop
    	sbi	portb,CODA	;setzen Bit1 (DATA)
    	nop
    	out	porta,r21	;Ausagabe Daten-Byte
    	nop			;Einschwingen
    	sbi	portb,UPPER	;setzen Bit B2 (Enable upper Rows)
    	nop
    	nop
    	nop
    	nop
    	cbi	portb,UPPER	;rücksetzen Bit B2
    	nop
    	cbi	portb,CODA	;rücksetzen Bit1 (CONTROL)
    	ret	
    
    
    	
    	;************************************************************
    	;* write_2_busy_data_byte mit BSY (RW=low (B0),CD=high (B0))
    	;* PARM:	R21 auszugebendes Daten-Byte
    	;************************************************************
    wb2data:cbi	ddra,BSY	;pin A7 auf Input setzen
    	sbi	portb,RDWR	;RW auf READ
    	nop
    	sbi	portb,LOWER	;setzen Bit3 (Enable lower Rows)
    	nop
    
    wbd2lo: sbic	pina,BSY	;warten auf BSY Ready
    	rjmp	wbd2lo
    
    	cbi	portb,LOWER	;Enable wieder rücksetzen	
    	nop
    	sbi	ddra,BSY	;pin A7 wieder auf Output setzen
    	cbi	portb,RDWR	;RW auf WRITE
    	nop
    	sbi	portb,CODA	;setzen Bit1 (DATA)
    	nop
    	out	porta,r21	;Ausgabe Daten-Byte
    	nop			;Einschwingen
    	sbi	portb,LOWER	;setzen Bit B3 (Enable lower Rows)
    	nop
    	nop
    	nop
    	nop
    	cbi	portb,LOWER	;rücksetzen Bit B3
    	nop
    	cbi	portb,CODA	;rücksetzen Bit1 (CONTROL)
    	ret	
    
    	;************************************************************
    	;* lc1_res LCd_1_RESet löschen oberes LCD, Cursor auf Position 0
    	;* DESTROY:	R21
    	;************************************************************
    lc1_res:ldi	r21,2		;02h an LCD "Home"
    	rcall	wb1ctrl
    	ret
    
    
    	;************************************************************
    	;* lc2_res LCd_2_RESet löschen unteres LCD, Cursor auf Position 0
    	;* DESTROY:	R21
    	;************************************************************
    lc2_res:ldi	r21,2		;02h an LCD "Home"
    	rcall	wb2ctrl
    	ret
    
    	;************************************************************
    	;* ct_res CounTer_RESet setzen Zähler in ispLSI auf (Adresse=0)
    	;************************************************************
    ct_res :cbi	portd,RESET	;rücksetzen Bit D4 (RESET)
    	nop
    	nop
    	sbi	portd,RESET	;setzen Bit D4
            nop
            nop
    	ret	
    
    	;************************************************************
    	;* ct_lgo CounTer_Line_GOto setzen Zähler in ispLSI auf Zeilenanfang
    	;* DESTROY:	R22
            ;* PARM:	R21 Nummer der Zeile, zu deren Anfang gesprungen
    	;*		    werden soll
    	;************************************************************
    ct_lgo :rcall	ct_res		;rücksetzen Counter
    	dec	r21		;Korrektur Zielzeile
    	brne	ct_lgo1
    	ret
    ct_lgo1:ldi	r22,80		;1 Zeile
    ct_lgo2:dec	r22
            rcall	ct_step
            rcall	ct_step
            brbc	1,ct_lgo2
    	dec	r21
            brbc	1,ct_lgo1
    	ret	
    
    	;************************************************************
    	;* ct_cgo CounTer_Column_GOto setzen Zähler in ispLSI auf Spalte
            ;* PARM:	R21 Nummer der Spalte, zu deren Anfang gesprungen
    	;*		    werden soll
    	;************************************************************
    ct_cgo:	dec	r21		;Korrektur Zielspalte
    	brne	ct_cgo1		;bei Spalte 1 sofort zurück
    	ret
    ct_cgo1:rcall	ct_step
            rcall	ct_step
    	dec	r21
            brbc	1,ct_cgo1
    	ret	
    
    	;************************************************************
    	;* ct_step CounTer_STEP Increment Zähler in ispLSI (Adresse++) 
    	;************************************************************
    ct_step:sbi	portd,STEP		;setzen Bit B5 (CLOCK)
    	nop
    	nop
    	cbi	portd,STEP		;rücksetzen Bit B5
            nop
    	nop
    	ret	
    
    	;************************************************************
    	;* bs1read BildSpeicher_1_READ lesen eine Zeichens aus BS 
    	;* DESTROY:	R21
    	;************************************************************
    bs1read:sbi	portd,UPREQ	;setzen Bit6 (UPREQ) Anforderungsbit
     	nop
     	nop	
     	cbi	portd,UPREQ	;rücksetzen Bit6
            nop
            nop
    
    ;die folgenden zwei Zeilen blokieren Prog !!
    ;bs1rw:	sbis	pind,UPENA	;warten auf UPENA aktiv          
    ;	rjmp	bs1rw
    	in	r21,pinc	;einlesen Byte
    ;	sbis	pind,UPENA	;UPENA noch aktiv ?
    ;	rjmp	bs1read
    	rcall	conv		;Zeichen-Code konvertieren
    	rcall	wb1data		;Ausgabe Zeiche an LCD
    	ret	
    
    	;************************************************************
    	;* bs2read BildSpeicher_2_READ lesen eine Zeichens aus BS 
    	;* DESTROY:	R21
    	;************************************************************
    bs2read:sbi	portd,UPREQ	;setzen Bit B6 (UPREQ) Anforderungsbit
    	nop
    	nop	
    	cbi	portd,UPREQ	;rücksetzen Bit B6
    	nop
    	nop
    
    ;bs2rw:	sbis	pind,UPENA	;warten auf UPENA aktiv
    ;	rjmp	bs2read
    	in	r21,pinc	;einlesen Byte
    ;	sbis	pind,UPENA	;UPENA noch aktiv ?
    ;	rjmp	bs2read
    	rcall	conv		;Zeichen-Code konvertieren
    	rcall	wb2data		;Ausgabe Zeiche an LCD
    	ret	
    
    
    	;************************************************************
    	;* conv CONVert Zeichencode (DOS -> LCD)
    	;* DESTROY:	R22,R0 
    	;* PARM:	R21 Einganscode
    	;* RESULT:	R21 übersetzter Code	
    	;************************************************************
    conv:
    	;--- Test auf Pseudografik
    	cpi	r21,176		;untere Grenze
    	brlt	conv0
    	cpi	r21,224		;obere Grenze+1
    	brge	conv0
    	ldi	r21,0xff
    	ret
    	
    	;--- Ubersetzung mit Tabelle
    conv0:	ldi	r22,10		;Länge Tabelle
    	ldi	zh,high(itab*2)
    	ldi	zl,low(itab*2)
    conv1:	lpm				;z->r0
    	cp	r0,r21
    	brne	conv3
    	;--- zeichen umwandeln
    	adiw    zl,1			;1 Byte weiter
    	lpm
    	mov	r21,r0			;überstztes Byte laden
    	ret
    conv3:	adiw    zl,1			;1 Byte weiter
    	adiw    zl,1			;1 Byte weiter
    	dec	r22
            brbc	1,conv1
    	ret
    
    	;--- Länge Tabelle 10 Worte
    itab:	.DB	148,0xEF	;'ö'
    	.DB	153,0xEF	;'Ö'
    	.DB	132,0xE1	;'ä'
    	.DB	142,0xE1	;'Ä'
    	.DB	129,0xF5	;'ü'
    	.DB	154,0xF5	;'Ü'
    	.DB	21 ,5		;'§'
    	.DB	126,6		;'~'
    	.DB	92 ,7		;'\'
    	.DB	225,0xE2	;'ß'
    
    	;************************************************************
    	;* wkpet Wait for KeyPress EnTer 
    	;* DESTROY:	R25
    	;************************************************************
    wkpet:	ldi	r25,K_ENTER     
    	out	porta,r25	;Ausgabe Key-Maske
    wkpet1: sbic	pinb,KEY	;warten auf KEY -> Low
    	rjmp	wkpet1
    	ret
    
    	;************************************************************
    	;* keypad Keypad abfragen (Move-Tasten) 
    	;* DESTROY:	R25
    	;************************************************************
    keypad:	ldi	r25,K_UP
    	out	porta,r25
    	nop
    	nop
    	sbis	pinb,KEY
    	rjmp	kp_up
    
    	ldi	r25,K_DOWN
    	out	porta,r25
    	nop
    	nop
    	sbis	pinb,KEY
    	rjmp	kp_down
    
    	ldi	r25,K_RIGHT
    	out	porta,r25
    	nop
    	nop
    	sbis	pinb,KEY
    	rjmp	kp_right
    
    	ldi	r25,K_LEFT
    	out	porta,r25
    	nop
    	nop
    	sbis	pinb,KEY
    	rjmp	kp_left
    	
    	ldi	r25,K_ENTER
    	out	porta,r25
    	nop
    	nop
    	sbis	pinb,KEY
    	rjmp	kp_et
    	ret
        
    kp_up:	ldi	temp,1
    	cp	r10,temp
    	breq	kp_end
    	dec	r10
    	rjmp	kp_end
    
    kp_down:ldi	temp,22
    	cp	r10,temp
    	breq	kp_end
    	inc	r10
    	rjmp	kp_end
    
    kp_left:ldi	temp,1
    	cp	r11,temp
    	breq	kp_end
    	dec	r11
    	rjmp	kp_end
    
    kp_right:ldi	temp,41
    	cp	r11,temp
    	breq	kp_end
    	inc	r11
    	rjmp	kp_end
    
    kp_et:	ldi	temp,1
    	mov	r10,temp
    	mov	r11,temp
    	
    
    kp_end:	ret
    
    
    ;********************************************************************
    ;*	EEPROM-Segment						    *
    ;********************************************************************
    
    .eseg
    UCHR1:	.DB 	0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x00    ;6 benutzerdef. Zeichen
    UCHR2:	.DB 	0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x1f
    UCHR3:	.DB 	0x00,0x00,0x00,0x00,0x1f,0x00,0x1f,0x1f
    UCHR4:	.DB 	0x00,0x00,0x00,0x00,0x1f,0x1f,0x1f,0x1f
    UCHR5:	.DB 	0x00,0x00,0x1f,0x00,0x1f,0x1f,0x1f,0x1f
    UCHR6:	.DB 	0x08,0x06,0x0a,0x04,0x02,0x04,0x00,0x0C	;5 '§'
    UCHR7:	.DB 	0x00,0x00,0x15,0x08,0x00,0x02,0x00,0x00	;6 '~'
    UCHR8:	.DB 	0x10,0x00,0x04,0x08,0x01,0x02,0x00,0x00	;7 '\'
    
    zurück zum Inhalt
    © 2001 by Thomas Wagner, Mail: thomas at wagner-ibw dot de (aktuallisiert: 29.04.2001)