PL/M
Microcomputer Applications Associates | |
---|---|
First appeared | 1973[2][3] |
Influenced by | |
ALGOL, PL/I, XPL |
The PL/M programming language (an acronym of Programming Language for Microcomputers[2][3]) is a high-level language conceived and developed by Gary Kildall[2][3][4][1] in 1973[2][3] for Hank Smith[2][3] at Intel for its microprocessors.
Overview
The language incorporated ideas from
Unlike other contemporary languages such as Pascal, C or BASIC, PL/M had no standard input or output routines. It included features targeted at the low-level hardware specific to the target microprocessors, and as such, it could support direct access to any location in memory, I/O ports and the processor interrupt flags in a very efficient manner. PL/M was the first higher level programming language for microprocessor-based computers and was the original implementation language for those parts of the CP/M operating system which were not written in assembler. Many Intel and Zilog Z80-based embedded systems were programmed in PL/M during the 1970s and 1980s. For instance, the firmware of the Service Processor component of CISC IBM AS/400 was written in PL/M.
The original PL/M
While some PL/M compilers were "native", meaning that they ran on systems using that same microprocessor, e.g. for the Intel ISIS operating system, there were also cross compilers, for instance PLMX, which ran on other operating environments such as Digital Research CP/M, Microsoft's DOS, and Digital Equipment Corporation's VAX/VMS.
PL/M is no longer supported by Intel, but aftermarket tools like PL/M-to-C
PL/M sample code
FIND: PROCEDURE(PA,PB) BYTE;
DECLARE (PA,PB) BYTE;
/* FIND THE STRING IN SCRATCH STARTING AT PA AND ENDING AT PB */
DECLARE J ADDRESS,
(K, MATCH) BYTE;
J = BACK ;
MATCH = FALSE;
DO WHILE NOT MATCH AND (MAXM > J);
LAST,J = J + 1; /* START SCAN AT J */
K = PA ; /* ATTEMPT STRING MATCH AT K */
DO WHILE SCRATCH(K) = MEMORY(LAST) AND
NOT (MATCH := K = PB);
/* MATCHED ONE MORE CHARACTER */
K = K + 1; LAST = LAST + 1;
END;
END;
IF MATCH THEN /* MOVE STORAGE */
DO; LAST = LAST - 1; CALL MOVER;
END;
RETURN MATCH;
END FIND;
References
- ^ Swaine, Michael (2001-06-22). "Gary Kildall and Collegial Entrepreneurship". Dr. Dobb's Journal. Archivedfrom the original on 2019-07-26. Retrieved 2006-11-20.
- ^ a b c d e f Shustek, Len (2016-08-02). "In His Own Words: Gary Kildall". Remarkable People. Computer History Museum. Archived from the original on 2019-10-03. Retrieved 2020-02-02.
- ^ a b c d e f Kildall, Gary Arlen (2016-08-02) [1993]. Kildall, Scott; Kildall, Kristin (eds.). Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry (Manuscript, part 1). Kildall Family. Retrieved 2016-11-17.
- ^ Johnson, Herb (2019-07-21). "ISIS, Intellec, PL/M, iRMX, and Intel - 20th century". Retrotechnology. Archived from the original on 2019-10-02. Retrieved 2020-01-29.
- Kildall, Gary Arlen (September 1970). "APL\B5500 - The Language And Its Implementation" (PDF). University of Washington, Computer Science Group. Technical Report 70-09-04. Archived(PDF) from the original on 2019-12-20. Retrieved 2020-01-29.
- McGraw-Hill Education. pp. 103–109. Archived(PDF) from the original on 2021-11-14. Retrieved 2021-11-14.
- 8096is similarly supported with PL/M-96. […]
Further reading
- PL/M-80 Programming Manual (PDF). Intel Corporation. January 1980 [1976]. Doc # 98-268B. Archived(PDF) from the original on 2019-12-21. Retrieved 2020-01-29.
- MCS-8 Guide to PL/M Programming (PDF). Intel Corporation. September 1973. Archived(PDF) from the original on 2019-12-21. Retrieved 2020-02-02.
- PL/M 386 Programmer's Guide (PDF). notation.)
- McCracken, Daniel D. (1978). A Guide to PL/M Programming for Microcomputer Applications. Pearson / Addison-Wesley.
- Burgett, Ken (2017-11-10). "Development of Intel ISIS Operating System - An interview with Ken Burgett". Archived from the original on 2023-11-24. Retrieved 2023-11-25. [1][2]