Split octal

Last updated

Syllabic octal and split octal are two similar notations for 8-bit and 16-bit octal numbers, respectively, used in some historical contexts.

Contents

Syllabic octal

Syllabic octal is an 8-bit octal number representation that was used by English Electric in conjunction with their KDF9 machine in the mid-1960s.

Although the word 'byte' had been coined by the designers of the IBM 7030 Stretch for a group of eight bits, it was not yet well known, and English Electric used the word 'syllable' for what is now called a byte.

Machine code programming used an unusual form of octal, known locally as 'bastardized octal'. It represented 8 bits with three octal digits but the first digit represented only the two most-significant bits (with values 0..3), whilst the others the remaining two groups of three bits (with values 0..7) each. [1] A more polite colloquial name was 'silly octal', derived from the official name which was syllabic octal [2] [3] (also known as 'slob-octal' or 'slob' notation, [4] [5] ).

This 8-bit notation was similar to the later 16-bit split octal notation.

Split octal

Split octal is an unusual address notation used by Heathkit's PAM8 and portions of HDOS for the Heathkit H8 in the late 1970s (and sometimes up to the present). [6] [7] It was also used by Digital Equipment Corporation (DEC).

Following this convention, 16-bit addresses were split into two 8-bit numbers printed separately in octal, that is base 8 on 8-bit boundaries: the first memory location was "000.000" and the memory location after "000.377" was "001.000" (rather than "000.400").

In order to distinguish numbers in split-octal notation from ordinary 16-bit octal numbers, the two digit groups were often separated by a slash (/), [8] dot (.), [9] colon (:), [10] comma (,), [11] hyphen (-), [12] or hash mark (#). [13] [14]

Most minicomputers and microcomputers used either straight octal (where 377 is followed by 400) or hexadecimal. With the introduction of the optional HA8-6 Z80 processor replacement for the 8080 board, the front-panel keyboard got a new set of labels and hexadecimal notation was used instead of octal. [15]

Through tricky number alignment the HP-16C and other Hewlett-Packard RPN calculators supporting base conversion can implicitly support numbers in split octal as well. [16]

See also

Related Research Articles

<span class="mw-page-title-main">Binary-coded decimal</span> System of digitally encoding numbers

In computing and electronic systems, binary-coded decimal (BCD) is a class of binary encodings of decimal numbers where each digit is represented by a fixed number of bits, usually four or eight. Sometimes, special bit patterns are used for a sign or other indications.

In mathematics and computing, the hexadecimal numeral system is a positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbols, hexadecimal uses sixteen distinct symbols, most often the symbols "0"–"9" to represent values 0 to 9 and "A"–"F" to represent values from ten to fifteen.

In computer science, an integer is a datum of integral data type, a data type that represents some range of mathematical integers. Integral data types may be of different sizes and may or may not be allowed to contain negative values. Integers are commonly represented in a computer as a group of binary digits (bits). The size of the grouping varies so the set of integer sizes available varies between different types of computers. Computer hardware nearly always provides a way to represent a processor register or memory address as an integer.

<span class="mw-page-title-main">Nibble</span> Four-bit unit of digital storage

In computing, a nibble (occasionally nybble, nyble, or nybl to match the spelling of byte) is a four-bit aggregation, or half an octet. It is also known as half-byte or tetrade. In a networking or telecommunication context, the nibble is often called a semi-octet, quadbit, or quartet. A nibble has sixteen (24) possible values. A nibble can be represented by a single hexadecimal digit (0F) and called a hex digit.

Octal is a numeral system with eight as the base.

A computer number format is the internal representation of numeric values in digital device hardware and software, such as in programmable computers and calculators. Numerical values are stored as groupings of bits, such as bytes and words. The encoding between numerical values and bit patterns is chosen for convenience of the operation of the computer; the encoding used by the computer's instruction set generally requires conversion for external use, such as for printing and display. Different types of processors may have different internal representations of numerical values and different conventions are used for integer and real numbers. Most calculations are carried out with number formats that fit into a processor register, but some software systems allow representation of arbitrarily large numbers using multiple words of memory.

The null character is a control character with the value zero. It is present in many character sets, including those defined by the Baudot and ITA2 codes, ISO/IEC 646, the C0 control code, the Universal Coded Character Set, and EBCDIC. It is available in nearly all mainstream programming languages. It is often abbreviated as NUL. In 8-bit codes, it is known as a null byte.

The significand is the first (left) part of a number in scientific notation or related concepts in floating-point representation, consisting of its significant digits. Depending on the interpretation of the exponent, the significand may represent an integer or a fractional number.

KDF9 was an early British 48-bit computer designed and built by English Electric. The first machine came into service in 1964 and the last of 29 machines was decommissioned in 1980 at the National Physical Laboratory. The KDF9 was designed for, and used almost entirely in, the mathematical and scientific processing fields – in 1967, nine were in use in UK universities and technical colleges. The KDF8, developed in parallel, was aimed at commercial processing workloads.

A hex editor is a computer program that allows for manipulation of the fundamental binary data that constitutes a computer file. The name 'hex' comes from 'hexadecimal', a standard numerical format for representing binary data. A typical computer file occupies multiple areas on the storage medium, whose contents are combined to form the file. Hex editors that are designed to parse and edit sector data from the physical segments of floppy or hard disks are sometimes called sector editors or disk editors.

Chen–Ho encoding is a memory-efficient alternate system of binary encoding for decimal digits.

Intel hexadecimal object file format, Intel hex format or Intellec Hex is a file format that conveys binary information in ASCII text form, making it possible to store on non-binary media such as paper tape, punch cards, etc., to display on text terminals or be printed on line-oriented printers. The format is commonly used for programming microcontrollers, EPROMs, and other types of programmable logic devices and hardware emulators. In a typical application, a compiler or assembler converts a program's source code to machine code and outputs it into a object or executable file in hexadecimal format. In some applications, the Intel hex format is also used as a container format holding packets of stream data. Common file extensions used for the resulting files are .HEX or .H86. The HEX file is then read by a programmer to write the machine code into a PROM or is transferred to the target system for loading and execution. There are various tools to convert files between hexadecimal and binary format, and vice versa.

A source-to-source translator, source-to-source compiler, transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent source code in the same or a different programming language. A source-to-source translator converts between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language. For example, a source-to-source translator may perform a translation of a program from Python to JavaScript, while a traditional compiler translates from a language like C to assembly or Java to bytecode. An automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations or language constructs.

<span class="mw-page-title-main">SREC (file format)</span> File format developed by Motorola

Motorola S-record is a file format, created by Motorola in the mid-1970s, that conveys binary information as hex values in ASCII text form. This file format may also be known as SRECORD, SREC, S19, S28, S37. It is commonly used for programming flash memory in microcontrollers, EPROMs, EEPROMs, and other types of programmable logic devices. In a typical application, a compiler or assembler converts a program's source code to machine code and outputs it into a HEX file. The HEX file is then imported by a programmer to "burn" the machine code into non-volatile memory, or is transferred to the target system for loading and execution.

<span class="mw-page-title-main">Decimal computer</span> Computer operating on base-10 numbers

A decimal computer is a computer that can represent numbers and addresses in decimal and that provides instructions to operate on those numbers and addresses directly in decimal, without conversion to a pure binary representation. Some also had a variable wordlength, which enabled operations on numbers with a large number of digits.

In digital computing and telecommunications, a unit of information is the capacity of some standard data storage system or communication channel, used to measure the capacities of other systems and channels. In information theory, units of information are also used to measure information contained in messages and the entropy of random variables.

<span class="mw-page-title-main">Heathkit H8</span> 1970s microcomputer

Heathkit's H8 is an Intel 8080A-based microcomputer sold in kit form starting in 1977. The H8 is similar to the S-100 bus computers of the era, and like those machines is often used with the CP/M operating system on floppy disk.

Tektronix hex format and Extended Tektronix hex format / Extended Tektronix Object Format are ASCII-based hexadecimal file formats, created by Tektronix, for conveying binary information for applications like programming microcontrollers, EPROMs, and other kinds of chips.

In the C programming language, an escape sequence is specially delimited text in a character or string literal that represents one or more other characters to the compiler. It allows a programmer to specify characters that are otherwise difficult or impossible to specify in a literal.

In computing, a syllable is a name for a platform-dependent unit of information storage. Depending on the target hardware, various bit widths are associated with it. Commonly used in the 1960s and 1970s, the term has mostly fallen into disuse in favour of terms like byte or word.

References

  1. Detmer, Richard C. (2015) [2014]. "Chapter 7.2. Shift and Rotate Instructions". Introduction to 80x86 Assembly Language and Computer Architecture (3 ed.). Burlington, Massachusetts, USA: Jones & Bartlett Learning, LLC / Ascend Learning Company. pp. 223–233 [233]. ISBN   978-1-284-03612-1. LCCN   2013034084 . Retrieved 2023-10-17. (348 pages) (NB. The author confuses the 16-bit split octal with the 8-bit syllabic octal notation.)
  2. Director - Manual (PDF) (Flowchart). KDF 8. English Electric. c. 1960s. pp. 40–49. Archived (PDF) from the original on 2020-07-27. Retrieved 2020-07-27. (10 pages) (NB. Mentions the term "syllabic octal".)
  3. "KAB95--04---" (PDF). Archived (PDF) from the original on 2023-10-16. Retrieved 2023-10-16. (8 pages) (NB. Mentions the term "syllabic octal".)
  4. Beard, Bob (Autumn 1997) [1996-10-01]. "The KDF9 Computer — 30 Years On" (PDF). Resurrection - The Bulletin of the Computer Conservation Society. No. 18. Computer Conservation Society (CCS). pp. 7–15 [9, 11]. ISSN   0958-7403. Archived (PDF) from the original on 2020-07-27. Retrieved 2020-07-27. (NB. This is an edited version of a talk given to North West Group of the Society at the Museum of Science and Industry, Manchester, UK on 1996-10-01. It mentions the term "slob" and "slob-octal" as equivalent to "syllabic octal".)
  5. "Architecture of the English Electric KDF9 computer" (PDF). Version 1. Computer Conservation Society (CCS). September 2009. CCS-N4X2. Archived (PDF) from the original on 2020-04-04. Retrieved 2020-07-27. (NB. Refers to Beard's 1997 article.)
  6. McManis, Chuck (2016-12-09). "As I recall some DEC utilities supported 'split octal' which was base 8 on 8 bit boundaries". Hacker News: Combinator. Archived from the original on 2020-07-27. Retrieved 2022-07-17.
  7. Control Data 8092 TeleProgrammer: Programming Reference Manual (PDF). Minneapolis, Minnesota, USA: Control Data Corporation. 1964. IDP 107a. Archived (PDF) from the original on 2020-05-25. Retrieved 2020-07-27.
  8. Ciarcia, Steve (September 1977). "Control the World! (Or at Least a Few Analog Points)" (PDF). BYTE – the small systems journal. Vol. 2, no. 9. Glastonbury, Connecticut, USA: BYTE Publications Inc. pp. 30, 32, 34, 36, 38–40, 42–43, 156–158, 160–161 [157–158]. ISSN   0360-5280. Archived (PDF) from the original on 2019-07-20. Retrieved 2020-07-31.
  9. Poduska, Paul R. (March 1979). "Building the Heath H8 Computer" (PDF). BYTE – the small systems journal. Vol. 4, no. 3. Nashua, New Hampshire, USA: BYTE Publications Inc. pp. 12–13, 124–130, 132–134, 136–138, 140 [129, 138]. ISSN   0360-5280. Archived (PDF) from the original on 2020-07-08. Retrieved 2020-07-31.
  10. Miller, Alan R. (1981) [June 1980]. The 8080/Z-80 Assembly Language: Techniques for Improved Programming (1 ed.). New York, USA: John Wiley & Sons, Inc. ISBN   0-471-08124-8. LCCN   80-21492. ark:/13960/t4zg8792b. ISBN   978-0-471-08124-1 . Retrieved 2022-07-17. (1+x+319+2 pages)
  11. Santore, Ron (1978). 8080 Machine Language Programming for Beginners. dp Series in Software. Vol. 3 (1 ed.). Portland, Oregon, USA: Dilithium Press. ISBN   0-91839814-2. ISBN   978-0-91839814-7. […] 000,376 […] 000,377 […] 001,000 […] 001,001 […] (112 pages)
  12. Belt, Forest. "39. Split-Octal Concept". Introduction to number systems (PDF). Computer Diagnostics. pp. 48–50. Archived (PDF) from the original on 2020-07-31. Retrieved 2020-07-31. (iv+56 pages)
  13. Johnson, Herbert "Herb" R. (2019-10-02). "A8008 8008 (1975) cross-assembler A8008 8008 (1975) cross-assembler". Archived from the original on 2020-02-07. Retrieved 2020-07-31.
  14. Andrews, Craig (2020). "{31} Binary, Decimal Octal, Split Octal, and HEX". Bits Of The Golden Age (Educational video). Retrieved 2022-07-17.
  15. Wallace, Dave (2011-07-23) [2001-09-29, 2000]. "H-8 Technical details". Archived from the original on 2011-07-23.
  16. Roland57; Garnier, Jean François (2021-12-02) [2021-12-01]. "hp16 and split octal conversion". The Museum of HP Calculators (MoHPC). Archived from the original on 2022-07-17. Retrieved 2022-07-17. […] Before you write a program on the hp16 to do the conversion, just put a zero between the two bytes, e.g. A9oC2 hex. Conversion to octal gives 251o302, the split octal value (with "o" als the digit zero to separate the two bytes). Same works for octal to hex. 377o377 octal to hex gives FFoFF […] Also usable on other machines with base conversion such as the 32S/SII, the 42S or the 41C with Advantage ROM. It works because 3 hex digits are 12 bits, exactly 4 oct digits. […]{{cite web}}: CS1 maint: numeric names: authors list (link)

Further reading