[HN Gopher] The Official Aztec C Online Museum (2009)
       ___________________________________________________________________
        
       The Official Aztec C Online Museum (2009)
        
       Author : elvis70
       Score  : 66 points
       Date   : 2021-08-09 11:20 UTC (11 hours ago)
        
 (HTM) web link (aztecmuseum.ca)
 (TXT) w3m dump (aztecmuseum.ca)
        
       | anonymousisme wrote:
       | The thing I liked about Aztec C was that they gave you the source
       | code for their libc. You could easily write and integrate your
       | own I/O drivers for stdin and stdout. It really made embedded C
       | development easy.
        
       | EvanAnderson wrote:
       | I've always felt the the 6502 architecture wasn't really amenable
       | to C (mainly due to the limited stack). A quick glance at the
       | site with an eye toward accommodations made for the platform
       | turned up the interesting hybrid architecture of the compiler
       | suite. You can see it detailed in the section "1.6 C65 and CCI,
       | The Speed Versus Size Dilemma"[0].
       | 
       | Basically, there's an optional compiler that emits a p-code
       | (rather than 6502 machine code) that's interpreted by a VM to
       | make 16 and 32-bit operations more space efficient. This is
       | highly reminiscent of SWEET16[1]. Also makes me think of the
       | Apollo Guidance Computer and the "Interpreter"[2].
       | 
       | This looks like a lot of fun. I'd like to get this running on my
       | Apple IIgs!
       | 
       | [0] http://aztecmuseum.ca/docs/AztecC_minimanual.txt [1]
       | https://en.wikipedia.org/wiki/SWEET16 [2]
       | https://en.wikipedia.org/wiki/Apollo_Guidance_Computer#Softw...
        
         | rbanffy wrote:
         | > This looks like a lot of fun.
         | 
         | Used it on a //e. It's not. It's painfully slow - slower than
         | the BASIC in ROM.
         | 
         | It also messes with page zero, which makes it impossible to use
         | the ROM routines (which _could_ have made character output not
         | ludicrously slow - it feels like a 1200 bps terminal)
        
           | EvanAnderson wrote:
           | Interesting. I didn't get the feeling that they were
           | targeting embedded 6502 but, rather, the Apple II platform.
           | To that end I'd think being "friendly" to the ROM routines
           | would have made good sense (since they get all that
           | functionality "for free").
           | 
           | I guess I'll fire it up in an emulator first to see if it's
           | worth hitting the real hardware with it. Thanks for the heads
           | up!
        
             | rbanffy wrote:
             | I did a PoC with it and we gave up on C for an Apple II
             | port of an educational Mac game (which was written in C).
             | We went with @plutus' GraFORTH. It was easier (and more
             | pleasant) to reimplement everything in Forth than to
             | persuade Aztec C to create minimally reasonable 6502
             | binaries.
        
       | Scubabear68 wrote:
       | I have very fond memories of my time there, I joined not too long
       | out of high school in the late 80's. I transitioned from QA to
       | development while learning C, learning how to program a few
       | different assemblies, putting together a TSR (!) library. It was
       | a great little company that changed my life. I still use VI
       | keybindings because everyone internally used the Aztec version of
       | VI :-)
       | 
       | It was very cool that they built a mini Unix toolset as part of
       | the compiler suite so you had kinda-sorta unix on DOS, Mac OS MPW
       | shell, Amiga....
       | 
       | It was a rare privilege for a 20 year old in the 80s to see code
       | that beautiful and tight.
        
       | stevekemp wrote:
       | I recently started working on a single-board Z80-based computer,
       | running CP/M. I wrote a couple of simple programs in Z80
       | assembly, including a text-based adventure game, and other
       | utilities.
       | 
       | It was so cool to be able to run the Aztec compiler in-situ, on
       | the computer itself, and I'm glad the official sources have been
       | preserved.
       | 
       | There are a lot of online archives of random .zip files for CP/M,
       | but few are as well documented as the Aztec collection.
        
       | kwertyoowiyop wrote:
       | Ahh, the memories. Aztec C on an Apple II with a giant Corvus 5
       | MB drive (whoosh, whoosh, whoosh goes the drive head). It's where
       | I learned ":wq", thanks to Z!
        
         | karmakaze wrote:
         | Why does everyone use ":wq" instead of "ZZ", is the latter not
         | everywhere or one more thing to learn?
        
           | mpweiher wrote:
           | :x
           | 
           | ?
        
           | tdeck wrote:
           | I use :wq because I'm already typing :w fairly often, so it
           | has better muscle memory. I'm closing files much less
           | frequently and always found ZZ a bit of an oddball shortcut.
        
       | base3 wrote:
       | This was the first compiler I paid for as a grad student circa
       | 1986. It was wonderfully useful, well documented. Tech support
       | always responded to my letters and emails. And they sent me
       | updates for years. I loved Aztec C.
        
       | jhallenworld wrote:
       | I had a good use for these old compilers- in this case I ended up
       | using code from the Zortech-C library to reduce memory usage for
       | ARM embedded. It turns out that the float to ascii conversion
       | functions for printf from the Zortech-C library are much smaller
       | than the ones in newlib. I'm sure they are less accurate, but I
       | don't care for this application. Same for strtod. Also they are
       | faster.
       | 
       | I put the code here:
       | 
       | https://github.com/jhallen/joes-sandbox/blob/master/snippets...
       | 
       | I see the Aztec ones for x86 are hand assembly..
        
       | zibzab wrote:
       | Hmm... I thinks this is what I used to learn C - on an Amiga.
       | 
       | Oh, the memories...
       | 
       | ... most of them about waiting for the disk to finish reading
       | just to run out of memory thanks to Intuitions.h being such a
       | beast. I think one of my first real C programs was a pre-
       | processor and minimiser for the amiga UI header files.
        
         | icedchai wrote:
         | I had Lattice (later SAS/C) myself. Luckily I had a hard drive
         | (30 megs!), which was a total luxury for the time, 1989-90 or
         | so.
        
         | ithkuil wrote:
         | I remember trying to use a C compiler on my Amiga but IIRC it
         | was such a pain to use with only one floppy drive and no hard
         | drive (and 512KB RAM). My mom wouldn't buy me a second floppy
         | drive (let alone a hard drive) because she thought this
         | computer thing was just a toy, so I switched using assembly.
         | 
         | Programming the Amiga with a good macro assembler was actually
         | a surprisingly good experience. The official documentation of
         | the various system libraries was clearly explained in terms of
         | the underlying ABI, almost as if it was expected for people to
         | reach out to assembly to write applications.
        
         | mpweiher wrote:
         | 2MB Fast RAM expansion with reset-proof RAM disk. In the
         | morning, load all the diskettes. After that...vroooom! :-)
         | 
         | HD-based Unix systems were a bit of a let-down, to be frank...
        
       | acuozzo wrote:
       | Does anyone have numbers on how the backend compares to CC65 for
       | performance on the 6502?
        
       | waynesoftware wrote:
       | I worked at this company as a support engineer in the summer
       | between high school and college. It was a blast.
        
       ___________________________________________________________________
       (page generated 2021-08-09 23:02 UTC)