最近因為收到一篇文章的讀者回覆的相關往返交流。
在進入文章重點之前,我還是先強烈聲明一下啦,我都在留言中跟你說明了:
PS:關於留言,請麻煩不用自行刪除了。
原則上,我都非常尊重各位的留言與意見的。
無論如何,那都是非常值得參考的內容的。謝謝。
因為留言都會一些前因果的相關意見表達,只要把留言刪除,大家就搞不清楚
表達原意,從其他剩下的留言,大家容易斷章取義的誤解原來的想法。很容易造成
大家的一些困擾,更何況說:你的留言是希望我能提供一些相關意見與協助,
然後,你取得這些協助之後,就馬上刪除留言,是要表達:"射後不理了"的意思嗎?
為人處事最怕遇到甚麼事?就是真心換絕情啊。算了啦~反正看來你也沒有很在乎
這些道理或別人的感受,只覺得你就是那一種把那些毫無意義的東西看得比甚麼還
重要,然後就只想抱著這些自以為是寶的技術陪你過餘生的宅男工程師吧。
你真的以為這種東西的技術真的有那麼偉大與值得典藏的意義嗎?那我們就來個
開箱大剖析吧。我一直強調:
工程師真的不要把技術看得遠比其他待人處世之道還重要。人生還有很多很值得
我們去努力與珍惜的東西,不要除了宅男技術以外,就忽略了家人與朋友之間的
情感交流。有錢人不要最後窮得只剩下錢,而工程師們人生不要只剩下技術而已。
道理是一樣的啦。
---
在其他相關留言中,我也提到了:這個東西不貴啊,就只有區區幾千元,可能都比
一些相關電子電路的學習公版還便宜多了。現在網路購物與物流都很方便的啦。
就只剩我說了:到了這個年紀,你有沒有一些被動收入可以讓你這樣玩物喪志?
家裡有沒有相關空間可以堆積這些東西而已?家人沒人反對,其他的還需要考慮
甚麼嗎?...所以馬上就剁手敗一台回來:
記得下單沒兩天就透過物流送貨到宅:物流快遞員比我還興奮,用一個非常
猥褻的眼神與語氣說:Bar 台喔?我回答他說:厲害,住像巷子內耶。(內行)
賣家還隨機附上一張簡單的說明書:
就是簡單的教你如何設定中獎機率。還有一些簡單的故障描述與排除方法。
當然賣家也提供非常好的線上服務,有任何問題,都可以很快地得到回覆的。
好吧,我們就從硬體開始看起吧:
(在此先聲明一下:以下技術分析不是想破解或進行任何逆向工程之事宜。
純粹就是簡單的技術角度的解析,我以下也說明了:這個產品現在做起生意,
真的不容易了啦。就算別人願意再投資生產組裝銷售,其毛利也肯定比不上
現有賣家的啦。....大家就純粹從技術角度"純欣賞"就好,不要想太多了啦。)
打開機器,首先就先看到程式碼放置的 EEPROM 了。乖乖~燒錄完,還沒有做任何保護
措施,這種透過照射紫外光抹除的EEPROM,也有可能因長期暴露在明亮的環境裡,
還是有程式碼資料流失的風險,所以我當場先做一個保護措施:
(註解:電路板這樣的設計之所以會把EEPROM 獨立的擺在後方,是因為同樣的電路設計
不同的程式設定內容,也會提供不同的遊戲規格。當然價格也略微不同啊!方便更換不同
的程式碼。)
他這顆 EEPROM 跟我手上的電路圖的規格有點不同:他是 27C512 (64KB) 的。
原來電路圖上的是 27C256 (32KB)。現在電子零件市場就連 64KB 都嫌少了,
我想27C256 會比 27C512 難取得。重點還是:內部的程式碼空間的確也超過32KB 了:
程式碼的最後一段是擺在 D900H 位置。關於韌體程式碼,我們稍後再討論。
(所以這種產品根本無法提供任何智權保護,剩下的就是如何控管生產銷售管道了。)
我們先檢視一下相關硬體設計,這部分能修改變動的機會(或條件)就真的有限了。
他的主要核心就是一顆 8051 CPU外加一顆 HMC6116 SRAM( 16Kbit=2KB) 記憶體。
兩顆可程式化音源產生器IC : AY-3-8910(programmable sound generators) 。不過,
這一顆非常老的IC 了,現在大概都被大陸給Copy 或給Re-Marked 過的IC 編號了。
另外還有處理按鍵輸入與顯示的介面的 Intel 8279 。這個基本架構跟我手上的
電路圖大致上沒有多少變化:
所以也沒甚麼好說的,就只有電子零件好不好取得與備料而已。你看:這些這麼冷門
又過時的IC 零件,還是有人生產銷售,所以你真的不要以為只有最新高大尚的電子
設計就會比較好賺,人家這個還可以賣個幾十年啊。歷久不衰啊。
其實我也沒有真的要認真的去核實這個硬體電路板的差異化,大致上就是原來電路
設計上的幾項基本原則:就傳統一般MCU 外加邏輯電路所構成的。 以下我們就簡單
帶一下吧:
標準的利用 74HC373 解碼出外部程式記憶體與靜態記憶體(SRAM)與Mapped to 靜態
記憶體位址的外部控制邏輯 IC (音源IC AY-3-8910 ) 及 Intel 8279 。
至於Mapped 到靜態記憶體的哪個位址?這個是要看程式會比較準的,一般我們都會把他
設計到比較遠的地方:譬如就是 0x8000H 之後,因為只要用一條 A15 地址線就可以一切
為二,非常簡單明瞭的設計方法。如果這些你看不懂?也沒關係,這已經是三、四十年前
就存在的設計習慣了。其他剩下的就是一般LED 驅動IC :ULN2003 。歷久不衰啊。
LM380 一般AB類音訊放大器,拿來推動喇叭用的。
右上方的 555 IC 是用來構成 8051 MCU 可以穩定的Low Power Reset 成功的,
現在設計都統稱為 Low-power voltage supervisor (reset IC) 了。你上網查就知道了。
至於左邊的那兩顆 SN75452 是高壓的驅動IC ,就拿來驅動控制出彩票或吐錢的裝置(小伺服馬達
之類)。因為比較高壓與有類似線圈的東西,所以要加一些輸出光耦合(PC817) 做一些電路上的保護。
其他剩下的那些 74HC138、74HC00、74HC04 或是 CD4511、4028 等等就是一般邏輯電路搭配
設計而已。這些沒啥好說的~只要你對電子電路設計有興趣,入門時肯定都會簡單的研究拜讀一下
資料。只要你像我走過那個年代, 也混了這麼多年了,經驗自然就會告訴你了。😌😌😌
---
以上這些純電子電路 PCB 電路板設計繪製、插件生產等,對我們這些玩家都不難,
(唯一比較麻煩的就電子零件的採購數量限制(MOQ )要求,像這一種一個 MOQ 只要
不多:給你 1 K 要求好了,你可能要賣很久才消化得了這些庫存零件。
(我有偷偷看一下網路賣家的商品售出資訊,累積售出商品就幾百台,我覺得已經
不錯了啦~這麼多年累積下來單一產品還不到五百萬元的營業額,再扣掉營運成本,
這真的只是做興趣,貼補家用的而已吧!要嘛再增加其他產品線,但還是有其他
產品線的相關備料庫存管理問題...有沒有像那個 80/20 理論啊?😂😂😂)
其他比較麻煩就是外殼機構,還有那個投幣機。
還好,這些投幣機不侷限在這類商品上,許多只要是投幣販賣機都可以通用,市面上
應該有標準品可以採購的:當然就是來自於對岸啊。
很好玩的是:投幣機上有個十元硬幣樣品,拿來做為幣別辨識用的。他的型號是:
TW-130B 。有興趣研究的,可以去原廠官網下載資料回來研究一下。
另外就是收錢與吐錢的"存錢筒":
其他就是標準電源供應器了:
---
我們就緊接來看一下韌體程式部分。這一部分我在約八年前文章就有稍微介紹過了。
那篇文章也有提到:這個東西當年是如何火紅,在業界開發改版中,也開枝散葉的
出現很多不同版本或派別吧。所以以下我的分析並不一定符合市面上相關產品:
就只能僅供參考研究用而已。--- 要不然呢?就像人家微軟也在今年在 Github 上公開
早年的MS-DOS 原始碼,就算你下載回來看,你一個人要花多久才轉換成有用的
知識與技能?你還是得在未來許多應用場合派得上才有用啊。
所以一樣的道理與精神,我們就簡單的帶一下吧。許多程式的開場白,
我在八年前的文章中也已經帶了一下了。在此我就拿我手上的機器的程式機械碼,
來做比較內容與補充說明一下而已。
這韌體程式的基本架構都是一樣的:只用到Timer0 與Timer1 的中斷服務程式而已。
因為按鍵偵測處理是由外部IC 8279 處理了,所以根本不需要有任何外部中斷服務
程式,這也是簡化程式複雜度,也是讓系統穩定的歷久彌堅,細水長流的關鍵。
比較原始碼與機器中的機械碼兩個Timer 中斷服務程式的地址已經不同了,但
兩段Timer 0/1 中斷服務程式基本上架構是大致相同的,Timer1 中斷服務程式只是
搭配AY-3-8910 作為音頻輸出控制 (14Hz)。
主程式主要就是做系統初始化及主迴圈來擔任大部分工作...
Timer0(15Hz) 中斷, Timer1(14Hz)中斷)。
雖然主程式的地址有所改變,但執行內容是一樣的所以整個系統架構也沒多大差異。
其他部分應該就是改改一些音樂內容吧。
很明顯的是:我手上機器都沒有聽到這幾首歌曲了,取得代之的是有更流行的
音樂內容,竟然還聽到一首蔡秋鳳的"想起彼當時"...,十足的台灣味。😂😂😂
這些程式撰寫技巧好很多了,程式撰寫就只是如何實現這些遊戲的功能而已。
硬體上按鍵與輸出有 8279, 音樂產生有標準硬體IC 幫你處理了....現代啊。就一顆
ARM Cortex-M4 的強大的運算與周邊支援能力來說,就都可以簡單的直接幫你
處理這些了。以現在技術角度來講解這個產品的技術,真的也沒甚麼好討論的議題。
當然啊~以當年資訊,單晶片學習平台不多,國內電子設計資源或風潮也沒現在
這麼火紅與平易近人。現在搞不好,一個國高中的學生科學創意營,拿個Arduino
平台外加幾塊標準擴充版,應該都不是很難實現的這些功能。
但也不可否認的:這個產品也過去曾經在國內市場走過一段燦爛風光的歲月。
不過,這個東西在法令上真的容易踩到"賭博性"電玩的這條紅線。
更何況:現在許多相關電玩產品也都轉換成手機或線上遊戲方式了。
對我兒子他們這一輩的來說,就真的一點感覺都沒有,不管是遊戲的玩法?
或是遊戲創意精采度變化性...跟現在許多網路線上遊戲來說:持久耐玩程度不足。
相對的,速度變換之快,使得現在電玩商品要成為經典傳承的故事也不容易啊。
產品的銷售市場客群大部分就只剩下我們這一代,到老了還想稍微回味一下:
年輕時的一種味道吧。我們就只能開玩笑地說:把它當作一種存錢筒吧。
---
我上述也有去稍微分析一下網路賣家的售價與銷售數量統計數字。
這個東西真的就沒啥甚麼技術含量,或還需要增進改善或甚麼系統升級維護
之類的。接下來就是你自己如何生產管理與銷售服務的工作了。
---
總結:現在這個產品的售價也不高,可能比你去報名參加一場嵌入式系統設計,
或甚麼系統設計課程還便宜。對來我來說:省一點賈老師給我的零用錢就可以
買了,只是買了之後:還要賈老師幫我去銀行換個一千元價值的十元硬幣回來
玩玩。說真的~我到底可以玩多久之後,也可能就把它給就束之高閣了。😄
(年紀大了,對這種小時候懷舊的心情或一時童心未泯幻想,可能會因擁有解饞
或再從現實中走出之後,很快的就會失去那原本美好幻想的憧憬的....
所以有些東西,到老了,如果你還有類似的幻想或畢生未竟的想法,趕快去完成吧!)
----
凡講究技術的產品都有其時空背景(時期階段性)的價值,那怕是很傳統的應用產品,
也可能因應新時代的需求而有新一代的設計開發理念,譬如以前可以用邏輯數位
電路設計的產品,也可能會因為新一代MCU 功能強大,在重新設計之後,
加入更多元素或應用條件。所以,隨著新時代(或新世代)的演進,許多你看似
懷舊的產品就可能只能留在記憶中供別人緬懷而已。
就像我入行就是寫 8051 組合語言的,所以這些機械碼與一些反組譯的東西,
還有一點感覺。當然就有一點感情在。但就如同我們小時候會在泥巴地上
玩彈珠一樣,現在有幾個家長會讓一群小孩去公園找個泥巴地挖幾個洞來
玩彈珠啊?所以彈珠這個童玩就會慢慢的從現實生活中消失的走進記憶中了。
小孩要玩彈珠可能就是之前文章中的帶有一點聲光的彈珠台吧。
---
但是這些相關產品就會從市場主流慢慢會消失的,而賣家們就只能在這些市場
找出它們的實質"剩餘價值"(銷售額)。它對我的"剩餘價值"就是那個懷舊情感。
這種商品還算好的。有些商品就可能直接從市場消失,譬如我三十年前
剛入行的光碟機、二十年前做的隨身碟MP3 ....現在就算要找出它們的
"剩餘價值",還真的有點難啊。就算你要去市場找這個產品來懷舊一下,
可能都很難啊。(產品需求概念不會變,但使用方式變了:光碟機變成雲端儲存)
我記得我之前在園區 IC 設計公司上班時,都會想把一些曾經做過客戶、市場的
商品留作紀念,我的長官還笑我說:Chamber 啊~如果按照你這樣的想法,那
我們公司的每個工程師們,不就要把家裡給塞滿了嗎?
因為我們公司就專做玩具消費性電子產品的IC 設計公司,從以前電子雞,
每年做的電子玩具(互動性聲光娃娃,遙控小汽車等)、電子鐘、電子計算機的機種
型號與數量來看。真的很可觀與可怕的耶~😱😱😱😰😰😰
---
所以你就慢慢地學會在技術的感情心態上如何做到"斷捨離"~
技術就像這些商品原先的創意設計者一樣:隨著時代市場的需求與生態改變,慢慢的
也只能把設計概念與資料留下供後人參考,然後讓那些少數還願意花一點錢,買來
一解懷舊情感,當然啊,還要看你對於經營這產品的實質"剩餘價值"~
而我們這些老工程師們呢?就只能從撰寫這些過往經驗與故事,讓自己留給後生晚輩
的一點"剩餘價值"吧。
這個就是人類歷史的演化史啊。
看來 "某人" 的行為惹惱了版大? 才有這篇文章出現
回覆刪除其實我本來很早就有打算弄一台麻仔台回來把玩、研究一下了。
刪除至於文章開頭那一段,也剛好可以拿來讓我再一次聲明一下。
如果你還年輕不懂人情世故,我也不會計較的。
但你都年紀一大把了,還特地開車開那麼遠的來到新竹找我。
真的是十足的宅男工程師,就真的只為了技術需求。
拿了東西,一句閒話也沒有,頭也不回就走了?
---
有錢人不要最後窮得只剩下錢,而工程師們人生不要只剩下
技術而已。
我們常常說:你的態度,會決定你人生的高度。
為什麼?因為別人很容易從你的態度,看出你的格局啊。
道理其實很簡單的啦。
我也遇過,寫8051組合語言30年,寫到可以直接看機械碼就可以說出是什麼指令,後來還寫了不少函式庫。要他給函式庫沒問題,就是沒有註解或說明。前後不少人叫他寫一下,他都回自己看不就懂了,大約15年有了。前些時間還在line群上有些辯論,同群另有人私訊我他已住院時日不多,去年就離世。他家人將程式,筆記,設備全部自取給有用之人。最後還是沒人理解他寫了什麼,他只沉迷於8051的世界中。
刪除聽到這樣的故事,真的不禁令人唏噓啊。
刪除人生真的把技術看得太重了啦。
---
年輕時,為了工程師生涯前途努力學習鑽研技術,是沒有錯的。
但當你到了一個年資之後,其實,你應該就會從職場或周遭
的親朋好友或同學與同事之間,知道技術真的沒辦法可以保
你一輩子啊。除非你的一輩子的定義就是像你所說的這位
先生一樣:生命就在他還在浸淫在自以為是的技術觀念裡,
在病房內走完一生啊。
我的觀察是這種現象很容易發生在一些永遠走不出技術以外
格局的小公司、小企業(或工作室)。
我們常會拿大公司刻板印象來嘲諷大公司的技術深度,
但我們是否也忽略掉這些大公司之所以會犧牲一點技術鑽研,
來換取長遠經營或更大的格局發展啊?
這也是我從大公司退下來,創業後,也會一直思考的問題。
或許也可以供各位參考吧。
這種得到答案就刪文吃果子砍樹頭的人還真不少,他們只想解決自己的問題,但不想將解決方式讓別人知道,問題在提供解決方法的人就是要讓大家參考啊!我遇過以前盡心盡力教過的人,還會反過來背刺我,因此我現在對於別人的問題都提不起來興致浪費時間解決。
回覆刪除每個人對於價值觀的分析角度與感受是不同的。
刪除我們也真的很難去揣測每個人的想法與用意。
只是我說的:那就是你看事情的格局角度。
我們常常會不禁的會嘲諷中國大陸的技術發展,有很多都是
炒短線的複製貼上,甚至很狼性的在技術拆解發展上暴力式的
突破,你真的也很難去阻止或限制甚麼的。
面對這樣的現象,我們也只能更需要思考本身的策略發展,
透過更多人性光明面的方面去發展(就是那些人所欠缺的特質),
譬如:去找出志同道合的策略夥伴,從技術、業務及財務等方面
用一個非常健康正面的方式去思考與分工合作。
自然久了,你就不會再理會那些人啦。
至少你知道你真的是用一個完全不同的心態在面對人生啊。
也非常謝謝你的經驗分享。加油!
教人本就是良心事業,大部分被教的人和你分開後能再連絡的少之又少,比你要發達的更少。但因為被傷害過就覺得不想花時間教人是不對的。換個心態,不要期待對方會給你什麼回饋。就當成交朋友的過程,反正理念不合硬湊在一起不會有好結果,不如當成是了解對方的過程。
回覆刪除關於教誨這檔子事,我們家的賈老師比我更有經驗了。
刪除尤其是面對叛逆青春期的各類學生與家長們。
只要做好自己的本分,也很明白地跟家長說:
我跟你們家的貴公子或公主~
也就只有這三年在學習過程中的緣分而已。
往後你是好?是壞?也真的不關我的事。
未來畢業後,在路上遇到了,你要說聲老師好,
或是撇頭裝作沒看到,也都沒關係...
因為這麼多年累積下來:你也不可能去在意
每個學生的反應或回饋。
每個人的人生都是屬於你自己與你周遭家人的。
照顧每個家人真的非常重要的。
這是絕對沒有錯的。
但很多人不一定都可以想得到,也做得到的。
像這樣古早時代的博弈設備, 現在應該不會有人想要重新開發?
回覆刪除大多是按圖生產製造, 想辦法榨乾它的剩餘價值
如果是買個情懷, 回味一下,
時間久了, 被遺棄到某個角落,
直到某天要大掃除的時侯, 它才會重見光明
作者已經移除這則留言。
刪除我找錯了,所以移掉了。記得是有方法將8051機械碼移到另一個MCU再執行。我是認為就是有人在退休後仍想方法重現古董但很多料件已經沒有了,會以模擬的方式再現。
刪除所以啦,我也是用同樣"剩餘價值"的觀點來看待這件事,
刪除現在我還有一點休閒零用錢可以買回來懷舊一下,
也趕快趁還有一點熱度,趕快玩玩,整理一下這篇文章。
真的很難保證這機器還可以在家裡角落可以擺多久?
尤其退休多年的賈老師,這幾年來一直倡導"段捨離"的
觀念。現在都會區裡,土地與生活空間都是寸土寸金的。
哪來那麼多閒置空間讓你這麼堆法?
---
這一台麻仔台機器對我來說:當我寫完篇文章之後,
他的剩餘價值的殘餘值,已經所剩不多了啦。
@Bee 我記得以前還有網站會收集 紅白機的ROM 碼,
刪除供一些可以模擬紅白機的平台使用,可以讓大家可以
在這些平台上回味那些紅白機的經典遊戲。
那到底是硬體的東西令人懷念呢?還是那些遊戲的
感覺令人回味呢?也真的搞不清楚。
但這些東西總是當激情過後,就又堆回記憶深處了。
所以啦,
這些東西就真的只是一種賣少數人一時"懷舊情感"的生意。
本身所存在的"剩餘價值"真的很有限啊。
言重了 言重了
回覆刪除只是不想在網路上留下任何個人資訊
就像一些人對 Google 要求的"被遺忘的權利"一樣
請勿誤會 請勿誤會
年紀大了社會與職場打滾久了
江湖也多歷練
也什麼人情世故都看淡了都不管了
還有
文件的文件夾確認是7-11 員工換班前員工掃走換班後員工不知道
下次見面我再還你一個文件夾
就等你鑽研之後,何時何地可以分享一下你的心得吧。
刪除記得告訴大家一下吧。加油!
粗略看過 Code 後, 個人認為這不是完整程式碼, 也可能是個人誤讀
刪除個人認為缺少或缺失的程式碼:
1. 投幣計數的程式碼, 即投了幾個硬幣, 這些硬幣數目如何被處理
或被讀取再送到 ACC
2. 退幣計數的程式碼, 即退了幾個硬幣, 這些硬幣數目如何被處理
或被讀取再送到 ACC,
然後將ACC處理後的結果再送到七段顯示器上顯示
3. 八個下注鍵按下下注數的程式碼, 即下注鍵按了幾次, 這些
按鍵次數如何被處理或被讀取再送到 ACC,
然後將ACC處理後的結果再送到七段顯示器上顯示
4. 開獎的設定, 也就是 LED最後停在哪個位置
開獎設定的程式碼可能會造成一段長時間後小瑪莉是虧錢
而不是賺錢
5. 很多程式碼編譯後並不會被執行或被用到,
這些程式碼可能是備而不用
讀別人寫的程式,是很辛苦的。尤其是組合語言,
刪除又則沒有實際的機器可以輔佐驗證確認,那就更難了。
我自己的想法就是:反正都已經可以把原始Binary 讀出來了,
基本架構大致上看來也沒有差太多(主要看中斷配置...)
剩下的應該就是每段副程式的引用而已。
再從周邊硬體介面的控制:AY-3-8910 不只是音源產生而已,
他還有 I/O 控制。搞定這些之後,自然就可以進一步解析
原始碼了。
抄寫改版現有的原始碼,也不太會搞死自己的,
所以我相信:
就是相關程式碼有所差異出入,應該也不會差太多的啦,
---
最後,還是非常感謝你的解析與分享。
hi chamberplus
刪除可否將 IC 讀取出來的 bin 檔案或 hex 檔案寄至郵箱?
我試著反組譯
已經私底下由 Email 處理了。
刪除希望你反組譯之後,也找個機會或回饋一下,
讓大家也可以分享之。
謝謝。
已回信
刪除已經到你的回覆了。
刪除非常感謝你提供的資訊,但最近有點忙,
還是要花點時間整理一下才行。
應該這一兩周就可以初步整理出來了。
謝謝。
一直以為這種問到答案就刪文是現今2x~3x歲這個年齡段會幹的事情,因為這很經常在年輕人的平台(ptt/dcard)上面上演,尤其是畢業季問面試、問薪水或者研究所問科系、找教授等話題,以前都覺得可能真的是太年輕不懂人情世故、思慮不周,但今天算是見識到,這跟年紀是沒有關聯性的。
回覆刪除社會上許多光怪陸離的事情,也都不足為奇的啦。
刪除只要你有機會讀一點歷史典故,其實都可以在史上發現
同樣的鳥是或更離譜的人生故事。
我們也曾經年輕的豪放不羈的,少年輕狂的想做甚麼就想做甚麼?
也非常的天真地以為有些事情只要努力是可以改變的。
但到了我們這個年紀之後,我們也終於發現:我們有空也會到廟裡
點幾炷香,在神明面前很虔誠的只求生活一切簡單平安順心就好。
這種祈求心靈上的慰藉:幾百年、幾千年來,沒有人會逼你
去做,但我們人生到了某一個階段之後,就是會很自然的去做。
這個就是人生會教你的道理:這跟你所受的教育程度或工作無關的。
因為你就是會關心小孩、長輩的種種,這些事情就是不如
技術或科學這麼簡單易懂或易於處理的。不是嗎?
作者已經移除這則留言。
回覆刪除作者已經移除這則留言。
回覆刪除作者已經移除這則留言。
刪除作者已經移除這則留言。
回覆刪除