hallo, habe mal das fast-basic geladen.
100 zeilen kann man compilieren.
generiert 100% asm der selber noch geändert werden kann.
er wird dann mit dem AVR32asm von avr-studio in hex umgesetzt.
der AVR32asm ist mit dabei.
der asm-code kann auch direkt mit avr-studio geladen werden und gestartet werden.
also, ein gutes basic für den avr.
der code ist kleiner als der der von bascom.
und über den preis kann man auch nicht meckern ca 120 euro.
fastavr-basic wird mein nächtes basic werden.
mit ponyprog habe ich den code übertragen. ponyprog wird direkt von fastavr gestartet.
im anhang sind 2 demo, einmal in bas und einmal von fastavr in asm umgewandelt.
mfg pebisoft

Code:
'//////////////////////////////////////////////////////////
'///    FastAVR Basic Compiler for AVR by MICRODESIGN   ///
'///    Mooving LED for STK-200, 500                    ///
'//////////////////////////////////////////////////////////
$Device= m16			' used device
$Stack = 32				' stack depth
$Clock = 8.				' used crystal
$Source= On				' basic source in Asm

Dim n As Byte

DDRB=&hff				' PortB is output
n=&hfe					' init n

Do   					' never ending loop
	PORTB=n				' n out to port
	Rotate(Left, 1, n)	' rotate n left one bit
	WaitMs 100			' 100ms delay
Loop					' back to start of loop

;FastAVR Basic Compiler, ver.4.1.3, by MicroDesign
;Created 23:45:08, 29-08-2005
;
.include	"D:\FASTAVR\inc\m16def.inc"
;
		.DSEG
n:						.byte	 1
		
		.CSEG
.ORG	0

_Reset:
		ldi		yl,low(RAMEND)
		out		SPL,yl
		ldi		yh,high(RAMEND)
		out		SPL+1,yh
		sbiw	yl,32

;******	USERS BASIC CODE **********************

;-Line--0012----DDRB=&hff				' PortB is output--
		ldi		zl,low(255)
		out		ddrb,zl

;-Line--0013----n=&hfe					' init n--
		ldi		zl,low(254)
		sts		n,zl

;-Line--0015----Do   					' never ending loop--
L0000:

;-Line--0016----PORTB=n				' n out to port--
		lds		zl,n
		out		portb,zl

;-Line--0017----Rotate(Left, 1, n)	' rotate n left one bit--
		lds		zl,n
		ldi		r24,1 
		call	_RotBL
		sts		n,zl

;-Line--0018----WaitMs 100			' 100ms delay--
		ldi		zl,low(100)
		call	_Wms

;-Line--0019----Loop					' back to start of loop--
		rjmp	L0000
L0001:

;****** END OF USER BASIC CODE ****************


;////// RotateLeftByte ////////////////////
_RotBL:	lsl		zl
		brcc	_RtBL1
		sbr		zl,1
_RtBL1:	dec		r24
		brne	_RotBL
		ret

;////// _Waitms ///////////////////////////
_Wms:	ldi		r20,0x14
_Wms1:	ldi		r21,0x85
_Wms2:	dec		r21
		brne	_Wms2
		dec		r20
		brne	_Wms1
		dec		zl
		brne	_Wms
		ret

;System Global Variables: 0  bytes
;User   Global Variables: 1  bytes



'/////////////////////////////////////////////////////////
'///   FastAVR Basic Compiler for AVR by MICRODESIGN   ///
'///   World famous program                            ///
'///   HelloWorld.bas                www.FastAVR.com   ///
'/////////////////////////////////////////////////////////
$Device= m16			' used device
$Stack = 28				' stack depth
$Clock = 8.0		' adjust for used crystal
$Baud  = 9600
$Source= On				' basic source in Asm
' use FastAVR or any other Terminal emulator

Print "Hello World!"

End

;FastAVR Basic Compiler, ver.4.1.3, by MicroDesign
;Created 23:46:11, 29-08-2005
;
.include	"D:\FASTAVR\inc\m16def.inc"
;
		.DSEG
		
		.CSEG
.ORG	0

_Reset:
		ldi		yl,low(RAMEND)
		out		SPL,yl
		ldi		yh,high(RAMEND)
		out		SPL+1,yh
		sbiw	yl,28
		ldi		zl,0x18
		out		UCSRB,zl
		ldi		zh,high(51)
		ldi		zl,low(51)
		out		UBRRL,zl
		out		UBRRH,zh


;******	USERS BASIC CODE **********************

;-Line--0013----Print "Hello World!"--
		ldi		zl,low(S000*2)
		ldi		zh,high(S000*2)
		call	_PSc
		call	_PCL

;-Line--0015----End--
L0000:
		jmp	L0000


;****** END OF USER BASIC CODE ****************

; String constants:
S000:	.db	"Hello World!", 0


;////// Print string constants ////////////
_PSc:	lpm
		tst		r0
		breq	_PSc1
		mov		r24,r0
		rcall	_Pch
		adiw	zl,1
		rjmp	_PSc
_Psc1:	ret

;////// Print Cr, Lf & any char////////////
_PCL:	ldi		r24,0x0d
		rcall	_Pch
		ldi		r24,0x0a
_Pch:	sbis	UCSRA,5
		rjmp	_Pch
		out		UDR,r24
		ret

;System Global Variables: 0  bytes
;User   Global Variables: 0  bytes