(2023-09-24) Update note

This commit is contained in:
n loewen 2023-09-24 23:28:40 -07:00
parent 8c196dcc93
commit d17572b35f
1 changed files with 52 additions and 15 deletions

View File

@ -131,7 +131,7 @@ OK this is too complicated, lets give up and redesign based on the IBM 701
now weve got
- registers:
- “DID” device id
- “IOD” - 2 bits - address of current I/O device
- ~~“BUF” io buffer~~
- operations:
- DEV did — io start
@ -144,13 +144,21 @@ now weve got
it works like this
- “DEV” selects the IO device
- loads device id into DID register
- loads device id into IOD register
- “INP addr” …
- cpu sends io device an input request
- io device checks its internal buffer… if its empty, it reads the next unit (card / line) into the buffer
- io device shifts a byte from the buffer to the data(?) bus
- cpu copies addr to the address bus
- cpu sends memory-write signal
1. cpu sends io device an input request
- ?? details TBD... first idea:
- there are 2 "IODS" ("IO device select") pins on the CPU
- there are "/RD" and "/WR" pins on the CPU
- there's a "M/IO" pin on the CPU, which indicates whether to read/write from memory or from IO
- cpu signals IO device by...
1. copying contents of IOD to the IODS pins
2. pulling M/IO low
3. pulling RD high
2. io device checks its internal buffer… if its empty, it reads the next unit (card / line) into the buffer
3. io device shifts a byte from the buffer to the data(?) bus
4. cpu copies addr to the address bus
5. cpu sends memory-write signal
- “OUT addr”
- cpu copies byte from addr to data bus
- cpu signals io device
@ -158,8 +166,9 @@ it works like this
- … io device does output
- … if io device is at end of line/card/etc, if does a line/card feed
- “FED”
- cpu signals io device to feed
- io device feeds
1. cpu signals io device to feed
- TODO TBC: use a "IOE"
2. io device feeds
_! what i dont understand is how the 701 signals the end of a record/card/line — or how I should do that_
@ -202,13 +211,13 @@ the extensions could also be broken down differently:
2. arithmetic extension: multiplication and division
3. control flow extension: jump less than / greater than
4. bitwise arithmetic extension: asl, asr, rrl, rrr… plus maybe AND, OR, XOR, NOT
- [ ] TODO: i think these all only work on the accumulator?
- [x] TODO: i think these all only work on the accumulator?
? would that make the ISA feel tidier?
- [ ] TODO: try that
- [x] TODO: try that
- [ ] ? TODO: in readme, rename “arl” and “arr” to “asl” and “asr”
- [x] ? TODO: in readme, rename “arl” and “arr” to “asl” and “asr”
## Sense switches + status register — oops, this still needs rethinking
@ -264,9 +273,9 @@ https://ub.fnwi.uva.nl/computermuseum/ibm1050.html
http://bitsavers.org/pdf/ibm/360/tss/C28-2003-3_TSS360Concepts.pdf:
> Two types of terminals are available with TSS/360: the IBM 1050 Data. Communication System, with an IBM 1052 Printer-Keyboard and an optional IBM 1056 Card Reader; and the IBM 2741 Communication Terminal.
> Two types of terminals are available with TSS/360: the IBM 1050 Data Communication System, with an IBM 1052 Printer-Keyboard and an optional IBM 1056 Card Reader; and the IBM 2741 Communication Terminal.
>
> The IBM 1050 data communication system is a multi- purpose terminal that can transmit and receive infor- mation to and from a central processing unit and, also. can be used to produce documents and cards, in the off-line mode. The IBM 1050 consists of a control unit and a keyboard printer.
> The IBM 1050 data communication system is a multi-purpose terminal that can transmit and receive information to and from a central processing unit and also can be used to produce documents and cards, in the off-line mode. The IBM 1050 consists of a control unit and a keyboard printer.
- Amusing: they refer to interactive use as "Conversational Processing"
@ -293,4 +302,32 @@ This is full of gems: http://media.ibm1130.org/1130-012-ocr.pdf
also, do flowcharts as artworks.
<mark> TO READ http://www.bitsavers.org/pdf/ibm/generalInfo/C20-8078_Form_and_Card_Design_1961.pdf </mark>
<mark> TO READ http://www.bitsavers.org/pdf/ibm/generalInfo/C20-8078_Form_and_Card_Design_1961.pdf </mark>
## Punched card encoding: i understood it wrong
This is confusing, but I think:
- The pattern of punches on the cards are not "EBCDIC".
- (EBCDIC is an _8-bit character encoding_.)
- The standard pattern of punches is "Hollerith Encoding".
- From _ANSI X3.26-1980: American National Standard Hollerith Punched Card Code_:
- > The majority of cards used for these various purposes have to date been punched with Hollerith coding, which had thus acquired the status of a de facto standard.
- > For the basic 37 characters there is almost complete uniformity in the hole pattern assigned to each graphic.
- (space, digits, letters)
- So the pattern of punches on the cards are _translated into a digital character encoding when the cards are read_.
- But some translations are easier than others...and the EBCDIC character set was designed to easily map onto the existing Hollerith cards.
- From ["The Punched Card" at _quadibloc](http://www.quadibloc.com/comp/cardint.htm):
- > Before ASCII became the standard, many of the internal codes used to represent characters within computers were strongly influenced by the punched card code for characters. One of the most famous of such codes, and one that has persisted in use the longest, is, of course, EBCDIC (Extended Binary-Coded Decimal Interchange Code). The diagram below illustrates the relationship between EBCDIC and punched card code:
- http://www.quadibloc.com/comp/images/cardtabl.gif
- ...
- > Here is a chart showing the form of 8-bit ASCII currently in use, and the official punched card code for 8-bit ASCII:
- http://www.quadibloc.com/comp/images/ascpcc.gif
- Other references:
- https://homepage.divms.uiowa.edu/~jones/cards/codes.html
- https://ub.fnwi.uva.nl/computermuseum/DWcodes.html
- Interesting page on IBM's failed experiment with a smaller card: http://www.ibmsystem3.nl/hist.html