Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
CP/M
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Applications == [[File:Wordstar 4 CPM.jpg|thumb|right|Distribution {{frac|5|1|4}}-inch diskettes and packaging for the last version (version 4) of WordStar word processing program released for 8-bit CP/M]] WordStar, one of the first widely used [[word processor]]s, and [[dBase]], an early and popular database program for microcomputers, were originally written for CP/M. Two early [[outliner]]s, [[KAMAS (program)|KAMAS]] (Knowledge and Mind Amplification System) and its cut-down successor Out-Think (without programming facilities and retooled for 8080/V20 compatibility) were also written for CP/M, though later rewritten for MS-DOS. [[Turbo Pascal]], the ancestor of [[Borland Delphi]], and [[Multiplan]], the ancestor of [[Microsoft Excel]], also debuted on CP/M before MS-DOS versions became available. [[VisiCalc]], the first-ever spreadsheet program, was made available for CP/M. Another company, [[Sorcim]], created its [[SuperCalc]] spreadsheet for CP/M, which would go on to become the market leader and de facto standard on CP/M. Supercalc would go on to be a competitor in the spreadsheet market in the MS-DOS world. [[AutoCAD]], a CAD application from Autodesk debuted on CP/M. A host of compilers and interpreters for popular [[programming language]]s of the time (such as [[BASIC]], [[Borland]]'s [[Turbo Pascal]], [[FORTRAN]] and even [[PL/I]]<ref name="PL1"/>) were available, among them several of the earliest [[Microsoft]] products. CP/M software often came with [[installer]]s that adapted it to a wide variety of computers.<ref name="mace19840109_16"/> The source code for BASIC programs was easily accessible, and most forms of [[copy protection]] were ineffective on the operating system.<ref name="pournelle198306"/> A Kaypro II owner, for example, would obtain software on Xerox 820 format, then copy it to and run it from Kaypro-format disks.{{r|derfler19821018}} The lack of standardized graphics support limited [[video game]]s, but various character and text-based games were [[ported]], such as ''[[Telengard]]'',<ref name="loguidice20120728"/> ''[[Gorillas (video game)|Gorillas]]'',<ref name="githubgorilla001"/> ''[[Hamurabi (video game)|Hamurabi]]'', ''[[Lunar Lander (video game genre)|Lunar Lander]]'', along with early [[interactive fiction]] including the ''[[Zork]]'' series and ''[[Colossal Cave Adventure]]''. [[Text adventure]] specialist [[Infocom]] was one of the few publishers to consistently release their games in CP/M format. [[Lifeboat Associates]] started collecting and distributing user-written "free" software. One of the first was [[XMODEM]], which allowed reliable file transfers via [[modem]] and phone line. Another program native to CP/M was the [[outline processor]] KAMAS.{{citation needed|date=September 2016}} === Transient Program Area === In the original version of CP/M for the 8080, 8085, and Z80, the read/write memory between address 0100 hexadecimal and the location just before address stored at 0006H (the lowest address of the BDOS) is the ''Transient Program Area'' (TPA) available for CP/M application programs.<ref name="CPM-system-manual" />{{rp|pages=2,233}} Although all Z80 and 8080 processors could address 64 kilobytes of memory, the amount available for application programs could vary, depending on the design of the particular computer. Some computers used large parts of the address space for such things as BIOS ROMs, or video display memory. As a result, some systems had more TPA memory available than others. Bank switching was a common technique that allowed systems to have a large TPA while switching out ROM or video memory space as needed. CP/M 3.0 allowed parts of the BDOS to be in bank-switched memory as well. === Debugging application === CP/M came with a Dynamic Debugging Tool, nicknamed [[Dynamic debugging technique|DDT]] (after the insecticide, i.e. a [[Software bug|bug]]-killer), which allowed memory and program modules to be examined and manipulated, and allowed a program to be executed one step at a time.<ref name="DDT1"/><ref name="DDT2"/><ref name="DDT3"/> === Resident programs === CP/M originally did not support the equivalent of [[terminate and stay resident]] (TSR) programs as under DOS. Programmers could write software that could intercept certain operating system calls and extend or alter their functionality. Using this capability, programmers developed and sold auxiliary [[desk accessory]] programs, such as [[SmartKey]], a keyboard utility to assign any string of bytes to any key.<ref name="Software_Catalog_1984"/> CP/M 3, however, added support for [[dynamic loading|dynamically loadable]] ''Resident System Extensions'' (RSX).<ref name="CPM3_1983_PG"/><ref name="Brown-Strutynski-Wharton_1983"/> A so-called ''null command file'' could be used to allow CCP to load an RSX without a transient program.<ref name="CPM3_1983_PG"/><ref name="Brown-Strutynski-Wharton_1983"/> Similar solutions like RSMs (for ''Resident System Modules'') were also retrofitted to CP/M 2.2 systems by third-parties.<ref name="ct_1"/><ref name="ct_2"/><ref name="Huck_2016"/> === Software installation === Although CP/M provided some [[hardware abstraction]] to standardize the interface to disk I/O or console I/O, application programs still typically required installation to make use of all the features of such equipment as printers and terminals. Often these were controlled by [[escape sequence]]s which had to be altered for different devices. For example, the escape sequence to select bold face on a printer would have differed among manufacturers, and sometimes among models within a manufacturer's range. This procedure was not defined by the operating system; a user would typically run an installation program that would either allow selection from a range of devices, or else allow feature-by-feature editing of the escape sequences required to access a function. This had to be repeated for each application program, since there was no central operating system service provided for these devices. The initialization codes for each model of printer had to be written into the application. To use a program such as Wordstar with more than one printer (say, a fast dot-matrix printer or a slower but presentation-quality [[daisy wheel]] printer), a separate version of Wordstar had to be prepared, and one had to load the Wordstar version that corresponded to the printer selected (and exiting and reloading to change printers).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)