# PALcode

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/PALcode
> Markdown URL: https://mediated.wiki/source/PALcode.md
> Source: https://en.wikipedia.org/wiki/PALcode
> Source revision: 1308255296
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Type of machine code

**PALcode** (**Privileged Architecture Library code**)[1][2] is the name used by DEC in the [Alpha](/source/DEC_Alpha) [instruction set architecture](/source/Instruction_set_architecture) (ISA) for a set of functions in the [System Reference Manual](/source/System_Reference_Manual) (SRM) or [AlphaBIOS](/source/AlphaBIOS) [firmware](/source/Firmware), providing a [hardware abstraction layer](/source/Hardware_abstraction_layer) for system software, covering features such as cache management, [translation lookaside buffer](/source/Translation_lookaside_buffer) (TLB) miss handling, interrupt handling, and exception handling. It evolved from a feature of the [DEC PRISM](/source/DEC_PRISM) architecture named Epicode. ⁠[3]

PALcode is Alpha machine code, running in a special mode[4] that also allows access to internal registers specific to the particular Alpha processor implementation. Thus, it is somewhere between the role of [microcode](/source/Microcode) and of a hardware [emulator](/source/Emulator). PALcode is [operating system](/source/Operating_system)-specific,[5] so different versions of PALcode are required by [OpenVMS](/source/OpenVMS), [Tru64 UNIX](/source/Tru64_UNIX), and [Windows NT](/source/Windows_NT). Tru64 UNIX PALcode is also used by [NetBSD](/source/NetBSD), [FreeBSD](/source/FreeBSD), [OpenBSD](/source/OpenBSD) and [Linux](/source/Linux).

## References

1. **[^](#cite_ref-1)** [*Alpha Architecture Reference Manual*](https://books.google.com/books?id=aYioBQAAQBAJ&q=very+flexible). Digital Press. 2014. [ISBN](/source/ISBN_(identifier)) [978-1483294339](https://en.wikipedia.org/wiki/Special:BookSources/978-1483294339). PALcode—Alpha's Very Flexible Privileged Software Library A Privileged Architecture Library (PALcode) is a set of subroutines that ...

1. **[^](#cite_ref-2)** ["PALcode for Alpha Microprocessors System Design Guide"](https://download.majix.org/dec/palcode_dsgn_gde.pdf) (PDF). May 2, 1996. PALcode for Alpha Microprocessors. System Design Guide. May 1996. This guide explains how to use the Privileged Architecture Library code.

1. **[^](#cite_ref-3)** Neil Rieck. ["Dave Cutler, PRISM, Mica, Emerald, etc"](http://neilrieck.net/docs/dave_cutler-prism-mica-emerald-etc.html). *neilrieck.net*. Retrieved 2020-12-21.

1. **[^](#cite_ref-4)** ["PALcode - ES40 Emulator"](http://www.es40.org/PALcode). PALcode is Alpha machine code, running in a special mode that allows access to internal registers specific to the particular Alpha processor

1. **[^](#cite_ref-5)** ["The Alpha AXP Processor"](http://www.science.unitn.it/~fiorella/guidelinux/tlk/node140.html). The Alpha AXP architecture uses a set of subroutines, call privileged architecture library code (PALcode). PALcode is specific to the operating system, the CPU ...

## External links

- [Hewlett Packard OpenVMS FAQ](https://web.archive.org/web/20110511060309/http://h71000.www7.hp.com/faq/vmsfaq_021.html) (archived on May 11, 2011)

- ["PALcode for Alpha Microprocessors System Design Guide"](http://download.majix.org/dec/palcode_dsgn_gde.pdf) (PDF). [Digital Equipment Corporation](/source/Digital_Equipment_Corporation). May 1996. Retrieved November 7, 2013.

- Bruce Hutton. ["Some simple PAL code"](https://web.archive.org/web/20150713222142/http://www.docstoc.com/docs/103863445/PAL). Archived from [the original](http://www.docstoc.com/docs/103863445/PAL) on July 13, 2015.

v t e Digital Equipment Corporation Key people Ken Olsen (founder and CEO, 1957–1992) Harlan Anderson (co-founder) Gordon Bell (VP of engineering) Robert Palmer (CEO, 1992–1998) Instruction set architectures, processors PDP-11 LSI-11 F-11 T-11 J-11 VAX V-11 MicroVAX 78032 CVAX SOC Rigel Mariah NVAX Alpha Alpha 21064 21066 21068 Alpha 21164 (21164PC) Alpha 21264 Alpha 21364 Alpha 21464 Other MicroPRISM StrongARM Computer terminals VT05 (1970) GT40 (1972) VT50/VT52 (1975) VT55 VT62 VT100 (1978) VT101 VT102 VT103 VT105 VT131 VT180 VT220 (1983) VT240 VT241 VT320 (1987) VT330 VT340 VT420 (1990) VT1000 (1990) VT510 (1993) VT520 (1994) VT525 Operating systems DECsys 4K DMS COS TOPS-10 RSX-15 TSS/8 OS/8 DOS-11 RT-11 RSTS/E RSX-11 IAS DSM-11 TOPS-20 VAX/VMS VAXELN ULTRIX Taos MICA OZIX Digital UNIX Programming languages BASIC-8 BASIC-PLUS BLISS DIBOL FOCAL MACRO-10 MACRO-11 MUMPS VAX MACRO DIGITAL Command Language Character sets Code page 1100 (Multinational) Code page 1287 (Greek) Code page 1288 (Turkish) Hebrew National Replacement RADIX 50 Special Graphics Technical Bus standards Digital Storage Systems Interconnect Massbus Q-Bus Standard Disk Interconnect Synchronous Backplane Interconnect TURBOchannel Unibus VAXBI Other hardware DECserver DECtalk DECtape DECwriter Digital Linear Tape Dynamically Redefined Character Set Firefly Flip-Chip module Gold key LK201 LK421 Mass Storage Control Protocol PALcode RA90 RK05 RL02 Star coupler System Module TU81 Related topics AdvFS AltaVista Compaq CPU Wars DECnet DECUS HP-Interex Digital Federal Credit Union Dynamic Debugging Technique FX!32 Local Area Transport Maintenance Operations Protocol On-line Debugging Tool PALcode Record Management Services ReGIS Sequence and Batch Language Sixel System Reference Manual Systems Research Center TD/SMP The Ultimate Entrepreneur VT640 WPS-8 Computers template Category Commons

This programming-language-related article is a stub. You can help Wikipedia by adding missing information.

- [v](https://en.wikipedia.org/wiki/Template:Prog-lang-stub)
- [t](/source/Template_talk%3AProg-lang-stub)
- [e](https://en.wikipedia.org/wiki/Special:EditPage/Template:Prog-lang-stub)

---
Adapted from the Wikipedia article [PALcode](https://en.wikipedia.org/wiki/PALcode) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/PALcode?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
