[oeasy]python0041_teletype歷史_博多碼_shift_capslock_字符數(shù)字切換_gear
teletypewriter 歷史
回憶上次內(nèi)容
上次見到了一個(gè)真的機(jī)械打字機(jī)
感受到了蒸汽朋克的時(shí)代背景
上上次區(qū)分了一些概念
terminal
終端,電腦連線最終的端點(diǎn)TeleTYpewriter
,電傳打印機(jī),終端硬件shell
,終端硬件基礎(chǔ)上的軟件殼子Console
控制臺,直接連接主機(jī)的控制面板換行和回車是兩回事
Carriage-Return
意思是讓上圖可移動(dòng)的打印頭
垂直不動(dòng)、水平
回
到紙張左側(cè)所以是
Return
好像可移動(dòng)的四輪馬車 Carriage)
Line-Feed 的意思是水平不動(dòng)、垂直向上喂紙
所以是
feed
換行 對應(yīng)字節(jié)
0x0A
回車 對應(yīng)字節(jié)
0x0D
對于換行和回車,不同層面的理解
首先我覺得
unix-like
做得對不管在什么系統(tǒng)、什么架構(gòu)上
我把這個(gè)事統(tǒng)一
unix-like:大家一起簡化這個(gè)成
\n
,就步調(diào)一致就都好了mac:為了避免麻煩,我和unix-like一致
windows:原來我用戶多,定什么規(guī)矩我說了算,現(xiàn)在我還是隨大流吧
電傳打字機(jī):兩件事,經(jīng)常一起干,但也可以分別干
不同操作系統(tǒng)
python 解釋器
光說不練假把式
我能看看電傳打字機(jī)嗎???
那這
0x0A
、0x0D
誰規(guī)定的來自于什么呢?
發(fā)明人
0x0A
、0x0D
這兩個(gè)字符 來自于 一套編碼
博多碼(
Baudot code
)

為什么 叫做 博多碼(
Baudot code
)呢?Jean-Maurice-émile
Baudot
從農(nóng)民
到電報(bào)操作員
再到法國電報(bào)工程師
他收到
Hughes
的啟發(fā)因?yàn)?發(fā)明這個(gè)的人 叫波多
發(fā)明了 用一條線路 傳輸
多個(gè)bit位
獨(dú)特的按鍵和編碼
這是 最早 發(fā)報(bào)電鍵 的樣子
是分隔符
有用
5-bit
白色的
黑色的

可以傳輸
2
5
種信號具體怎么 分配編碼 呢?
Baudot 編碼
博多 設(shè)計(jì)了 編碼的方法
再后來 申請了英國專利
后來 他就 申請了法國專利
今天所用 的
波特
這個(gè)單位就是 來源于他

但是 這種編碼 只有字母
沒有 數(shù)字
怎么發(fā)
帶數(shù)目的電報(bào)
呢?
掛檔
把字符
分類
成兩組數(shù)字和符號
字母
Letter
Figure

通過標(biāo)志位 進(jìn)行選擇
切換 字模檔位
由 哪組字模 進(jìn)行輸出
落實(shí)到 檔位
選 打字頭
通過 特定字符
按一下
0b01000
切換 檔位
這種思想 來自于 機(jī)械
檔位
gear 就是 齒輪
來自
掛檔

從 蒸汽火車
到 電動(dòng)汽車

甚至 計(jì)算機(jī)
這樣 一路下來
換擋鍵
今天的 caps lock 和 shift
是
兩
種 換擋方式

5bit
這樣 就可以虛擬出
6bit
的效果但是 需要 一個(gè)字符 來切換狀態(tài)
還需要約定
狀態(tài)多長時(shí)間之后
重置回默認(rèn)
最初的狀態(tài)
以及
這些其實(shí)是 最早的
session
(會(huì)話)這種編碼最終形成了
ITA1
編碼
鍵盤
形成了
qwer
鍵盤 的基本布局BELL
LINE FEED
CAR RET
FIGS
LTRS
有字符、數(shù)字、符號
控制字符

在當(dāng)時(shí)
還是兩回事
回車 和 換行
尤其 機(jī)械打字機(jī)
打字符 速度快
下一個(gè)字符
位置不確定
由于 是
機(jī)械
裝置換行+回車 速度慢
換行時(shí)間 不給足的畫
往往
多發(fā)一些 空(Null)
延遲時(shí)間
注意這個(gè)空(Null)
繼續(xù) 打印
卻不 打印內(nèi)容
不是空格(Space)
空(Null)延遲時(shí)間
等 carriage return 回來
電傳打字機(jī)
有 什么
經(jīng)典
機(jī)型 么?
ASR-33
ASR-33
是當(dāng)時(shí)的一代機(jī)皇A
utomaticS
end-R
eceive

可以看到 當(dāng)時(shí)的io設(shè)備
紙帶 存儲(chǔ)
打印紙 標(biāo)準(zhǔn)輸出流
打字機(jī)鍵盤 標(biāo)準(zhǔn)輸入流
為什么 當(dāng)初 收發(fā)電報(bào)的 電傳打字機(jī)
會(huì)和 電子計(jì)算機(jī) 結(jié)合得 這么緊密 呢?
unix時(shí)代
昂貴的 主機(jī)時(shí)代
1000萬美元
72000美元
PDP-7 小型機(jī)
GE-45
這就是 開發(fā)multics的 時(shí)代背景

項(xiàng)目失敗后
希望能在 PDP 機(jī)器上繼續(xù)玩
star travel
Kenneth Thompson
Dennis Ritchie
無所事事的兩人
于是 制作了
unix
和c
分時(shí)
多用戶
意味著 各個(gè)進(jìn)程
可以 分享 硬件資源
意味著 要給 每個(gè)用戶
配置 一個(gè) 終端
目標(biāo)是 分時(shí) 多用戶系統(tǒng)
每個(gè) 用戶 都要有
顯示器
鍵盤
價(jià)格
當(dāng)時(shí) 所有的計(jì)算機(jī)設(shè)備
價(jià)格 都非常昂貴
顯示器 別想了
而且 鍵盤和主機(jī) 是 集成在一起
沒有獨(dú)立的鍵盤

最后
是 收發(fā)電報(bào)
找到 ASR33電傳打字機(jī)
電傳打字機(jī) 的 用途
但是
人與計(jì)算機(jī) 的 接口
也可以 作為
而且 價(jià)格低廉
編碼 也隨著
機(jī)器 的 進(jìn)化
不斷 進(jìn)化
編碼的進(jìn)化
在 ITA1 的基礎(chǔ)上
編碼
進(jìn)化
了類型 還是 三類
字符
符號包括數(shù)字
控制字符

特殊字符
在
ascii
時(shí)代還有嗎?
比如bel?
除了
\n
和\r
之外感覺 就要 揭開 了呢!
還有 什么控制字符 呢?
黑暗森林 的 神秘面紗
總結(jié)
我們回顧了
5bit-Baudot
博多碼的來歷從 莫爾斯碼 到 博多碼
從 紙帶
變成 打印紙張
從 電鍵
改成 鍵盤
機(jī)器 來 收發(fā)電報(bào)
人 來 收發(fā)電報(bào)
原來
現(xiàn)在
輸入方式
輸出方式
后來
電傳打字機(jī)ASR-33
成為 初代 經(jīng)典終端
除了
\n
和\r
之外還有
什么
特殊字符 嗎???藍(lán)橋->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy