Jump to content

CANDE: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Implementation: Remove stray period.
 
(12 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Short description|Command line shell and text editor}}
:''This article refers the mainframe text editor. For the IEEE technical society, see [[Computer-Aided Design Technical Committee]].
{{For|Candé, the French commune of Maine-et-Loire|Candé}}
{{For|Candé, the French commune of Maine-et-Loire|Candé}}
{{For|the IEEE technical society|Computer-Aided Design Technical Committee}}
{{Infobox Software
{{Use dmy dates|date=June 2020}}
{{Infobox software
| name = CANDE
| name = CANDE
| logo =
| logo =
| screenshot =
| screenshot =
| screenshot_size =
| screenshot_size =
| caption =
| caption =
| other_names =
| other_names =
| author = Darrel F. High,<br />Randall Gellens
| author = Darrel F. High,<br />Randall Gellens
| developer = [[Burroughs Corporation|Burroughs]] / [[Unisys]]
| developer = [[Burroughs Corporation|Burroughs]] / [[Unisys]]
| released = {{Start date and age|1973}}
| released = {{Start date and age|1973}}
| discontinued =
| discontinued =
| latest release version = MCP 19.0
| latest release version = MCP 19.0
| latest release date = December, 2019
| latest release date = December, 2019
| programming language =
| programming language =
| operating system = [[Burroughs MCP]]
| operating system = [[Burroughs MCP]]
| platform = [[Unisys]] Clearpath series of [[Mainframe computer|mainframe]]s
| platform = [[Unisys]] Clearpath series of [[Mainframe computer|mainframe]]s
| included with =
| included with =
| replaced_by =
| replaced_by =
| language = English
| language = English
| genre = [[Shell (computing)|Command shell]], [[text editor]]
| genre = [[Shell (computing)|Command shell]], [[text editor]]
| license =
| license =
| website =
| website =
}}
}}
{{More citations needed|date=August 2024}}
'''CANDE''' (Command AND Edit) is a [[command-line interface|command line]] [[Shell (computing)|shell]] and [[text editor]] on the [[Burroughs MCP|MCP]] (Master Control Program) [[operating system]] which runs on the [[Unisys]] Clearpath series of [[Mainframe computer|mainframe]]s. Originally implemented on [[Burroughs large systems]], it has a range of features for interacting with the operating system execution environment, focused on executing, editing and compiling programs, and creating, copying, moving, renaming, and deleting files in general.
'''CANDE''' (Command AND Edit) is a [[command-line interface|command line]] [[Shell (computing)|shell]] and [[text editor]] on the [[Burroughs MCP|MCP]] (Master Control Program) [[operating system]] which runs on the [[Unisys]] Clearpath series of [[Mainframe computer|mainframe]]s. Originally implemented on [[Burroughs large systems]],<ref>{{cite book |url=http://bitsavers.org/pdf/burroughs/LargeSystems/B5000_5500_5700/1038205_B5500_TS_TerminalUG_196906.pdf |title=Burroughs B5500 Time Sharing System Terminal User's Guide |publisher=[[Burroughs Corporation]] |date=June 1969}}</ref> it has a range of features for interacting with the operating system execution environment, focused on executing, editing and compiling programs, and creating, copying, moving, renaming, and deleting files in general.


Its full name is CANDE MCS. MCS, or Message Control Subsystem is the general form of a systems program in the Burroughs architecture (other than MCP, the [[Master Control Program]] or core OS). As an MCS, CANDE is more than just an editor as it provides overall control for a network of users.
Its full name is CANDE MCS. MCS, or Message Control Subsystem is the general form of a systems program in the Burroughs architecture (other than MCP, the [[Master Control Program]] or core OS). As an MCS, CANDE is more than just an editor as it provides overall control for a network of users.
Line 31: Line 34:


CANDE was also used on the Burroughs CMS (mini computer) range, with very similar syntax.
CANDE was also used on the Burroughs CMS (mini computer) range, with very similar syntax.

In contemporary MCP, CANDE is primarily used thru the ODT (Operator Display Terminal) and MARC (Menu Assisted Resource Control) on emulators of the original character oriented terminals as with other legacy mainframe interfaces.
In contemporary MCP, CANDE is primarily used thru the ODT (Operator Display Terminal) and MARC (Menu Assisted Resource Control) on emulators of the original character oriented terminals as with other legacy mainframe interfaces such as [[ISPF]].


==Features==
==Features==
Line 47: Line 50:


==Implementation==
==Implementation==
For extra speed, CANDE implemented user context switching by swapping a block at the top of the stack. This novel method broke several assumptions built into the design of [[Burroughs large systems]], in particular the handling of virtual memory descriptors, and meant that CANDE itself had to be written in [[Burroughs_large_systems#DCALGOL_and_Message_Control_Systems_.28MCS.29|DCALGOL]] with system-level privileges.
For extra speed, CANDE implemented user context switching by swapping a block at the top of the stack. This novel method broke several assumptions built into the design of [[Burroughs large systems]], in particular the handling of virtual memory descriptors, and meant that CANDE itself had to be written in [[Burroughs large systems#DCALGOL and Message Control Systems .28MCS.29|DCALGOL]] with system-level privileges.


Architecturally, CANDE is split into two main sections: a primary, single-instanced main process originally supporting up to 255 simultaneous users, and one or more worker stacks. The main process is called BUMP. It receives all input messages, including input from users. Simple requests which can be executed without delay and do not involve any I/O such as disk access are handled immediately. Other requests are added to a work queue and handled by one of the worker processes. The worker process is called GRIND; there can be one or more instances at any time. Each GRIND process has by default five pseudo-threads which actually carry out the work.
Architecturally, CANDE is split into two main sections: a primary, single-instanced main process originally supporting up to 255 simultaneous users, and one or more worker stacks. The main process is called BUMP. It receives all input messages, including input from users. Simple requests which can be executed without delay and do not involve any I/O such as disk access are handled immediately. Other requests are added to a work queue and handled by one of the worker processes. The worker process is called GRIND; there can be one or more instances at any time. Each GRIND process has by default five pseudo-threads which actually carry out the work.
Line 53: Line 56:
The internal threading model for context switching selects one of the worker pseudo-threads per GRIND process and makes it the executing context. This is achieved by copying it to the top of the stack. When the worker process needs to execute I/O or other asynchronous activity, it initiates the action, marks what it is waiting for, and calls the context-switching function, which selects a different context for execution.
The internal threading model for context switching selects one of the worker pseudo-threads per GRIND process and makes it the executing context. This is achieved by copying it to the top of the stack. When the worker process needs to execute I/O or other asynchronous activity, it initiates the action, marks what it is waiting for, and calls the context-switching function, which selects a different context for execution.


CANDE operates without internal locks, by careful separation of data. Each possible user connection (or station) is assigned an index into a main array called the station array, or STA ("stay"). The current station index is named STAX (pronounced "stay-x"). There are multiple words of state data per station, but they are stored with all of the first words together, followed by all of the second words, etc. This allows CANDE to index into the array using only addition, not multiplication (which made for faster operation on the hard-wired CPUs of the era).
CANDE operates without internal locks, by careful separation of data. Each possible user connection (or station) is assigned an index into a main array called the station array, or STA ("stay"). The current station index is named STAX (pronounced "stay-x"). There are multiple words of state data per station, but they are stored with all of the first words together, followed by all of the second words, etc. This allows CANDE to index into the array using only addition, not multiplication (which made for faster operation on the hard-wired CPUs of the era).


CANDE was originally written in 1973 by Darrel F. High. It was taken over by Randall Gellens in 1984, at which point the library maintenance (file copying, moving, renaming, and deleting) routines were rewritten to allow for significantly expanded capabilities, a slew of utilities were added using the "?" syntax (allowing them to be used even while a program was running), and several architectural improvements were made. It was later transferred to the Santa Barbara plant, and eventually to India.
CANDE was originally written in 1973 by Darrel F. High.{{Disputed inline|talkpage=Talk:CANDE|CANDE initially written in 1973?|date=August 2024}} It was taken over by Randall Gellens in 1984, at which point the library maintenance (file copying, moving, renaming, and deleting) routines were rewritten to allow for significantly expanded capabilities, a slew of utilities were added using the "?" syntax (allowing them to be used even while a program was running), and several architectural improvements were made. It was later transferred to the Santa Barbara plant, and eventually to India.


The "?" syntax, originally allowing for control during program execution (when input would normally be directed to the program), grew to include a number of utilities.
The "?" syntax, originally allowing for control during program execution (when input would normally be directed to the program), grew to include a number of utilities.
Line 62: Line 65:
*[[Comparison of command shells]]
*[[Comparison of command shells]]
*[[Work Flow Language]]
*[[Work Flow Language]]

==References==
{{Reflist}}


==External links==
==External links==
* [[Burroughs large systems|Burroughs B5500]] Quick CANDE Reference Card for B5500 TSS 1042710 circa 1970
* [[Burroughs large systems|Burroughs B5500]] Quick CANDE Reference Card for B5500 TSS 1042710 circa 1970
* B6700, B7700 [http://www.bitsavers.org/pdf/burroughs/refCard/5001050_B6700_B7700_CANDE_RefCard_Jul_75.pdf CANDE Reference card 5001050 July 1975] at bitsavers.org
* B6700, B7700 [http://www.bitsavers.org/pdf/burroughs/ReferenceCards/5001050_B6700_B7700_CANDE_RefCard_Jul_75.pdf CANDE Reference card 5001050 July 1975] at bitsavers.org
* B7000, B6700 [http://www.bitsavers.org/pdf/burroughs/refCard/5011349_B7000_B6700_CANDE_RefCard_Oct_79.pdf CANDE Reference card 5011349 October 1979] at bitsavers.org
* B7000, B6700 [http://www.bitsavers.org/pdf/burroughs/ReferenceCards/5011349_B7000_B6700_CANDE_RefCard_Oct_79.pdf CANDE Reference card 5011349 October 1979] at bitsavers.org


{{Unisys}}
{{Unisys}}
{{Authority control}}


[[Category:Burroughs mainframe computers]]
[[Category:Burroughs mainframe computers]]

Latest revision as of 02:52, 17 August 2024

CANDE
Original author(s)Darrel F. High,
Randall Gellens
Developer(s)Burroughs / Unisys
Initial release1973; 51 years ago (1973)
Stable release
MCP 19.0 / December, 2019
Operating systemBurroughs MCP
PlatformUnisys Clearpath series of mainframes
Available inEnglish
TypeCommand shell, text editor

CANDE (Command AND Edit) is a command line shell and text editor on the MCP (Master Control Program) operating system which runs on the Unisys Clearpath series of mainframes. Originally implemented on Burroughs large systems,[1] it has a range of features for interacting with the operating system execution environment, focused on executing, editing and compiling programs, and creating, copying, moving, renaming, and deleting files in general.

Its full name is CANDE MCS. MCS, or Message Control Subsystem is the general form of a systems program in the Burroughs architecture (other than MCP, the Master Control Program or core OS). As an MCS, CANDE is more than just an editor as it provides overall control for a network of users.

The editing capabilities of CANDE are anachronistic for casual (as opposed to scripted) editing as they predate full screen and graphical editors.

CANDE was also used on the Burroughs CMS (mini computer) range, with very similar syntax.

In contemporary MCP, CANDE is primarily used thru the ODT (Operator Display Terminal) and MARC (Menu Assisted Resource Control) on emulators of the original character oriented terminals as with other legacy mainframe interfaces such as ISPF.

Features

[edit]

CANDE provides a command-line interpreter and line editor, although unlike the modern interpretation of an operating system command line interpreter, the CANDE commands are compiled into the CANDE MCS, as shell like capabilities are provided by WFL. Other notable features and functions include:

  • Create, edit, and maintain (copy, move, remove, print, rename) data and program files
  • Compile and execute programs
  • Access and display information about the data communication network including terminal communication lines and remote devices
  • Dynamically alter the communication network
  • Access and display job and task information
  • Utility functions (calculator, system utility test, etc.)

In addition to these features CANDE has an on-line help facility.

Implementation

[edit]

For extra speed, CANDE implemented user context switching by swapping a block at the top of the stack. This novel method broke several assumptions built into the design of Burroughs large systems, in particular the handling of virtual memory descriptors, and meant that CANDE itself had to be written in DCALGOL with system-level privileges.

Architecturally, CANDE is split into two main sections: a primary, single-instanced main process originally supporting up to 255 simultaneous users, and one or more worker stacks. The main process is called BUMP. It receives all input messages, including input from users. Simple requests which can be executed without delay and do not involve any I/O such as disk access are handled immediately. Other requests are added to a work queue and handled by one of the worker processes. The worker process is called GRIND; there can be one or more instances at any time. Each GRIND process has by default five pseudo-threads which actually carry out the work.

The internal threading model for context switching selects one of the worker pseudo-threads per GRIND process and makes it the executing context. This is achieved by copying it to the top of the stack. When the worker process needs to execute I/O or other asynchronous activity, it initiates the action, marks what it is waiting for, and calls the context-switching function, which selects a different context for execution.

CANDE operates without internal locks, by careful separation of data. Each possible user connection (or station) is assigned an index into a main array called the station array, or STA ("stay"). The current station index is named STAX (pronounced "stay-x"). There are multiple words of state data per station, but they are stored with all of the first words together, followed by all of the second words, etc. This allows CANDE to index into the array using only addition, not multiplication (which made for faster operation on the hard-wired CPUs of the era).

CANDE was originally written in 1973 by Darrel F. High.[disputeddiscuss] It was taken over by Randall Gellens in 1984, at which point the library maintenance (file copying, moving, renaming, and deleting) routines were rewritten to allow for significantly expanded capabilities, a slew of utilities were added using the "?" syntax (allowing them to be used even while a program was running), and several architectural improvements were made. It was later transferred to the Santa Barbara plant, and eventually to India.

The "?" syntax, originally allowing for control during program execution (when input would normally be directed to the program), grew to include a number of utilities.

See also

[edit]

References

[edit]
  1. ^ Burroughs B5500 Time Sharing System Terminal User's Guide (PDF). Burroughs Corporation. June 1969.
[edit]