PAL-III

From Wikipedia, the free encyclopedia

PAL-III was the assembly language processor for the PDP-8 computer family sold by Digital Equipment Corporation of Maynard, Massachusetts. It followed an earlier product known as PAL-8.

PAL-III allowed the efficient production of PDP-8 machine code from a human-readable source language. It also supported PDP-8-specific architectural features such as 128-word code pages, the special use of Page 0, IOTs, and automated addressing of "far" data objects.

Here is a typical program written in PAL-III:

                        / Define two symbols for I/O Transfer (IOT) instructions
                        /
TSF = 6041              / Teleprinter Skip-on-Flag
TLS = 6046              / Teleprinter Load Sequence (Clear flag and print from AC)
                        /
                        / (Many PDP-8 assemblers contained these very basic IOTs predefined)


*200                    / Assemble the following code starting at location 0200
                        /   (the beginning of Page 1 in Field 0)

START, CLA CLL          / Clear the AC and the Link bit
       TAD (DATA-1)     / Point AC just *BEFORE* the data (accounting for later pre-increment behavior)
       DCA 10           / Put that into one of ten auto-pre-increment memory locations
LOOP,  TSF              / Test the printer "ready" flag, skip if ready
       JMP .-1          / Jump back if not yet ready
       TAD I 10         / Pre-increment mem location 10, fetch indirect to get the next character of our message
       SNA              / Skip on non-zero AC
       HLT              / Else halt at end of message
       TLS              / Clear the printer "ready" flag and output character contained in the AC
       CLA CLL          / Clear AC for the next loop
       JMP LOOP         / Jump back for the next character

DATA,  "H               / A well-known message
       "e               /
       "l               / NOTE:
       "l               /
       "o               /   Strings in PAL-8 and PAL-III were "sixbit"
       ",               /   To use ASCII, we'll have to spell that out, character by character
       "                /
       "w               /
       "o               /
       "r               /
       "l               /
       "d               /
       "!               /
       015              /
       012              /
       0                / Mark the end of our .ASCIZ string ('cause .ASCIZ hadn't been invented yet!)


This illustrates most of the salient features of the language:

  • Symbols could be defined by the programmer.
  • The usual simple arithmetic can be performed at assembly-time using symbols.
  • Labels are delimited by a comma (rather than the more-usual colon).
  • "/" begins a comment that runs to the end of the current line.
  • Opcode mnemonics could be "or"ed together where appropriate (as in "CLA CLL").
  • "I" used with a memory-access opcode indicates one level of "indirection" (which is all the PDP-8 could do!)
  • Data literals could be created on the current page using "(litval)" or on Page 0 using "[litval]".
  • "." meant "the current location counter".

Note, though, that PAL-III was not a macroassembler and no full macro language was provided. (A later product called MACREL-8 did provide macro-assembly features.)

Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.