2020年10月7日 星期三

正體中文資訊考古 - 漢音 v4.02 for Windows 3.1

 昨天拿了一個包裹, 結果今天收到以為我已領取東西的領貨通知

回家打開昨日的包裹發現是之前私訊我的磁片
感謝熱心人士提供 漢音輸入法 4.02 原版磁片
基本上因為他手邊的磁碟機已經無法讀取
認為磁片壞掉的機率很高, 給我死馬當活馬醫看看...
結果在搭載強大 NEC 機心的 USB 軟碟機下
依然順利的將 Disk Image 讀取出來
讓漢音 4.02 版得以用程式的方式復現在正體中文的資訊歷史上
漢音是智慧選詞輸入法的始祖
基本上能在 25 年後看到這中文輸入法, 是非常難得的事
圖中有附上搭配 漢書6 使用的情況

漢音輸入法 v4.02 for Windows 3.1
 
 
 
 
 
 
 
 
 
 

2020年10月6日 星期二

正體中文資訊考古 - 漢書 6.0 for Windows 3.1 & 漢書 5.0 for OS/2 版

 

近日中文資訊考古進展 - 漢書編輯器
在 DOS 時代這應該是許多人打文件的共同回憶了, 
販售部分個人不清楚, 但是搜尋看很多作者出的書都有附上磁片的推廣版本
這幾天在網路上挖到漢書 HE (Hyper Editor) 曾有推出 Win 3.1 的版本的訊息
這也讓我回想起曾經有 OS/2 版本(相當於 5.0 版本), 所以就嘗試找了一下
現在比較容易找到的都是漢書 V7.0 (7.0 也不好找就是)之後的版本
能在 Win 3.1 上執行的是 V6.0
而且只有早期 WinText 到 漢書98/6.0 前期版本才有 16bit 版本
之後的 漢書98/V6.01 則只有 32bit 版本
這軟體真的年代相當久遠了, 加上使用者分佈多只有在台灣區域
一開始找的確沒有頭緒, 也是因為摸到了一些技巧才慢慢有線索
前前後後確實花了一些功夫才找到 (奇怪的知識又增加了)
不得不提我認為現在的 Google 對於在一般的搜尋上, 關於 FTP 資源搜尋的輸出結果相當詭異
許多年輕一輩的可能不瞭解 Windows 以前的軟體生態
在先前來自 IBM 的 PE2 的編輯器相當受到各方歡迎
然而對於中文的支援與相關像是符號, 表格文件的編輯與顯示不友善
於是在 DOS 時代出現了 PE2 的仿製品 - 書中仙
在後續的版本改名為漢書
由於在中文文件的 編輯/表格/符號 上有著相當方便的支援
於是在台灣 DOS 時期廣受好評
當時的諸多版本都是以共享軟體 - shareware 形式散佈 (上傳的兩個版本都是共享版本)
事實上開發的公司 - 大方廣公司依然存在, 漢書也依然廣用在公家單位的文件處理上
目前漢書版本也演進到 V11 系列
 
 
 
 
 
 
 
 
 
 

2020年10月3日 星期六

正體中文資訊考古 - 萊思康有聲綜合字典

 

連假時期補了相當多老軟體素材 (Win 3.1 也裝了好幾次)
之後慢慢來做介紹與上傳作資訊歷史保存
 
 
今日要介紹的是萊思康電腦字典 Windows 版本
在 Dr.Eye 於 Win 95 時期成為翻譯/英漢辭典軟體代名詞之前
其實有著很多套不同的英漢辭典程式競逐這塊市場
這光碟是小弟近日低價購入的, 收到時很意外是全新
上面雖然寫著 for Windows 95
然而小弟很篤定這能在 Windows 3.1 上運作
主要是小弟當時有緣在 Win95 推出前使用過這套辭典
當時是買電子字典(那種單色液晶螢幕的)附贈的
也並非 "皇統光碟" 發行的版本
這個版本還有另一款 "皇統光碟" 與 "華彩軟體" 聯合發行的版本
這辭典一開始有著超級中二的名字 - "超極萊思康光碟字典"
但是介面看起來很 ... 不太好看
(可以查幾個單字看圖示, 大概就是那種風格)
改為皇統發行後看來介面質感提升
光是原本非制式視窗就很不錯 (其實這點遠東的辭典當年就有)
此外以前的電子辭典有個優點
那就是發音是真人發音所錄製
隨然現今 TTS 技術成熟,
但是手工打造的物品還是令人感到舒服感?
這片光碟讓我查了一下相關公司, 真的是時代眼淚
 
萊思康 - 2020.03 解散
皇統光碟 - 2011.09 廢止
華彩軟體 - 2003.02 破產
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2020年10月1日 星期四

正體中文資訊考古 - OS/2 T3.0 正體中文版

今日整理了 OS/2 3.0 中文版
包含了兩個版本
1994 年推出的 OS/2 3.0 (紅色 封面)
1995 年推出內建 TCP/IP 的 OS/2 3.0 Connect
 
 
此外一併上傳了更新其他 OS/2 4.0 光碟, 
包含了中文 BonusPak, Application Sampler 與 DDPack. 
另外新增了 CD 封面照
 
下一步是上傳全套的 OS/2 3.0 的校園菁英方案
 
 

 
 
 
 
 
 

2020年9月28日 星期一

關於 clang/gcc vector extension 的 unaligned data load / store

從 ARM 平台開始學習著手寫 SIMD intrinsics 有個相當大的好處 - 在 ARM 平台上 vector load/store 在任何 memory address 都可以使用 vld1q_u32 or vst1q_u32 這類的 intrinsics (另外像是 vld3q_u8 / vst3q_u8 對於 interleaving RGB 非常好用, 在 x86 上就很頭大, 但這是題外話了), 也就是說 ARM 的 vector load / store 可以不用考慮 vector width alignment. 

然而 ARM NEON 的 vector load / store 指令設計是少數, 在多數的 SIMD ISA 平台都不是如此, 像是 Intel AVX / SSE 就必須顧慮到 alignment ( 請參考 Intel Intrinsics Guide 網站 ):
以 SSE 而言:

  • _mm_load_si128 - 這是用來針對 aligned address
  • _mm_loadu_si128 - 這是使用來處理 unaligned address

對於 AVX :

  • _mm256_load_si256 - 這是用來針對 aligned address
  • _mm256_loadu_si256 - 這是使用來處理 unaligned address

在 unaligned address 使用 aligned instruction 就會發生 crash / error, 因此不可不慎, 而這在硬體上會反映在內部 pipeline 狀態到 memory request 的頻率/數量, 對於效能有一定程度的影響. 在多數 DSP 上由於使用 banked SRAM, 因此有可能有更嚴格的 alignment 限制. 

在 clang / gcc 中使用 vector extension 是可以較為簡單撰寫 SIMD-friendly code 的方法之一, 然而無論在 clang 的 vector extension 說明 或是 gcc 的 vector extension 說明 都採用 aligned vector 的形式, 所以通常在撰寫 data loading 時就必須注意 pointer alignment:

// clang vector type
typedef
float float4 __attribute__((ext_vector_type(4)));
...
float4 *vdata = *((float4*)(data_ptr + offset));

對於像是 CV / Image Processing 通常必須注意 padding, boundary 與 data_ptr 的 offset, 最簡單的方式當然是透過 memalign 之類的方式配置 buffer, 然後將 layout 設計好符合 SIMD width. 然而並非所有演算都可以如此輕鬆, 一些像是 connected conponents 之類的演算, 能夠有一定程度的 SIMD, 但是又並不保證起點由 aligned address 處理, 這時通常處理方式有二:

  1. 使用 unaligned read + indications/select
  2. 轉為 aligned-based loops

兩者都有人使用, 這裡要談的不是 algorithm 層級的事情, 且 1. 的部份會簡單一些, 那麼問題就在於該如何讓 compiler 產生 unaligned load / store. 對於 gcc / clang vector extension 而言這在於 type alignment 屬性 (詳情請參考 StackOverflow 對此問題的回覆) , 將上述的 float4 型別宣告改為:

typedef float float4 __attribute__((ext_vector_type(4), aligned(1)));

如此 float4 型別的 alignment 會是 1-byte, 如此 compiler 會轉為產生 unaligned load / store 指令, 便能在 c code 當中於任意位置做資料的存取與處理.

2020年9月27日 星期日

正體中文資訊考古 - Microsoft Works 3.0

 

易學易用萬事通 - Microsoft Works
這其實是著手後第一批到手的舊軟體
當年家中購入第三台 Pentium 66 的電腦時
除了隨機授權的 Windows 3.1 外還有附上這套軟體
雖然沒有光碟上沒標示版號, 事實上這是 MS Works 3.0
沒意外的話, 這應該也是 Works 第一個官方中文化的版本
Works 辦公套件主要是因應一般家庭並不需要功能強大價格高昂的 Office
對此市場需求因而推出了 Works
在台灣能見度不高應該跟國人消費習慣有關
而 Works 事實上一直有持續推出, 直到免費的 Office 2010 Starter 推出後停止



 
 
 
 
 
 
 
 
 
 
 
 

2020年9月26日 星期六

正體中文資訊考古 - 莎士比亞 國民版 v4.02

今日入手當年的新人類出版的文書排版軟體 - "莎士比亞 國民版 v4.02"
上面雖然寫著 for Windows 95
然而事實上這是能在 Windows 3.1 上運行的
在那時許多電腦繪製的海報/手冊都是出自本軟體
購入的光碟是全新未拆, 但是並沒有沒有附上序號卡
最後是網路上尋找後安裝成功
BTW. 莎士比亞 v6.0 目前可以免費下載並於 新人類官網申請序號
 


在 ARM 平台上使用 Function Multi-Versioning (FMV) - 以使用 Android NDK 為例

Function Multi-Versioning (FMV) 過往的 CPU 發展歷程中, x86 平台由於因應各種應用需求的提出, 而陸陸續續加入了不同的指令集, 此外也可能因為針對市場做等級區隔, 支援的數量與種類也不等. 在 Linux 平台上這些 CPU 資訊可以透過...