Truly SC-185程式自動消失問題
內容更新日期: 2007年4月22日 , 4月23日, 4月24日, 4月25日, 4月30日
2007年8月推出的新版本已修正程式自動消失問題
Truly SC-185計算機在使用清除指令 PCL (按 MODE MODE MODE 3)後,計算機有可能出現異常,包括以下兩個情況: (1) 自動關機,(2) 計算機右方的數字不停閃動,只可按 ON 終止,而這時計數機的所有資料亦被清除。由於這個問題在新版本(21/4/2007)推出後才被我首先發現,新版的Truly SC185計算機並沒有修正這方面的問題。以下是測試的例子,大家可以試試。
測試例子一:
1. 先 SHIFT MODE 3 重設計算機
2. 在P2程式位置任意輸入一個240 bytes的程式
3. 在P1程式位置任意輸入一個12 bytes的程式
4. 按 MODE MODE MODE 3 1 將P1位置的程式完全清除,這時問題已存在
5. 再按 MODE MODE MODE 1 1 時計數機自動關機,要重新按 ON 才可以使用
6. 再按 MODE MODE MODE 1 4 Ans 嘗試輸入 1 bytes,這時計數機右邊的數字不停閃動,按 ON 才可以終止,但P2程式亦消失了
註1: 步驟5可以省略,不會影響步驟6的結果,步驟5的意義除了出現異常外,就是再不能輸入程式在程式位置P1,因為己經關機。
註2: 步驟6主要的目的是改變程式的總長度,在測試中發現,(1)若果不執行步驟6,改為按 MODE MODE MODE 1 2 DEL 嘗試刪除程式位置P2的1 byte,亦會出現右邊數字不停閃動的問題,同樣按ON 才可以終止,但P2程式亦消失了。(2) 若果不執行步驟6,改為按 MODE MODE MODE 3 2 嘗試完全刪除程式位置P2,同樣右邊數字不停閃動的問題,同樣按ON 才可以終止。由以上推測在執行完 PCL指令後,問題己經存在,只要任何情況對程式總長有影響的操作均會出現程式消失現象。
註3: 步驟2將240 bytes的程式輸入P2位置,若果輸入的位置改為P3或P4,其實結果相同,但將步驟3,12 bytes輸入P1位置改為其它程式位置測試,發現不會出現任何問題。由以上推測問題出現與使用 PCL 指令清除程式位置P1有關(MODE MODE MODE 3 1)。
註4: 步驟4清除程式改為按 MODE MODE MODE 1 DEL DEL DEL ......,直至程式完全清除,那麼問題就不會出現,所以差不多可以肯定與執行 PCL 指令有關 (MODE MODE MODE 3 )
註5: 步驟出現自動關機的異常,但這時計算機程式還未消失,即使用 Mode Clear (按 SHIFT MODE 2 EXE) 亦不能令計算機清除問題及回復正常,即是再執行步驟6會出現程式自動消失現象。
測試例子二:
1. 先 SHIFT MODE 3 重設計算機
2. 在P2程式位置任意輸入一個250 bytes的程式
3. 在P1程式位置任意輸入一個1 bytes的程式
4. 按 MODE MODE MODE 3 1 將P1位置的程式完全清除,這時問題已存在 ,與測試例子一不同的是可以正常進入P1或P3或P4編輯式、編寫程式,甚至刪除這些程式位置亦無問題,但若果按 MODE MODE MODE 3 2 清除程式位置P2時計數機右邊的數字不停出現異常閃動,按 ON 才可以終止,看來在這個情況下,問題將可能會延後在很久時間才被發現。
其實若果能肯定出現程式自動消失的條件,大家才可以有效防止問題的出現,雖然現時還未完全肯定出現程式自動消失的條件,但經過進一步反複很多測試及研究,相信出現的充份條件除了使用 PCL 指令外,還要滿足程式的總長度大於248 bytes的條件,即程式總長度大於248 bytes有可能出現問題,但不是一定出現問題,相反程式總長度少於或等於248 bytes時,即使用 PCL 指令問題亦不會發生。有關我對這個條件做過一定數量測試,為了進一步確認及驗証不會出現程式 問題的條件,我做以下情況的測試,每一項測試與上述測試例子相似•要注意的是雖然做了不測試,但不可能完全測試所有情況(天文數字),因此內容可能有錯,若果發現有所出錯請通知網主,以便作出進一步的測試 、研究及更正。希望這些料資料對使用SC185的朋友會有 一點幫助,若對這個問題有任何疑問或補充,歡迎在WebCal論壇留言討論。
Test Cases (Black Box Test):
表格中程式長度以byte為單位,表格內我的測試全部沒有出現任異常或程式自動消失的問題。
測試編號 | P1長度 | P2長度 | P3長度 | P4長度 | 程式總長度 |
1 | 25 (comp) | 25 (comp) | 50 | ||
2 | 16 (comp) | 17 (cmplx) | 17 (cmplx) | 50 | |
3 | 13 (cmplx) | 12 (cmplx) | 13 (cmplx) | 12 (cmplx) | 50 |
4 | 10 (comp) | 15 (REG Quad) | 15 (SD) | 50 | |
5 | 1 (comp) | 99 (comp) | 100 | ||
6 | 1 (comp) | 1 (comp) | 98 (comp) | 100 | |
7 | 1 (comp) | 1 (comp) | 1 (comp) | 97 (comp) | 100 |
8 | 25 (comp) | 25 (cmplx) | 25 (SD) | 25 (REG Lin) | 100 |
9 | 75 (comp) | 75 (comp) | 150 | ||
10 | 60 (comp) | 60 (cmplx) | 60 (cmplx) | 180 | |
11 | 50 (BASE) | 30 (REG Lin) | 80 (REG Log) | 40 (REG Exp) | 200 |
12 | 5 (comp) | 215 (comp) | 220 | ||
13 | 130 (REG Pwr) | 100 (REG Inv) | 230 | ||
14 | 50 (SD) | 190 (SD) | 240 | ||
15 | 120 (comp) | 125 (REG Quad) | 245 | ||
16 | 100 (comp) | 46 (cmplx) | 100 (SD) | 246 | |
17 | 247 (comp) | 1 (comp) | 247 | ||
18 | 47 (comp) | 50 (comp) | 50 (comp) | 50 (comp) | 247 |
19 | 248 (comp) | 1 (comp) | 248 | ||
20 | 62 (comp) | 62 (comp) | 62 (comp) | 62 (comp) | 248 |
21 | 1 (cmplx) | 247 (cmplx) | 248 | ||
22 | 237 (SD) | 11 (SD) | 248 | ||
23 | 30 (BASE) | 218 (BASE) | 248 | ||
24 | 48 (comp) | 100 (cmplx) | 100 (SD) | 248 |
註: 直至目前為在執行RCL指令時,程式小於或等於248 bytes是不會出現異常及程式自動消失的問題(不包括問題延後的情況),但程式總長大於248 bytes的情況下,執行PCL 指令則開始發現有出現異常及程式自動消失的例子。
後話: 最初我發現這個問題時,3個程式的總長度其實是297 bytes,最初還以為是偶然發生的問題,因為不是所有程式總長度為297bytes就會出現問題,即使遇上問題亦很可能會誤以為是偶然發生的事件,後來經過較多測試才可以將問題確立,才可以將具體的測試例子(情況)寫出來,這個問題其實舊版本的SC185早已存在,只是在推出新版前未有人發現,而Truly公司在推出新版前的測試相信亦未能找出問題,可見問題相當難被發現。我亦在佷偶然的機會下發現及進行很多不同測試才可以找到 一些特點,而找出248 bytes這個數值亦要做很多測試,由於沒有記下所以不能列出給大家參考,所以之前大家看到簡單的測試例子及推論,其實是做了很多測試的研究結果,可能不是網友想像中那麼容易的事。