新四季網

自行車比賽訓練器械的製作方法

2023-05-23 11:03:21

專利名稱:自行車比賽訓練器械的製作方法
本申請是同一些發明人提出的、於1987年5月26日申請的序號為054,749的申請的部分延續申請。這個專利文獻的部分公開內容包含有受版權保護的材料。版權所有者並不反對專利商標局專利申請或記錄中的專利文獻或專利公開中的任何內容被影印複製,然而,除此之外,保留了所有版權,不容對版權的侵犯。
本發明總的涉及一種和負荷調節裝置、顯示裝置和心臟監控裝置一起使用的自行車型固定訓練器械。本發明特別是一種和多速自行車一起使用的器械,尤其適用於自行車比賽的訓練。
許多現代的體育館和運動俱樂部都有固定的自行車型訓練器械,人們蹬踏模擬的自行車作為一種鍛鍊方式。一般,自行車腳蹬連接一摩擦裝置或其他負荷,騎模擬自行車的人可自行調節阻力大小。這種類型的固定自行車的典型例子可參見美國專利4,358,105(「生命之車」)和4613129。
還有一些訓練器械可以把傳統的自行車固定在一支撐自行車的裝置上以使自行車的後輪克服一摩擦負荷而轉動。這些類型的器械一般可以分為幾類,其中第一類是將自行車的前軸和底託架與一機架相連,以支撐自行車。後輪驅動一輥子旋轉,而輥子則與一載荷機構相連。這種器械的一個實例,可以參見Brown的美國專利4441705,其中後輪驅動的是一飛輪和一可變阻力的負荷。
使用傳統的自行車的第二類型裝置把後輪支撐在一對輥子上,或者用一固定支撐支起後軸。例如,在Sackl的美國專利4596386中,連接至後軸並在離一對輥子一固定距離處支起後軸。Bisberg的美國專利3903613中,支起的是前輪,而後輪則落在一對輥子上。
上述幾種類型的每類裝置在用作一運動器械以及一自行車比賽的訓練器械時均有許多缺點。如象「生命之車」這樣的固定模擬自行車,並不具備一種能模擬就象騎在一輛真正的自行車上時所獲得的那種腳蹬阻力的真實感,它們不能充分模擬出慣性、風阻力、地形變化和滾動阻力。另外,這類固定自行車不能真實地模擬出騎自行車時人體的位置或騎自行車的感覺,這並不廳怪,因為那裡連普通的自行車車架都沒有用。
採用一底託架支撐的裝置可採用一真實的自行車車架,但不能提供一有真實感的阻力和騎車的模擬。這類設備通常只有一與後輪接觸的輥子。
利用一隻輥子或多隻輥子支撐後輪的這類裝置有穩定性和打滑問題。如果輥子位於後軸的後方,輥子就必須較長,因為輪子總是企圖「脫離」輥子要搖晃和朝側向擺動。如輥子位於軸的前面,輪子雖然會保持在中心位置,但是,在後輪上產生最大轉矩期間不能保持充分的接觸。在這兩種情況下,如施加一逼真的阻力,後輪胎就在輥子上打滑。
例如,在一些騎車周期中,自行車騎車人不在其座子上,而是伏在車把上且基本上站立在腳蹬上。當騎車人的體重前移,加於後輪上的力就小了,而加於前輪上的重量增加,就引起後輪的打滑。另外,在這樣的位置,當自行車支撐在底託架上面時,自行車就圍著底託架旋轉,把後輪有效地脫離與支撐輥子或幾個支撐輥子的接觸。這樣,正當需要最大阻力來克服在後輪上的打滑時,後輪卻以最小的摩擦力與阻力輥子接觸因此就產生打滑。
後輪可預加負荷以克服支撐輥子,但是,該預加負載裝置恰恰約束後輪,從而破壞了騎車的真實感,也破壞了當騎車人坐在鞍子或自行車座上並以低速蹬車時模擬阻力的真實感。此外,底託架固定車架顯得過於剛性,所以破壞了如在真實生活中騎車時的那種真實感,即車架在輪子上是有所繞曲的。
在後輪上採用一對支撐輥子的這類裝置不僅顯得苯重,而且在兩個輥子上需要有複雜的阻力機構以實現對後輪轉動的合適的阻力。此外,它們不能模擬出真實騎車時的感覺,而且,如果前輪也支撐在一輥子上,如Cassini等人的專利4580983所述,那麼就要求不同的平衡和訓練,以便能在騎車時保持直立。例如,如將前叉固定或支撐住,在後輪上放兩隻輥子,那麼雖然前輪是穩定的,後輪卻搖晃和移動。而在真實生活中,後輪是穩定而前輪則是搖晃或移動的。當騎車人離開車座,伏在車把上在腳蹬上施上了最大作用力時,使用兩隻輥子仍不能克服打滑。騎車人體重的偏移還會引起後輪與輥子之間的打滑。
這就要求一種裝置,它能提供一種騎在自行車上的真實感和一具有真實感的阻力,特別是當騎車人站立在腳蹬上騎車以獲得最大動力時,要不發生打滑。另外,要求這種裝置便於攜帶,尤其是一種能使用個人自已的自行車而又能提供訓練目的所需的最大真實感的裝置。
本發明的另一構思是真實地模擬騎自行車時的感覺和騎自行車時所受到的負荷阻力。負荷變量包括不管是上山或下山時的風阻力、騎車人和自行車的慣性、自行車本身固有的摩擦和自行車輪胎與騎行路面之間的摩擦阻力。
以前旨在精確重現這些負荷作用的企圖均有它們的缺點。例如,以前的裝置曾利用與自行車輪的旋轉速度機械耦合的旋轉的風扇葉片,模擬風阻力的作用。雖然旋轉的風扇葉片具有一隨風扇葉片旋轉速度的平方增加的力,但這些風扇噪音大,也不精確,不易調節,而且不能根據不同身高和體重的騎車人所引起的風阻力的變化來進行調節。
類似的,以前的裝置企圖由一機械的或電子制動系統來模擬所施加的負荷量。典型的機械制動器包括一摩擦皮帶,該皮帶繞在一運動表面上以造成一作用於那個旋轉表面上的摩擦阻力,該阻力決定於皮帶的力。但是,這些機械系統不能精確校正(定標),響應時間慢,另外,由於該機械系統的諸零部件時間久了會失調和對準失常,負荷會發生變化。因此,機械系統的重現性較差,阻力變化較大,難以或不能精確校正(標定)到一給定負荷。
電子制動系統具有超過機械系統的優點,但是,模擬騎車的精度取決於一些因素,包括該系統是如何精確校正(定標)的,以及電子制動系統賴以變化的程序的真實性。模擬精確性的變化的一個例子是風阻力。風扇葉片可以模擬一隨自行車輪的速度而變化的負荷,但是,它不能模擬隨騎車人的身高和體重而變化的負荷阻,或有能模擬發生在一夥其他自行車騎車人的前方或在他們的中間處發生的風負荷的變化。這樣,就要求對負荷變化的較真實的模擬,尤其是風負荷變化的較真實的模擬。
電子的和機械制動系統只有當它們被精確校正以及當這種校正保持於負荷模擬的始終時才是有效的。以前,電子系統有幾種校正方法,包括使用應變儀,這種儀器精確但較昂貴,使用起來也較麻煩。有一些電子和機械系統利用如一發電機的裝置以測量系統功率輸出,為了校正系統,然後假設一恆定的系統效率和摩擦力。這種校正系統不能精確地預測出系統中的摩擦損耗或任何施加於自行車和騎車人上的摩擦或負荷的變化。這類校正系統也沒有絕對的基準,因此,難以在多變條件下預測性能。
最後一個校正方法是選擇一絕對基準,測出相對於該基準的系統變化。這類方法要求初始基準是經精確確定的,要求在實際生活中在不同的負荷條件下該基準保持不變,以及該基準能精確監測和校正系統性能的各種狀況。這類系統的一個例子是一電子制動器,它假設一特定電壓的變化會引起一已知的負荷變化。使用這一具體的例子的缺陷是電壓和負荷的關係難以預測,在各種溫度和長時間內也難以保持這種關係,在所加的電壓和騎車人在騎一真實的自行車的所期望體驗的負荷之間也沒有恆定的精確的相關性。
因此,要求一種校正訓練系統的實際的方法。要有一種實際的方法,用以改變訓練系統中的負荷,以便更精確模擬一自行車騎車人經受到的真實的負荷。
本發明還有另一構思是模擬真實負荷情況的能力。美國專利4441705利用與一自行車輪相連接的風扇以模擬風負荷,而Melton的專利4542897揭示了一模擬的以一預定速度行進的竟賽者。但是,在已有技術中從沒有公開過按照竟賽者相對於一個或多個模擬的騎車人的位置來改變風力的技術。因此,要求有一裝置,它能模擬出由於一在裝置上練習的人相對於一模擬的騎車人的位置的改變而改變風阻力的比賽情況。
本發明還有另一構思是涉及到在訓練中的騎車人的心律,它是隨練習的進展而不斷加快的。為了從訓練中獲取最大的好處,必須在一段時間內的心律不超過某一範圍。但是如心率太快,就不會有什麼好處而會損害騎車人。
在Delick的美國專利3767195所示的裝置,當心律達到了上限值時,有一肉眼可見的顯示器以其閃爍的信號指示心律已到上限值。此時,由騎車人確定應如何減少自己的運動量以降低心律。
因此,要求有一裝置,它能監測騎車人的心律,調節所加上的負荷以保持一定的心律值,或防止超過最大心律極限值。希望的是,如果騎車人不清楚這方面情況,要讓該裝置能提供一最佳的心律。
總的說來,本發明提供一種器械,它支撐起一後輪和自行車的輪胎,當騎車人的體重前移時,能使自行車後輪胎與一輥子保持摩擦接觸,以防止打滑。輥子是可旋轉地裝在一基本平行於一與該器械相連接的自行車的後軸的第一軸上。後輪胎被約束以一預定方式向輥子移動。最好是,自行車的後軸利用一軸夾被支撐在一車軸的相對的兩端上,軸夾是可調地置於一後軸支撐件上。該支撐件約束後軸沿一伸向輥子的預定路線移動。最可取的是一弧形路線。
最好是,後軸支撐裝置包括一對構件,每個構件的一端繞著一基本平行於後輪和輪胎的旋轉軸線的樞軸轉動。這樞軸最好裝於自行車的後軸的水平向相對的一側,即輥子的旋轉軸。後軸夾是可調地安裝的,可以裝上不同規格的自行車。
一可變負荷裝置諸如一電動機,最好是一交流發電機,以及一慣性裝置如飛輪和輥子相接,最好是裝在一共用軸上。加在輥子上的可變負荷和憒性負荷通過與後輪胎的摩擦接觸傳到自行車和它的騎車人上,以模擬自行車實際騎行時經受到的動量和負荷。這種負荷包括風阻力、地形變化、滾動阻力和自行車、騎車人的慣性。
儘管輥子和支撐件能單獨用來支撐自行車,最好是利用一叉固定託架將自行車的前叉裝至一前叉支撐管上。最好是,前叉支撐管具有真實的撓性,以模擬真實的騎車情況。叉固定託架是可調節地安裝的,以適應不同規格的自行車。固定託架能彎曲,以模擬前叉和前輪彎曲的真實情況。調節固定託架相對於前叉的位置後,可使相連的自行車車架的高度有所改變,即從水平方向稍向上傾斜。
最好是,前叉支撐管與同一個用於支撐輥子和後軸支撐機構的構件相連接。這樣,騎車人的體重偏離座子蚯安媸苯嵩斐汕安嬤 撐管彎曲,使後軸支撐機構朝著輥子轉動後輪胎,以防止輥子與後輪胎之間的打滑。
前叉支撐管還支撐一顯示器,它和輥子及交流發電機電氣相連,這樣,自行車速度的數據就可顯示給騎車人看。
於是,有利地提供了一支撐自行車的裝置,它能模擬出在自行車上的真實騎行情況,而同時在腳蹬上施加最大作用力期間能防止自行車後輪打滑,真實的騎車情況包括加載到後輪胎的感覺以及自行車的撓性。
訓練器械能摺疊為一便於攜帶和存放的小型可攜式外形。前叉支撐管含有幾個鉸鏈(活動關節),藉此可將管子折起來挨近器械的其餘部分。一可卸的鉸鏈鄰接顯示器,第二個可卸的鉸鏈位於叉管固定託架的上方,它們可使顯示器折合到前叉支撐管上。在前叉支撐管的底部的鉸鏈可使管子隨同顯示器和它的支撐件一起摺疊到鄰近輥子的位置上。後軸支撐件繞著轉動的樞軸安裝得使後軸支撐件能摺疊到一與輥子鄰近的位置上。在車架端部,鄰近重飛輪和交流發電機的地方裝有輪子,使折成可攜式的裝置易於搬動。因此,提供了一鉸接裝置,通過這種裝置,可將器械摺疊成一相互緊靠的小的外形,比起操作狀態下的器械更易攜帶。
該器械最好能精確地校正(定標)以精確地產生所需的負荷。達到此目的的一個方法是測定和補償當自行車固定到該器械上後器械中的摩擦損耗。這樣的校正序列的步驟包括轉動訓練裝置上的輪子直至輪子達到一第一預定轉速;然後使輪子慣性旋轉降速到一第二預定轉速,在此降速階段中,除了固有的摩擦負荷外,加載裝置不對輪子加負荷;隨著輪子從第一轉速降到第二轉速,探測並記下這段時間間隔和轉速;測定隨輪子旋轉而轉動的訓練裝置的任一組件的旋轉質量慣性矩;對記錄到的轉速和時間作一線性回歸分析,以確定作為轉速的函數的輪子和旋轉組件的減速度;根據公式摩擦轉矩=質量慣性矩×角減速度,從訓練裝置的輪子和旋轉的組件的旋轉得出摩擦負荷;再一個步驟包括根據公式功率=質量慣性矩×角速度計算克服摩擦負荷所需的功率。
用來補償加載裝置(最好是交流發電機)效率降低的步驟包括測定加載裝置的效率;通過將加載裝置的效率與一已知功率輸出的第二個加載裝置的對比,確定該加載裝置的功率輸出;調節加載裝置以考慮其摩擦損耗和效率。最好是,作一線性回歸分析以確定在一預定速度時加載裝置消耗掉的功率以及作一回歸分析以確定加載裝置加到輪子上的功率來確定效率。
當加載裝置包括一對輪子施加一負荷的電裝置,施加的負荷能隨加於裝置上的電壓的變化而變化,那麼,確定消耗的功率的步驟包括轉動輪子,直至輪子達到至少一第三預定轉速;再使輪子減速至一第四預定轉速;從電裝置施加一恆定的減速作用力,以使輪子進一步減速,從第三轉速減速至第四轉速;當輪子從第三轉速減速至第四轉速時,探測和記錄下周期性時間間隔內的輪子的旋轉速度和電裝置的電壓輸出值;對從第三轉速慣性下降到第四轉速時記錄到的輪速和電壓的平方進行一線性回歸分析,以確定作為轉速的函數的輪子和旋轉組件的減速度;其中加載裝置的功率輸出由下列步驟確定,即對速度和從第三轉速慣性下降到第四速度的速度和時間的乘積進行線性回歸分析,以得到用於確定所加的功率的線性回歸常數。
當校正(定標)步驟是由上述訓練器械進行時,上述器械還進一步包括可變負載加載裝置,它和輥子相連,以將可變負荷施加於輥子上從而模擬自行車實際騎行中所遇到的負荷的變化;和校正裝置,該裝置用於確定阻止輪子轉動的摩擦力,從而使可變負載加載裝置能補償該摩擦力。最好是,該校正裝置還包括用以確定可變負載加載裝置的效率,從而使加載裝置能補償加載裝置的效率的降低。
考慮了器械中的摩擦力和加載裝置的效率的降低後,就能施加一較精確的負荷,以獲得一較真實的騎車情況的模擬。
本發明的另一特徵是具有一裝置和方法,它能控制在訓練器械上鍛鍊者的心律。該心律控制裝置採用一低心律裝置的形式,當騎車人的心律低於一預定的較低的限值時該裝置就運行,以提高騎車人的心律。該低心律裝置可確定出由可變負載加載裝置所加的負荷是否剛剛提高,以及如果是這樣的話,是否心律已提高了一預定時間。如果負荷低於一預定的最大值,低心律裝置就使可變負荷裝置提高負荷。
當騎車人的心律超出上限值之上一個預定值時,一個高心律停車裝置就能大大降低可變負荷裝置所施加的負荷。還有一個高心律裝置,當騎車人的心律超出上限值一預定值時,該裝置就能運行以降低心律。該高心律裝置可確定出由可變負荷裝置所加的負荷是否剛剛提高,以及如果負荷已提高了一預定時間,那麼,高心律裝置就會使可變負荷裝置提高負荷。如果負荷並非剛剛降低,以及如負荷並不低於一預定值時,則低心律裝置就降低可變負荷裝置所施加的負荷。
還設有一個監控鍛鍊者的心律並將心律傳到高和低心律裝置和高心律停車裝置上的裝置。一顯示屏幕將關於負荷和心律的信息顯示給操作者。如鍛鍊者不知道合理的限值範圍來限制負載裝置,他可以輸入他的年令和性別,由計算機來確定該限值範圍。
控制鍛鍊者心律的方法的步驟包括在一訓練裝置上鍛鍊以提高鍛鍊者的心律;改變訓練裝置加於鍛鍊者的負荷以改變鍛鍊者的心律;探測出鍛鍊者在鍛練中的心律;當鍛鍊者的心律低於一第一預定值時,增加一預定量的負荷;加負荷的步驟包括另外幾步確定訓練裝置加於鍛鍊者的可變負荷是否剛剛提高,確定在一第一預定時間段內是否可變負荷沒有變化,確定是否負荷低於第一預定負荷值;當在第一預定時間段內負荷沒有變化以及當負荷低於第一預定負荷值時,將可變負荷提高一預定值。附加步驟包括當鍛鍊者的心律高於第二預定值時,將負荷減小一預定值。減小步驟包括下列步驟確定是否心律超過一第三預定心律值,當心律超出第三預定負荷時,就大大減小可變負荷,確定是否可變負荷剛降低,確定可變負荷保持不變化的時間是否已達到第二預定時間段,確定是否可變負荷已達到第二預定負荷值,當經第二預定時間段後負荷尚未減小和當可變負荷尚未達到第二預定負荷值時,減小可變負荷。
本方法的一附加步驟是將信息可見地顯示給鍛鍊者,這些信息是有關響應可變負荷由鍛鍊者施加的負荷,或者是鍛鍊者的心律。本方法還有另一步驟是輸入有關騎車人年令和性別的數據並計算心律的合理值或極限值。將心律控制方法和具有各種自行車支撐的變化的器械相結合,就提供了對真實的騎車情況的模擬。下面將談到,校正訓練裝置和加載裝置中的摩擦進一步提高了有關控制影響心律的負荷的精度。下面還將談到,結合各種比賽情況的模擬提供了一種訓練比賽而不過分加重騎車人的體力負擔的有利方法。這樣,就有利地提供了一裝置,用來調節負荷以使騎車人的心律保持在預定限值之內,從而可提供一最大的訓練和鍛鍊而又能自動監測騎車人的心律,防止使騎車人過分疲勞。
本發明還提供了一種方法和器械,用於真實模擬在自行車比賽中受到的負荷。竟賽模擬器械包括一具有一可蹬動的後輪的固定自行車;用於選擇一群模擬參賽者的比賽者的比賽能力和模擬所選擇的一群參賽者的比賽行為的裝置;輸入裝置,它和自行車後輪相連,用於將鍛鍊者的比賽能力和許多模擬參賽者的比賽能力進行比較;顯示裝置,用於顯示參賽鍛鍊者相對於模擬參賽者的位置;和可變負荷裝置,用於將一可變負荷加於後輪上以模擬出比賽中受到的負荷;和用於根據參賽鍛鍊者相對於一群模擬參賽者的位置而負荷的裝置。最好是,上述裝置包括上面已較詳細講過的器械。
最好是,該器械能使可變負荷裝置在輪子上施加一增大的負荷,以模擬當參賽鍛鍊者離開一群模擬參賽者時的可變風負荷。另外,最佳器械還包括一能在模擬比賽中使一群模擬參賽者的速度隨機改變的裝置。
為了模擬選擇不同的難度的各種比賽,特提供一選擇裝置,用於選取至少一位模擬參賽者的比賽水平;負荷計算裝置,它用於根據選取的比賽水平確定加載裝置施加的負荷;負荷探測裝置,它用於檢測騎車人施加的、克服加載裝置施加的負荷的負荷;用於顯於相對於一群模擬參賽者的一個鍛鍊者騎車人的比賽水平的裝置;和用於根據一騎車人相對於許多模擬參賽者的位置改變、由加載裝置施加的負荷的裝置。另一種顯示裝置,還包括用來顯示選取的道路的高度、在預選道路上的騎車人的位置、騎車人相對於許多模擬參賽者的位置、總的經過時間、騎車人的瞬時速度、騎過的距離、心率和韻律(節奏)的裝置。
最好是,加載裝置採取一電氣加載裝置的形式。當一自行車的後輪與輥子摩擦接觸並且具有一由支撐件支撐的後軸時,該電氣加載裝置與輥子相連以將可變的力加到輥子上,從而模擬出在自行車實際騎車中所受到的負荷的變化。加載裝置還檢測騎車人所加的以克服外加的負荷的動力。
各種操作最好是由一控制加載裝置所加的負荷的計算機來控制,該計算機有一輸入裝置,用它某騎車人能選擇一希望的竟賽水平和由加載裝置所加的相應的負荷,程序計算機的程序可以確定和在可見顯示器上顯示出至少一個具有所選擇的竟賽水平的模擬騎車人的水平,計算機和程序還可以根據一鍛鍊騎車人和模擬騎車人所加的動力確定和顯示出該鍛鍊騎車人相對於其他模擬騎車人的位置,計算機根據某鍛鍊騎車人與模擬騎車人的相對位置,改變由加載裝置所加的負荷以模擬風負荷。計算機在所選擇的竟賽水平內可隨意改變模擬竟賽者的行為。
由器械實施的程序的各步驟包括利用一電氣裝置在後輪上施加負荷,以模擬各種騎車條件和狀況;利用一飛輪加負荷到後輪上,以模擬慣性負荷,選擇一比賽道路和比賽中竟賽的難度水平;根據選取的比賽道路以及所選取的難度水平,確定加到後輪上的負荷;在自行車後輪上加上負荷時自行車的騎車人的行為;顯示相對於至少一個模擬騎車人的某鍛鍊騎車人的位置;根據鍛鍊騎車者相對於其他模擬騎車人的位置改變加給鍛鍊騎車人的負荷。
程序中的另外的變化包括隨機變化者比賽過程中的模擬騎車人的行為;校正電裝置以確定訓練裝置中的摩擦力,使電氣裝置能調節以補償摩擦損耗;確定電裝置的效率;通過一已知效率的電氣裝置與第二個已知功率輸出的電氣裝置的比較,確定該電氣裝置的功率輸出;和調節電裝置以考慮電氣裝置的摩擦損耗和效率。
於是有利地提供了一器械和方法,不僅可用於模擬騎自行車時的真實「感覺」,而且如實地模擬出騎自行車時受到的負荷,甚至可把器械和自行車中的摩擦和效力下降也考慮進去。模擬比賽中的環境負荷以及選擇參賽者和參賽者的水平的這種能力,不僅提供了挑戰對手,而且提供了一有價值的訓練工具和方法。考慮到騎車人在一夥同伴中的位置而改變風負荷的能力,使本發明具有進一步的真實性。在模擬比賽中模擬參賽者的行為的隨機變化,使鍛鍊騎車人經歷到在比賽中爭取有利位置的騎車對策。這樣,不僅提供了一較真實和引人入勝的訓練裝置,而且提供了一種高度適糜誥拐員熱難盜肥侄巍 在參閱了附圖後,將能更容易理解本發明。這些附圖是

圖1是表示帶有一與其連接的自行車的本發明的透視圖;圖2是表示卸掉側蓋板後的本發明的透視圖;圖3是表示後軸夾、支撐、電動機和飛輪的分解透視圖;圖4是後軸夾透視圖5是用於前叉管上的滑動鉸鏈的分解透視圖;圖6是表示圖5的鉸鏈組裝後情況的透視圖;圖7是表示前叉固定結構及一鄰接鉸鏈的透視圖;圖8是帶有本發明一支撐件的透視圖,該支撐件可摺疊為鄰接狀態,以成為一更緊湊、可攜帶的結構;圖9是本發明的一部分的透視圖,表示結構上的輪子;圖10是表示圖8的結構摺疊和收縮後的側視圖;圖11是校正程序的流程圖;圖12是一顯示器的平面圖,是由坐在如圖1-10所示的支撐器械上的一自行車上操練的人觀察到的情況;圖13是功率校正程序的流程圖;圖14是圖12的顯示器的顯示窗的平面圖;圖15是表示一考慮進風力負荷時的比賽模擬方式的流程圖;圖16是一程序流程圖,用此程序可利用改變訓練器械上的負荷使騎車人的心律保持在預定的限值內。
參閱圖1。圖1中表示了多速自行車的一部分,它有一車架10,上有一後軸12,在後軸12上裝有一後輪14和一後輪胎16。車架10還有一底託架18,在它上面旋轉安裝一套曲軸和一對腳蹬20。在車架10上連接有一座子22、車把24和可旋轉固定的前叉26,這是本技術領域內的人所熟知的,在此就不再詳細閱述了。
參閱圖1和2,自行車的一部分連接到一如支撐架28的、支撐自行車的裝置上。支撐架28包括一底部構件30,它約27吋長,是一邊長約1.5吋、壁厚為0.109吋的方型金屬管。
在底部構件30的一端是兩根後臂32和34(圖9),它們是按相反方向重直於底部構件30的縱軸線而延伸的。最好是,臂32和34是一連續構件的兩個端部。在底部構件30的相反一端,連接有兩個前臂36和38,它們通常是從底部構件30向著相反方向延伸的,並且和底部構件30的縱軸線成約67°,使相對於後臂32和34成一夾角離開。此夾角,從垂直面測得為23°。臂32和34通常均為一約0.75吋×1.5吋的矩形橫截面、壁厚約0.120吋的金屬管。臂36和38為一橫截面為約1吋×23吋、壁厚為0.120吋的矩形管。
底部構件30和臂32、34、36和38一般位於同一平面內,這樣就能成為一支撐自行車車架10和騎車人的提供穩定的支座。在臂32-38的最外端上有支撐腳40,以便置於地面上。
有一支撐和固定自行車的前叉26的裝置,它能模擬出自行車的前輪的運動和撓性。這樣,前叉管42連到底部構件30、前臂36和38的接合點上。前叉管42伸出臂32-38組成的平面約53°,並沿離開後臂32和34的方向伸展。前叉管42也沿著一通過底部構件30的縱軸線的平面延伸,並且其方向基本上垂直於由臂32-38形成的平面。前叉管42是金屬管結構,1.5吋見方,壁厚為0.109吋。
參閱圖2和7,其中前叉座44連在面對後臂32-34的前叉管42的一側。參閱圖7,前叉座44包括一寬1.25吋、長6.25吋和壁厚0.135吋的矩形金屬條。沿著前叉座44的縱軸線有兩條長縫46和48。最好是,縫46和48約0.34吋寬、1.85吋長,是從離前叉座44的兩端約0.33吋的地方開始的。
為了將前叉座44連到前叉管42上,將可卸的緊固件50和52伸過縫46和48插到前叉管42上的相應孔(圖中未畫出)中。緊固件50和52最好是螺栓。鬆開緊固件50和52後,可使前叉座44沿著縫46和48的長度方向滑動,由此,可相對於前叉管42的長度改變前叉座44的位置。卸掉緊固件50和52,可將前叉座44在它所處的固定平面內轉動180°,然後再重新固定。緊固件52和50能允許前叉座44撓曲,有助於模擬出通過前叉座44連接到車架28上的自行車的真實運動情況。
前叉座44上連有一前叉固定管54(同時參看圖1和2)。前叉固定管54包括一長約3.5吋、外徑約0.75吋和內徑約0.38吋金屬管。前叉固定管54的裡端是有螺紋的。前叉固定管54的縱軸線垂直於前叉座44和縫46和48的縱軸線。前叉固定管54並不處於前叉座44的中心位置上,而是偏離中心約1/4吋,這樣,相對於縫46的端點來說,它更接近於縫48的端點。
前叉座44有一可調的連接裝置,用於將自行車的前叉連接到前叉管42上。可調的目的是可以容納不同規格的自行車車架,且如下所述,可以利用重新調整前叉座44在前叉管42上的位置,改變自行車車架10的高度。
參閱圖2和3,與後臂32相連的是一內支撐板56和一外支撐板58。支撐板56和58彼此基本平行,且分別處於平行於通過底部構件30的縱軸的平面的兩個平面內,但基本垂直於臂32、34、36和38所處的平面。內支撐板56比起外支撐板58更靠近底部構件30。支撐板56和58均用厚0.134吋的鋼板構成。
與內支撐板56相對應的內支撐板60以類似的方式和方向與後臂34相連。同樣,與外支撐板58對應的一外支撐板62也以類似的方式和方向與後臂34相連。
當後輪14和後輪胎16(圖1)與器械相連時,後輪胎16被約束以一預定方式運動。最好是,後軸支撐構件約束自行車的後軸12沿一預定的路徑移動。儘管支撐構件可採用U形構件,但最好支撐構件是一對軸管64和66。第一軸管64在支撐板56和58之間被可旋轉地固定,而第二軸管66可旋轉地固定在支撐板60和62之間。第一和第二軸管64和66的結構及連接方式是相似的,因此只詳細介紹第一軸管64。
參閱圖3,第一軸管64最好是一硬性或剛性件,它不會有較大程度的撓曲,它包括一0.75吋厚和1.5吋寬12.5吋長和0.12吋厚的矩形橫截面管狀金屬棒。可旋轉固定件68在第一軸管64的一端連接在軸管64的寬1.5吋的一個側面上。所示的可旋轉固定件68是一圓柱管,其外徑約1吋,內徑約0.52吋,長約4.7吋,它對應於支撐板56和58之間的空間距離。可旋轉固定件68的縱軸線垂直於第一軸管64的縱軸線。
第一軸管64固定時應使它能在一基本上垂直於臂32-38所處的平面的平面內轉動,而臂32-38所處的平面又基本上與底部構件30所處的平面相平行。此轉動樞軸軸線基本上平行於連接到軸管64和66上的後輪14和後輪胎16的轉軸軸線。
要使轉動實現,只要將一螺栓70穿過外支撐板58上的孔72,再穿過可旋轉固定件68的內孔,最好穿過內支撐板56上的相應的孔(圖中未畫出)。內支撐板56的側面上焊上一隻為一螺帽的緊固件74,這樣,螺栓70上的螺紋端就可利用緊固件74將其固定牢,以防止螺栓70無意中松失。螺栓70的縱軸平行於後臂32和34的縱軸。如此,螺栓70支撐了第一軸管64並限制軸管64使繞著螺栓70縱軸轉動 如前所述,按照和第一軸管64的類似的方法,將第二軸管66可轉動地固定起來,並使其受約束繞著螺栓70轉動,兩者的螺栓彼此軸向對齊。軸管64和66分別靠近外支撐板58和62。軸管64和66的兩內側面相距約11吋。這樣,第一和第二軸管64和66形成了可動的支撐裝置,該裝置約束後輪14和後輪胎16沿著一預定途徑運動。
如圖2、3所示,在軸管64和66上的與其轉動約束端相反的一端處,有軸夾76和106,它們是利用下軸夾支架78連接到軸管64和66上的。參閱圖4,軸夾76包括一在其一端有一錐形凹坑77的金屬圓筒。在軸夾76的兩個相對的側面上有一對向下伸展的相對的矩形缺口79。使用時,將一錐形螺母或自行車後軸12的端部放在錐形空腔77中。缺口79容納在多種自行車型號的快速釋放叉形物上使用的D環。
參閱圖3,軸夾支架78包括一可調位的支撐板80,該板是由一具有一「L」形橫截面的金屬板條組成的,橫截面的尺寸為短邊0.75吋,長邊1.5吋,板條的長度為6吋,厚度為0.120吋。在板80上有一沿其縱軸的長約3吋的長缺口82。
具有螺紋部分的螺栓84穿過缺口82和在軸管64上的一孔(圖中未畫出)。為了將板80可卸地夾緊到軸管64上,可在螺栓84的螺紋部分上擰裝一可卸的、如螺母86的緊固件。鬆開螺栓84,使板80沿著缺口82的長度上滑動,就可將板80沿著軸管64的長度上調整位置,調好後再將螺栓84和螺母86擰緊。
在板80的鄰近軸管64的未被約束端的一端處,有一夾緊管88。夾緊管88是一圓柱形管,其外徑約7/8吋,帶螺紋的內徑約1/2吋,長度約為1.5吋。管88的縱向軸線基本上垂直於軸管64的軸線,並基本平行於螺栓70的縱軸。帶螺紋的軸90與管88的內螺紋嚙合。軸夾76固定在軸90的一端上,而旋鈕92則緊固在軸90的相反的一端上。轉動旋鈕92,軸90就能轉動,以調節軸夾76的位置。
在旋鈕92和管88之間有一鎖定旋鈕93。鎖定旋鈕93是一在其中心有一螺紋孔的旋鈕,這樣,該旋鈕就能擰到螺紋軸90上。當軸夾76準確定位後,就將鎖定旋鈕93擰到頂住管88的端部,以產生一摩擦鎖緊作用,以防止軸90和軸夾76產生軸向位移。
與軸夾76同軸對齊的第二軸夾106(圖3和4),以將軸夾76連接到第一軸管64上的相同的方式,連接到第二軸管66的未約束端上。因此,第二軸夾106和它的支撐支架的細節在此不再重複,只不過要指出的是為了裝入在各種自行車上使用的多種結構的軸12,軸夾稍長些,而缺口79也較深些。
參閱圖2和3,一可旋轉裝置幫助支撐連接到本發明的器械上的自行車的後輪14。在內支撐板56和60之間旋轉地支撐著一輥子108。最好是,輥子108是一圓筒形輥子,其寬度約2.6吋,外徑2.5吋,用鋁製成。將輥子108旋轉地固定時要使它的縱軸基本平行於螺栓70的縱軸以及第一和第二軸管76和106的樞軸,還平行於連接到器械上的後輪14的旋轉軸。
參閱圖1,最好是,支撐車架28在三個位置上連接並支撐自行車車架10。從圖7中可較清晰地看到,利用一快速釋放叉形物110,可將自行車車架10的前叉26可卸地連接到前叉座44上。快速釋放叉形物110通常用於具有一易卸的前輪的自行車上,因此,這是熟知的,不再詳細描述了。前叉26的兩端裝到前叉固定管54上。快速釋放叉形物110插經前叉26和前叉固定管54,然後將前叉26鎖牢於前叉座44上。此前叉座44的連接基本上就好象自行車的前輪一樣。
參閱圖1,利用第一和第二軸夾76和106支撐起自行車車架10的後軸12。軸夾76和106中的圓錐孔77(圖4)裝在後軸12的相對兩端上,以便支撐軸12和自行車車架10。後軸12被約束沿著一圍繞著第一和第二軸管64和66的旋轉軸的弧形路線移動,該路線通常朝向輥子108。
輪胎16置於輥子108上。最好是,當在水平面內看時,輥子108位於軸管64和66繞著旋轉的旋轉軸的正前方。這樣,相對於一水平面,軸12(後輪14繞此軸轉動)位於輥子108和軸管64和66能繞著旋轉的旋轉軸之間。換言之,如果將基本上是平行且垂直的平面通過後軸12、輥子108的旋轉軸和軸管64和66的旋轉軸,那麼,含有後軸12的垂直向平面位於包含輥子108和軸管64、66的旋轉軸的平面之間。或者,再換句話說,一基本垂直的、通過後軸12的平面,使後軸管64和66及輥子108的樞軸分別居於該垂直平面的相對的兩側。
最好是,後軸管64和66相對於垂直面的夾角在5°-30°範圍內。在運行過程中,管64和68將從此位置轉動1°-4°,具體轉動角度大小取決於騎車人的體重和力量、輪胎壓力和具體的自行車架10的情況。當自行車車架10是屬於一種具有54釐米車架、99釐米軸距和700 C規格輪子的施溫派拉蒙(Schwinn Paramount)自行車的車架時,該夾角約26.5°,而其後軸12與軸管64和66的樞軸點之間距離約10.5吋,其後軸12幾乎垂直於輥子108的轉軸的上方。這些盡寸是指一種短軸距比賽自行車的尺寸的極限尺寸。
如軸12垂直於輥子108的上方,或者在輥子108的正前方,本發明照樣工作,但是,由於軸12在輥子108正前方移動,性能降低,然而仍工作。如後軸12位於螺栓70的軸的垂直上方或在其後方,則後輪胎16將不被約束移動到和輥子108相接觸,器械就不能滿意發揮效能。本發明的目的是要在加在輪胎16上的轉矩增大時,例如當騎車人離開座子22身子伏向自行車車把26上使腳蹬20上的力增大時,使後胎16仍和輥子108接觸。
最好,輥子108轉軸離軸管64和66的旋轉軸的(水平方向的)距離約4.6吋,離軸管64和66的旋轉軸的(垂直方向的)距離約5.1吋。當車架10連到支撐器械上時,前叉座44、軸夾76和106(圖2)和輥子108為自行車車架10提供一三點式支撐。當騎車人經腳蹬20蹬自行車時,後輪14和輪胎16與輥子108摩察接合,使輥子108轉動。
僅使用軸夾76和106支撐自行車車架10,相信這方式雖然並不最佳但也是可能的。在這種情況下,前叉管52可取消,底部構件30也可縮短,如此,一自行車的標準前輪可用來支撐前叉26。將前叉管42與支撐架28的其餘部分分開單獨支撐起來,調節前叉管42的撓性以模擬出它的剛度,以使自行車的一標準前輪運動,相信也是可以的、但不是最佳的。
參閱圖2和3,一個象交流發電機那樣的、用交流110伏驅動的屬電磁設備的可變負荷裝置,被連接到輥子108上。交流發電機112連到內支撐板56上,並居於支撐板56和58之間。交流發電機的軸114(圖3)伸過一在內支撐板56上的孔(圖2)。交流發電機軸114的一端(圖3)連在交流發電機112上,而軸114的另一端與輥子108相連,連接最好用熱壓(冷縮)配合將輥子108裝到交流發電機軸114的末端上。
在交流發電機112上施加一可變的電功率後,在輥子108上就加上了一可變而可控的阻力,從而,就加到了輪胎16和腳蹬20上(圖1)。這個可變負荷阻力可被用來模擬出在不同坡度、下山、平坦路或上山時所受到的阻力。負荷能模擬滾動阻力、風阻力、地形變化,如適當編程的話,還能模擬出自行車和騎車人的慣性。這樣,交流發電機112結合輥子108就模擬出一真實的自行車騎行情況。
最好,慣性用如一飛輪116的慣性裝置來模擬,該飛輪可旋轉地安裝在支撐板60和62之間(圖2)。飛輪116的旋轉軸與輥子108和交流發電機112的旋轉軸相重合。一個具體的飛輪要按照自行車和騎車人的已知重量、最高速度進行設計,但是,還要考慮空間、安全和重量約束問題。對於一等效於27吋、車速為40裡/小時的自行車,較為適用的飛輪的最大轉速約為5000轉/分鐘。這樣一個飛輪重約22磅,如用鑄鐵做時,可做成一寬2吋、直徑8吋的帶邊的圓盤。這樣一個可用的飛輪的慣性經計算為0.05648牛頓·米·秒2。
飛輪116與輥子108相連接,使輥子108的旋轉帶動飛輪116轉動。如圖所示,飛輪116固定在一軸118上,該軸118伸過在內支撐板60上的一個孔而與輥子108相連接。最好是,輥子108以熱壓(冷縮)配合裝到飛輪軸118的一端上。這樣,飛輪116、輥子108和交流發電機112基本上處於一公共軸上。如飛輪116的慣性裝置模擬一運動中的自行車和騎車人的慣性。
參閱圖1和2,長約21.5吋的前叉管42上含有一鉸連結頭124,它比較清楚地示於圖5和6中。在離臂32-38所在平面約為7.5吋的上方某一點處(圖1),前叉管42切割成一個角度,這樣形成了第一端126和第二端128,它們可拆開地置於一對結構中。在與第一端126鄰近的前叉管42和內部,插入了一較小些可滑動的管段130,它的外形恰好使其與第一端126的內部相配。在可滑動的管段130的相反的兩個側面上有兩條縱向缺口132。—如螺栓134的緊固件穿過前叉管42的相反的兩側面及兩條缺口132,將滑動的管段130栓住。這樣,可滑動的管段130能沿著前叉管42的縱軸線移動,直至螺栓134到底抵住缺口132的端部。
把一可滑動管段130和一對應尺寸的管段136可轉動地連接在一起。管段136插配及牢固固定在前叉管42的第二端的內部。
操作中,當端部126和128端接時,管段130和136插配在前叉管42的內部之中,以形成一牢固的連接結構。如沿著前叉管42的縱軸加一力,管段130和136可允許第一端126和第二端128分開。當這兩端分離後,鉸鏈135可使前叉管42的含有端部128的那部分摺疊起來,使支撐車架28摺疊成一較緊湊的外形(圖8、10)為了確保鉸連結頭124在未摺疊位置時的整體性以及防止鉸連結頭124無意中散離開,將可卸的緊固件138(圖5)穿過前叉管42的側壁,並將可滑動管段130可卸地緊固在位置上。每個緊固件138包括一旋鈕142及一由它伸出的螺紋部分140。每個螺紋部分140穿過前叉管42上螺紋的孔144,這樣,螺紋部分的頭部與滑動管段130接觸並咬住了它,以防止這管段在管42中移動。孔144最好位於前叉管42的角部。
鉸連結頭124和軸管64和66的轉動(圖8、10)提供了可折的連接,靠這種連接可組成一穩定的操作結構,但也能摺疊或重新組成一較適於存放攜帶的外形。
參閱圖1,有一側蓋板120,其一端與支撐板56和58相連(圖2),而其另一端與前臂36相連接。而相應的一塊側蓋板122連接在支撐板60和62(圖2)以及前臂38之間。側蓋板120和122蓋住了飛輪116和交流發電機112(圖2),也為支撐支撐架28增加了一些剛度和穩定性。由於支撐板56-62(圖2)比前臂36和38高,故側蓋板120和122向下傾斜一角度。側蓋板120和122必須足夠低,以便使騎車人蹬車時腳跟不會碰到兩塊側蓋板。同樣,軸管64和66不應太長,以免騎車者的腳跟碰到它們。
兩塊側板120和122是可卸的(見圖2),通常包括C形結構,最好是用厚度約為0.060吋的薄金屬板製成。側板120的兩側邊裝在支撐板56和58的兩側邊上(圖2),側板122的兩側邊裝在支撐板60和62的兩側邊上(圖2)。側板120和122彼此隔開,以使在側板120和122之間能看到底部構件30。
參閱圖1和2,在前叉管42的上方端連接有一顯示管150。在顯示管150的外端連接著一顯示器152。顯示管150的總的結構與前叉管42的相同,利用可旋轉接頭154將它可旋轉地連接到前叉管42上。接頭154包括一鉸接件,需要時該鉸接件利用一個或多個摩擦可釋放裝置將接頭穩定地固定住,或者,當需要時,鬆開接頭使其旋轉。所說的可釋放摩擦裝置包括一鉸接接頭,它有一側邊,在該側邊上穿過一帶螺紋的緊固件156,靠鬆開或擰緊緊固件156可釋放地鎖緊接頭154,通過增大或減小接頭154中的摩擦力,可將接頭154鎖緊就位或允許其旋轉。
利用一可調位的和可傾斜的接頭157,可將顯示管150的一端與顯示器152相連。一具有C形橫截面的槽鋼託架159緊固在顯示器152的背面,C形橫截面中的自由邊從顯示器152處向外伸出。槽鋼託架159的每一自由邊上有一沿託架150的長度方向的缺口160。顯示管150裝在槽鋼託架159中。一可卸的緊固件162有一軸(圖中未畫出),該軸穿過兩條缺口160和一鄰近顯示管150的外端的孔(圖中未畫出),並連接到一螺紋旋鈕上(圖中未畫出)。通過靠緊固件162和螺紋旋鈕的共同作用,將顯示管150的一端摩擦鎖緊於託架159上,這樣也就鎖緊於顯示器152上。只要擰鬆緊固件162,該連接就可鬆開。
缺口162可使顯示器152相對於顯示管150的一端定位,有效地提供了一可調節顯示器152的高度的裝置。顯示器也能繞著一鬆開的緊固件162轉動,以調節顯示器的角度方向。擰緊緊固件162後,就將顯示器鎖緊就位。如此,就有了一接頭157,通過它可調節顯示器152的位置並使其傾斜。
顯示器152與交流發電機112電氣連接,這樣,各種負荷就能在顯示器152上顯示出來,並根據顯示器進行控制。電氣連接裝置包括電線,其接線是人們所熟悉的,故在此不詳述也不用圖表示出來了。如此,例如,騎車人可以輸入一需由交流發電機112施加的阻力,也能監控自行車克服預定阻力而蹬動的速度。
參閱圖1,現描述本發明的操作。一人取來自己的私人自行車,卸下其前輪後將車固定於支撐架28上。許多現代的賽車的前輪均是可卸的,這樣安裝起來就方便。利用一快速釋放叉形物110,將自行車車架10的前叉26連接到前叉座44上。為了適應不同規格的自行車車架10,可鬆開緊固件50和52(圖7),將前叉固定管54的位置重新調節,然後再擰緊緊固件50和52,這樣,就使前叉座44可鬆開地定好位置了。
參閱圖7,如前所述,前叉固定管54是不對稱地位於缺口46和48的端部之間的。利用相對於前叉管42滑動地將前叉座44定位,就可調節自行車車架10的垂直高度。許多騎車人發現在騎一固定的自行車時,略帶上坡的高度是令人較為舒適的。
最好,緊固件50和52的位置放在缺口46和48的上端處。如這樣定位,前叉座44就緊靠著緊固件50和52上。
由於固定管54相對於缺口46和48是偏置的,所以,固定板44能在其所處平面內轉過180°,以改變固定管(和自行車10)的高度,而仍能使緊固件50和52緊靠著缺口46和48的端部。
參閱圖1和3,輪胎16是在輥子108上面。將第一和第二軸管64轉動以使第一和第二軸夾76和106能裝上後軸12的相對的兩端。轉動旋鈕92(圖3)使軸夾76和106(圖3)能沿後軸12的長度上調節,使後軸12的兩端能裝入到圓錐形孔77中。螺紋軸90(圖3)提供了一個可調節裝置,用它可安裝下不同軸長的後軸,從而將自行車車架10定位在第一和第二軸管64和66之間。第一和第二軸管64和66可旋轉的能力,加上可將軸夾支架78(圖3)可調節位置的能力,就能安裝上多種規格的自行車。
參閱圖1,操作時,將前叉26裝到前叉座44中後,提供了一撓性座,減少了前叉26撓α推@凸收銜侍狻V躍哂心有裕且蛭安 座44能繞著一通過緊固件50和52的直線有效地轉動或撓性地擺動(圖7),即使當這些緊固件50和52緊緊擰牢時也是如此。前叉座44和緊固件50和52保證了這種撓性。這種撓性模擬了自行車前輪的橫向撓性,從而進一步模擬了騎車的真實性。
騎車人可將前叉座44的位置重新調節使自行車車架10呈一水平方向或一如前所述的略為抬高的方向。當騎車人坐在座子22上並施力於腳蹬20上時,自行車和騎車人的重量使將輪胎16壓靠著輥子108,以通過摩擦驅動輥子108。飛輪116(圖2)模擬騎車人和自行車的慣性,而由交流發電機112(圖2)施加的可變阻力可被用來模擬在一水平路面、下坡、上坡或各種坡度的任意組合等情況下的騎車情況。
但是,使用中,騎車人不會總是靜坐在座或鞍22上,而是有時為了增加力量,抬身離開鞍子,把身體伏向手把24,使騎車人的體重全部施加於腳蹬20上。在騎車人坐在鞍22上時,他的大部分體重落在後輪上,而騎車人抬身離開鞍子22時,騎車人的體重則移向前輪,將加大的力和體重施加於腳蹬20上。
當騎車人的體重移向前叉26時,支撐架28的作用是使輪胎16和輥子108之間保持且實際上加大摩擦力,以防止打滑。第一和第二軸管64和66約束後軸12沿著一預定的弧形路線移動,這樣,騎車人的體重朝著前叉26的移動使軸12,從而使輪胎16,也朝著輥子108移動。
我們確信,自行車車架10相對於支撐架28之間的相對剛度能使騎車人朝著前叉26的移動使前叉管42產生向前和向下的彎曲或撓曲,由於自行車車架10是與前叉管42相連的,所以自行車車架10使受約束的軸12朝著輥子108轉動。最好包括前叉26在內的自行車車架10的剛度大於包括前叉管42的支撐架30和軸管64和66的剛度。
儘管嚴格的理論基礎尚未精確獲知,但實際作用是明顯的。當騎車人坐在座位22上時,輥子108和支撐軸64、66支撐了通常在後側的重量,所以在輥子108與後輪胎16之間不存在過大的摩擦力。當騎車人的體重從座子22朝著前叉26方向前移時,輪胎16對輥子108並不打滑。前叉管42和受約束的後軸12是協調地移動的,即使也許移動量是不等的,這些移動量是隨著施加於腳蹬20的力的大小以及騎車人相對於前叉26的位置的改變而改變的。此外,使用在腳蹬上的腳趾皮帶扣和帶子的騎車人施加於腳蹬20上的力是向前的,這樣也使前叉管42和受約束的後軸12協調地移動。
採用單個或兩個支撐滾輪的現有技術裝置的情況就不是這樣。例如,許多現有裝置中採用一與下部支架(底部託架)18(圖1)連接的支撐。當騎車者的體重向前移動時,自行車圍繞與下部支架18連接的支撐轉動,輪胎16與現有技術的滾輪脫離接觸。此外,騎車者體重的移動,降低了施加於後輪上的力,這樣就降低了與滾輪的摩擦力。因此,騎車者體重的移動有效地降低了輪胎與滾輪之間的摩擦力,當對輪胎施加最大力量時,偏偏使得滾輪打滑。
因此,本發明就有效地提供了一種裝置,在對踏腳板20施加大的功率的時候,能增加輪胎16和滾輪108之間的摩擦力。還提供了一種利用騎車者重量的位置的裝置來防止輪胎16和滾輪108之間發生滑動。還提供了一種利用車架28的撓性的裝置,防止輪胎16和滾輪108之間的打滑並增加它們之間的摩擦力。
參見圖8和圖10,本發明的進一步優點是採用了一個可折迭裝置,因此,本裝置可以被折迭成一個緊湊的形狀,便於攜帶。如上所述,第一和第二軸管可圍繞沿著螺栓70(圖3)的長度延伸的軸旋轉。通過正確定位旋轉接合處,第一和第二軸管64和66可以被折迭成較緊湊的形狀。最好,它們可以折迭得鄰近側面罩子122和124的位置。
接合處124,154和157使得顯示器152可以折迭成鄰近側面的罩子120和122。叉形管42和顯示器管150可以置於側面罩120和122之間的空間。所提供的可折迭裝置使得本裝置可以折迭成比本裝置操作狀態外形更緊湊的手提式的外形。
參見圖2,本發明的最重的部分位於支撐板56,58,60和62處,它們支撐著飛輪116、發電機112。參見圖9,為了便於攜帶,在後腿32和34的接合處,安裝了一對轉輪170,它們處於底部部件30的接合點的對面。當本發明的裝置被提起,繞著穿過後腿32和34的線轉動時,轉輪170與地面或地板接觸,這樣,本發明的裝置可以滾動而不必拖著支腳墊塊40走。當本發明的裝置的處於如圖1和2所示的操作狀態時,轉輪170不能滾動。
參見圖8到10,最好,側面罩120和122的背面和支撐板56到62(圖2)是平的,這樣,本發明的裝置在如圖9和10所表示的垂直方向時可以保持穩定地直立在它的端部上的位置。
前面談到圖2時曾提起過,一個可變加載裝置,例如,發電機112被安裝成與滾輪108一起轉動。當發電機108的轉子轉動時,產生電流變化,該變化可以用於指示滾輪108的轉速。轉動速度可以通過測量發電機上一二極體的脈衝間的時間而計算出來。2.5英寸直徑的滾輪108每轉動一周產生六個二極體脈衝。脈衝數可以用於計算轉動的速度和轉過的距離。發電機112與顯示單元152之間可以進行電子連接,這種電子連接是本技術領域的人所熟知的,這裡不再進行詳細描述。事實上,發電機112提供給顯示單元152兩個信號,一個是速度,一個是通過一個外部功率電阻器243提供的電阻器電壓。
電阻器電壓與顯示器152內的一模數(A/D)轉換器相連。A/D轉換器對該技術領域的人來說是熟知的,在此不作詳細描述。A/D轉換器規定電壓的最大值為255,後者相應於25伏電壓對A/D轉換器來說,0.1伏左右的解析度是比較適宜的。
參見圖11,顯示單元152包含一計算機200用於監測和/或計算發電機112和滾輪108的旋轉速度。滾輪108的旋轉速度與轉過的距離和自行車的速度有關,這可以由計算機200算出。計算機200還可以通過一個數模(DAC)轉換器控制發電機112的電壓,從而調節發電機112的場電流。
計算機200還可以與一個用於以預定的間隔監測計算機功能的計時器202協同工作。計時器202與計算機200協同工作以計算訓練裝置和安裝在訓練裝置上的自行車的絕對摩擦量。
圖11的流程圖,與圖1和圖12一起,描述了一個校正(定標)程序,其中,騎車者坐在坐墊22(圖1)上,按一下顯示器152(圖12)上的開始按鈕204,以啟動校正(定標)程序。啟動後,方框206(圖11)指示系統預熱,預熱最好通過對發電機112施加全場電流約30分種來完成,然後將自行車騎動幾分種,使軸承內的潤滑油分散開。預熱可以降低溫度對系統精度的影響。
方框208使數模轉換器(DAC)清零,這樣,使得發電機112(較2)對滾輪108或輪胎16不再加上別的阻力負載(除了因有摩擦負載以外)。方框210命令顯示器152(圖1和12)顯示一請使用者以至少25英哩/小時的速度蹬自行車的、可由使用者看見的指令。該指令顯示在顯示單元152(圖12)的顯示窗212上。當自行車速度在25英哩/小時以上時,一個聲音信號發出聲音以指示騎車者停止蹬踏板靜坐在座熱22(圖1)上。聲音信號之後,顯示窗212也指示騎車者停止蹬動。
當輪胎16(圖1)的速度達到預定值時,這哩是23英哩/小時,方框214(圖11)開始速度慣性下降計算。方框216讀出輪胎16(圖1)的速度,而方框218將該速度存入隨機存取存儲器(RAM)。判定框220將框216的速度與一個預定值,例如5英哩/小時,進行比較。如果速度大於5英哩/小時,判定框將程序返回到方框216重讀速度。速度每隔一定的時間間隔檢測一次,最好每隔0.12秒檢測一次。當速度達到5英哩/小時(mph),時,方框222計算自行車的減速度dv/dT,這哩dv是速度變化,dT是上述速度變化發生所需的時間變化。
減速度採用線性回歸方法計算,即,對5到23英哩/小時之間的每一個速度v取20個連續速度讀數進行平均以得到一系列速度v1,v2,v3,…vn。然後,對這些點進行線性回歸分析Xi=(Vi+Vi+1)/2Yi=(Vi-Vi+1)/(20*0.12)這哩,Xi=平均系統速度(英哩/小時)Yi=系統減速度(英哩/小時/秒)線性回歸給出一個一般形式的等式Y=A(X)+B這是由於摩擦而引起的、作為速度函數的減速度的表達式。在等式的一般形式中,A和B是常數,Xi與「(X)」對應,Yi與「Y」對應,「Y」即是加速度(或減速度)。將「Y」乘以14.08可以計算出角減速度(弧度/秒)/英哩/小時,以獲得由於摩擦引起的角減速度,它也是速度(英哩/小時)的函數。
方框224以摩擦轉矩的形式從式T=Ia計算系統的摩擦阻力T=Ia這哩,T=發電機的摩擦轉動力矩(牛頓*米)I=物質轉動慣量(牛頓*米*秒2)a =角加速度(弧度/秒)加速度,或確切地說作為速度的函數的減速度「a」是由方框222計算的值。系統的慣性已知或可以被計算出,應包括車輪14和輪胎16(圖1)。慣性的典型值,當輪子重900克時,為0.06296牛頓*米*秒。方框224的計算結果是系統空載條件F的摩擦轉動力矩。來自方框224的常數A和B被存入隨機存取存儲器(RAM)中如方框226所示。
克服上面計算的摩擦轉矩的功率可以由下式計算P=T×W這裡 P=功率(瓦)T=轉矩(牛頓*米)W=角速度(弧度/秒)方框227採用這個等式和上述的數據,配上合適的變換固子,通過線性回歸變量A和B,獲得損失於摩擦的功率Pf=11.829*V*[A*V*B]這裡Pf=由於摩擦損失的功率(瓦)V=自行車速度(英哩/小時)A=線性回歸常數B=線性回歸常數摩擦損失的功率Pf表示系統中的功率損失,包括發電機112(圖2)的摩擦功率損失。發電機112(圖2)的定子會帶有一個所施加的剩餘電壓,它儘管很小,但可以引起摩擦阻力。知道了系統的摩擦損失以後,發電機112(圖2)可以對系統施加功率,以模擬載荷情況,補償系統摩擦損失以增加模擬的真實感。
真實載前的模擬精度還取決於發電機112在模擬已知載前時的效率。如果發電機112與用於獲得原始等式的標準發電機相比發生變化,則所施加的載荷將是不精確的。為了校準發電機112,進入第二測試程序,如方框228所示。
參見流程圖13,發電機功率的校準由第二測試程序進行,其中,藉助於性能通過例如測功器的測量成為已知的標準發電機確定發電機112(圖2)的效率。這個標準發電機用於求得如下文的所述的PA的校準方程,在這個方程裡,m=1。通過與標準發電機相比較,可以補償發電機112的電氣性能的變化。
方框230再次要求騎車者蹬踏板,使自行車達到一個預定速度(例如25英哩/小時),同時在顯示器152(圖1)上產生一個可見的信息。當達到預定速度時,有一個聲音信號告訴騎車者。這時,騎車者坐在座墊22(圖1)上不再蹬車,而車輪14(圖1)開始以慣性維持轉動直到停止。方框232開始進行慣性轉速下降測試。方框234將數模轉換器(DAC)設定於一個預定值,最好是105。電壓使發電機112(圖2)對滾輪108(圖2)施加一載荷。載荷最好採用一個適中的值,這裡數模轉換器(DAC)的設定值105相應於約20英哩/小時的中間載荷。
方框236檢查開始於一預定值的速度,其值最好是23英哩/小時。方框238將此速度存入隨機存取存儲器(RAM),發電機112(圖2)的電阻243的電壓也同時便存入。這個電壓值相應於發電機112(圖20的輸出功率。判定框240檢查是否速度低於一預定值,最好是15英哩/小時,如果不是,程序返回到方框236。方框236,238和判定框240每隔一定的時間間隔循環一次,最好是每0.12秒一次,直到達到15英哩/小時。這時,計算機200(圖1)可以完成幾個計算。
方框242計算發電機在一預定速度時的功率消耗,這裡速度是20英哩/小時,為了排除因在20英哩/小時上採用一個單一功率讀數而獲得錯誤信息的可能性,可採用回歸分析來確定這個值。對被方框238存入隨機存取存儲器(RAM)的電壓讀數平方,然後,將電壓平方作為速度的函數進行回歸分析Xi=ViYi=(Ei2)]]>這裡Xi=平均系統速度(英哩/小時)Vi=速度增量讀數(英哩/小時)Yi=系統減速度(英哩/小時/秒)Ei=功率電阻243兩端的電壓(伏)回歸分析的結果產生一線性方程,其一般式如下Y=C(X)+D這裡Y=是一個變量與E2,即功率電阻243兩端的電壓的平方(伏)相對應,C=常數D=常數(X)=一個與速度V(英哩/小時)相對應的變量。
這樣,前述方程可寫成如下形成E2=C*V+D這裡E=電阻243兩端的電壓(伏)V=速度(英哩/小時)C=常數D=常數一個一歐姆的外部電阻243(圖2)與發電機112(圖2)相連,此外部電阻243的功率消耗是E。外部電阻243兩端的功率基本上表示了發電機112(圖2)的輸出功率。上式中的V以20英哩/小時的速度代入,即可算出在20英哩/小時下的功率消耗。
通過採用類似於前述的線性回歸分析,方框244計算作為速度的函數的、進入發電機112(圖2)的功率。然而,這一次,每5個速度讀數被一起平均而得到V1,V2,…Vn,這裡,速度V是處於15和23英哩/小時之間。在以下各點進行回歸分析Xi=(Vi+Vi+1+1)/2Yi=[(Vi-Vn+1)/(5*0.15)]*[(Vi+Vi+1)/2]這裡Xi=系統速度(英哩/小時0Yi=減速度乘速度(英哩/小時)/秒回歸分析的結果是一個線性方程,當乘以適當的係數時,就給出作為速度的函數的、進入發電機的功率Pi=[F*V+G]*11.829這裡Pi=進入發電機的功率(瓦)V=速度(英哩/小時)F=回歸常數G=回歸常數方框246通過計算速度20英哩/小時下的輸出功率與輸入功率之比來確定發電機112(圖2)的電氣效率。
nu=[(E2)/(Pin-Pf)]20英哩/小時這裡nu=使用者的發電機的效率E2=發電機的功率輸出(瓦)Pin=發電機的輸入功率(瓦)Pf=損失於摩擦的功率(瓦)
方框248確定校準係數,該校準係數通過用標準發電機的特性導出的前述方程,確定某一具體使用者的發電機的特性。該校準係數是m=nu/ncal這裡m=發電機校準係數nu=使用者電氣效率ncal-校準的發電機效率該校準係數m由方框250存入隨機存取存儲器(RAM)。
通過計算出發電機112的輸出功率及發電機效率,(與標準發電機比617411),騎車者輸入發電機26功率就可以計算出來。從發電機112(圖2)的電阻243上讀出電壓值。該電壓用於計算騎車者所施加的功率。然後,功率乘以校準係數,m,以補償使用者的裝置與標準裝置之間的變化。
顯示窗212(圖12)用於顯示功率值及有關信息供騎車者使用。圖11和13的慣性速度下降試驗結束後,顯示的信息包括來自方框224(圖11)的線性回歸常數A和B,來自方框248(圖13)的校準係數m。圖13中方框242和244的那些方程的相關係數也能被顯示,用於如圖11和13中一般描述的校準步驟的計算機源碼錶作為附錄A附於文後。
圖11和13的校準用於找出能夠引起載荷相對於理論預測值發生變化的變化係數。當知道了這些變化係數,校準了裝置考慮了這些變量或補償了摩擦損失後,則所施加的載荷的精度大大增加,從而大大提高了騎車模擬的真實感如圖1-10所描述的裝置所提供的自行車安裝於其上的、載荷模擬精度的增加與裝置的真實感的增加相結合,無論在載荷的施加和操作「感覺」上,都提供了一個有真實感的訓練和鍛練裝置。
一旦裝置被校準後,就要確定正確的載荷,以適當地模擬所希望的騎車狀態。發電機112提供給鍛練裝置的、騎車者必須克服的發電機112的轉矩,對某一具體速度值且當Y截距等於零時,與電阻243上的電壓的平方(E2)成線性變化關係。這裡,將電壓平方畫在水平軸(X)上,功率畫在垂直軸Y上。這些速度的斜率是速度倒數的指數函數,如下所示斜率=0.1283×e(1/v)-0.12903這裡V=騎車者速度(英哩/小時)採用這個關係,以及來自方框222的Yi的方程,來自方框246的nu的方程,和適當的的轉換係數,則,發電機112的功率消耗可以寫成PA=m[14.08*V*E2*(0.1283e(1/v)-0.12903)]這裡PA=發電機功率(瓦特)E=電阻電壓(伏)V=路面速度(英哩/小時)m=校準係數計算機200可以精確地模擬所希望的由騎車者經受的環境載荷。在最佳實施例中,合適的載荷以如下的方式確定如前面所描述,自行車和騎車者的慣性由飛輪116(圖2)模擬。發電機112也有一些慣性,必須加以考慮。當一個22磅重的飛輪的慣性(0.05648牛頓*米*秒2)與發電機112(圖2)的慣性結合時,與一個113磅的人和一個25磅的自行車的慣性相等。
自行車的滾動阻力由下式表示FR=4.448*CR*W這裡FR=滾動摩擦力(牛頓)CR=摩擦係數W=騎車者和自行車的重量(磅)
這個方程假設軸承摩擦在圖11和13的慣性速度下降測試中考慮。對多種表面上的良好的嵌入式輪胎的摩擦係數最好取中間值0.004。
自行車騎車者的空氣動力學阻力由下式給出。
FD=0.54*A*V2這裡FD=空氣阻力(牛頓)A=自行車和騎車者的正面面積(米)V=自行車速度(米/秒)這個阻力方程假設阻力係數為0.9,和海平面的標準空氣密度。正面面積隨騎車者的位置和身材大小而變化。假設正面面積的變化與騎車者的體重成線性關係,一個125磅的騎車者其正面面積為0.306米,而一個180磅的騎車者為0.409米2,一輛25磅的自行車的正面面積包括在前述的數字裡,則空氣動力學阻力方程變為FD=V2[(0.00103*W)+0.0113]這裡FD=空氣阻力(牛頓)V=自行車速度(米/秒)W=騎車者和自行車的重量(磅)如果速度的單位是英哩小時,則第一和第二常數分別為0.000206和0.00227。如果要模擬競賽狀態,例如騎車者的位置處於一群其他騎車者包圍之中的競賽狀態,則可以對空氣動力學阻力方程進行進一步的變化。如果騎車者被其他騎車者包圍,在本實施例中,可以認為空氣阻力下降30%是合適的。
假設一輛25磅的自行車,由於路面的傾斜,例如小山坡,加在騎車者上是負載可以計算為FG=4.448*G*W這裡FG=傾斜(坡度)引起的力(牛頓)G=斜坡百分度(例如45%角=100%斜坡)
W=騎車者和自行車的重量(磅)因為功率等力乘速度,所以騎車者經受的功率可以通過將前面幾個的方程結合得出如下的方程Pr=0.447*V*(FR+FD+FG)這裡Pr=騎車者行程功率(瓦特)FR=來自滾動阻力的力(牛頓)FD=來自空氣阻力的力(牛頓)FG=來自小山坡的力(牛頓)按上述方程給定騎車條件時,騎車者的速度就可以算出來,同時確定一個合適的電壓施加於發電機112以模擬行程功率。一個反饋迴路用於監控和調節發電機112所施加的負載。騎車者施加的功率可由下式計算Pin=PA+Ff這裡Pin=騎車者施加的騎車功率(瓦特)PA=發電機輸入系統的功率(瓦特)Pf=摩擦功率(瓦特)計算機200(圖1)控制並修改數模轉換器(DAC)的值,這個值又改變模擬騎車狀態(條件)所需要的發電機功率PA。DAC值的修改按下式進行DACn=DACo(Pin/Pr)這裡DACn=新DAC值DAC0=原先的DAC值Pin=騎車者的功率(瓦特)Pr=所需要的騎車者的功率(瓦特)DAC的值最好限於最大增加40%。通過啟用上述負載方程和校準方法,騎車者承受的負載可以以比原來可能實現的更加逼真的方式變化。
計算機200可以編制出模擬幾種騎車狀態的程序。參見圖12,所提供的一種編程能力是騎車者可以利用鍵盤252上的鍵就特定的時間和/或速度選擇所需要的負載條件。類似地,鍵盤252可以從計算機200中調用儲存的負載程序。一個這樣的程序是計算機200模擬騎車者與一群騎車者進行競賽的程序。
圖14是進入比賽時的一個典型的顯示窗口212。顯示窗口212上的第一遊標254表示騎車者在窗口256中的位置,而窗口256則顯示參賽群體的位置,因此,騎車者可以看到他或她相對於其他對手的位置。顯示窗口212還可以顯示騎車者的速度,經過的(消逝的)時間,走過的路程,節奏或踏板每分鐘的轉數和騎車者的心臟跳動速率。顯示窗212上還顯示了路程高低的縱斷面258及騎車者在賽車路線上的位置。第二個遊標257指示騎車者在路線上的位置,因此,騎車者不僅可以通過顯示窗口256看見自己相對參賽者群體的位置,而且可以看到在整個路線和整個比賽中自己的位置。顯示窗口212中標有「OTB」和「OTF」兩塊,允許第一遊標254在參賽群體之內和群體之外的一預定範圍內移動。「OTB」指「離開參賽群體後面」,而「OTF」指「離開參賽群體前面」。
比賽可以採用預定的比賽路線,如採用1984年奧林匹克比賽路線,預定路線也可以是一固定的斜坡,斜坡的坡度可以由騎車者選擇。或者由騎車者自己創造一條路線。但無論怎樣,計算機200都將控制發電機112(圖2)以提供模擬沿路線地形條件的合適的負載。騎車者可以利用鍵盤252選擇競賽的難度,以便與各種能力的騎車者進行競爭。騎車者的能力越強,路線走完得越快。
在實際比賽中,騎車者往往集中在一起形成一群。該競賽者群前進的速度是有變化的,有時也保持固定的速度,而有時當騎車者競爭位置時,這個競賽者群會提高速度。因此計算機200也編出程序以改變群體的速度,最好是以隨機的方式改變,這樣,騎車者可以決定當群體速度變化時他是否要改變位置。
如前所述,騎車者所承受的負載隨騎車者相對於群體的位置而改變,因為,當騎車者處於群體之內時所受到的風的阻力比騎車者處於領先或落後時受到的風阻力要小。由此,提供艘桓隹梢雜善鋶嫡呦 對於一群具有預定能力的模擬騎車者群體進行控制的位置,隨著騎車者相對於群體的位置的改變而改變騎車者承受的負載。
圖15示出了一種模擬比賽的流程圖,附錄B中有進行這種模擬和有關群體位置及功率計算的計算機原碼。方框260允許騎車者選擇比賽的競爭水平。競賽難度越高,則裝置上的騎車者為了趕上競賽而承受的負載也越大。然而,訓練裝置施加於騎車者的負載取決於所選擇且由發電機112(圖2)模擬的比賽路線。
比賽路線或模擬參賽者競賽水平的選擇可利用鍵盤252進行。方框260可允許騎車者選擇比賽路線。騎車者利用鍵盤252結合計算機算法可以輸入一個固定的坡度,選擇一預定的路線,或輸入一全新的路線。方框264則可以輸入騎車者的體重;因它影響負載的模擬。
方框266讀出模數(A/D)轉換器,該轉換器則讀出與發電機112(圖2)連接的電阻243的模擬電壓。方框268將該模擬電壓轉換成數值,數值的最大值為255且是線性的。數值255與25伏的電壓對應。方框270按下列公式就給定的模擬道路計算合適的功率P全部=Pf+PA這裡P全部=騎車者需克服的全部功率(瓦特)Pf=損失於摩擦的功率(瓦特)PA=發電機功率(瓦特)Pf和PA的方程前面已經說明過。
方框272將一秒內的全部功率P全部進行平均並將其顯示於顯示單元152(圖1)上。方框274基於騎車者所選擇的比賽水平計算參賽群體功率。方框276計算群體距離以決定在比賽路線上的位置。方框278通過顯示窗256(圖14)顯示騎車者相對於群體的位置。方框280檢查騎車者的速度以便使方框282能採用上述空氣阻力Fp公式計算加在騎車者身上的風力。
判定框284檢查並確定騎車者是否在參賽者群體內,如果是,則方框286降低空氣阻力以考慮因騎車者在群體內所受的阻力降低的情況,在本實施中,降低30%,方框208計算上述來自坡度和滾動的阻力,FG和FR的負載。方框290計算上面討論過的,施加於發電機112(圖2)以模擬上述結合負載的所希望的功率,Pr。
一旦確定了模擬騎車狀態的所需要也就是所希望的功率值,判定框292就檢查所希望的功率是否等於發電機112(圖2)施加於裝置的實際功率阻抗和系統的內在摩擦。如果所希望的功與發電機施加的功率相同,則不必進行調整,圖15的算法系統返回到方框266。
如果所考望的功率不等於發電機施加的功率,則程序進入到方框294,計算所希望的功率與施加功率的百分比。判定框296確定該百分差值是否落在預定的可接受的限度內。40%的百分差值在本實施例中是可接受的。如果百分差值超出了預定值,程序進入到方框298,調整百分比。為了防止負載變化的突然急變,對百分比的調整應限制在不超過預定的範圍內,在本實施例中,為±40%。如果方框296判定百分比未超出,則程序進入方框300,否則先經過方框298再進入方框300。方框300按下式計算新的數模轉換器(DAC)值DAC新=(%)(DAC舊)這裡DAC新=新DAC值(伏)DAC舊=原有的DAC值(伏)
%=方框294或298的百分比DAC值調整之後,程序返回到方框266進行另一個循環。這些循環至少每一秒鐘重複一次。這個計算機算法使騎車者訓練,實踐,經受所需要的努力以參與組織良好的比賽和逼真的模擬,並在基於絕對時間的基礎上和相對於一具有預定能力的騎車者群體的基礎上監測騎車者的表現。
本裝置的另一個特點是可以監測騎車者的心率,調節騎車者經受的負荷以把心率保持在預定的範圍以內。實現這一目的的電腦程式的流程圖見圖16,實現這一流程圖的一份計算機原碼的拷貝作為附件C附於文後。
騎車者通過鍵盤252(圖12)鍵入要求而啟動程序。方框300啟動程序而226-arts請求騎車者輸入心跳速率的上限和下限值。如果沒有值輸入,一個出錯程序(圖中未畫)在顯示窗212上顯示出請求,請求騎車者由鍵盤252輸入年齡和性別,對男性,心跳的最大速率計算為220減年齡。對女性,最高心跳速率為226減年齡。利用這個結論,可以將付出全力期間所能達到的最大心率的70%~85%的極限值從計算機206(圖1)可以取用的數值中挑選出來。
方框301將DAC清零,使發電機112(圖2)不承受任何載荷,並且在顯示窗口212上告訴騎車者要預熱。如方框302所示,預熱持續一定時間,這裡為兩分鐘。
騎車者最好在預熱階段開始前做好必要的連接。以便於將其心跳速率輸入計算機200,並顯示在顯示單元152(圖1)上。本領域中有種種已知的方法可用於監控騎車者的心跳速率並將其輸入計算機。然而,騎車者最好佩一個帶有脈搏傳感器的胸帶以檢測騎車者的心跳速率。該胸帶最好還帶有一個發射器,以便將心跳信號送給計算機200中的接收機並顯示在顯示單元152(圖1)上。這種裝置為本技術領域內的人所熟知,在這裡不再詳述。
判定框306中採用的上限(UL)和下限(LL)以確定這樣的心跳速率(HR)是否需要使發電機112(圖2)施加於裝置上的負載增加,降低或保持不變。判定框306監控心率,如果心率在預定的範圍內,則負載不變,如方框310所示,並且顯示窗口顯示信號指出一切正常,如方框312所示,然後,程序返回再次檢查心跳速率。圖16中選擇的預定範圍是心跳速率必須大於LL ′(UL-LL)*0.2並小於這裡UL-(UL-LL)*0.2UL=下限(來自框306)UL=上限(來自框306)一般,當心跳速率接近上限或下限的20%時,才考慮改變負載。
如果心跳速率在下限的20%以內,則算法進入到判定框320,它檢查DAC值是否剛剛增加。因為DAC值影響發電機112(圖2)所施加的負載,這一步主要是檢查騎車者承受的負載是否剛剛增加。如果不是,則算法進入框324。如果是,則算法進入框322,它檢查並確定DAC值維持不變是否超過預定時間,這裡是40秒。這步主要檢查騎車者承受的負載是否已40秒種不變。如果DAC值至少已有40秒不變,則程序返回到框306,並重讀心跳速率。如果DAC值40秒或更長時間未變,則程序進行到框324,檢查DAC值是否處於預定水平,這裡選取的值是255。如前所述,255是DAC值的最大值,與發電機112(圖2)的勵磁線圈上的電壓12伏相對應。如果DAC值是255,程序走到框326,顯示出一個請求,要求騎車者增加力量,然後返回到框306。如果DAC值底於255,則程序進入框328,增加一預定值的功率,在本實施例中,選為10瓦特。然後,程序返回到判定框306。
如果騎車者的心跳速率在上限的20%以內,則程序走到判定框330,檢查心跳速率是否超上限某一預定值,圖16中為5。如果是,則心跳速率太高,程序進入框322,使DAC清零,以降低負載,並在顯示單元152(圖1)上顯示一信號告訴騎車者減少用力,並給出一個聲音信號(嘟嘟聲)直到心跳速率降低到預定限度以內。然後程序返回到框306檢查心跳速率。
如果判定框330的結果是騎車者心跳速率沒有超過預定值,則程序走到判定框334,檢查DAC值是否剛剛降低。如果它剛剛降低,則程序進行到判定值336,檢查心跳速率超過上限多長時間。如果DAC值不是剛剛降低,則算法進行到框338。
框336檢查DAC值是否在最後20秒內改變,如果是,程序返回框306。如果DAC值已有20秒或更長時間未變,則程序進行到判定框338。
框338檢查DAC值,如果它是零,程序進行到框332,這在前面已描述過。如果DAC值不是零,則框340對發電機降低功率一個預定值,圖16中為10瓦特。功率降低後,程序返回到框306。
因此,圖16的算法維持了加在裝置上的負載。這樣,心跳速率停留在預定的範圍內,並且當心跳速率接近這些極限時,就會啟動相應的改正措施。發電機112(圖2)對負載變化的快速而精確的響應,使得負載得以迅速調整,並精確得足以使心跳速率保持在預選的範圍以內。顯示單元152(圖1)為騎車者提供的視覺和音響指示,進一步保證了系統的有效性。
結合前面的改進,用以控制心跳速率的方法和裝置使得比賽者能選擇的最佳的訓練條件。用於支撐比賽者的自行車的裝置提供了逼真的騎車模擬或感覺。摩擦和發電機效率的校準使負載得以精確模擬和精確模擬各種比賽狀態。風負荷和比賽群體位置的影響也能模擬。計算機和比賽路線的選擇可以模擬各種各樣的比賽,這樣,騎車者可以在各種既定的路線上進行實踐也可以在騎車者自行安排的路線上實踐,選擇各種競賽水平的能力和與模擬的竟賽者進行較量的能力提供了比賽的刺激性。比賽中的參賽群體速度的隨機變化使比賽者能實踐各種比賽策略。心跳速率的監控使得比賽者能跟蹤體力變化讓訓練裝置採取步驟控制影響心跳速率的負載。Huntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 1.
ModuleBIKIA;COPYRIGHT 1986 FRONTLINE TECHNOLOGY,INC.
F743*CALIBRATEF743*463DB1 JMP MM0;^FOR NOWF746*9C0C02 STZ DACTMP;ZERO THESEF749*9C0A02 STZ STARTFLGF74C*9C2102 STZ SIGNFLGF74F*H9DDLDA #0F751*8DA07F STA $7FA0;0 DACF754*2098D6 JSR RESVAL;RESET ALL VALUESF757*CALIBRATE0F757*200FF9 JSR CALIBDSP;″CALIBRATE″AND″SPEED″F75A*A922LDA #$22F758*8501STA ADDR+1F75E*6400STA ADDRF768*A96ELDA #LOW M286;″PRESS THE″START″MENU KEY TO BEGINCALIBRATION″F762*A053LDY #HIGH M286F764*2058A3 JSR PRTMSGF767*A924LDA #$24F769*B501STA ADDR+1F76B*A99FLDA #LOW M287;″PRESS THE″HELP″...″F76D*A053LDY #HIGH M287F76F*2056A3 JSR PRTMSGF772*A998LDA #LOW M195;″START″F774*A04ELDY #HIGH M195F776*20E7DA JSR INVMSGC1;1ST SOFTKEYF779*A96ELDA #LOW M65;″PREVIQUS MENU″F77B*A041LDY #HIGH M65F77D*20F4DA JSR INVMSGC2;2ND SOFTKEYF780*A9FCLDA #LOW M81;″MAIN MENU″F782*A042LDY #HIGH M81F784*2001DB JSR INVMSGC3 ;3RD SOFTKEYF787*CALIBRATE2F787*645FSTZ KEYF789*CALIBRATE3F789*A55FLDA KEY ;ANYTHING FROM KEYBOARD?F78B*F0FCBEQ CALIBRATE3;NOF78D*C911CMP #$11;STARTF78F*F015BEQ CALIBRATE5F791*C912CMP #$12 ;PREVIOUS MENUF793*D003BNE *+5F795*ACC7C0 JMP SETUPF798*C913CMP #$13 ;MAIN MENUF79A*D003BNE #+5F79C*4C3D81 JMP MM0F79F*C93FCMP #′?′;HELPF7A1*D0E4BNE CALIBRATE2;HELP MENU HEREAppendixHuntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 2ModuleBIKIAF7A3*2068BE JSR BEEPF7A6*CALIBRATE5;STARTF7A6*9DB07F STA $7FB0;START A/DF7A9*AD0A02 LDA STARTFLG;SAVEF7AC*48 PHAF7AD*20B8D6 JSR RESVAL;RESET ALL VALUESF7BO*68 PLAF7B1*8D0A02 STA STARTFLG;RESTOREF7B4*206BBE JSR BEEPF7B7*200FF9 JSR CALIBDSP;″CALIBRATE″AND″SPEED″F7BA*A922LDA #$22F7BC*8501STA ADDR+1F7BE* 6400 STZ ADDRF7C0*A9CALDA #LOW M288;″PEDAL YOUR BICYCLE...″F7C2*A053LDY #HIGH M288F7C4*2050A3 JSR PRTMSGF7C7*A980LDA #$80F7C9*8500STA ADDRF7CB*A900LDA #LOW M289;″YOU HEAR THE BEEP.″F7CD*AO54LDY #HIGH M289F7CF*2050A3 JSR PRTMSGF7D2*A939LDA #LOW M291;″CANCEL″F7D4*A054LDY #HIGH M291F7D6*20E7DA JSR INVMSGC1;1ST SOFTKEYF7D9*209FAS JSR IRQENABLE;ENABLE IRQ′SF7DC*A9C3LDA #LOW DACDAT ;BEGINNING RAM FOR SPEEDF7DE*851CSTA PNT14F7E0*A905LDA #HIGH DACDATF7E2*B510STA PNT14+1F7E4*A9A0LDA #LOW CRSDAT ;BEGINNING RAM FOR VOLTAGEF7E6*851ASTA PNT13F7E8*A90ELDA #HIGH CRSDATF7EA*851BSTA PNT13+1F7EC*9C0B02 STZ EXPFLG;CLR FLGF7EF*CALIBRATE6F7E7*645FSTZ KEYF7F1*9C2102 STZ SIGNFLGF7F4*CALIBRATE7F7F4*A55FLDA KEY ;ANYTHING FROM KEYBOARD?F7F6*D007BNE CALIBRATE8;YESF7F8*A5AALDA TIMER3;0.12 SEC?F7FA*D00ABNE CALIBRATE9;NOF7FC*4CBCF8 JMP CALIBRATE11F7FF*CALIBRATE8F7FF*C911CMP #$11;CANCELFB01*D0ECBNE CALIBRATE6FBO3*4C43F7 JMP CALIBRATEFB06*CALIBRATE9;0.12 SECHuntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 3ModuleBIKIAF806*202B9D JSR ADAVG;RUNNING 10 A/D READINGSF809*A544LDA RPMFLG;A SPEED PULSE YET?F808*FOE7BEQ CALIBRATE7;NOF810*2062B7 JSR RPMCALC;CALCULATE SPEEDF810*206B02 BIT EXPFLGF813*7065BVS CALIBRATE10A;ALREADY PAST 23 MPH ON COAST DOWNF815*3043BMI CALIBRATE10;PAST 25 MPH ON UP SIDEF817*AD2903 LDA SPDHEX;>25.5 MPH?F81A*D007BNE CALIBRATE9A;YESF81C*AD2A03 LDA SPDHEX+1;25 MPH YET?F81F*C9FACMP #250F821*90CCBCC CALIBRATE6;NOF823*CALIBRATE9AF823*AD2102 LDA SIGNFLG;2 TIMES?(MINIMIZE NOISE)F826*D005BNE CALIBRATE9A1;YESF828*EE2102 INC SIGNFLGF82B*80C7BRA CALIBRATE7F82D*CALIBRATE9A1F82D*206BBE JSR BEEPF830*A980LDA #$80F832*8D0B02 STA EXPFLGF835*200FF9 JSR CALIBDSP;″CALIBRATE″AND″SPEED″F838*A922LDA #$22F83A*B501STA ADDR+1F830*6400STZ ADDRF83E*A918LDA #LOW M290;″CONTINUE COASTING...″F840*A054LDY #HIGH M290F842*2056A3 JSR PRTMSGF845*A939LDA #LOW M291;″CANCEL″F847*A054LDY #HIGH M291F849*20E7DA JSR INVMSGC1;1ST SOFTKEYF84C*2C0A02 BIT STARTFLG;DAC 105?(2ND COASTDOWN)F84F*109EBPL CALIBRATE6;NOF851*A969LDA #105;LOAD DAC WITH 105F853*8DA07F STA $7FA0F856*4CEFF7 JMP CALIBRATE6F859*CALIBRATE10F859*AD2903 LDA SPDHEX;255?F85C*D091BNE CALIBRATE6;YESF85E*AD2A03 LDA SPDHEX+1F861*C9E7CMP #231;CROSSED 230 YET?F863*9003BCC *+5F865*4CEFF7 JMP CALIBRATE6;NOF868*AD2102 LDA SIGNFLG;2 TIMES?F86B*D005BNE CALIBRATE10AA;YESF86D*EE2102 INC SIGNFLGF870*A002BRA CALIBRATE7F872*CALIBRATE10AAF872*A9FFLDA #$FFF874*8D0B02 STA EXPFLGF877*4CEFF7 JMP CALIBRATE6Huntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 4ModuleBIKIAF87A*CALIBRATE10AF87A*2C0A02 BIT STARTFLG;0OR 105?F87D*101DBPL CALIBRATE10B;0F8AD*AD2A9 LDA SPDHEX+1F882C997 CMP #151;15 MPH YET?F884*900EBCC *+5F886*4CEFF7 JMP CALIBRATE6F889*AD3102 LDA SIGNFLG;2 TIMES?F88C*D006BNE CALIBRATE10A1;YESF88E*EE2102 INC SIGNFLGF891*4CF4F7 JMP CALIBRATE7F894 CALIBRATE10A1F894*A900LDA #0F896*8DA07F STA $7FA0;RE-ZERO DACF899*4C47FA JMP CALDAC105;^FOR NOWF89C*CALIBRATE10BF89C*AD2A03 LDA SPDHEX+1F89F*C933CMP #51;CROSSED 5 MPH YET?F8A1*9003BCC *+5F8A3*4CEFF7 JMP CALIBRATE6;NOF8A6*AD2102 LDA SIGNFLG;2 TIMES?F8A9*D006BNE CALIBRATE10B1;YESF8AB*E2102 INC SIGNFLGF8AE4DF4F7 JMP CALIBRATE7F8B1*CALIBRATE10B1F8B1*2058F9 JSR CALDAC0;DO CALCULATON FOR 0F8B4*A9FFLDA #$FFF8B6*BD0A02 STA STARTFLGF8B94DA6F7 JMP CALIBRATE5F8BC*CALIBRATE11;DISPLAY SPEEDF8BC*A903LDA #3F8BE*85A4STA TIMER3F8C0*202DF9 JSR SPEEDISPF8C3*2COB02 BIT EXPFLG;CALIBRATION RUNNING?F8C6*5044BVC CALIBRATE12;NOF8C8*A000LDY #0F8CA*AD2A03 LDA SPDHEX+1;STORE SPEEDF8CD*911CSTA (PNT14),YF8CF*E61CINC PNT14F8D1*D002BNE *+4F8D3*E61DINC PNT14+1F8D5*A51DLDA PNT14+1F8D7*C940CMP #$40;OUT OF RAM?F8D9*D006BNE CALIBRATE11A;NO;OVER RAM LIMIT-DISPLAY SOMETHINGF8DB*2068BE JSR BEEPF8DE*4CDEF8 JMP *FBEI*CALIBRATE11AHuntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 5ModuleBIKIAF8E1*200A02BIT STARTFLGF8E4*1026 BPL CALIBRATE12;DAC0F8E6* CALIBRATE11BF8E6*A000 LDY #0F8E8*AD4904LDA ADTOT;STORE A/D SUM OF 10 READINGSF8EE*911A STA (PNT13),YF8ED*CBINYFBEE*AD4A04LDA ADTOT+1F8F1*911A STA (PNT13),YF8F3*18CLCF8F4*A51A LDA PNT13F8F6*6902 ADC #2F8F8*851A STA PNT13F8FA*A51B LDA PNT13+1F8F0*6900 ADC #0F8FE*851B STA PNT13+1F900*A51B LDA PNT13+1F902*C940 CMP #$40;OUT OF RAM?F904*D006 BNE CALIBRATE12;NO;OVER RAM-DISPLAY SOMETHINGF906*206BBEJSR BEEPF909*4C09F9JMP *F90C* CALIBRATE12F90C*4CF4F7JMP CALIBRATE7F90F* CALIBDSP;DISPLAY″CALIBRATE″AND″SPEED″F90F*206BA3JSR CLRDSPF912*20C3F5JSR HVLIN;HORIZ AND VERT LINESF915*6400 STA ADDRF917*A920 LDA #$20F919*8501 STA ADDA+1F91B*A9A9 LDA #LOW M198;″CALIBRATION″F91D*A04E LDY #HIGH M198F91F*2058A3JSR PRTMSGF922*A924 LDA #$24F924*8501 STA ADDR+1F926*A91E LDA #LOW M213;″SPEED″F928*A04F LDY #HIGH M213F92A*4C58A3JMP PRTMSGF92D* SPEEDISP;DISPLAY SPEEDF92D*AD2903LDA SPDHEXF930*856C STA HEX+1F932*AD2A03LDA SPDHEX+1F935*B56D STA HEX+2F937*646B STZ HEXF939*201FBAJSR HEXASCF93C*A924 LDA #$24F93E*B501 STA ADDR+1F940*6400 STZ ADDRF942*A568 LDA ASCI+5Huntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 6ModuleBIKIAF944*A006LDY #6F946*9100STA (ADDR),YF948*E8 INYF949*A569LDA ASCI+6F948*8100STA (ADDR),YF94D*C8 INYF94E*A82ELDA #′.′F950*9100STA (ADDR),YF952*08 INYF953*A564LDA ASCI+7F955*9100STA (ADDR),YF957*60 RTSF958*CALDAC0;COAST DOWN (0 DAC) COMPLETEF958*A9C3LDA #LOW DACDAT;BEGIN SPEED RAMF95A*851ESTA PNT15F95C*A905LDA #HIGH DACDATF95E*851FSTA PNT15+1F960*20C5FD JSR RESCALVAL;RESET CALIB VALUESF963*CALDAC0FF963*6428STZ MCANDF965*6429STZ MCAND+1F967*A000LDY #0F969*A213LDX #19F96B*CALDAC0G;SUM OF 20 SPEEDSF96B*18 CLCF96C*B11ELDA (PNT15),YF96E*6529ADC MCAND+1F970*8529STA MCAND+1F972*A900LDA #0F974*6528ADC MCANDF976*8528STA MCANDF978*CA DEXF979*3808BMI CALDAC0HF97B*2036FA JSR INCPNT15;NEXT POINTF97E*D0EBBNE CALDAC0G;NOT DONE YETF980*4CEDF9 JMP CALDAC0K;YESF983*CALDAC0HF983*2033F4 JSR RDYFACF986*A529LDA MCAND+1F988*85DASTA FACLOF98A*A528LDA MCANDF98C*85D9STA FACMOF98E*207565 JSR NORMAL;NORMALIZE TO FLOATING POINTF991*A268LDX #LOW FACTMP1;STOREF993*A003LDY #HIGH FACTMP1F995*200D68 JSR MOVMFF998*AD4903 LDA HRTCNT;1ST TIME?F99B*F03ABEQ CALDAC0I;YESF99D*A96DLDA #LOW FACTMP2;GET LAST AVGF99F*A003LDY #HIGH FACTMP2Huntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82LPage 7ModuleBIKIAF9A1*208D64 JSR FSUB;LAST-THIS AVGF9A4*20456B JSR MOVAFF9A7*A991 LDA #LOW INT480;480 20*.12*20(AVG)*10(SPED)F9A9*A064 LDY #HIGH INT480F9AB*20DF67 JSR MOVFMF9AE*20EAFD JSR FPDIVF9B1*A263 LDX #LOW FACTMP;YF9B3*A003 LDY #HIGH FACTMPF9B5*200D6B JSR MOVMFF9B8*A968 LDA #LOW FACTEMP1;THIS READINGF9BA*A003 LDY #HIGH FACTMP1F9BC*20DF67 JSR MOVFMF9BF*A96D LDA #LOW FACTMP2;LAST READF9C1*A008 LDY #HIGH FACTMP2F9C8*200465 JSR FADDF9C6*A9B4 LDA #LOW INT0025;0.00251/(2*20(AVG)*10(SPEED))F9C8*A064 LDY #HIGH INT0025F9CA*206566 JSR FMULTF9CD*A27D LDX #LOW ARGTMP;XF9CF*A003 LDY #HIGH ARGTMPF9D1*200D68 JSR MOVMFF9D4*2038FC JSR LINREGF9D7* CALDAC0IF9D7*A204 LDX #4;STORE THIS AS LAST READF9D9* CALDAC0JF9D9*BD6803 LDA FACTMP1,XF9DC*9D6D03 STA FACTMP2,XF9DF*CA DEXF9E0*10F7 BPL CALDAC0JF9E2*EE4903 INC HRTCNTF9E5*2036FA JSR INCPNT15;NEXT POINTF9E8*F003 BEQ CALDAC0K ;DONEF9EA*AC63F9 JMP CALDAC0F ;NEXT AVGF9ED* CALDAC0KF9ED*2033F4 JSR RDYFACF9F0*CE4903 DEC HRTCNTF9F3AD4903LDA HRTCNT ;NEED TO DECREMENT?F9F6*85DA STA FACLOF9F8*20B6FC JSR ACALCF9FB*A99B LDA #LOW INT11829;11.829F9FD*A064 LDY #HIGH INT 11829F9FF*206566 JSR FMULTFAO2*A2E3 LDX #LOW FPV2FA04*A004 LDY #HIGH FPV2FAO6*200D6B JSR MOVMFFAO9*2023FD JSR BCALCFAOC*A99B LDA #LOW INT11829FA0E*A864 LDY #HIGH INT11829Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 8ModuleBIKIAFA10*206566 JSR FMULTFA13*A2DEJDX #LOW FPVFA15*A004LDY #HIGH FPVFA17*200D68 JSR MDVMFFAIA*20BOFD JSR LINREG20;CALC AT 20 MPH??FAID*A9A0LDA #LOW INT23658;236.58FAIF*A064LDY #HIGH INT23658FA21*206566 JSR FMULTFA24*A2E8LDX #LOW FPFR20FA26*A004LDY #HIGH FPFR20FA26*200D68 JSR MOVMFFA28*2061FD JSR RCALC;DISPLAY R SOMEWHERE????FA2E*A2CALDX #LOW FPARGFA30*A003LDY #HIGH FPARGFA32*200D88 JSR MOVMF;JSR DUMPDATAFA35*60 RTS;END DAC 0 CALIBRATIONFA36*INCPNT15FA36*E61EINC PNT15FA38*D002BNE *+4FA3A*E61FINC PNT15+1FA3C+A51ELDA PNT15;DONE?FA3E*C51CCMP PNT14FA40*D004BNE INCPNT15A ;NOFA42*A51FLDA PNT15+1FA44*C510CMP PNT14+1FA46*INCPNT15AFA46*68 RTS;START DAC 105 CALCULATIONFA47*CALDAC105FA47*20C5FD JSR RESCALVALFA4A*A903LDA #LOW DACDAT;SPEEDSFA4C*851ESTA PNT15FA4E*A905LDA WHICH DACDATFA50*851FSTA PNT15+1FA52*A9A0LDA #LOW CRSDAT;VOLTAGESFA54*851ASTA PNT13FA56*A90ELDA #HIGH CRSDATFA58*851BSTA PNT13+1FA5A*DAC105FFA5A*2833G4 JSR RDYFACFA5D*A000LDY #0FA5F*B11ELDA (PNT15),YFA61*85DASTA FACLOFA63*207565 JSR NORMALFA66*203B67 JSR DIV10FA69*A27CLDX #LOW ARGTMP;XHuntsville Macro Assembler 65C02 cross assembler for PC-DDS 2.0v1.82L Page 9ModuleBIKIAFA68*A003LDY #HIGH ARGTMPFA6D*200065 JSR MOVMFFA70*2033F4 JSR RDYFACFA73*A000LDY #0FA75*B11ALDA (PNT13),YFA77*85D9STA FACMOFA79*C8 INYFA7A*B11ALDA (PNT13),YFA7C*85DASTA FACLOFA7E*207565 JSR NORMALFA81*A9C4LDA #LOW INT9765;NORMALIZE TO VOLTSFA83*A063LDY #HIGH INT9765FA85*206566 JSR FMULTFA88*A2C5LDX #LOW FPACCFA8A*A003LDY #HIGH PFACCFA8C*200D68 JSR MOVMFFA8F*A9C5LDA #LOW FPACCFA91*A003LDY #HIGH FPACCFA93*206566Q JSR FMULT;^2FA96*A263LDX #LOW FACTMP;YFA98*A003LDY #HIGH FACTMP;YFA9A*200D68 JSR MOVMFFA9D*2038FC JSR LINREGFAA8*2036FA JSR INCPNT15FAA3*D003BNE DAC105G;NOT DONE YETFAA5*4CC1FA JMP DAC105KFAAB*DAC105GFAAB*18 CLCFAA9*A51ALDA PNT13FAAB*6982ADC #2FAAD*851ASTA PNT13FAAF*A51BLDA PNT13+1FABI*6900ADC #8FAB3*851BSTA PNT13+1FAB5*E629INC MCAND+1;NUMBER OF POINTSFAB7*F003BEQ *+5FAB9*4C5AFA JMP DAC105FFABC*E628INC MCANDFABE*4C5AFA JMP DAC105FFACI*DAC105KFAC1*2033F4 JSR RDYFACFAC4*18 CLCFAC5*AF29LDA MCAND+1FAC7*6901ADC #1FAC9*85BASTA FACLO;NEED TO DECREMENT BY 1?FACB*A52BLDA MCANDFACD*6900ADC #8FACF*85D9STA FACMOFADI*28B6FD JSR ACALCFAD4*023FD JSR BCALCFAD7*20B0FD JAE LINREG20;CALC VALUE AT 20 MPHHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 10ModuleBIKIAFADA*A2EDLDX #LOW FPE20FADC*A004LDY #HIGH FPE20FADE*200D68 JSR MOVMFFAE1*2061FD JSR RCALCDISPLAY SOMEWHERE???FAE4*A2A2LDX #LOW FPWINDFAE6*A004LDY #HIGH FPWINDFAE8*200D68 JSR MOVMFFAEB*20C5FD JSR RESCALVALFAEE*A9C3LDA #LOW DACDATFAFO*851ESTA PNT15FAF2*A905LDA #HIGH DACDATFAF4*851fSTA PNT15+1FAF6*DAC105LFAFE*6428STZ MCANDFAFE*6429STZ MCAND+1FAFA*A000LDY #0FAFC*A204LDX #4FAFE*DAC105MFAFE*18 CLCFAFF*B11ELDA (PNT15),YFB01*6529ADC MCAND+1FB03*6529STA MCAND+1FB05*A900LDA #0FB07*6528ADC MCANDFB09*8528STA MCANDFB0B*CA DEXFB0C*3008BMI DAC105NFB0E*2036FA JSR INCPNT15FB11*D0EBBNE DAC105MFB13*4C91FB JMP DAC105RFB16*DAC105NFB16*2033F4 JSR RDYFACFB19*A529LDA MCAND+1FB1B*05DASTA FACLOFB1D*A528LDA MCANDFB1F*05D9STA FACMOFB21*207565 JSR NMORMALFB24*A268LDX #LOW FACTMP1FB26*A003LDY #HIGH FACTMP1FB28*AD200D68JSR MOVMFFB2B*AD4903 LDA HRTCNT;1ST READING/FB2E*D003BNE*+5FB30*407BFB JMPDAC105P;YESFB33*A96DLDA #LOW FACTMP2;LAST READFB35*A003LDY #HIGH FACTMP2FB37*20ED64 JSR FSUBFB3A*A9A5LDA #LOW INT033;.033333 1/(5*.12*10*5)FB3C*A064LDY #HIGH INT033FB3E*206566 JSR FMULTFB41*A263LDX #LOW FACTMP;YFB43*A003LDY #HIGH FACTMPFB45*200D6b JSR MOVMFHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 20v1.82L Page 11ModuleBIKIAFB4A*AP68LDA #LOW FACTMP1FB4A*A003LDY #HIGH FACTMP1FB4C*20DF67 JSR MOVFMFB4F*A96DLDA #LOW FACTMP2FB51*AOOBLDY #HIGH FACTMP2FB53*200465 JSR FADDFB56*264568 JSR MOVAFFB59*A919LDA #LOW INT100;2*5*10FB5B*A064LDY #HIGH INT100FB50*20DF67 JSR MOVFMF860*28EAFD JSR FPDIVFB63*A270LDX #LOW ARGTMP;XFB65*A003LDY #HIGH ARGTMPFB67*200D68 JSR MOVMFFB6A*A963LDA #LOW FACTMPFB6C*A003LDY #HIGH FACTMPFB6E*206566 LSR FMULTFB71*A263LSX #LOW FATMP;YFB73*A003LDY #HIGH FACTMPFB75*200D68 JSR MOVMFFB7B*263BFC JSR LINREGFB7B*DAC105PFB7B*A204LDX #4FB7D*DAC105Q;THIS READ TO LAST READINGFB7D*BD6803 LDA FACTMP1,XFBB0*9D6D83 STA FACTMP2,XFBB3*CA DEXFBB4*16F7BPL DAC105QFB86*EE4903 INC HRTCNT;NUMBER OF POINTSFB89*2836FA JSR INCPNT15;NEXT POINTFB80*F003BEQ DAC105R;DONEFB8E*4CF6FA JMP DAC105L;NEXT AVGFB91*DAC105RFB91*2033F4 JSR RDYFACFB94*CE4903 DEC HRTCNTFB97*AO4903 LDA HRTCNTF89A*85DASTA FALCOF69C*20B6FC JSR ACALCFR9F*2023FD JSR BCALCFBA2*20B0FD JSR LINREG20FBA5*A99BLDA #LOW INT11829FBA78A064LSY #HGH INT11829FBA9*206566 JSR FMULTFBAC*204568 JSR MAOVAFFBAF*A9EBLDA #LOW FPFROFBB1*A004LDY #HIGH ′FPFR20FBB3*20DF67 JSR MOVFMFBB6*20F064 JSR FSUBTFBB9*A9EDLDA #LOW FPE20FBBB*A004LDY #HIGH FPE20FBBD*200P966 JSR CONUPKHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page12ModuleBIKIAFECO*20EAFDJSR FPDIVFBC3*204568JSR MOVAFFBC6*A9AA LDA #LOW INT6029 ;0.6029FBCB*A9A4 LDY #HIGH INT6029FBCA*20DF67JSR MOVFMFBCD*20EAFDJSR FPDIVFBDO*A2F2 LDX #LOW FPMFB02*A004 LSY #HIGH FPMFBD4*200D6EJSR MOVMFFBD7*2061FDJSR RCALC ;DISPLAY SOMEWHERE???FBDA* DAC105RAFBDA*286BA3JSR CLRDSPFBOD*20AEA3JSR DSPONCFBE0*A920 LDA #$20FBE2*8501 STA ADDR+1FBE4*6400 STZ ADDRFBE6*A9DE LDA #LOW FPVFBE8*A004 LDY #HIGH FPVFBEA*206DFEJSR FLTPRTFBED*A921 LDA #$21FBEF*8501 STA ADDR+1FBF1*A9E3 LDA #LOW FPV2FBF3*A004 LDY #HIGH FPV2FBF5*206DFEJSR FLTPRTFBF8*A922 LDA #$22FBFA*8501 STA ADDR+1FBFC*A9F2 LDA #LOW FPMFBFE*A004 LDY #HIGH FPMFC00*206DFEJSR FLTPRTFC03*A923 LDA #$23FC05*6301 STA ADDR+1FC07*A9CA LDA #LOW FPARGFC09*A003 LDY #HIGH FPARGFCOE*206DFEJSR FLPRTFC0E*A924 LDA #$24FC10*8501 STA ADDR+1FC12*A9A2 LDA #LOW FPWINDFC14*A004 LDY #HIGH FPWINDFC16*206DFEJSR FLTPRTFC19*A925 LDA #$25FC18*8501 STA ADDR+1FC1D*A9D9 LDA #LOW FPRFC1F*A004 LDY #HIGH FPRFC21*206DFEJSR FLTPRTFC24*206BBEJSR BEEP;JSR DUMPDATAFC27*A9FC LDA #LOW MBI;″MAIN MENU″FC29*A042 LDY #HIGH M81FC2B*20E7DAJSR INVMSGC1FC2E* DAC105RBFC2E*207CA5JSR KEYIN ;′FOR NOWFC31*C911 CMP #$11FC33*D0F9 BNE DAC105RBHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 13ModuleBIKIAFC35*404081JMP MM;DAC 105 CALCULATION DONEFC39 LINREG ;RUNNING LINEAR REGRESSIONFC38*A970 LDA #LOW ARGTMP ;XFC3A*A003 LDY #HIGH ARGTMPFC3C*20DF67JSR MOVFMFC3F*A963 LDA #LOW FATMP ;YFC41*A003 LDY #HIGH FACTMPFC43*206566JSR FMULTFC46*A901 LDA #LOW FPSUMXYFC48*A005 LDY #HIGH FPSUMXYFC4A*200465JSR FADDFC4D*A201 LSX #LOW FPSUMXYFC4F*A005 LDY #HIGH FPSUMXYFC51*200D68LSR MOVMFFC54*A97C LDA #LOW ARGTMP ;XFC56*A003 LDY #HIGH ARGTMPFC58*20DF67JSR MOVFMFC5B*A9F7 LDA #LOW FPSUMXFC5D*A004 LDY #HIGH FPSUMXFC5F*200465JSR FADDFC62*A2F7 LDX #LOW FPSUMXFC64*A004 LDY #HIGH FPSUMXFC66*200D6BJSR MOVMFFC69*A97C LDA #LOW ARGTMP ;XFC6B*A003 LDY #HIGH ARGTMPFC6D*20DF67JSR MOVFMFC70*A97C LDA #LOW ARGTMPFC72*A003 LDY #HIGH ARGTMPFC74*206566JSR FMULT ;X^2FC77*A906 LDA #LOW FPSUMXXFC79*A005 LDY #HIGH FPSUMXXFC7B*200465JSR FADDFC7E*A206 LDX #LOW FPSUMXXFCB0*A005 LDY #HIGH FPSUMXXFCB2*200D68JSR MOVMFFC85*A963 LDA #LOW FACTMP ;YFC87*A003 LDY #HIGH FACTMPFC89*20DF67JSR MOVFMFC8C*A9FC LDA #LOW FPSUMYFCBE*A004 LDY #HIGH FPSUMYFC90*200465JSR FADDFC93*A2FC LDX #LOW FPSUMYFC95*A004 LDY #HIGH FPSUMYFC97*200D68JSR MOVMFFC9A*A963 LDA #LOW FACTMP ;YHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 14ModuleBIKIAFC9C*A003 LDY #HIGH FACTMPFC9E*200F67JSR MOVFMFCA1*A963 LDA #LOW FACTMPFCA3*AO03 LDY #HIGH FACTMPFCA5*206566JSR FMULTFCA8*A90B LDA #LOW FPSUMYYFCAA*A005 LDY #HIGH FPSUMYYFCAC*200465JSR FADDFCAF*A20B LDX #LOW FPSUMYYFCB1*A005 LDY #HIGH FPSUMYYFCBS*ACDD68JMP MOVMFFCB6* ACALC ;CALUCULATE ″A″(Y=AX+B)FC86*207565JSR NORMAL ;NORMALIZE″N″FC89*A263 LDX #LOW FACTMPFC88*A008 LDY #HIGH FACTMPFCBD*A9F7 LDA #LOW FPSUMXFCC2*A004 LDY #HIGH FPSUMXFCC4*20DF67JSR MOVFMFCC7*A9FC LDA #LOW FPSUMYFCC9*A004 LDY #HIGH FPSUMYFCC8*206566LSR FMULTFCCE*204568JSR MOVAFFCD1*A963 LDA #LOW FACTMP ;NFCD3*A003 LDY #HIGH FACTMPFCD5*20DF67JSR MOVFMFCD8*20EAFDJSR FPDIVFCD8*A901 LDA #LOW FPSUMXYFCDD*A005 LDY #HIGH FPSUMXYFCDF*20DE64JSR FSUBFCE2*A272 LDX #LOW FACTMP3 ;STOREFCE4*A003 LDY #HIGH FACTMP3FCE6*200D68JSR MOVMFFCE9*A9F7 LDA #LOW FPSUMXFCEB*A004 LDY #HIGH FPSUMXFCED*206F67JSR MOVFMFCF0*A9F7 LDA #LOW FPSUMXFCF2*A004 LDY #HIGH FPSUMXFCF4*206566JSR FMULTFCF7*204568JSR MOVAFFCFA*A963 LDA #LOW FACTMP ;NFCFC*A003 LDY #HIGH FACTMPFCFE*20DF67JSR MOVFMFD01*20EAFDJSR FPDIVFD04*A906 LDA #LOW FPSUMXXFD06*A005 LDY #HIGH FPSUMXXFD08*20ED64JSR FSUBFD08*A277 LDX #LOW FACTMP4 ;STOREFD0D*A003 LDY #HIGH FACTMP4FD0F*200D68JSR MOVMFFD12*A972 LDA #LOW FACTMP3FD14*A003 LDY #HIGH FACTMP3FD16*20C966JSR CONUPKHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page15ModuleBIKIAFD19*2DEAFDJSR FPDIVFDIC*A2CF LDX #LOW FPA ;STOREFDIE*A004 LDY #HIGH FPAFD20*4C0D68JMP MOVMFFD28* BCALC ;CALCULATE ″B″(Y=AX+B)FD28*A9FC LDA #LOW FPSUMYFD25*A004 LDY #HIGH FPSUMYFD27*20C966JSR CONUPKFD2A*A963 LDA #LOW FACTMP ;NFD2C*A003 LDY #HIGH FACTMPFD2E*20DF67JSR MOVFMFD31*20EAFDJSR FPDIVFD34*A26D LDX #LOW FACTMP2FD36*A003 LDY #HIGH FACTMP2FD3B*200D68JSR MOVMFFD8B*A9F7 LDA #LOW FPSUMXFD3D*20C966LDY #HIGH FPSUMXFD3F*20C966JSR CONUPKFD42*A963 LDA #LOW FACTMP ;NFD44*A003 LDY #HIGH FACTMPFD46*20DF67JSR MOVFMFD49*20EAFDJSR FPDIVFD4C*A9CF LDA #LOW FPAFD4E*A004 LDY #HIGH FPAFD50*206566JSR FMULTFD53*A96D LDA #LOW FACTMP2FD55*A003 LDY #HIGH FACTMP2FD57*20ED64JSR FSUBFD5A*A3D4 LDX #LOW FPB ;STOREFD5C*A004 LDY #HIGH FPBFD5E*4C0D68JMP MOVMFFD61* RCALC ;CALCULATE CORRELATION COEFFICIENTFD61*A972 LDA #LOW FACTMP3FD63*A003 LDY #HIGH FACTMP3FD65*20DF67JSR MOVFMFD68*A972 LDA #LOW FACTMP3FD6A*A003 LDY HIGH FACTMP3FD60*206566JSR FMULTFD6F*A268 LDX #LOW FACTMP1 ;STOREFD71*A003 LDY #HIGH FACTMP1FD73*200D68JSR MOVMFFD76*A9FC LDA #LOW FPSUMYFD78*A004 LDY #HIGH FPSUMYFD7A*20DF67JSR MOVFMFD7D*A0FC LDA #LOW FPSUMYFD7F*A004 LDY #HIGH FPSUMYFD81*206566JSR FMULTFD84*204568JSR MOVAFFD87*A963 LDA #LOW FACTMP ;NFD89*A003 LDY #HIGH FACTMPFD88*20DF67JSR MOVFMFD8E*20EAFDJSR FPDIVFD91*A90B LDA #LOW SUMYYHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 16ModuleBIKIAFD93*A005 LDY #HIGH FPSUMYYFD95*20ED64 JSR FSUBFD98*A977 LDA #LOW FACTMP4FD9A*A008 LDY #HIGH FACTMP4FD9C*206566 JSR FMULTFD9F*A968 LDA #LOW FACTMP1FDA1*A008 LDY #HIGH FACTMP1FDA3*20C966 JSR CONUFKFDA6*20EAFD JSR FPDIVFDA9*A2D9 LDX #LOW FPR ;STOREFDAB*A004 LDY #HIGH FPRFDAD*4C0D68 JMP MOVMFFDBO* LINREG20 ;CALCULTE Y AT 20 MPHFDBO*A9AF LDA #LOW INT20FDB2*A064 LDY #HIGH INT20FDB4*20DF67 JSR MOVFMFDB7*A9CF LDA #LOW FPAFDB9*A004 LDY #HIGH FPAFDBB*206566 JSR FMULTFDBE*A9D4 LDA #LOW FPBFDCO*A004 LDY #HIGH FPBFDC2*4C0465 JMP FADDFDC5* RESCALVAL ;RESET CALIBRATON VALUESFDC5*6428 STZ MCANDFDC7*6429 STZ MCAND+1FDC9*9CF704 STZ FPSUMXFDCC*9CFC04 STZ FPSUMYFDCF*9C0105 STZ FPSUMXYFDD2*9C0605 STZ FPSUMXXFDD5*9C0B05 STZ FPSUMYYFDD8*9C4903 STZ HRTCNTFDDB*60 RTSHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 1ModuleBIKIA;COPYRIGHT 1986 FRONTLINE TECHNOLOGY, INC.896EPOWERCALC; CALCULATE POWER896E A99D LOA #LOW FPGRADE8970 A004 LDY #HIGH FPGRADE8972 20DF67 JSR MOVFM8975 A9A2 LDA #LOW FPWIND8977 A004 LDY #HIGH FPWIND8979 200465 JSR FADD897CPOWERCAL0897C 24DB BIT FACSGN;NEGATIVE?897C 1004 BPL POWERCALCI897E 9CCF03 STZ FPPOWER;YES,MAKE 08983 60 RTS8984POWERCALCI8984 A98E LDA #LOW FPSPEED8988 A004 LDY #HIGH FPSPEED8988 206566 JSR FMULT8988 A951 LDA #LOW INT0447;0.0447(MPF TO METERS/SEC.DIV BY 10)898D A063 LDY #HIGH INT0447898F 206566 JSR FMULT8992 A2CF LDX #LOW FPPOWER8994 200D68 JSR MOVMF8999 60 RTS899AGRADECALC;CALCULATE GRADE POWER899A AD4203 LDA GRADE899D 207568 JSR FLOAT89A0 A9D3 LDA #LOW INT444889A2 A063 LDY #HIGH INT444889A4 206566 JSR FMULT89A7 A9CE LDA #LOW INT017889A9 A063 LDY #HIGH INT017889AB 200465 JSR FAD89AE A998 LDA #LOW FPWEIGHT89B0 A004 LDY #HIGH FPWEIGHT89B2 206566 JSR FMULT89B5 A29D LDX #LOW FPGRADE89B7 A004 LDY #HIGH FPGRADE89B9 200D68 JSR MOVMF89BC 60 RTS89BDWINDCALC89BD A998 LDA #LOW FPWEIGHT89BF A004 LDY #HIGH FPWEIGHT89C1 20DF67 JSR MOVFM89C4 A9E7 LDA #LOW INT205;0.000205555689C6 A063 LDY #HIGH INT20589CB 206566 JSR FMULT89CB A9E2 LDA #LOW INT226;0.00226666789CD A063 LDY #HIGH INT226Huntsville Macro Assembler 65C02 cross assembler for PC-DDS 2.0v1.82LModule BIKIA89CF 200465JSR FADD89D2 A263 LDX #LOW FACTMF894 A003 LDY #HIGH FACTMF89D6 200D68JSR MOVMF89D9 A998 LDA #LOW FPSPEED1089D8 A004 LDY #HIGH FPSPEED1089DD 20C966JSR CONVPN89E0 A9EC LDA #LOW INT2;0289E2 A063 LDY #HIGH INT289E4 20DF67JSR MOVFM89E7 209268JSR FPWRT89EA A963 LDA #LOW FACTMP89EC A003 LDY #HIGH FACTMP89EE 206566JSR FMULT89F1 AD6905LDA WINDLOADFLGG89F4 D008 BNE WINDCALC289F6 WINDCALC189F6 A2A2 LDX #LOW FPWIND89F8 A004 LDY #HIGH FPWIND89FA 200D68JSR MOVMF89FD 60RTS89FE WINDCALC289FE A90F LDA #LOW INTPT7;0.788A00 A064 LDY #HIGH INTPT78A02 206566JSR FMULT8A05 80EF BRA WINDCALC18A07 SPEEDDIV108A09 A98E LDA #LOW FPSPEED8A09 20DF67LDY #HIGH FPSPEED8A06 20DF67JSR MOVFM8A0E 203B67JSR DIV108A11 A293 LDX #LOW FPSPEED108A13 A004 LDY #HIGH FPSPEED108A15 200D68JSR MOVMF8A18 60RTS8A19 PAGEHuntsville Macro Assembler 65C02 Cross assembler for PC-DOS 2.0v1.82L Page 3ModuleBIKIA8A19 DACCALC;CALCULATE DAC VALUE AND LOAD8A19 2033F4JSR RDYFAC8A1C AD4A04LDA ADTOT+18A1F 85DA STA FACLO8A21 ADA904LDA ADTOT8A24 85D9 STA FACMO8A26 207565JSR NORMAL8A29 A9C4 LDA #LOW INT9765;.0097656258A2B A063 LDY #HIGH INT97658A2D 206566JSR FMULT;NORMALIZE TO VOLTS8A30 A2C5 LDX #LOW FPACC8A32 A003 LDY #HIGH FPACC8A34 200D68JSR MOVMF8A37 A9C5 LDA #LOW FPACC8A39 A003 LDY #HIGH FPACC8A3B 026566JSR FMULT;^28A3E A993 LDA #LOW FPSPEED10;SPEED/108A40 A004 LDY #HIGH FPSPEED108A42 206566JSR FMULT8A45 A9F6 LDA #LOW INT1408 ;14.088A47 A063 LDY #HIGH INT14088A49 206566JSR FMULT8A4C A263 LDX #LOW FACTMP8A4E A003 LDY #HIGH FACTMP8A59 A956 JSR MOVMF;SAVE8A59 A956 LDA #LOW INT18A55 A063 LDY #HIGH INT18A57 20C966JSR CONVPK8A5A A993 LDA #LOW FPSPEED108A5C A004 LDY #HIGH FPSPEED108A5E 20DF67JSR MOVFM8A61 20EAFDJSR FPDIV;1/V8A64 A937 LDA #LOW INTE8A66 A064 LDY #HIGH INTE8A68 20C966JSR CONVPK8A68 A5D6 LDA FACEXP;GET READY FOR FPWRT8A6D 209268JSR FPWRT8A70 A9FB LDA #LOW INT12832;0.128328A72 A063 LDY #HIGH INT128328A74 206566JSR FMULT8A77 204568JSR MOVAF8A7A A900 LDA #LOW INT129038A7C A064 LDY #HIGH INT129038A7E 20DF67JSR MOVFM8A81 20F064JSR SUBT8A84 A963 LDA #LOW FACTMP8A86 A003 LDY #HIGH FACTMP8A86 206566JSR FMULT8A8B A9F2 LDA #LOW FPM8A8D A004 LDY #HIGH FPM8A8F 206566JSR FMULT8A92 A263 LDX #LOW FACTMP8A94 A003 LDY #HIGH FACTMPHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 4ModuleBIKIA8A96 JSR MOVMF8A99 A993 LDA #LOW FPSPEED108A98 A004 LDY #HIGH FPSPEED108A9D 20DF67JSR MOVFM8AA0 A9DE LDA #LOW FPV8AA2 A004 LDY #HIGH FPV8AA4 206566JSR FMULT8AA7 A2CA LDX #LOW FPARG8AA9 A003 LDY #HIGH FPARG8AAB 200D68JSR MOVMF;SAVE8AAE A993 LDA #LOW FPSPEED108A80 A004 LDY #HIGH FPSPEED108AB2 20DF67JSR MOVFM8AB5 A993 LDA #LOW FPSPEED108AB7 A004 LDY #HIGH FPSPEED108AB9 206566JSR FMULT8ABC A9E3 LDA #LOW FPV28ABE A004 LDY #HIGH FPV28AC0 206566JSR FMULT8AC3 A9CA LDA #LOW FPARG8AC5 A003 LDY #HIGH FPARG8AC7 200465JSR FADD8ACA A963 LDA #LOW FACTMP8ACC A003 LDY #HIGH FACTMP8ACE 200465JSR FADD8AD1 A255 LDX #LOW FPRPWR;REAL POWER8AD3 A004 LDY #HIGH FPRWR8AD5 200D68JSR MOVMF8AD8 DACCALC9;KEEP RUNNING STACK OF 108AD8 18CLC8AD9 A982 LDA #LOW FPRPWRSUM+408AD8 8522 STA PNT178ADD 6905 ADC #58ADF 8520 STA PNT168AE1 A904 LDA #HIGH FPRPWRSUM+408AE3 8523 STA PNT17+18AE5 6900 ADC #08AE7 8521 STA PNT16+18AE9 A208 LDX #88AEB DACCALC108AEB A004 LDY #48AED DACCALC118AED B122 LDA (PNT17),Y8AEF 9120 STA (PNT16),Y8AF1 88DEY8AF2 10F9 BPL DACCALC118AF4 CADEX8AF5 3013 BMI DACCALC128AF7 38SEC8AF8 A522 LDA PNT178AFA 8520 STA PNT16Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 5ModuleBIKIA8AFC E905 SBC #58AFE 8522 STA PNT178B00 A523 LDA PNT17+18B02 8531 STA PNT16+18B04 E900 SBC #08B06 8523 STA PNT17+18B08 80E1 BRA DACCALC108B0A DACCALC128B0A A25A LDX #LOW FPRPWRSUM8B0C A004 LDY #HIGH FPRPWRSUM8B0E 200D68JSR MOVMF8B11 A9CF LDA #LOW FPPOWER8B13 A003 LDY #HIGH FPPOWER8B15 20C966JSR CONVPK8B18 20EAFDJSR FPDIV8B1D A263 LDX #LOW FACTMP;SAVE8B1D A003 LDY #HIGH FACTMP8B1F 200D68JSR MOVMF8B22 A956 LDA #LOW INT1;<1?8B24 A063 LDY #HIGH INT18B26 20946 JSR FCOMP8B29 3008 BMI DACCALC00;YES8B2B AD0C02LDA DACTMP;ALREADY AT FULL LOAD?8B2E C9FF CMP #$FF8B30 D001 BNE *+3 ;NO8B32 60RTS ;YES. RETURN WITHOUT CHANGING8B33 DACCALC008B33 A963 LDA #LOW FACTMP8B35 A003 LDY #HIGH FACTMP8B37 20DF67JSR MOVFM8B3A A9D8 LDA#LOW INT14 ;1.48B3C 209468JSR FCOMP8B41 3006 BMI DACCALC0 ;OK,<1.4;JSR BEEP ;^TEST8B43 A9D8 LDA #LOW INT14 ;LOAD WITH 1.48B45 A063 LDY #HIGH INT148B47 8004 BRA DACCALC0A8B49 DACCALC08B49 A963 LDA #LOW FACTMP ;GET VALUE BACK8B4B A003 LDY #HIGH FACTMP8B4D DACCALC0A8B4D 20DF67JSR MOVFM8B50 A944 LDA #LOW FPDAC8B52 A004 LDY #HIGH FPDAC8B54 206566JSR FMULT8B57 A244 LDX #LOW FPDAC8B59 A004 LDY #HIGH FPDAC8B5B 200D68JSR MOVMFHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 6ModuleBIKIA8B5E 203664 JSR FADDH8B61 20D468 JSR QINT8B64 A5D8LDA FACMOH ;>255?8B66 F004BEQ DACCALC2 ;MAYBE NOT8B68 DACCALC18B68 A9FFLDA #$FF ;LOAD DAC PRETTY HEAVILY8B6A 8015BRA DACCALC48B6C DACCALC2 ;TRY NEXT BYTE8B6C A509LDA FACMO8B6E D0F8BNE DACCALC18B70 A5DALDA FACLO8B72 D00DBNE DACCALC48B74 A204LDX #48B76 DACCALC38B76 BDC963 LDA INT10,X8B79 9D4404 STA FPDAC,X8B7C CA DEX8B7D 10F7BPL DACCALC38B7F A90ALDA #108B81 DACCALC48B81 8D0C02 STA DACTMP8B84 8DA07F STA #7FAO8B87 60 RTSHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 1ModuleBIKIA;COPYRIGHT 1986 FRONTLINE TECHNOLOGY,INC.AC43* RIDCOR ;RIDE COURSEAC43*2068BEJSR BEEPAC46*9C4403STZ TIMTRLFLGAC49*AD1403LDA RIDLEVELAC4C*D005 BNE RIDCOR3AC4E*A980 LDA #$80AC50*8D4403STA TIMTRLFLG ;IGNORE PACK POSITIONAC53* RIDCOR3AC53*20728DJSR LDINITDACAC56*9C0A02STZ STARTFLGAC59*9C0B02STZ EXPFLGAC5C*2003C4JSR MENU1AC5F*20A3A5JSR DSPCRS ;DISPLAY COURSEAC62*206BC3JSR PRTLEVELAC65*2C4403BIT TIMTRLFLG ;TIME TRIAL?AC68*3003 BMI *+5 ;YES,FORGET PACK POSITIONAC6A*2009EAJSR MENU27AC6D*200BC7JSR MENU2SOFTAC70*648E STZ DISTAC72*208SD6JSR RESVALAC75*202EB3JSR RIDCURSAC78* RIDCOR4AC78*645F STZ KEYAC7A*20D3C2JSR KEYIN1AC7D*F0FB BEQ *-3AC7F*C911 CMP #$I1 ;STARTAC81*D003 BNE *+5AC83*4CA4ACJMP RIDCOR5AC86*C912 CMP #$12 ;EXPAND SCREENAC88*D003 BNE *+5AC8A*4C05B0JMP RIDCOR6AC8D*C913 CMP #$13 ;RESET VALUESAC8F*D009 BNE RIDCOR4AAC91*2068BEJSR BEEPAC94*2088D6JSR RESVALAC97*4C53ACJMP RIDCOR3AC9A* RIDCOR4AAC9A*C914 CMP #$14 ;PREVIOUS MENUAC9C*D0DA BNE RIDCOR4 ;INVALID KEYAC9E*2096C0JSR CHRLDACA1*4CEF86JMP RUNACA4* RIDCOR5 ;STARTACA4*2068BEJSR BEEPACA7*AD0A02LDA STARTFLGACAA*F003 BEQ *+5 ;NEW ENTRYACAC*4CE8ACJMP RIDCOR5BAACAF*2003C4JSR MENU1 ;REWRITEACB2*A58E LDA DISTACB4*48PHAHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 2ModuleBIKIAACB5*20A3A5JSR DSPCRSACB6*68PLAACB9*858E STA DISTACBB*202EB3JSR RIDCURSACBE*206BC3JSR PRTLEVELACC1*2C4403BIT TIMTRLFLG ;TIME TRIAL?ACC4*3003 BMI *+5 ;YESACC6*207FEAJSR MENU28 ;PACK POSITION WITHOUT NAMESACC9*2004C5JSR MENU1ASOFTACCC*A980 LDA #$80 ;MAKE AVG IN CENTERACCE*8D4603STA AVGHRTACD1* RIDCOR5A1ACD1*78SEIACD2*2088D6JSR RESVALACD5*20C3BEJSR UPDATEACD8*648E STZ DISTACDA*202EB3JSR RIDCURSACDD*A9FF LDA #$FFACDF*8D0A02STA STARTFLGACE2*6473 STZ DGCNT1ACE4*649E STZ DISTLASTACE6*8013 BRA RIDCOR5BBACE8* RIDCOR5BAACE8*A9FF LDA #$FF ;INDICATE NOW RUNNINGACEA*8D0A02STA STARTFLGACED*2004C5JSR MENU1ASOFTACF0*2C4403BIT TIMTRFLGACF3*3006 BMI *+8ACF5*20BEEAJSR MENU28CLRACF8*207FEAJSR MENU28ACFB* RIDCOR5BBACFB*209FA8JSR IRQENABLE ;ENABLE T1,CB1,CA1,CA2ACFE*A909 LDA #9AD00*8D4903STA HRTCNTAD03*9C0B02STZ EXPFLG ;CLR EXPAND FLGAD06* RIDCOR5AAAD06*A673 LDX DGCNT1AD0S*BD9B02LDA GRDHEX,X ;GET GRADEAD0B*8D4203STA GRADEAD0E*2019BAJSR HEXASCSHRTAD11*A569 LDA ASCI+6AD13*8D0603STA GRDASC+1AD16*A56A LDA ASCI+7AD18*8D0703STA GRDASC+2AD1B*A673 LDX DGCNT1AD1D*BDD702LDA SIGNCX,XAD20*8D0503STA GRDASCAD23*8D2002STA SIGNNAD26*C920 CMP #$20AD28*F008 BEQ RIDCOR5A2AD2A*A980 LDA #$80 ;MAKE GRADE NEGATIVEHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 3ModuleBIKIAAD2C*0D4203ORA GRADEAD2F*8D4203STA GRADEAD32* RIDCOR5A2AD32*209A89JSR GRADECALCAD35*A964 LDA #100 ;5 SEC DELAYAD37*85A6 STA TIMERSAD39*9C6B05STZ RANDISTSAVE ;0 RANDOM DISTANCEAD3C* RIDCOR5ABAD3C*645F STZ KEYAD3E*4C9BAFJMP RIDCOR5F ;GET PACK SPEEDAD41* RIDCOR5AAD41*8D6D03STA FACTMP2AD44*20D3C2JSR KEYIN1AD47*F03D BEQ RIDCOR5BAD49*C911 CMP #$11AD4B*D003 BNE *+5AD4D*4C7DB1JMP RIDCOR8 ;STOPAD50*2C0B02BIT EXPFLG ;EXPAND?AD53*301C BMI RIDCOR5CC ;YESAD55*C912 CMP #$12 ;EXPANDAD57*D003 BNE *+5AD59*4CB6B0JMP RIDCOR6BAD5C*C913 CMP #$13 ;PREVIOUS MENUAD5E*D003 BNE *+5AD60*4CAAB1JMP RIDCOR9 ;BACK TO PREVIOUS MENUAD63*C914 CMP #$14AD65*D0D5 BNE RIDCOR5AB ;INVALID KEYAD67*2068BEJSR BEEPAD64*A204 LDX #4 ;ROW 4AD6C*208892SR HRBEEPTOGGLELAD6F*80CB BRA RIDCOR5ABAD71* RIDCOR5CC ;EXPAND MODEAD71*C912 CMP #$12 ;PREVIOUS NORMAL SCREEN MENUAD73*D003 BNE *+5AD75*4CE9B1JMP RIDCOR12AD78*C913 CMP #$13AD7A*D0C0 BNE RIDCOR5ABAD7C*2068BEJSR BEEPAD7F*A203 LDX #3 ;ROW 3AD81*208892JSR HRBEEPTOGGLELAD84*80B6 BRA RIDCOR5ABAD86* RIDCOR5BAD86*2062B7JSR RPMCALCAD89*20D1B7JSR CADCALCAD8C*204CB8JSR HEARTCALCAD8F*202B8DJSR ADAVGAD92*A5A4 LDA TIMER3Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 4ModuleBIKIAAD94*F01A BEQ RIDCOR5CAD96*A5A3 LDA TIMER2AD98*D003 BNE *+5AD9A*4C22AEJMP RIDCOR5DAD9D*A5A7 LDA TIMER6AD9F*D003 BNE *+5ADA1*4CF2AFJMP RIDCOR5HADA4*2C4403BIT TIMTRLFLG ;0?ADA7*3098 BMI RIDCOR5A ;YES, SKIP PACK POSADA9*A5A5 LDA TIMER4ADAB*D094 BNE RIDCOR5AADAD*4C0BAFJMP RIDCOR5FADB0* RIDCOR5CADB0*A903 LDA #3ADB2*85A4 STA TIMER3ADB4*20E1B6JSR DISTCALCADB7*38SECADB8*A58E LDA DISTADBA*E59E SBC DISTLAST;GET DISTANCE SO FAR IN THIS SEGMENTADBC*A673 LDX DGCNT1ADBE*DDB902CMP DSTHEX,XADC1*D059 BNE RIDCOR5C2 ;OK,NOT THERE YETADC3*E673 INC DGCNT1ADC5*9CDF03STZ DGCNTFLGADC8*A673 LDX DGCNT1ADCA*E472 CPX DGCNTADCC*D003 BNE *+5 ;OK,NOT COMPLETELY DONEADCE*4C0FB2JMP RIDCOR14 ;^FOR NOW, STOPADD1*BD9B02LDA GRDHEX,XADD4*8D4203STA GRADEADD7*2019BAJSR HEXASCSHRTADDA*A569 LDA ASCI+6ADDC*8D0603STA GRDASC+1ADDF*A56A LDA ASCI+7ADE1*8D0703STA GRDASC+2ADE4*A673 LDX DGCNT1ADE6*BDD702LDA SIGNCX,XADE9*8D0503STA GRDASCADEC*8D2002STA SIGNNADEF*C920 DMP #$20ADF1*F019 BEQ RIDCOR5C0ADF3*AD4203LDA GRADE ;MAKE NEGATIVEADF6*0980 ORA #$80ADF8*8D4203STA GRADEADFB*BDD602LDA SIGNCX-1,X ;WAS LAST SEGMENT POSITIVE?ADFE*C920 CMP #$20AE00*D00A BNE RIDCOR5C0 ;NOAE02*A964 LDA #100 ;YES,LOAD 5 SEC DELAYAE04*85A6 STA TIMERSAE06*AD0602LDA RANDISTAE09*8D6B05STA RANDISTSAVEAE0C* RIDCOR5C0Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 5ModuleBIKIAAE0C*209A89JSR GRADECALCAE0F*20A5AFJSR RANDISTCALCAE12* RIDCOR5C1AE12*18CLCAE13*A673 LDX DGCNT1AE15*BDB802LDA DSTHEX-1,X ;ADD PREVIOUS DISTANCEAE18*659E ADC DISTLASTAE1A*859E STA DISTLASTAE1C* RIDCOR5C2AE1C*202EB3JSR RIDCURSAE1F*4C41ADJMP RIDCOR5AAE22* RIDCOR5DAE22*A5A2 LDA TIMER1AE24*85A3 STA TIMER2AE26*20C3BEJSR UPDATEAE29*2C4403BIT TIMTRLFLG ;0?AE2C*1003 BPL *+5AE2E*4C41ADJMP RIDCOR5A ;YES,SKIP PACK POSITIONAE31* RIDCOR5D0AE31*18CLCAE32*A5A6 LDA TIMER5 ;DELAY STILL ON?AE34*F008 BEQ RIDCOR5D0A ;NOAE36*AD0202LDA PHANTDIST+2AE39*6D6B05ADC RANDISTSAVEAE3C*8006 BRA RIDCOR5D0BAE3E* RIDCOR5D0AAE3E*AD0202LDA PHANTDIST+2AE41*6D0602ADC RANDISTAE44* RIDCOR5D0BAE44*6D0202STA PHANTDIST+2AE47*AD0102LDA PHANTDIST+1AE4A*6900 ADC #0AE4C*8D0102STA PHANTDIST+1AE4F*AD0002LDA PHANTDISTAE52*6900 ADC #0AE54*8D0002STA PHANTDISTAE57*9C0802STZ DISTDIR ;MAKE POSITIVE TO STARTAE5A*38SECAE5B*78SEIAE5C*AD5D03LDA RPMDIST+2AE5F*ED0202SBC PHANTDIST+2AE62*8D0502STA DISTDIFF+2AE65*AD5C03LDA RPMDIST+1AE68*ED0102SBC PHANTDIST+1AE6B*8D0402STA DISTDIFF+1AE6E*AD5B03LDA RPMDISTAE71*ED0002SBC PHANTDISTAE74*8D0302STA DISTDIFFHuntsville Macro Assembler 65002 cross assembler for PC-DOS 2.0v1.82L Page 6ModuleBIKIAAE77*58CLIAE78*B003 BCS *+5AE7A*ACOCAFJMP RIDCOR5D5 ;NEGATIVEAE7D* RIDCOR5D1AE7D*3BSECAE7E*ADO502LDA DISTDIFF+2AE81*E92B SBC #$28 ;1320 FEETAE83*ADO402LDA DISTDIFF+1AE86*e905 SBC#5AE88*ADO302LDA DISTDIFFAE8B*E900 SBC #0AE8P*9005 BCC RIDCOR5DIAAE8F*A92D LDA #45AE91*4CB7B2JMP PACKDISPO ;FULL WINLOADAE94* RIDCOR5DIAAE94*3BSECAE95*ADO502LDA DISTDIFF+2AE98*E978 SBC #120 ;120 FEETAE9A*ADO402LDA DISTDIFF+1AE9D*E900 SBC #0AE9F*ADO302LDA DISTDIFFAEA2*E900 SBC #0AEA4*9005 BCC RIDCOR5D2AEA6*A92B LDA #43AEAB*4CB7B2JMP PACKDISPO ; FULL WINLOADAEAB* RIDCOR5D2AEAB*3bSECAEAC*ADO502LDA DISTDIFF+2AEAF*E964 SBC #100 ;100 FEETAEB1*ADO402LDA DISTDIFF+1AEB4*E900 SBC #0AEB6*ADO302LDA DISTDIFFAEB9*E900 SBC #0AEBB*9005 BCC RIDCOR5D2AAEBD*A927 LDA #39AEBF*4CBOB2JMP PACKDISPAEC2* RIDCOR5D2AAEC2*38SECAEC3*ADO502LDA DISTDIFF+2AEC6*E950 SBC #80 ;80 FEETAEC8*ADO402LDA DISTDIFF+1AECB*E900 SBC #0AECD*ADO302LDA DISTDIFFAEDO*E900 SBC #0AED2*9005 BCC RIDCOR5D3AED4*A926 LDA #38AED6*4CBCB2JMP PACKDISPAED9* RIDCOR5D3AED9*38Q SECAEDA*AD0502LDA DISTDIFF+2Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 7ModuleBIKIAAEDD*E93C SBC#60 ;60 FEETAEDF*ADO402LDA DISTDIFF+1AEE2*E900 SBC #0AEE7*E900 SBC #0AEE9*9005 BCC RIDCOR5D3AAEEB*A925 LDA #37AEED*4CBCB2JMP PACKDISPAEFO* RIDCOR5D3AAEFO*38SECAEF1*ADO502LDA DISTDIFF+2AEF4*E920 SBC #40 ;40 FEETAEF6*ADO402LDA DISTDIFF+1AEF9*E900 SBC #0AEFB*ADO302LDA DISTDIFFAEFE*E900 SBC #0AF00*9005 BCC RIDCOR5D4AFO2*A924 LDA #36AFO4*4CBCB2JMP PACKDISPAF07* RIDCOR5D4AF07*A923 LDA #35 ;LESS THAN 40 FEETAF09*4CBCB2JMP PACKDISPAFOC* RIDCOR5D5AFOC*38SECAFOD*ADO502LDA DISTDIFF+2AF10*E9D8 SBC #$D8 ;-1320 FEETAF12*ADO402LDA DISTDIFF+1AF15*E9FA SBC #$FAAF17*ADO302LDA DISTDIFFAF1A*E9FF SBC #$FFAFIC*B005 BCS RIDCOR5D5AAF1E*A9191 LDA #25 ;>1320 FEET OFFAF20*4CB7B2JMP PACKDISPO ;FULL WINLOADAF23* RICDCOR5D5AAF23*38SECAF24*AD502 LDA DISTDIFF+2AF27*E983 SBC #$88 ;-120 FEETAF29*AD0402LDA DISTDIFF+1AF2C*E9FF SEC #$FFAF2E*ADO302LDA DISTDIFFAF31*E9FF SBC #$FFAF33*B005 BCS RIDCOR56AF35*A91B LDA #27 ;120 FEET OFFAF37*4CB7B2JMP PACKDISPO; FULL WINDLOADAF3A* RIDCOR5D6AF3A*38SECAF3B*ADO502LDA DISTDIFF+2AF3E*E99C SBC #$9C ;-100 FEETAF40*AD0402LDA DISTDIF+1AF43*E9FF SBC #$FFHuntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 8ModuleBIKIAAF45*AD0302 LDA DISTDIFFAF46*E9FF SBC #$FFAF4A*B005 BCS RIDCOR5D6AAF4C*A91F LDA #31AF4E*4CBCB2 JMP PACKDISPAF51* RIDCOR5D6AAF51*38 SECAF52*AD0502 LDA DISTDIFF+2AF55*E9B0 SBC #$B0 ;-80 FEETAF57*AD0402 LDA DISTDIFF+1AF5A*E9FF SBC #$FFAF5C*AD0302 LDA DISTDIFFAF5F*E9FF SBC #$FFAF61*B005 BCS RIDCOR5D7AF63*A920 LDA #32AF65*4CBCB2 JMP PACKDISPAF68* RIDCOR5D7AF68*38 SECAF69*AD0502 LDA DISTDIFF+2AF6C*E9C4 SBC #$C4 ;-60 FEETAF6E*AD0402 LDA DISTDIFF+1AF71*E9FF SBC #$FFAF73*AD0302 LDA DISTDIFFAF76*E9FF SBC #$FFAF78*B005 BCS RIDCOR5D7AAF7A*A921 LDA #33AF7C*4CBCB2 JMP PACKDISPAF7F* RIDCOR5D7AAF7F*38 SECAF80*AD0502 LDA DISTDIFF+2AF83*E9D8 SBC #$D8 ;-40 FEETAF85*AD0402 LDA DISTDIFF+1AF88*E9FF SBC #$FFAF8A*AD0302 LDA DISTDIFFAF8D*E9FF SBC #$FFAF8F*B005 BCS RIDCOR5D8AF91*A922 LDA #34AF93*4CBCB2 JMP PACKDISPAF96* RIDCOR5D8AF96*A923 LDA #35 ;LESS THAN 40 FEET BEHINDAF98*4CBCB2 JMP PACKDISPAF9B* RIDCOR5F ;CALCULATE PACK POSITIONAF9B*A917 LDA #23AF9D*85A5 STA TIMER4AF9F*20A5AF JSR RANDISTCALCAFA2*4C41AD JMP RIDCOR5AAFA5* RANDISTCALCAFA5*AD5D03 LDA RPMDIST+2AFA8*2907 AND #7Huntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 9ModuleBIKIAAFAA*OA ASL A ;*2AFAB*AA TAXAFAC*BDB45B LDA MULTADDR,XAFAF*8570 STA INDEX4AFB1*BDB55B LDA MULTADDR+1,XAFB4*8571 STA INDEX4+1AFB6*2033FA JSR RDYFACAFB9*AD1403 LDA RIDLEVELAFBC*38 SECAFBD*E901 SBC #1 ;MAKE 0-8AFBF*0A ASL A ;*16 (FOR 16 GRADES)AFC0*0A ASL AAFC1*0A ASL AAFC2*0A ASL AAFC3*8585 STA ASAVE3AFC5*AD4203 LDA GRADEAFC8*297F AND #$7FAFCA*18 CLCAFCB*6585 ADC ASAVE3AFCD*AA TAXAFCE*AD2002 LDA SIGNNAFD1*C92D CMP #′-′;NEGATIVE?AFD3*F018 BEQ RIDCOR5G2AFD5* RIDCOR5GAFD5*BDE25B LDA BASEDISTP,XAFD8* RIDCOR5G1AFD8*85DA STA FACLOAFDA*209965 JSR NORMALAFDD*A570 LDA INDEX4AFDF*A471 LDY INDEX4+1AFE1*208966 JSR FMULTAFE4*20F868 JSR QINTAFE7*A5DA LDA FACLOAFE9*8D0602 STA RANDISTAFEC*60 RTSAFED* RIDCOR5G2 ;NEGATIVE SLOPEAFED*BD725C LDA BASEDISTN,XAFF0*80E6 BRA RIDCOR5G1AFF2* RIDCOR5HAFF2*A906 LDA #6AFF4*85A7 STA TIMER6AFF6*20078A JSR SPEEDDIV10AFF9*20BD89 JSR WINDCALCAFFC*206E89 JSR POWERCALCAFFF*20198A JSR DACCALCB002*4C41AD JMP RIDCOR5AHuntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.32L Page 10ModuleBIKIAB005* RIDCOR6 ;EXPANDB005*2068BE JSR BEEPB009*2003C4 JSR MENU1B00E*206BC3 JSR PRTLEVELB00E*A9FF LDA #$FFB000*8D0B02 STA EXPFLGB016*AD0A02 LDA STARTFLGB018*F003 BEQ *+5 ;NEW ENTRYB019*4C56B0 JMP RIDCOR6A0B01B*78 SEIB01C*2088D6 JSR RESVALB01F*20C3BE JSR UPDATEB022*58 CLI ;^B023*640E STZ PNT7 ;ARTIFICIALLY LOAD PNT7 IN MIDDLE OFSCREEN FOR BLKCURSB025*A92C LDA #$2C ;30B027*850F STA PNT71B029*20A3A5 JSR DSPCRSB02D*648E STZ DISTB02E*6499 STZ DIST5B030*58 CLIB031*202EB3 JSR RIDCURSB034*A9FF LDA #$FFB036*8D0A02 STA STARTFLGB039*6473 STZ DGCNT1B03B*9CDF03 STZ DGCNTFLGB03E*649E STZ DISTLASTB040*AD9B02 LDA GRDHEX ;GET 1ST GRADEB043*8D4203 STA GRADEB046*2019BA JSR HEXASCSHRTB049*A569 LDA ASCI+6B04B*8D0603 STA GRDASC+1B04E*A56A LDA ASCI+7B050*8D0703 STA GRDASC+2B053*4C5EB0 JMP RIDCOR6A1B056* RIDCOR6A0B056*20D8B0 JSR EXPCALCB059*A9FF LDA #$FFB05B*8D0A02 STA STARTFLGB05E* RIDCOR6A1B05E*2C4403 BIT TIMTRLFLG ;TIME TRIAL?B061*3006 BMI *+8 ;YESB063*20BEEA JSR MENU28CLRB066*2009EA JSR MENU27B069* RIDCOR6AAB069*2083C5 JSR MENU1HSOFT ;^STZ MMFLG ;FOR SCROLLB06C* RIDCOR6AB06C*645F STZ KEYB06E*20D3C2 JSR KEYIN1B071*F0FB BEQ *-3Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 11ModuleBIKIAB073*C911CMP #$11 ;startB075*D003BNE *+5B077*4000B1 JMP RIDCOR11B07A*C913CMP #$13 ;RESET VALUESB07B*D003BNE *+5B07E*4CB0B0 JMP RIDCOR6ATB081*C912CMP #$12 ;PREVIOUS MENUB088*D003BNE *+5 ;^TEST ;BNE RIDCOR6A ;INVALID KEYB085*4C32B1 JMP RIDCOR7B088*0914CMP #$14B0BA*D0E0BNE RIDCOR6A;^TESTB080*2068BE JSR BEEPB08F*2CC205 BIT MMFLG ;ANY COURSE LEFT?B092*1005BPL RIDCOR6AZ ;YESB094*900205 STZ MMFLG ;RESET TO 0B097*8017BRA RIDCOR6AT ;RESET AND RTNB099*RIDCOR6AZB099*2003C4 JSR MENU1B890*2083C5 JSR MENU1HSOFTB09F*20B5A5 JSR DSPCRS01;BCS RIDCOR6AX ;NOT DONE YET;LDA #$FF ;FINISHED;STA MMFLGB0A2*RIDCOR6AXB0A2*206BC3 JSR PRTLEVEL;JSR TESTB0A5*2C4403 BIT TIMTRLFLG ;TIME TRIAL?B0AB*3003BMI *+5 ;YESB0AA*2009EA JSR MENU27B0AD*4C6CB0 JMP RIDCOR6AB0B0*RIDCOR6AT ;RESET VALUESB0B0*2088D6 JSR RESVALB0B3*4C05B0 JMP RIDCOR6B0B6*RIDCOR6B ;EXPAND WHILE RUNNINGB0B6*2058BE JSR BEEPB0B9*2003C4 JSR MENU1B0BC*2028C5 JSR MENU1BSOFTB0BF*206BC3 JSR PRTLEVELB0C2*A9FFLDA #$FFB0C4*8D0B02 STA EXPFLGB0C7*20D8B0 JSR EXPCALCB0CA*2C4403 BIT TIMTRLFLG ;TIME TRIAL?B0CD*3006BMI *+8 ;YESB0CF*20BEEA JSR MENU28CLRHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 12ModuleBIKIAB0D2*207FEA JRS MENU28B0D5*4C06AD JMP RIDCOR5AADOD6*EXPCALCB0D6*2033F4 JSR RDYFACB0DE*A58ELDA DISTB0DD*85DASTA FACLOB0DF*209965 JSR NORMALB0E2*204367 JSR MUL10B0E5*A21ELDX #LOW DIST6B0E7*A004LDY #HIGH DIST6B0E9*203168 JSR MOVMFB0EO*A200LDX #0B0EE*9C2202 STZ DSTTOTB0F1*EXPCALCBB0F1*18 CLCB0F2*BDB902 LDA DSTHEX,XB0F5*6D2202 ADC DSTTOTB0F8*8D2202 STA DSTTOTB0FE*E473CPX DGCNT1B0FD*F003BEO EXPCALCCB0FF*E8 INXB100*D0EFBNE EXPCALCB ;ALWAYSB102*EXPCALCCB102*869fSTX BYTDISTB104*38 SECb105*AD2202 LDA DSTTOTB108*E58ESBC DISTB10A*8593STA DIST3B10C*A204LDX #4B10e*EXPCALCDB10E*B599LDA DIST5,XB110*9594STA DIST4,XB112*CA DEXB113*10F9BPL EXPCALCDB115*A58ELDAB117*48 PHAB118*20B5A5 JSR DSPCRS01B11B*68 PLAB11C*858ESTA DISTB113*9C1502 STZ LAPNRB121*6488STZ NRBYTB123*640ESTZ PNT7 ;ARTIFICALLY LOAD PNT7 INMIDDLE OF SCREEN FOR BLKCURSB125*A930LDA #$30B127*850FSTA PNT7+1B129*A673LDX DGCNT1B12B*BD0004 LDA SEGADDR+1,XB12E*2087B3 JSR RIDCURS0B131*60 RTSHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 13ModuleBIKIAB132*RIDCOR7 ;COMPRESS DISPLAYB132*2068BE JSR BEEPB135*9C0B02 STA EXPFLG ;CLR EXPAND FLAGB138*A58ELDA DIST ;SAVE DISTB13A*48 PHAB13B*2003C4 JSR MENU1B13E*20A3A5 JSR DSPCRSB141*206BC3 JSR PRTLEVELB144*200BC7 JSR MENU2SOFTB147*68 PLAB148*858ESTA DISTB14A*2058B1 JSR NORMCALCB14D*2C4403 BIT TIMTRLFLG ;TIME TRIAL?B150*3003BMI *+5 ;YESB152*2009EA JSR MENU27B155*4C78AC JMP RIDCOR4 ;FOR NOWB158*NORMCALCB158*9C2202 STZ DSTTOTB15B*6488STZ NRBYTB15D*A200LDX #0B15F*NORMCALCAB15F*E473CPX DGCNT1B161*F00DBEQ NORMCALCBB163*18 CLCB164*BDB902 LDA DSTHEX,XB167*6D2202 ADC DSTTOTB16A*8D2202 STA DSTTOTB16D*E8 INXB16E*D0EFBNE NORMCALCA ;ALWAYSB170*NORMCALCBB170*A673LDX DGCNT1B172*F005BEQ NORMCALCC ;0,SKIP RESTB174*BDFF03 LDA SEGADDR,XB177*8588STA NRBYTB179*NORMCALCCB179*20F5B3 JSR RIDCURSBB17C*60 RTSB17D*RIDCOR8 ;STOPB17D*20B4C3 JSR STOPVAL ;PUT SOME VALUES TO 0B180*EE0A02 INC STARTFLG ;PUT BACK TO $01B183*2068BE JSR BEEPB186*2C0B02 BIT EXPFLGB189*100EBPL RIDCOR8AB18B*2C4403 BIT TIMTRLFLGB18E*3006BMI *+8B190*20BEEA JSR MENU28CLRB193*2009EA JSR MENU27B196*4C69B0 JMP RIDCOR6AAHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 15ModuleBIKIAB199*RIDCOR8AB199*2C4403 BIT TIMTRLFLGB19C*3006BMI *+8B19E*20BEEA JSR MENU28CLRB1A1*2009EA JSR MENU27B1A4*200BC7 JSR MENU2SOFTB1A7*4C7BAO JMP RIDCOR4B1AA*RIDCOR9 ;BACK TO PREVIOUS MENUB1AA*A953LDA #$53 ;T1,CA1,CA2,CB1,1RC OFFB1AC*BDBE7F STA $7F8EB1AF*2096C0 JSR CHRLDB1B2*4CEF86 JMP RUNB1B5*RIDCOR10B1B5*A953LDA #$58 ;CA1,CA2,CE1,1RQ OFFB1B7*8D8E7F STA $7F8EB1BA*4C6CB0 JMP RIDCOR6AB1C0*RIDCOR11B1C0*209FA8 JSR 1RQENABLEB1C3*AD0102 LDA STARTFLG ;PREVIOUSLY RUNNING?B1C6*F019BEQ RIDCOR ;1A ;NOB1C8*A9FFLDA #$FFB1CA*8D0A02 STA STARTFLG ;INDICATE NOW RUNNINGB1CD*2068BE JSR BEEPB1D0*202805 JSR MENU1BSOFTB1D3*204403 BIT TIMTRLFLGB1D6*3006BMI *+8B1D8*20BEEA JSR MENU28CLRB1DB*207FEA JSR EMNU28B1DE*4C06AD JMP RIDCOR5AAB1E1*RIDCOR11ADB1E1*A9FFLDA #$FFB1E3*8D0A02 STA STARTFLGB1E6*4CB6B0 JMP RIDCOR6BB1E9*RIDCOR12 ;BACK TO NORMAL DISPLAYB1E9*2068BE JSR BEEPB1EC*9C0B02 STZ EXPFLG ;CLEAR EXPAND FLAGB1EF*2003C4 JSR MENU1B1F2*2004C5 JSR MENU1ASOFTB1F5*206BC3 JSR PRTLEVELB1F8*A58ELDA DIST ;SAVE DISTB1FA*48 PHAB1FB*20A3A5 JSR DSPCRSB1FE*68 PLAB1FF*858ESTA DISTB201*2058B1 JSR NORMCALCB204*2C4403 BIT TIMTRLFLG ;TIME TRIAL?B207*3003BMI *+5 ;YESB209*207FEA JSR MENU28B20C*4CFBAC JMP RIDCOR5BBHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 15ModuleBIKIAB20F* RIDCOR14 ;STOP AT END OF COURSEB20F*2068BE JSR BEEPB212*20B4C3 JSR STOPVAL ;PUT SOME VALUES TO 0B215*20C3BE JSR UPDATEB218*2045C5 JSR MENU1CSOFT ;ERASE SOFTKEYSB21B*2C0B02 BIT EXPFLG ;EXPAND?B21E*1006 BPL RIDCOR14B ;NOB220*2083C5 JSR MENU1HSOFTB223*4C29B2 JMP RIDCOR14CB226* RIDCOR14BB226*200BC7 JSR MENU2SOFTB229* RIDCOR14CB229*2C4403 BIT TIMTRLFLGB22C*3006 BMI *+8B22E*20BEEA JSR MENU28CLR ;CLR MENU28B231*2009EA JSR MENU27B234* RIDCOR14DB234*645F STZ KEYB236*20D3C2 JSR KEY1N1B239*F0FB BEQ *-3B23B*C911 CMP #$11 ;STARTB23D*D003 BNE *+5B23F*4CA6B2 JMP RIDCOR15B242*2C0B02 BIT EXPFLG ;EXPAND?B245*3027 BMI RIDCOR14F ;YESB247*C912 CMP #$12 ;EXPAND SCREENB249*D003 BNE *+5B24B*4C05B0 JMP RIDCOR6B24E*C913 CMP #$13 ;RESET VALUESB250*F007 BEQ RIDCOR14EB252*C914 CMP #$14 ;PREVIOUS MENUB254*D0DE BNE RIDCOR14DB256*4CAAB1 JMP RIDCOR9B259* RIDCOR14E ;RESET VALUESB259*2068BE JSR BEEPB25C*9C0A02 STZ STARTFLGB25F*205BB5 JSR BLKCURSB262*2088D6 JSR RESVALB265*20C3BE JSR UPDATEB268*202EBE JSR RIDCURSB26B*4C34B2 JMP RIDCOR14DB26E* RIDCOR14FB26E*C913 CMP #$13 ;RESET VALUESB270*D003 BNE *+5B272*4C7FB2 JMP RIDCOR14GB275*C912 CMP #$12 ;PREVIOUS MENUB277*D0BB BNE RIDCOR14D ;INVALID KEYB279*2068BE JSR BEEPB27C*4C53AC JMP RIDCOR3Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 16ModuleBIKIAB27F*RIDCOR14GB27F*2068BE JSR BEEPB282*208BD6 JSR RESVALB285*9C0A02 STZ STARTFLGB288*2003C4 JSR MENU1B28B*20A3A5 JSR DSPCRSB28E*206BC3 JSR PRTLEVELB291*648ESTZ DISTB293*6499STZ DIST5B295*202EB3 JSR RIDCURSB298*2083C5 JSR MENU1HSOFTB29B*2C4403 BIT TIMTRLFLGB29E*3003BMI*+5B2A0*2009EA JSR MENU27B2A3*4C34B2 JMP RIDCOR14DB2A6*RIDCOR15 ;START AFTER COURSE ENDED;JSR BEEPB2A6*9C0A02 STZ STARTFLGB2A9*2088D6 JSR RESVALB2AC*2C0B02 BIT EXPFLG ;EXPAND?B2AF*3003BMI *+5 ;YESB2B1*4CA4AC JMP RIDCOR5B2B4*4CC0B1 JMP RIDCOR11B2B7*PACKDISPO ;FULL WINDLOADB2B7*9C6905 STZ WINDLOADFLGB2BA*8005BRA PACKDISP00B2BC*PACKDISP ;DISPLAY IN PACK POSITIONB2BC*A2FFLDX #$FFB2BE*8E6905 STX WINDLOADFLGB2C1*PACKDISP00B2C1*48 PHA ;SAVE POSITIONB2C2*A510LDA PNT8B2C4*8500STA ADDRB2C6*A511LDA PNTS+1B2C8*8501STA ADDR+1B2CA*A205LDX #5B2CC*A000LDY #0B2CE*PACKDISP1B2CE*A900LDA #0 ;CLEAR EXISTING PACKB2D0*9100STA (ADDR),YB2D2*CA DEXB2D3*F005BEQ PACKDISP2B2D5*207FA7 JSR ADD40B2D8*80F4BRA PACKDISP1B2DA*PACKDISP2B2DA*48 PLA ;GET POSITION BACKB2DB*8500STA DDDRB2DD*8510STA PNT8Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 17ModuleBIKIAB2DF*A920LDA #$20B2E1*8501STA ADDR+1B2E3*A205LDX #5B2E5A000LDY #0B2E7*PACKD1SP3B2E7*A9FFLDA #$FFB2E9*9100STA (ADDR),YB2EB*CA DEXB2EC*F005BEQ PACKDISP4B2EE*207FA7 JSR ADD40B2F1*80F4BRA PACKDISP3B2F3*PACKDISP4B2F3*4C41AD JMP RIDCOR5AHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 1ModuleBIKIACOPYRIGHT 1986 FRONTLINE TECHNOLOGY,INC.92B0* AUTWRK92BO*209AD6 JSR RESVAL ;RESET ALL VALUES92B3* AUTWRKO92B3*207ABE JSR BEEP92B6203397 JSR LIMITCALC ;CALCULATE UPPER AND LOWER LIMITS92B9*20ECEA JSR MENU30 ;AUTO TARGET MENU92BC*20B5A3 JSR DSPONG ;DISPLAY ON92BF* AUTWRK192BF*207EA5 JSR KEYIN ;READ KEYBOARD92C2*207ABE JSR BEEP92C5*C911 CMP #$11 ;START92C7*D003 BNE *+592C9*4C1D95 JMP AUTOSTART92CC*C912 CMP #$ ;CHANGE LIMITS92CE*D003 BNE *+592DO*4CE792 JMP AUTWRK292D3*C913 CMP #$13 ;CHANGE MAX92D5*DOO3 BNE *+592d7*4CSD94 JMP AUTWRK392DA*C914 CMP #$1492DC*D0E1 BNE AUTWRK192DE*9CD17F STZ $7FD192E1*20A8C0 JSR CHRLD92E4*4C7587 JMP EXMODE ;PREVIOUS MENU92E7* AUTWRK2 ;CHANGE LIMITS92E7*2041F2 JSR MENU31 ;DISPLAY92EA*2098F3 JSR MENU3292ED* AUTWRK2A92ED*207EAD JSR KEYIN ;READ KB92FO*207ABE JSR BEEP92F3*C911 CMP #$11 ;UPPER LIMIT92F5*FOOD BEQ AUTWRK2B92F7*C912 CMP 3$12 ;LOWER LIMIT92F9*D003 BNE*+592FB*4CD493 JMP AUTWRK2J92FE*C913 CMP #$13 ;PREVIOUS MENU9300*DOEB BNE AUTWRK2A9302*80AF BRA AUTWRKO9304* AUTWRK2B ;UPPER LIMIT9304*A9FF LDA #$FF9306*8D1F02 STA DPFLG ;DP NOT ALLOWED9309* AUTWRK2B19309*A900 LDA #0 ;CLR BLOCK930B*8DA224 STA $24A2930E*8DA324 STA $24A39311*8DA424 STA $24A49314*8DD824 STA $24D8 ;BLINK OFFHuntsville Macro Asembler 65c02 cross assembler for PC-D03 2.0v1.82L Page 2ModuleBIKIA9317*8DA924 STA $24A9931A*A901LDA #1 ;BLOCK931C*8DA223 STA $23A2931F*8DA323 STA $23A39322*8DA423 STA $23A49325*A902LDA #2 ;BLINK THESE9327*8DD923 STA $23D9932A*A9A0LDA #$AO932C*8DD823 STA $23D8932F*AUTWRK2C923F*207EA5 JSR KEYIN9332*207ABE JSR BEEP9335*C911CMP #$11 ;UPPER LIMIT (AGAIN)9337*FODOBEQ AUTWRK2B19339*C912CMP #$12 ;LOWER LIMIT933B*D003BNE *+5933D*4CD493 JMP AUTWRK2J9340*C913CMP #$13 ;PREVIOUS MENU9342*D003BNE *+59344*4CB392 JMP AUTWRKO ;DOES LIMITCALC9347*C905CMP #5 ;-9349*FO4DBEQ AUTWRK2D934B*C909CMP #9 ;-934D*FO62BEQ AUTWRK2G934F*C93ACMP #$3A9351*BODCBCS AUTWRK2C ;>99353*C930CMP #$309355*90D8BCC AUTWRK2C ;<09357*48 PHA9358*A980LDA #$80935A*8500STA ADDR935C*A923LDA #$23935E*8501STA ADDR+19360*A203LDX #39362*867ASTX XSAVE9364*A022LDY #349366*847eSTY YSAVE9368*A200LDX #0936A*68 PLA936B*2067A4 JSR INDTO1+3936E*B094BCS AUTWRK2B ;INVALID KEY9370*20B2BA JSR ASCHEX9373*AE2702 LDX USERID9376*18 CLC9377*BD1005 LDA LOWLIM,X937A*6905ADC #5937C*C56CCMP HEX+1937E*B084BCS AUTWRD2B ;BELOW OR = LOW LIMIT+59380*1B CLC9381*A56CLDA HEX+19383*6905ADC #59385*DD3AO5 CMP HRTMAX,X9388*9003BCC *+5938A*4CO493 JMP AUTWRK2B ;ABOVE OR = MAX-5Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 3ModuleBIKIA93SD*A56C LDA HEX+1938F*9D2505STA HIGHLIM,X9392*203397JSR LIMITCALC9395*4CE792JMP AUTWRK29398* AUTWRK2D ;-9398*AE2702LDX USERID939B*18CLC939C*BD1005LDA LOWLIM,X939F*6905 ADC #593A1*DD2505CMP HIGHLIM,X93A4*B089 BCS AUTWRK2C ;AT OR BELOW LOW LIMIT+593A6*BD2505LDA HIGHLIM,X93A9*38SEC93AA*E901 SBC #193AC*9D2505STA HIGHLIM,X93AF*801A BRA AUTWRK2G193B1* AUTWRK2G ;+93B1*AE2702LDX USERID93B4*18CLC93B5*BD205 LDA HIGHLIM,X93B8*6905 ADC #593BA*DD3A05CMP HRTMAX,X93BD*9003 BCC *+593BF*4C2F93JMP AUTWRK2C ;ALREADY AT MAX93C2*18CLC93C3*BD2505LDA HIGHLIM,X93C6*6901 ADC #193C8*9D2505STA HIGHLIM,X93CB* AUTWRK2G193CB*203397JSR LIMITCALC93CE*204BF3JSR MENU31A93D1*4C0993JMP AUTWRK2B193D4* AUTWRK2J ;LOWER LIMIT93D4*A900 LDA #093D6*8DA223STA #$23A2 ;CLR BLOCK93D9*8DA323STA $23A393DC*8DA423STA $23A493DF*8DD823STA $23D8 ;CLR BLIND93E2*8DD923STA $23D993E5*A901 LDA #193E7*8DA224STA $24A2 ;BLOCK93EA*8DA324STA $24A393ED*8DA424STA $24A493F0*A9A0 LDA #$A093F2*8DD824STA $24D893F5*A902 LDA #293F7*8DD924STA $24D9]93FA*A9FF LDA #$FF93FC*8D1F02STA DPFLG ;NO DP93FF AUTWRK2KHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82l Page 4ModuleBIKIA93FF*207EA5JSR KEYIN9402*207ABEJSR BEEP9405*0911 CMP #$11 ;UPPER LIMIT9407*D003 BNE *+59409*4C0493JMP AUTWRK2B940C*C912 CMP #$12 ;LOWER LIMIT (AGAIN)940E*F0EF BEQ AUTWRK2K9410*C913 CMP #$13 ;PREVIOUS MENU9412*D003 BNE *+59414*4CB392JMP AUTWRK09417*0905 CMP #5 ;-9419*FO42 BEQ AUTWRK2M941B*C909 CMP #9 ;+941D*FO4E BEQ AUTWRK2N941F*C93A CMP #$3A9421*BQDC B0S AUTWRK2K ;>99423*C930 CMP #$309425*90D8 BCC AUTWRK2K ;<09427*48PHA9428*A980 LDA #$80942A*8500 STA ADDR942C*A924 LDA #$24942E*8501 STA ADDR+19430*A203 LDX #39432*867a STX XSAVE9434*A022 LDY #349436*847E STY YSAVE9438*A200 LDX #0943A*68PLA943B*2067A4JSR INDTO1+3943E*B094 BCS AUTWRK2J ;INVALID KEY9440*20B2BAJSR ASCHEX9443*AE2702LDX USERID9446*A56C LDA HEX+19448*F08A BEQ AUTWRK2J ;0944A*18CLC944B*6905 ADC #5944D*DD2505CMP HIGHLIM,X9450*B082 BCS AUTWRK2J ;AT OR ABOVE HIGH LIMIT-59452*A560 LDA HEX+19454*951005STA LOWLIM,X9457*203397JSR LIMITCALC945A*4CE792JMP AUTWRK2945D* AUTWRK2M ;-945D*AE2702LDX USERID9460*BD1005LDA LOWLIM,X9463*FO9A BEQ AUTWRK2K ;ALREADY 09465*38SEC9466*E901 SBC #194689D1005 STA LOWLIM,X946B*8017 BRA AUTWRK2N1Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 5ModuleBIKIA946D* AUTWRK2N946D*AE2702LDX USERID9470*18CLC9471*BD1005LDA LOWLIM,X9474*6905 ADC #59476*DD2505CMP HIGHLIM,X9479*b084 BCS AUTWRK2K ;ALREADY AT HIGH LIMIT-5947B*18CLC947C*BD1005LDA LOWLIM,X947F*6901 ADC #19481*9D1005STA LOWLIM,X9484* AUTWRK2N19484*203397JSR LIMITCALC9487*204BF3JSR MENU31A94BA*4CD493JMP AUTWRK2J948D* AUTWRK3948D*20B0F3JSR MENU339490* AUTWRK3A9490*A901 LDA #19492*8D9823STA $2398 ;BLOCK9495*8D9923STA $23999498*8D9A23STA $239A949B*A92A LDA #$2A949D*8DD623STA $23D694A0*A9FF LDA #$FF94A2*BD1F02STA DPFLG ;NO DP94A5* AUTWRK3B94A5*207EA5JSR KEYIN94AB*207ABEJSR BEEP94AB*C911 CMP #$11 ;PREVIOUS MENU94AD*D003 BNE *+594AF*4CB392JMP AUTWRK094B2*C905 CMP #5 ;-94B4*F03A BEQ AUTWRK3C94B6*C909 CMP #9 ;+94B8*F047 BEQ AUTWRK3D94BA*C93A CMP #$3A94BC*B0E7 BCS AUTWRK3B ;>994BE*C930 CMP #$3094C0*90E3 BCC AUTWRK3B ;<094C2*48PHA94C3*A980 LDA #$8094C5*8500 STA ADDR94C7*A923 LDA #$239409*8501 STA ADDR+194CB*A203 LDX #394CD*867A STX XSAVE94CF*A018 LDY #2494D1*847E STY YSAVE94D3*A200 LDX #0Huntsville Macro Assembler 65C02 cross assembler for PC-D06 2.0v1.82L Page 6 Mod 1BIKIA94D5*6B FLA94D6*2065A4 JSR INDT01+394D9*B055 BOS AUTWRK3A ;INVALID KEY94DB*20A0BA JSR ASCHEX94DE*AE2702 LDX USERID94E1*A56C LDA HEX+194E3*C9DD CMP #22194E5*60A9 BCS AUTWRK3A >22094E7*9D3A05 STA HRTMAX,X94EA*208D86 JSR UFLOWCALC CALCULATE NEW LIMITS94ED*4CB392 JMP AUTWRKO94F0* AUTWRK30 -94F0*AE2702 LDX USERID94F3*BD3A05 LDA HRTMAX,X94F6*38 SEC94F7*E901 SBC #194F9*9D3A05 STA HRTMAX,X94FC*208D86 JSR UPLOWCALC ;CALCULATE NEW LIMITS94FF*8013 BRA AUTWRK3D19501* AUTWRK3D ;+9501*AE2702 LDX USERID9504*BD3A05 LDA HRTMAX,X9507*C9DC CMP #2209509*B09A BCS AUTWRK3B ;ALREADY AT 220950E*18 CLC950C*6901 ADC #1950E*9D3A05 STA HRTMAX,X9511*208D86 JSR UPLOWCALC ;CALCULATE NEW LIMITS9514* AUTWRK3D19514*203197 JSR LIMITCALC9517*20EDF3 JSR MENU33A951A*4C9094 JMP AUTWRK3A951D* AUTOSTART ;START AUTO TARGET951D*20BAED JSR MENU30ASOFT ;SOFT KEYS9520*20728D JSR LDINITDAC ;INITIALIZE A/D,LOAD VALUES INFLOATING POINT9523*209FA8 JSR IRQENABLE9526*9C6F05 STZ DECFLG952C*9C7005 STZ FACEFLG952f*a909 LDA #9 ;10 READINGS9531*8D4903 STA HRTCNT9534*2057F0 JSR WARMUP ;″WARM-UP″9537* AUTOS19537*645F STZ KEY9539* AUTOS29539*2062B7 JSR RPMCALC ;CALCULATE SPEEDHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 7 Module;BIKIA9530*20D1B7JSR CADCALC ;CALCULATE CADENCE953F*204CB8JSR HEARTCALO ;CALCULATE HEART RATE9542*202B8DJSR ADAVG ;RUNNING TOTAL OF 10 A/D READINGS9545*A5A3 LDA TIMER2 ;1 SEC?9547*D003 BNE ++5 ;NO9549*40A695JMP AUTOS59540*A5A7 LDA #6 ;RESET9552*85A7 STA TIMER69554*20078AJSR SPEEDDIVID ;CALCULATE TRUE SPEED (DIVIDEBY 10)9557*20198AJSR DACCALC ;CALCULATE NEW DAC VALUE955A* AUTOS2A955A*A55F LDA KEY ;KB?955C*F01A BEO AUTOS2B ;NO955E*C911 CMP #$11 ;STOP9560*F010 BEQ AUTOS2A19562*C912 CMP #$12 ;TURN ON/OFF HEART RATE BEEP9564*D0D1 BNE AUTOS19566*2068BEJSR BEEP9569*A202 LDX #2 ;ROW 2956B*208892JSR HRBEEPTOGGLEL ;TOGGLE HEART RATE BEEP956E*645F STZ KEY9570*8006 BRA AUTOS2B9572* AUTOSZA;9572*20b4C3JSR STOPVAL ;PUT SOME VALUES TO 09575*4CB392JMP AUTWRKO ;$??9578* AUTOS2B957B*AD0A02LDA STARTFLG957B*D0BC BNE AUTOS2 ;PAST WARMUP957D*AD1E03LDA ELTIMMIN9580*C902 CMP #29582*90B5 BCC AUTOS2 ;NOT 2 MIN YET9584*206CF0JSR CLRFACE ;ERASE ″WARM UP′9587*CEOA02DEC STARTFLG ;=$FF958A*A955 LDA #LOW FPRPWR ;GET PRESENT POWER958C*A004 LDY #HIGH FPRPWR958E*20DF67JSR MOVFM9591*203B67JSR DIV10 ;DIVIDE BY 109594*20E664JSR FADDH ;ROUND9597*200569JSR INT ;TO INTEGER959A*201F67JSR MUL10 ;MULTIPLY BY 10959D*A2CF LDX #LOW FPPOWER ;STORE IN POWER959F*A003 LDY #HIGH FPPOER95A1*200D68JSR MOVMF95A4*8093 BRA AUTOS295A6* ;1 SEC95A6*A919 LDA #25 ;RESET95AB*85A3 STA TIMER295AA*208BF0JSR UPMEN30 ;UPDATE ALL NUMBERS95AD*AD0A02LDA STARTFLG ;RUNNING?Huntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0V1.82L Page 8ModuleBIKIA95B0* D003 BNE AUTOS6 ;YES95B2*4C3995 JMP AUTOS295B5* AUTOS695B5*A9A0 LDA #LOW FPHRTAUG ;GET AVG HEART RATE95B7*A004 LDY #HIGH FPHRTAUG95B9*20DF67 JSR MOVFM95B0*A9B1 LDA #LOW FPLOWTEST ;COMPARE WITH LOW LIMIT95BE*A004 LDY #HIGH FPLOWTEST95C0*Z09468 JSR FCOMP ;UNDER LOW LIMIT?95C3*3003 BMI AUTOS7 ;YES95C5*4C6F96 JMP AUTOS9 ;CHECK IF ABOVE HIGH95C8* AUTOS795C8*AD7005 LDA FACEFLG ;FACE ON?95CB*D005 BNE AUTOS7A ;YES95CD*AD6E05 LDA DECFLG ;DECREASE ARROW?95D0*F009 BEQ AUTOS7B ;NO95D2* AUTOS7A95D2*206DF0 JSR CLRFACE ;CLEAR FACE95D5*9C7005 STZ FACEFLG95D8*9C6E05 STZ DECFLG95DB* AUTOS7B95DB*AD6F05 LDA INCFLG ;INCREASED LAST TIME?95DE*F00A BEQ AUTOS8 ;NOO95E0*AD2C03LDA SPTIMSEC95E8*C928 CMP #40 ;40 SEC YET?95E5*B003 BCS *+5 ;YES95E7*4C3995 JMP AUTOS295EA* AUTOS895EA*9C2C03 STZ SPTIMSEC ;RESET.TIMER95ED*9C2D03 STZ SPTIMTNTH95F0*A9FF LDA #$FF95F2*8D6F05 STA INCFLG95F5*9C6E05 STZ DECFLG95F8*9C7005 STZ FACEFLG95FB*AD2903 LDA SPDHEX95FE*D00A BNE AUTOS8AA9600*AD2A03 LDA SPDHEX+19603*C950 CMP #80 ;<8MPH9605*B003 BCS AUTOS8AA ;NO9607*4CDD96 JMP AUTOS11AA ;DECREASE LOAD960A* AUTOS8AA960A*A9FF LDA #$FF960C*CD0C02 CMP DACTMP ;DAC FULL?960F*F010 BEQ AUTOS8A ;YES9611*A9CF LDA #LOW FPPOWER ;POWER<1000?9613*A003 LDY #HIGH POWER9615*20DF67 JSR MOVFM9618*A91E LDA #LOW INT1000Huntsville Macro Assembler 65C02 cross assembler for PC-dos 2.0v1.82L Page 9ModuleBIKIA961A*A064 LDY #HIGH INT1000961C*209468 JSR FCOMP961F*3006 BMI AUTOS8B ;YES9621* AUTOS8A9621*201FEF JSR INCREASEFFORT9624*4C3995 JMF AUTOS29627* AUTOS8B9627*A9A0 LDA #LOW FPHRTAUG9629*A004 LDY #HIGH FPHTTAUG962E*20DF67 JSR MOVFM962E*A9B1 LDA #LOW FPLOWTEST9630*A004 LDY #HIGH FPLOWTEST9632*20ED64 JSR FSUB ;GET DIFFERENCE IN HEART RATE9635*203867 JSR DIV10 ;DIVIDE BY 109638*20E664 JSR FADDH ;ROUND963E*200569 JSR INT ;TO INTEGER963E*A263 LDX #LOW FACTMP ;SAVE9640*A003 LDY #HIGH FACTMP9642*200D68 JSR MOVMF9645*A956 LDA #LOW INT1 ;<1?9647*A063 LDY #HIGH INT19649*209468 JSR FCOMP964C*1006 BPL AUTOS8C;NO964E*A956 LDA #LOW INT1 ;USE 19650*A063 LDY HIGH INT19652*8004 BRA AUTOS8D9654* AUTOS8C9654*A963 LDA #LOW FACTMP ;GET BACK9656*A003 LDY #HIGH FACTMP9658* AUTOS8D9658*20DF67 JSR MOVFM965B*201F67 JSR MUL10 ;MULTIPLY BY 10965E*A9CF LDA LOW FPPOWER ;INCREASE THAT AMOUNT9660*A003 LDY #HIGH FPPOWER9662*200465 JSR FADD9665*A2CF LDX #LOW FPPOWER ;SAVE9667*A003 LDY #HIGH FPPOWER9669*200D68 JSR MOVMF966C*4C3995 JMP AUTOS2966F* AUTOS9 ;CHECK FOR ABOVE LIMIT966F*A9AC LDA #LOW FPHRTAUG9671*A004 LDY HIGH FPHRTAUG9673*20DF67 JSR MOVFM9676*A9BB LDA #LOWFPHIGHTST5 ;> UPPER LIMET + 5?9678*A004 LDY #HIGH FPHIGHTST5967A*209468 JSR FCOMP967D*C901 CMP #1967F*D003 BNE *+5Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 10ModuleBIKIA9681*4C2097 JMP AUTOS18 ;YES9684*A980 LDA #LOW FPHRTAVG9686*A004 LDY #HIGH FPHRTAVG9688*ASB6 JSR MQVFM968B*ASB6 LDA #LOW FPHIGHTEST968D*A004 LDY #HIGH FPHIGHTEST968F*B09468 JSF FCOMF ;OVER LIMIT?9692*C901 CMF #19694*FO1C BBQ AUTOS10 ;YES9696*AD7005 LDA FACEFLG ;HAPPY FACE ALREADY ON?9699*D00E BNE AUTOS9A ;YES969E*2009BD JSR HAPPYFACE969E*A9FF LDA #$FF96A0*8D7005 STA FACEFLG96A3*8D6F05 STA INCFLG96A6*8DE05STA DEOFLG96A9* AUTOS9A96A9*9C2C03 STZ SPTIMSEC ;RESET TIMER96AC*9C2D03 STZ SPTIMTNTH96AF*4C3995 JMP AUTOS296B2* AUTOS1096B2*AD7005 LDA FACEFLG FACEON?96B5*D005 BNE AUTOS10A ;YES96B7*AD6E05 LDA DECFLG ;DECREASE ARROW?96BA*F009 BEQ AUTOS10B ;NO96BC* AUTO10A96BC*206CF0 JSR CLRFACE96BF*9C6F05 STZ INCFLG96C2*9C7005 STZ FACEFLG96C5* AUTOS10B96C5*ADEO5LDA DECFLG ;JUST DECREASED?96C8*F00A BEQ AUTOS11 NO96CA*AD2C03 LDA SPTIMSEC ;20 SEC UP?96CD*C914 CMP #2096CF*B003 BCS *+596D1*4C3995 JMP AUTOS2 ;NO96D4* AUTOS1196D4*9C6F05 STZ INCFLG96D789C7005 STZ FACEFLG96DA*CE6E05 DEC DECFLG ;= $FF96DD* AUTOS11AA96DD*9C2DO3 STZ SPTIMTNTH ;RESET TIMERS96E0*9C2C03 STZ SPTIMSEC96E3*AD0C02 LDA DACTMP ;DAC AT 0?96E6*F010 BEQ AUTOS11A ;YES96E8*A923 LDA #LOW INTO ;POWER > 0?96EA*A064 LDY #HIGH INTO96EC*20DF67 JSR MOVFMHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 11ModuleBIKIA96EF*A9CF LDA #LOW FPPOWER96F1*A003 LDY #HIGH FPPOWER96F3*209465JSR FCOMP96F6*3010 BMI AUTOS12 ;NO96F8* AUTOS11A96F8*206E05EIT DEOFLG ;DECREASE ALREADY ON?96F8*300B BMI AUTOS10 ;YES96FD*20B9EFJSR DECREASEFFORT9788*A9FF LDA #$FF9702*8D6E05STA DECFLG9705* AUTOS11C9705*4C3995JMP AUTOS29708* AUTOS12;JSR CLRFACE9708*A9C9 LDA #LOW INT10970A*A063 LDY #HIGH INT10970C*20DF67JSR MOVFM970F*A9CF LDA #LOW FPPOWER9711*A003 LDY #HIGH FPPOWER9713*20ED64JSR FSUB ;DECREASE BY 109716*A2CF LDX #LOW FPPOWER9718*A003 LDY #HIGH FPPOWER971A*200D68JSR MOVMF971D*4C3995JMP AUTOS29720* AUTOS139720*9CA07FSTZ $7FA0 ;0 DAC9723*9C0C02STZ DACTMP9726*9CCF03STZ FPPOWER9729*9C7005STZ FACEFLG972C*9C6F05STZ INCFLG972F*80CC BRA AUTOS11B9731* LIMITCALC ;CALCULATE LIMITS9731*2033F4JSR RDYFAC9734*AE2702LDX USERID9737*BD1005LDA LOWLIM,X973A*85DA STA FACLO973C*207565JSR NORMAL973F*A2C0 LDX #LOW FPLOWLIM9741*A004 LDY #HIGH FPLOWLIM9743*200D68JSR MOVMF9746*2033F4JSR RDYFAC9749*AE2702LDX USERID974C*BD2505LDA HIGHLIM,X974F*85DA STA FACLO9751*207565JSR NORMAL9754*A2C5 LDX #LOW FPHIGHLIMHuntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 12ModuleBIKIO9756*A004 LDY #HIGH FPHIGHLIM9758*200D68JSR MOUMF975B*2033F4JSR RDYFAC975B*AE2702LDX USERID9761*BD3A05LDA HPTMAX,X9764*85DA STA FACLO9766*207565JSR NORMAL9769*204568JSR MOVAF976C*A9C5 LDA #LOW INT100976E*A064 LDY #HIGH INT1009770*20DF67JSR MOVFM9773*20EAFOJSR FACLO9776*A204 LDX #LOW FPMAC9778*A004 LDY #HIGH FPMAX977A*200D68JSR MOUMF977D*A9C0 LDA #LOW FPLOWLIM977F*A004 LDY #HIGH FPLOWLIM9781*20DF67JSR MOVFM9784*A9C5 LDA #LOWF PHIGHLIM9788*A004 LDA #HIGH FPHIGHLIM9788*20ED64JSR FSUB ;HIGH - LOW9788*A941 LDA #LOW INTPT2978D*A064 LDY #HIGH INTPT2978F*206566JSR FMULT ;* 0.29792*A263 LDX #LOW FACTMP ;SAVE9794*A003 LDY #HIGH FACTMP9796*200D68JSR MOVMF9799*A9C0 LDA #LOW FPLOWLIM979B*A004 LDY #HIGH FPLOWLIM979D*200465JSR FADD ;+ LOW97A0*A2B1 LDX #LOW FPLOWTEST97A2*A004 LDY #HIGH FPLOWTEST97A4*200D68JSR MOVMF97A7*A963 LDA #LOW FACTMP97A9*A003 LDY #HIGH FACTMP97AB*20DF67JSR MOVFM97AE*A9C5 LDA #LOW FPHIGHLIM97B0*A004 LDY #HIGH FPHIGHLIM97B2*20ED64JSR FSUB ;HIGH - 0.2*DIFF97B5*A2B6 LDX #LOW FPHIGHTEST97B7*A004 LDY #HIGH FPHIGHTEST97B9*200D68JSR MOVMF97BC*A9C5 LDA #LOW FPHIGHLIM97BE*A004 LDY #HIGH GPHIGHLIM97C0*20DF67JSR MOVFM97C3*A99C LDA #LOW INT597C5*A063 LDY #HIGH INT597C7*200465JSR FADD97CA*A2BB LDX #LOW FPHIGHTST597CC*A004 LDY #HIGH FPHIGHTST5Huntsville Macro Assembler 65C02 cross assembler for PC-DOS 2.0v1.82L Page 137CE-200D68 JSR MOVMF UPPEP LIMIT+5 ModuleBIKIA97D1*A9E1 LDA #LOW FPLOWTEST97D3*A004 LDY #HIGH FPLOWTEST97D5*10F597JSR LIMITADDRCALC ;CALCULATE LOW LIMIT ADDRESS97D8*A500 LDA ADDR SAVE ADDRESS97DA*851A STA PNT1397DC*A501 LDA ADDR+197DE*8515 STA PNT13+197E0*202798JSR LIMITDSP ;DRAW LINE97E3*A9B6 LDA #LOW FPHIGHTEST97E5*A004 LDY #HIGH FFHIGHTEST97E7*20F597JSR LIMITADDRCALC97EA*A500 LDA ADDR ;SAVE ADDRESS OF HIGH LIMIT97EC*851C STA PNT1497EE*A501 LDA ADDR+197F0*251D STA PNT14+197F2*4C2798JMP LIMITDSP ;NOW DRAW LINE AND RTN97F5* LIMITADDRCALC97F5*20C966JSR CONUPK97F8*A94B LDA #LOW INT3197FA*A064 LDY #HIGH INT3197FC*20DF67JSR MOVFM97FF*20F064JSR FSUBT9802*A946 LDA #LOW INTPT559804*A064 LDY #HIGH INTPT559806*206566JSR FMULT9809*20E664JSR FADDH980C*200569JSR INT980F*A950 LDA #LOW INT649811*A064 LDY #HIGH INT649813*206566JSR FMULT9816*20D468JSR QINT9819*38SEC981A*A980 LDA #$80981C*E5DA SBC FACLO981E*8500 STA ADDR9820*A93F LDA#$3F9822*E5D9 SBC FACMO9824*8501 STA ADDR+19826*60RTS9827* LIMITDSP ;DRAW DOUBLE LINE AT ADDRESS9827*A003 LDY #39829*A90F LDA #$0F982B*9100 STA (ADDR),Y982D*CBINY982E*A9FF LDA #$FF9830* LIMITDSP19830*9100 STA (ADDR),Y9832*C8INY9833*C008 CPY #89835*DOF9 BNE LIMITDSP1Huntsville Macro Assembler 65C02 cross assembler for PC-DOS2.0 v1.82L Page 149837*207FA7JSR ADD40983A*A003 LDY #3983C*A90F LDA #$0F983E*9100 STA (ADDR),Y9840*C8INY9841*A9FF LDA #$FF9843* LIMITDSP29843*9100 STA (ADDR),Y9845*C8INY9846*C008 CPY #8984 8*D0F9 BNE LIMITDSP2984A*60RTS
權利要求
1.一種用於控制施加於在練習裝置上鍛鍊的人的負荷,從而控制那人的心律的器械,其特徵在於包括一種能供人用作心血管鍛鍊的練習裝置,該裝置包括負荷輸入裝置,人用以將負荷輸入到所述裝置;和可變負荷裝置,用於施加一為該人能承受住的可變阻力負荷,以鍛鍊和提高該人的心血管速率;低心律裝置,當該人的心律低於一預定低限值時,為了提高所述的心律就啟用所述低心律裝置,所述低心律裝置確定由可變負荷裝置施加的負荷是否剛剛提高以及如果剛提高,是否所述負荷在一預定時間內未改變,如果負荷低於一預定最大值時,所述低心率裝置就驅使所述可變負荷裝置提高負荷。
2.如權利要求1所述的器械,其特徵在於還包括高心律停車裝置,當該人的心率高出第二預定上限值一預定量時,所述高心律停車裝置就工作,用以大大降低由所述可變負荷裝置施加的負荷;當所述某人的心律高於一第三預定限值時,所述高心律裝置就工作以降低所述心律,所述高心律裝置確定由可變負荷裝置施加的負荷是否剛剛提高和如果所述負荷已提高了一預定時間,所述高心律裝置使所述可變負荷裝置增加負荷,如果所述負荷不是剛剛降低和不低於一預定值時,所述高心率裝置驅使所述可變負荷裝置降低由所述可變負荷裝置施加的負荷;和一裝置,用於監控所述人的心律,並將所述心律接到所述高心律裝置和低心律裝置,以及所述高心律停車裝置上。
3.如權利要求2所述的器械,其特徵在於還包括可見顯示裝置,它響應所述高心律裝置和高心律停車裝置,以當所述人的力量可能增大時向所述人發出指示。
4.如權利要求2所述的練習裝置,其特徵在於所述練習裝置包括一用於固定一自行車的諸組件的固定支架,所述自行車包括一後輪、一後輪胎和一後軸、一車架、一車座、一前叉、車把和腳蹬,其中所述固定支架包括後軸支撐裝置,用於連接所述後軸的相對的兩端而不妨礙所述後輪和輪胎的轉勁,所述後軸支撐裝置約束所述後軸、輪子和輪胎沿著一預定路線移動;前叉支撐裝置,用於連接和支撐前叉,所述前叉支撐裝置是可移動的,以響應騎車人體重的移動;和一輥子,固定在所述支架上,以便在所述後軸連接到所述後軸支撐裝置上時,使輥子能和所述自行車後輪胎摩擦接觸,當所述後軸連接到所述後軸支撐裝置時,所述輥子和所述後軸支撐裝置一起支撐起所述後輪和輪胎,使所述輥子和其軸連接到所述後軸支撐裝置上的後輪胎之間保持摩擦接觸,一旦騎車人的體重移向所述前叉支撐裝置時,以致能防止在所述輥子和所述後輪胎之間打滑。
5.如權利要求2所述的器械,其特徵在於還包括用於確定第一和第三預定心律限值的裝置。
6.一種用於控制施加於在練習裝置上鍛鍊的人的負荷,從而控制那人的心律的器械,其特徵在於包括供人用於作心血管鍛鍊的一種練習裝置,該裝置包括一負荷輸入裝置,人能在所述裝置上施加力,以提高所述人的心律;和一可變負荷裝置,用於施加一為所述負荷輸入裝置能承受住的可變阻力負荷;一檢測所述人心律的心律傳感器;一與所述心律傳感器相連接的檢測器,當所述人的心律低於一第一預定值時,所述檢測器發出一第一信號,當所述人的心律高於一第二預定值時,就發出一第二信號;一響應所述第一信號的第一控制裝置,所述第一控制裝置與所述可變負荷裝置相連接,以便在一第一預定時間段內由所述可變負荷裝置施加的負荷仍未增大時增大由所述可變負荷裝置施加的負荷。一響應所述第二信號的第二控制裝置,所述第二控制裝置與所述可變負荷裝置相連接,以便在一第二預定時間段內由所述可變負荷裝置施加的負荷尚未減少時減少由所述可變負荷裝置施加的負荷。
7.如權利要求6所述的器械,其特徵在於還包括一響應所述第二信號的第三控制裝置,當所述心律高於一第三預定值時,所述第三控制裝置減小由所述可變負荷裝置施加的負荷。
8.如權利要求6所述的練習裝置,其特徵在於所述練習裝置包括一用於固定自行車的諸組件的固定支架,所述自行車包括一後輪、一後輪胎和一後軸、一車架、一車座、一前叉、車把和腳蹬,其中所述固定支架包括一可旋轉地支撐住的輥子;一設計成可移動地支撐一自行車的後軸的後軸支撐,該支撐能約束所述軸沿一預定路線向著和離開所述輥子移動,所述輥子和所述後軸支撐一起將一連接到所述軸的一自行車的後輪胎支撐在使其與所述輥子摩擦接觸的位置上;和與所述輥子相接的慣性裝置,當所述輥子和所述支撐件支撐的一自行車的後輪胎摩擦接觸而使所述輥子轉動時,該慣性裝置貯存能量,以模擬在實際騎行中自行車和騎車人的慣性。
9.如權利要求6所述的器械,其特徵在於還包括用於確定所述可變負荷裝置的效率,以補償所述加載裝置中的效率下降的裝置。
10.一種用於控制施加於在練習裝置上鍛鍊的人的負荷,從而限制那人的心律的方法,其特徵在於包括下列步驟使用一練習裝置作鍛鍊,提高所述人的心律;改變由所述練習裝置施加於該人的負荷,以改變所述人的心律;在練習中,檢測所述人的心律;當所述人的心律低於一第一預定值時,將負荷增加一預定量,所述增加包括下列步驟確定由所述練習裝置施加於所述人上的可變負荷是否剛剛增大;確定是否在一第一預定時間段內所述負荷未改變;確定所述負荷是否低於一第一預定負荷值;和當在所述第一預定時間段內所述負荷未改變,以及當所述負荷低於所述第一預定負荷值時,將所述可變負荷增大一預定量;當所述人的心律高於一第二預定值時,將負荷減少一預定量,所述減少包括下列步驟確定所述心律是否高於一第三預定心律值;當所述心律高於所述第三預定心律值時,大大減少所述可變負荷;確定所述可變負荷是否剛剛減少 確定是否在一第二預定時間段內所述可變負荷未改變;確定所述可變負荷是否已達到一第二預定負荷值;和當在所述第二預定時間段內所述負荷未減少,以及當所述可變負荷尚未達到所述第二預定負荷值時,減少所述可變負荷。
11.如權利要求10所述的方法,其特徵在於還包括下述步驟確定所述練習裝置的效率;和補償效率,以精確控制負荷。
全文摘要
一種支承自行車的訓練器械,其中一樞軸安裝的構件連接車後軸,支承件與一支承輥筒一起支承後輪,並和一前叉支承相連。當騎車人向前傾伏時,後輪與輥筒保持摩擦接觸。與輥筒相連的飛輪和可變負荷裝置模擬慣性和騎行中的可變負荷,並可補償摩擦損耗。騎車人可選擇比賽路線和比賽水平。騎車人在比賽人群中的位置可顯示出,並隨機變化,以模擬真實比賽情況。通過控制加於騎車人的負荷,使被監測的騎車人的心律維持在一限值內。
文檔編號B01J23/755GK1038412SQ89103400
公開日1990年1月3日 申請日期1989年5月19日 優先權日1988年5月20日
發明者布魯斯·A·薩金特, 羅布·裡森, 馬克·J·霍芬伯格, 羅伯特·A·瓦爾珀特 申請人:施溫自行車公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀