vak: (Улыбка)
[personal profile] vak
В RetroBSD заработал компилятор Small-C.  Фитюлинка постепенно превращается в самодостаточную платформу для разработки.  Качество кода компилятора не ахти: примерно в три раза тормознутее, чем GCC без оптимизации.  Но библиотеки вполне полноценные, имеется нормальный ассемблер, линкер, архивер и прочее в комплекте.

Следующая цель - затащить полновесный компилятор LCC.

Выглядит примерно так:
2.11 BSD Unix for PIC32, revision 763:764 build 1:
     Compiled 2012-12-04 by vak@tundra.local:
     /Users/vak/Project/retrobsd/trunk/sys/pic32/max32
cpu: 795F512L 80 MHz, bus 80 MHz
oscillator: HS crystal, PLL div 1:2 mult x20
console: port UART1
sd: port SPI4, select pins D3, D4
sd0: type I, size 16384 kbytes, speed 13 Mbit/sec
phys mem  = 128 kbytes
user mem  = 96 kbytes
root dev  = (0,0)
root size = 16384 kbytes
swap dev  = root, offset 65
swap size = 2048 kbytes
/dev/sd0: 442 files, 9522 used, 6797 free
Starting daemons: update 

2.11 BSD UNIX (pic32) (console)

login: root
Password:
Welcome to RetroBSD!
erase, kill ^U, intr ^C
# cd share/smallc
# cat primelist.c
/*
 * Print the list of prime numbers up to 100.
 */
main()
{
    int n;

    for (n=2; n<100; ++n) {
        if (isprime(n)) {
            printf("%d ", n);
        }
    }
    printf("\n");
}

isprime(n)
    int n;
{
    int j;

    if (n == 2)
        return 1;

    if (n % 2 == 0)
        return 0;

    for (j=3; j*j<=n; j+=2)
        if (n % j == 0)
            return 0;
    return 1;
}
# make primelist
scc  -o primelist  primelist.c
# size primelist
text    data    bss     dec     hex
17376   980     60      18416   47f0
# ./primelist
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 
# _