odd ball load splitting hairs

You can get BCD library source code from a variety of sources.

Cindy Hamilton

Reply to
Cindy Hamilton
Loading thread data ...

There was more to the world than IBM. Burroughs BCD machines were running in production from 1954 to 2011. Pure BCD, variable length BCD operands of 1 to 100 digits in length. No fixed word size. Those machines were direct decendants of the Electrodata Datatron from 1954 which used 4-bit BCD digits and 8-bit characters.

The parity bit was not visible to the programmer. And every other memory system of the time also had built in parity (or later ECC); again, invisible to the programmer; and thus not included in the programmer visible word/byte/digit size.

Reply to
Scott Lurndal

Yeah we heard there were a few other companies out there trying lo live off the scraps but their market penetration was always in the single digits. That is why the government carried on a 25 year crusade against IBM.

Ignorance is bliss I guess.

Reply to
gfretwell
[snip]

The 6502 (in home home computers in the eighties) didn't have separate opcodes, but a flag to select binary or BCD for the add and subtract instructions. IIRC, BCD was seldom used. I have heard of integer arithmetic used for money (number of cents instead of number of dollars) for exact operations.

Reply to
Mark Lloyd

Hey, you claimed that BCD was 7-bit. It never has been. No need to be an asshole about it.

Donald Trump's mantra!

Show me one reference that describes IBM 360 family byte sizes as 9 bits.

This one

formatting link
lists bytes as

8 bits in the _FIRST DAMN PARAGRAPH_.
Reply to
Scott Lurndal

Sort of. The 1401 BCDIC was a 7 bit character encoding like ASCII while for most people BCD implies using the 4 bits of a nibble to represent the decimal 0 - 9 values. The 1401 deviated from that since the character '0' was 0x0a not 0x00.

The 360 used EBCDIC (extended binary encoded decimal interchange code). I had to work with that for an interface to the Illinois criminal justice network. Getting to and from ASCII is a pain in the ass because of the gaps in the character encodings. You need to build a lookup table, or three if you want to cover the code page variants.

BCD math is different. Assuming you have two nibbles, 1000 (8) and 0111 (7), binary addition yields 1111 (15). However with BCD, without getting into the ordering of the nibbles, you need 2 nibbles, 0001 (1) and 0101 (5). Some processors had instructions to make that happen.

formatting link
explains it very well for the 68000 family. Intel processors do normal binary addition and then have instructions to fix things up.

Reply to
rbowman

IBM did refer to it as BCD, as in BCDIC (binary coded decimal interchange code) and EBCDIC (extended binary coded decimal interchange code). Hey, when you're IBM you can call things what you want like A Programming Language and Programming Language One.

The 5110 even had alternate keyboard symbols for the (very weird) APL option.

Reply to
rbowman

It was in IBM speak. BCD or BCDIC in the 1401 grew up to be EBCDIC in the 360.

Reply to
rbowman

Software geeks living in a fantasy world. Where does IBM discuss the parity bit? Both of them in the data bus to carry the data or the number of tracks on a tape to store it. (disk or whatever) Show me an 8 bit or a 6 bit tape drive. Maybe you never even looked at a CPU console but there is a light bulb for the parity bit and if it is missing when it should be there, your program crashed and there is a red light on the console. You really should understand a little more about the hardware you are babbling on about or STFU.

Reply to
gfretwell

Sorry but everyone else was lost in the noise. I don't see a lot of Univac, DEC, CDC or Burroughs around these days but I bet my old 360 assembler program would run on an IBM "Z" or whatever they call that rack of big cards with a light on them when they fail. (Unless they fixed that STIXIT bug that let me own their system)

Reply to
gfretwell

And you're still not correct. BCDIC in IBM-speak was 6-bit.

"IBM used the terms Binary-Coded Decimal Interchange Code (BCDIC, sometimes just called BCD), for 6-bit alphanumeric codes that represented numbers, upper-case letters and special characters. Some variation of BCDIC alphamerics is used in most early IBM computers, including the IBM 1620, IBM 1400 series, and non-Decimal Architecture members of the IBM 700/7000 series.

I suspect that you are confused about the difference between storage formats in memory and on magnetic tape.

Magnetic tape originally stored 6-bit BCD data in 7 tracks on the tape; the 7th track was used for parity. Likewise, 8-bit EBCDIC/ASCII data was stored in 9 tracks on later models, with 8 tracks of data and one track of parity. Even in this case, the application programmer never saw the parity bits.

Paper tape, stored 7-bits of data and 1-bit of parity, or when punching binary,

8-bits of data with no parity.

Variations of 6-bit BCDIC was also used by Burroughs and several other contemporaneous computer manufacturers (and the PDP-8, with 12-bit words, used a 6-bit character encoding (not compatible with BCDIC)).

(Note that the "IC" stands for Interchange Code, specifically to allow data transfer between systems from different manufacturers (and was later superceded by ASCII as a standard interchange coding).

Reply to
Scott Lurndal

Everything in a 1401 machine was based on a 7 bit BCD character with the parity bit attached.

Reply to
gfretwell

HomeOwnersHub website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.