Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Steve Lewis Newsgroups: comp.compilers Subject: PALM challenge Date: Sat, 1 Oct 2022 01:24:20 -0700 (PDT) Organization: Compilers Central Lines: 27 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <22-10-001@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="25624"; mail-complaints-to="abuse@iecc.com" Keywords: history, architecture, comment Posted-Date: 01 Oct 2022 15:16:21 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:3179 Lots of new CPUs, sure. But let's explore an old CPU: the 1975 PALM. I'm looking for anyone interested to explore the idea. Maybe prove how robust modern tools are at adapting C, by exploring this ancient instruction set. You won't find much about this instruction set. But, we've found an internal IBM documentation about it. We have an emulator for it. And we have an assembler for it. I'm no expert about this process, hence seeking help. From what I understand, the instruction set has 4 tiers of 32 registers. Each tier is an interrupt level. In Level 0, the first register holds the program counter (and the second register is reserved as a branch target for certain branch instructions- other than that, I think the registers are all fair game). There are no Index registers, and no Overflow/Underflow registers (that I'm aware of). There is a special instruction for accessing some Devices (so retaining the option for some inline assembly would good - these may be necessary for keyboard and screen output). In total it is approximately 45 instructions. -Steve [Architecture described here http://computermuseum.informatik.uni-stuttgart.de/dev/ibm_5110/technik/en/ It doesn't look like it would be all that bad as a target for C although the code to handle the stack might be a bit tedious. -John]