diff --git a/src/models.c b/src/models.c index 46ce900..ceff33f 100644 --- a/src/models.c +++ b/src/models.c @@ -84,6 +84,33 @@ model_info models[] = { ".EQU P13, 7 \n" ".EQU _ms_stack, __stack\n" + }, + { + "ATmega32", + + "atmega32", + "avrispmkii", + "115200", + + false, + + // diagnostic output is PORTC7 + ".EQU PORT13, 0x15 \n" + ".EQU DDR13, 0x14 \n" + ".EQU P13, 7 \n" + + ".EQU _ms_stack, __stack\n" + + ".EQU UDR0, 0x2C \n" + ".EQU UBRR0H, 0x40 \n" + ".EQU UBRR0L, 0x29 \n" + ".EQU UCSR0B, 0x2A \n" + ".EQU UCSR0A, 0x2B \n" + ".EQU TXEN0, 3 \n" + ".EQU RXEN0, 4 \n" + ".EQU UDRE0, 5 \n" + ".EQU TXC0, 6 \n" + ".EQU RXC0, 7 \n" } }; diff --git a/src/stdlib.ms b/src/stdlib.ms index f9801d4..7e66cf2 100644 --- a/src/stdlib.ms +++ b/src/stdlib.ms @@ -109,6 +109,18 @@ (define arduino-ports) (define arduino-pins) +;; A = #x39, B = #x36, C = #x33, D = #x30 +(@if-model "ATmega32" + (begin + (set! arduino-ports (vector #x39 #x39 #x39 #x39 #x39 #x39 #x39 #x39 + #x36 #x36 #x36 #x36 #x36 #x36 #x36 #x36 + #x33 #x33 #x33 #x33 #x33 #x33 #x33 #x33 + #x30 #x30 #x30 #x30 #x30 #x30 #x30 #x30)) + (set! arduino-pins (vector 1 2 4 8 16 32 64 128 + 1 2 4 8 16 32 64 128 + 1 2 4 8 16 32 64 128 + 1 2 4 8 16 32 64 128)))) + (@if-model "MEGA" (begin (set! arduino-ports (vector #x2C #x2C #x2C #x2C #x32 #x2C #x100 #x100