Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
CP/M
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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 === The read/write memory between address 0100 hexadecimal and the lowest address of the BDOS was the ''Transient Program Area'' (TPA) available for CP/M application programs. 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).
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
CP/M
(section)
Add topic