3 ms·
Much of the software for the Xerox Alto was orginally written in BCPL. Also the original AmigaDOS was written in BCPL. This caused some complications later whe
by EgoIncarnate 2y ago
Much of the software for the Xerox Alto was orginally written in BCPL.
Also the original AmigaDOS was written in BCPL. This caused some complications later when they decided to use C as the primary system programming language. In AmigaDOS BCPL pointers are "word" (2 byte) addressed, which was a common form of addresses for computers of the time (inherited from non-power of two sized word computers such as the 36-bit machines of the 60s and 70s). C uses byte addressing, so it requires a bit shift to convert between BCPL's word addressed pointers and C's byte addressed pointers.
- amiga386 2y agoAmiga Inc. were using C and assembly as the primary languages for AmigaOS before BCPL entered the picture. They were up against deadlines and had no disk operating system. A third party company, MetaComCo, was known to be selling a a MC68000 port of TRIPOS (which was written in BCPL because its author created BCPL), so they shoehorned TRIPOS into the Amiga operating system and called it AmigaDOS. It was basically a black box. AmigaOS had an open, documented, normal way to operate, with shared libraries and devices, relocatable executables, callable from any language, including C - because all parameters were passed in registers and each function had to explicitly declare which registers were used, so none of this "I'll write it in C, and if you call me, just remember to use my C compiler's calling convention" nonsense that is now standard practise and people using other languages say C is over-privileged because it's base-level glue... on a single-architecture system like the Amiga, register declarations are base-level glue! However, any time you went near AmigaDOS, it was quirky crap where all pointers were divided by 4 (because in BCPL there are no datatypes, just machine words, and machine word 0 is 4 bytes after machine word 1 on a 8-bit byte-addressable machine with 32-bit machine words), and there was the "global vector" for accessing shared functions, rather than standard Amiga libraries. Amiga Inc. were pushed into rewriting in C by Charlie Heath et al, founders of the "AmigaDOS Replacement Project" (ARP)... ultimately almost all of AmigaDOS and its utility commands were rewritten in C for AmigaOS 2.0, and dos.library grew substantially in functions (most of which were already in AmigaDOS, but not visible outside BCPL code)
- pjmlp 2y agoAnd eventually ported to Mesa, as means to improve quality and soundness. https://www.softwarepreservation.org/projects/mesa/ https://www.softwarepreservation.org/projects/mesa/