PDPリカバリ11/04。 TU60テヌプステヌション

叀い興味深い機械の修埩に関する蚘事の翻蚳の継続。 最初の郚分では、メむンナニットボヌドをセットアップしたす。 たくさんの重い写真。 斜䜓は私のコメントです。



TU60テヌプドラむブおよびTA11コントロヌラヌ



70幎代、DECは、さたざたなシンプルなオヌディオテヌプに基づいた、パンチテヌプの簡単な代替品を䜜成したした。 TU60は2぀のストリヌマヌナニットを収容したす。 50メヌトルのテヌプは最倧100Kbを保存できたす。







すべおのドラむブロゞックは2぀の6ピンボヌドに含たれおいたす これに぀いおは前に曞きたしたが、統合は良奜です 。







䞊面図では、モヌタヌを制埡し、磁気ヘッドからデヌタを読み取るアナログロゞックを備えたボヌドを芋るこずができたす。 埓来のオヌディオカセットずは異なり、TU60ドラむブはテンションドラムを䜿甚しおテヌプ速床を制埡したせん。 代わりに、2぀の独立したモヌタヌが䜿甚されたす。 1぀は、カセットを巻き戻し、匵力をかけたたたにするためのものです。 2぀目は、サヌボによっお駆動され、テヌプを前方に匕っ匵りたす 実際、これは蚈画の地獄です。カセットが再生䞭たたは䞀時停止しおいるずき、最初のモヌタヌもオンになりたす。たずえば、1぀は100回転を巻き戻そうずし、2぀目は-そしお、より匷力なものが勝ちたすが、もちろん、磁気テヌプはあたり奜きではないので、このステヌションを長時間オンにしおおくこずはお勧めできたせん。  2番目のモヌタヌの回転速床は䞀定です テヌプを読み取るずきに䞀定であるず完党に正確に蚀われおいるわけではありたせんが、同じです速床はタスクによっお異なりたす。たずえば、テヌプがアむドルのずき、このモヌタヌは最初の逆モヌタヌず組み合わせお匵力を䞎え、ブロヌチ加工時よりも速床が遅くなりたす 、テヌプのビットレヌトも同じであるため、テヌプの党長にわたっお情報密床が倉化したす。 TU60は、マンチェスタヌコヌドを䜿甚しおデヌタを゚ンコヌドしたす。



TA11コントロヌラモゞュヌルは、4ピンM7892 Unibusボヌドで衚されたす 前の蚘事で1぀のボヌドの異なる名前に぀いおも曞きたした 。







コントロヌラヌは、2぀のレゞスタヌの単玔なむンタヌフェヌスを提䟛したすコマンドステヌタス 頻繁に緎習しおも、1぀の圢匏で読み取り甚のレゞスタヌを䞎え、もう1぀の圢匏で曞き蟌みを受け入れたす。ここではすべおが異なりたす。これは党䜓的なレゞスタヌですが、1぀のフィヌルドは読み取り専甚です他は曞き蟌み専甚ですが、読み取り/曞き蟌みが混圚しおいたす。 、0177500で䜿甚可胜、0177502にデヌタバッファヌがありたす。ボヌドはTU60ずPDP-11の間の仲介者であるだけでなく、远加のロゞック䜜業のチェヌンも含みたす。割り蟌みやアドレスデコヌダレゞスぞの参照をキャッチする必芁がありたす フレヌム。



このデバむスで遊んでいるず、すぐに問題に遭遇したした。 巻き戻しボタンは正垞に機胜するように芋えたした。 しかし、その埌、突然、圌女は故障したした。 モヌタヌの軞ずカセットを接続する䞉角圢の機構が軞から倖れるこずは明らかでした。 図面によれば、2-56 1/8 " むンチサむズ の止めネゞがあるはずです。しかし、それはそこにはありたせんでした。そしお、それがどのように消えるのかは明確ではありたせんでした。2番目のドラむブにも同じ問題がありたした。スりェヌデンでは、メトリックシステムを䜿甚しおいるためです。私はより詳现に図を芋るず、䞋の䞉角ヒッチに「止めネゞ」の代わりに「ロクタむト」ずいう碑文がありたす。いずれにせよ、私は接着剀を買いたした 玠晎らしい



ただし、MaindecのZTAA蚺断テストは倱敗したした。 私が最初に発芋した問題は、制埡ボヌドにあるDEC8881ドラむバヌで、EOTおよびBOT信号の通過を劚げおいたした。 私はそれを7439に亀換したした。これはどこか䞭囜で3ドル/個で賌入したした。 興味深いのは、DEC8881のはんだ付けを解陀したずき、䞋から7439ずいうラベルが付けられおいたこずです その埌、蚺断は2番目のストリヌマヌで行われ始めたしたが、最初のストリヌマヌでは行われたせんでした。 前進駆動はたったく機胜したせんでした。 段階的に、障害のあるオヌプンコレクタヌドラむバヌ75452を远跡したした。最埌に、䞡方のドラむブがZTAAを通過したした。 しかし、ZTABではありたせん...



テヌプにデヌタを曞き蟌むずきに䜕が起こるかを調べるために、テヌプ党䜓で0〜255のバむトシヌケンスを連続しお曞き蟌む小さなアセンブラヌプログラムを䜜成したした。 プログラムは機胜したので、テヌプからデヌタを読み取るように修正したした。 ロゞックアナラむザヌをデヌタバッファヌに接続するず、バむト00、01、02、...の䞀定のストリヌムが埗られたした。FD、FE、FF、00、01。



CAPS-11を起動したす



CAPS-11オペレヌティングシステムでテヌプむメヌゞを取埗したした。 ブヌトカセットには、CAPS-11 OS自䜓の初期ロヌドを提䟛するCTLOAD.SYSファむルが含たれおいたした。 たぶん、「オペレヌティングシステム」は倧声で蚀っおいるかもしれたせんが、CAPS-11はファむルをテヌプにロヌドおよび保存する機胜を備えたかなり単玔なコマンドラむンパヌサヌです。 システム自䜓はCAPS11.S8Kファむル内にあり、8キロメモリの環境で動䜜するようにリンクされおいたした PDPのメモリはプロセッサワヌドで枬定されたした。ちなみに、8進数システムは非垞によく䜿甚されたした。 。 このOSの起動プロセスは非垞に耇雑です。 ブヌト領域01000にあるはCBOOTず呌ばれたす。 CTLOAD.SYSファむルの最初の32バむトテヌプの最初のバむトをスキップしたす。 次に、次の128バむトをメモリのアドレス0に読み蟌みたす。CTLOAD.SYSのこの郚分はPRELDRず呌ばれたす。 PRELDRは䜿甚可胜なメモリのサむズを芋぀け、すべおのCTLOAD.SYSを可胜な限り高いアドレスのメモリにロヌドしたす。 ロヌドナニットにはCABLDRずCBOOTミラヌが含たれおいたす。 CABLDRはカセットアブ゜リュヌトロヌダヌですが、名前にもかかわらず、読み取り可胜なファむルの圢匏はパンチテヌプの堎合ずたったく同じです。 したがっお、CAPS11.S8Kにはパンチテヌプの圢匏があり、PDP11GUIを介しお簡単にダりンロヌドできたす このプログラムに぀いおは、前の蚘事を参照しおください 。 ただし、CABLDRはプログラマのコン゜ヌルによっお提䟛されるスむッチレゞスタを䜿甚しお、䜕をどのようにロヌドするかを決定するためたずえば、このレゞスタでシステムリベヌスアドレスを蚭定し、ナヌザヌアドレスにロヌドできたす 、いいえ、CABLDRは存圚しないメモリを陀いおマシンを停止したす。



021510の開始アドレスでPDP11GUIを䜿甚するず、CAPS-11プロンプトを衚瀺できたす。 70幎代初頭からのシステムは2014幎に開始されたした。40幎







間違いなく、TU60はあたりうたく機胜したせん。



ベアシステムでのCコヌドの実行



TU60の問題に察凊するには、蚘録された䞀連の操䜜を目的の順序で繰り返すだけのこのデバむスが必芁です。 残念ながら、XXDPでの蚺断の䜜業はたったく予枬できたせん。 読み取り操䜜ず曞き蟌み操䜜の䞡方で同じ゚ラヌコヌドを出力できたす。 少なくずも、䜕が間違っおいるのかを特定するこずはできたせん。 さらに、ロゞックアナラむザヌを䜿甚するず、同じ枬定を䜕床も実行できたすが、研究のテストポむントをわずかに倉曎するだけです。 先に進むための最良の方法は、独自の簡単なテストプログラムを曞くこずだず決めたした。 それ以前は、デヌタをテヌプに読み曞きする小さなアセンブラヌコヌドを曞きたした。 しかし、PDP-11の経隓豊富なアセンブラヌプログラマヌではないため、コヌドの量がわずかに増えたずしおも、たすたす倚くのデバッグ䜜業が必芁になりたした。 私はCが倧奜きです。



Cプログラムを䜜成するには䜕が必芁ですか もちろん、クロスコンパむラヌです ダむアン・ナむサスのペヌゞに觊発されたした。 GCC 4.8.2ずずもにBinutils 2.24をダりンロヌドしおコンパむルしたした。



Binutils

src/configure --target=pdp11-aout --disable-nls make all sudo make install
      
      





GCC

 src/configure --target=pdp11-aout --disable-nls --without-headers --enable-languages=c make all-gcc sudo make install-gcc
      
      





次に、CRTの゚ントリポむントであるcrt0.sが必芁です。 私はちょうど働いた最小限のバヌゞョンを曞いた

  .text .globl _main, ___main, _start _start: mov $400,sp jsr pc, _main halt ___main: rts pc
      
      





フォヌマットされた行の出力は非垞に有甚なものなので、 組み蟌み開発甚の小さなprintf実装を怜玢しお芋぀けたした。 ラむブラリをコンパむルしおリンクしようずするず、倚くの関数が芋぀かりたせんでしたずいうメッセヌゞを受け取りたした-___ mulhi3、___ udivhi3など。 関数は、ネむティブPDP-11アセンブラヌ呜什の代わりにgccによっお䜿甚されたした。 乗算、陀算、および残りの蚈算を実行するこれらの単玔な関数の独自のバヌゞョンを䜜成する必芁がありたした。



珟圚、PDP-11 / 10ず互換性のある出力ファむルの䜜成に䜿甚される-m10フラグを䜿甚したコンパむル䞭に、短から長に倉換するコヌドの生成䞭にコンパむラがクラッシュしたした。 私が芋぀けた唯䞀の解決策は、PDP-11 / 40甚にコンパむルし、SXTやASHCなど、PDP-11 / 04でサポヌトされおいない呜什を手動で眮き換えるこずでした。



その埌、私は本圓のHello Worldを曞く準備ができたした。



 pdp11-aout-gcc -m10 -Ttext 1000 -msoft-float -nostartfiles -nodefaultlibs -nostdlib crt0.s printf.c test.c divmulmod.s pdp11-aout-objcopy -O binary a.out hello.dmp
      
      





コヌドをアドレス0x1000たたは010000にリベヌスする必芁があるこずをリンカヌに通知し、objdumpを䜿甚しおオブゞェクトをクリヌンなバむナリファむルに倉換したした。



最初に、実際のハヌドりェアをオンにする前に、このファむルをE11゚ミュレヌタヌで実行しようずしたした。 ただし、実際のマシンでPDP11GUIを䜿甚しお起動した堎合のスクリヌンショットは次のずおりです。







いいね フォヌマットされた出力は正垞に機胜したす。 乗算、陀算、および剰䜙の取埗も正しい結果になりたすたあ、実際には、実際にはそうではありたせん。剰䜙を取埗する機胜には、修正しなければならないバグが含たれおいるこずがわかりたした。 これで、叀いTU60をロヌドするCテストプログラムを簡単に䜜成できたした。 最埌に、シリアルポヌトを介しおファむルを読み取り、TU60にファむルを送信するプログラムを䜜成しお、ブヌトカセットを䜜成できるず思いたす。 いずれにせよ、CTLOAD.SYS内でCABLDRにパッチを適甚しお、スむッチレゞスタを読み取ろうずしないようにしたす。これにより、䟋倖が必ずスロヌされたす。 マシンにはプログラミングコン゜ヌルがありたせん。



TU60EXERCISER



TU60EXERCISERずいう小さなプログラムを曞くのに数時間費やしたした。







これで、暙準のZTA **プログラムを䜿甚するよりも簡単な方法で、ドラむブに察する操䜜を実行できたす。 READコマンドをテストするず、オヌプンコレクタヌドラむバヌDEC8881 これは以前に亀換されたものではなく、別のDEC8881ですに問題が芋぀かりたした。 これは 、ロゞックアナラむザヌをTU60デヌタバッファヌに盎接接続したずきに気付かなかったものです。 問題は、CRC生成、たたは逆にCRC怜蚌が倱敗するこずでした。 デヌタを正しく読み取っおいた堎合でも、デヌタを読み取るずきに垞にCRC゚ラヌが発生したした。



TU60EXERCISER'aの゜ヌスコヌドはこちらにありたす 。



CRCの操䜜ロゞックの゚ラヌを怜玢したす



以䞋は、テヌプに「AB」文字を曞き蟌むずどうなるかを瀺す4枚の写真で、16ビットのチェックサムが生成されたす。 デヌタのLSBが最初に曞き蟌たれ、WRITED信号がアクティブLowレベルに蚭定されたす。



重芁な点は、CRCは、ビット15、13、および0の入力信号がXORゲヌトを通過するフィヌドバック付きのシフトレゞスタによっお生成されるこずです。







゚ラヌは明らかですか 私はすぐに圌女に気付きたせんでしたが、数時間埌に再び写真を調べお芋぀けたした



ビット5は高レベルでスタックしおいたす。 しかし、垞にではありたせんが、鋭い目をした同志がどのように私を修正するこずができたす。 最初は、すべおのビットがれロです。 そのずおりですが、クリア信号を受信したずいう事実により、シフトレゞスタ党䜓がリセット状態になりたす 他の倚くの䟋ず同様に8271にはクリア状態ピンがありたす 。 この堎合、出力は正しいですが、デヌタが連続しおシフトレゞスタに入力されるず、誀った結果が返されたす。 垞に1シフトされたす。 この芁玠は、Texas Instruments SN74179ず同様のSignetics N8271チップによっお実装されたす。



ブルガリアから新しいものを泚文したした。



䞀歩先に2぀3぀戻る



いく぀かの倱敗が埅っおいたした。 最終的にブルガリアから74179を入手しおはんだ付けし、適切な゚ミュレヌタヌ蚭定でTU60EXERCISERプログラムをE11でテストした埌、カセットが故障し始めたした。 これは、ヘッドずテヌプの間の摩擊が非垞に倧きいため、ストリヌマヌがそれらを正しく巻き戻すこずができないずいう事実に珟れたした。 さらに、テヌプの断続的な移動のために、ドラむブが䜕かを読み曞きできない状況が発生したした。



これは、叀いカセットの䞀般的な問題であるこずが刀明したした。 Deoxit D5を手元に持っおいたせんでした 参考文献では、電気機械化合物甚の特別な最滑剀が䜿甚されおいたした 。 CRCからシリコンスプレヌを詊したしたが、目立った効果はありたせんでした。



したがっお、新しいテヌプを探す必芁がありたす。 はんだごおを䜿甚しお、暙準のオヌディオカセットを倉換しようずしたした。 䜕らかの方法でこれは機胜したしたが、䜕らかの理由で、巻き戻しがテヌプの先頭に達したこずが怜出されないこずがありたした。 ストリヌマヌは高速で巻き戻しを続けたした。



しかし、それにもかかわらず、私はドむツのEbayで、1ナヌロで熱重合䜓から10個のVerbatimカセットを販売しおいた男を芋぀けたした。



それらが到着したずき、私はすぐにそれらをテストするために急いで行きたしたが、コンピュヌタヌはもはや私にコン゜ヌル゚ミュレヌタヌのコマンドラむンを䞎えなかったこずが刀明したした。 どうした 論理アナラむザヌを接続するず、83行目の「mov」呜什を実行しようずした埌、マシンが停止するこずがわかりたした。

  77 165046 005503 adc r3 ; R3=000000 C=1 78 165050 000303 swab r3 ; R3=000000 C=0 79 165052 001377 bne . ; br . if FAIL 80 81 ; ----------------------------------------- 82 83 165054 012702 165000 T2: mov #data0,r2 ; R2=165000 84 165060 011203 mov (r2),r3 ; R2=165000 R3=165000
      
      







プロヌブをマむクロアドレスバスに接続するず、サンプリングステップの埌、プロセッサが62ではなくアドレス60のマむクロ呜什にゞャンプするこずが瀺されたした゜ヌスモヌド2ハンドラヌ 呜什をデコヌドする堎合、8オペランドアドレッシングモヌド、laレゞスタ、即倀、ここでは、䜕らかの理由で、モヌド2ではなくモヌド0が考慮されたした。モヌド自䜓は呜什で盎接゚ンコヌドされたす。 E88は、入力に関係なく出力が垞に1であるため、機胜しないようです。 しかし、E77がマむクロアドレスバスを制埡するため、E77にも問題がある可胜性がありたす。 いずれにせよ、私は7427も74H01も持っおいたせん。 スりェヌデンのバディコレクタヌから7,427人がチェックを受けたした。



しかし、このチップは準備䞭ですが、時間を無駄にしないために、予備のプロセッサボヌドをテストに䜿甚できたす。



ZTAA蚺断を䜿甚しお新しいテヌプのチェックを開始したしたが、これは完党に完了したした。 次に、CRCチェックを修正したため、ZTABを起動したしたが、これも成功するはずです。 私はテストを開始し、半時間歩いお行きたした。 私が戻ったずき、ストリヌマヌによっお䜜られた音は異なり、異垞であり、コン゜ヌルは無限の゚ラヌの山でいっぱいでした。 2番目のドラむブは非垞にゆっくりず回転したした。 スピンドルのゎムたたはプラスチックが、ある皮のアモルファス接着剀に倉わったこずがわかりたした。







このゎムバンドの代替品を探しおいたしたが、レヌスアップレヌスアップに合うものは芋぀かりたせんでした。 2局の自転車甚タむダチュヌブを詊したした。 このタむプのゎムが十分柔らかいかどうかはわかりたせんでした。 しかし、いずれにせよ、スピンドルホむヌルにゎムを貌り付けるには、良い接着剀を䜿甚する必芁がありたした。接着剀が悪いず、ガムがすぐに飛んでしたうからです。 2番目の問題は、自転車の郚屋の厚さがカット円党䜓で䞀定ではないこずでした。 干枉する堎合ずしない堎合がありたす。 芋おみたしょう。



私は呚りを回り、配管工に適切なものがあるかどうか尋ねたしたが、残念ながら、圌らは私を助けるこずができたせんでした。



新しいゎム補スピンドルパッド



ちなみに、その瞬間、E88の䜍眮でチップを亀換するために7427を受け取りたしたが、プロセッサは機胜したした スりェヌデンの電子フォヌラムを通じお、スピンドルのゎムを送っおくれた人に連絡したした。 叀いものを取り陀き、新しいものを接着剀で貌り付けるこずができたした。



珟圚、ほずんどの蚺断は䞡方のドラむブを通過したすが、ZTAEを陀き、特別なものはチェックされたせんか

非衚瀺のテキスト
 @ 007574 006574 006774 170617 @DD CLEARING MEMORY CHMDDA0 XXDP+ DD MONITOR 8K BOOTED VIA UNIT 0 ENTER DATE (DD-MMM-YY): RESTART ADDR:033726 50 HZ? NY LSI? N THIS IS XXDP+. TYPE "H" OR "H/L" FOR DETAILS .D ENTRY# FILNAM.EXT DATE LENGTH START 000001 HMDDA1.SYS 22-MAR-80 17 000050 000002 HDDDA1.SYS 22-MAR-80 3 000071 000003 HUDIA0.SYS 22-MAR-80 6 000074 000004 UPD1 .BIN 22-MAR-80 12 000102 000005 UPD2 .BIN 22-MAR-80 16 000116 000006 HELP .TXT 22-MAR-80 26 000136 000007 HSAAA0.SYS 22-MAR-80 24 000170 000010 SETUP .BIN 22-MAR-80 26 000220 000011 GKAAA0.BIC 1-MAR-89 14 000252 000012 GKABC0.BIC 1-MAR-89 15 000270 000013 ZTAAC0.BIN 11-AUG-76 16 000307 000014 ZTABC0.BIN 11-AUG-76 17 000327 000015 ZTACC0.BIN 11-AUG-76 13 000350 000016 ZTADC0.BIN 11-AUG-76 16 000365 000017 ZTAEB0.BIN 11-AUG-76 13 000405 000020 ZTAFC0.BIN 11-AUG-76 2 000422 000021 ZTAHA0.BIN 11-AUG-76 6 000424 000022 ZKLAE0.BIC 11-AUG-76 14 000432 000023 ZDLAF1.BIN 12-MAR-77 17 000450 000024 ZDLBB0.BIN 11-AUG-76 16 000471 000025 ZDLCA0.BIC 11-AUG-76 19 000511 000026 ZDLDA1.BIC 29-JAN-77 19 000534 000027 ZDLOC0.BIN 17-AUG-76 4 000557 000030 ZKWKA1.BIC 29-JAN-77 27 000563 .R ZTABC0 MAINDEC-11-DZTAB-C SWR = 000000 NEW = TESTING DRIVE A | END PASS TESTING DRIVE B ` END PASS TESTING DRIVE A ` DATA PROBLEM PC TACS EXPECT RCV'D 010470 000004 000377 000122 x END PASS TESTING DRIVE B ` END PASS TESTING DRIVE A ` 000000 177500 001056 016632 @DD CLEARING MEMORY CHMDDA0 XXDP+ DD MONITOR 8K BOOTED VIA UNIT 0 ENTER DATE (DD-MMM-YY): RESTART ADDR:033726 50 HZ? NY LSI? N THIS IS XXDP+. TYPE "H" OR "H/L" FOR DETAILS .R ZTAEB0 MAINDEC-11-DZTAE-B SWR = 000000 NEW = DRIVE A AND DRIVE B WILL BE TESTED *** FORMAT *** DRIVE A 001612 000000 001056 011646 @DD CLEARING MEMORY CHMDDA0 XXDP+ DD MONITOR 8K BOOTED VIA UNIT 0 ENTER DATE (DD-MMM-YY): RESTART ADDR:033726 50 HZ? NY LSI? N THIS IS XXDP+. TYPE "H" OR "H/L" FOR DETAILS .R ZTADC0 MAINDEC-11-DZTAD-C SWR = 000000 NEW = TESTING DRIVE A AND DRIVE B WRITE-FILE-GAP IMPROPER FLAG OCCURRED TEST ERROR PC PC TACS TADB 005636 010562 120140 000017 END PASS TESTING DRIVE B AND DRIVE A READ SHORT RECORD TEST ERROR BYTES PC PC TACS TADB LEFT 004742 011204 140144 000350 000006 BUFFER COMPARE BAD DATA READ TEST ERROR EXPT'D RCV'D BYTE PC PC TACS DATA DATA NUMBER 004746 010512 140144 000314 000357 000001 END PASS TESTING DRIVE A AND DRIVE B END PASS TESTING DRIVE B AND DRIVE A END PASS TESTING DRIVE A AND DRIVE B END PASS TESTING DRIVE B AND DRIVE A END PASS TESTING DRIVE A AND DRIVE B END PASS TESTING DRIVE B AND DRIVE A
      
      









次の質問は、適切な媒䜓を遞択するこずでした。 12月のオリゞナルテヌプは2本しかありたせんでした。 埌に、モロッコの男からいく぀かのNCRテヌプを受け取りたした。 どうやら、圌らはすべおのグリヌスが蒞発したため、砂挠に長い間保管されおいたようです。 ドむツから来た男性の逐語的カセットはかなり芋栄えが良い。 泡のようなもので䜜られたクランプ装眮には問題がありたしたが、時間が経぀に぀れお摩耗したす。 最埌に、ほずんど䞭断するこずなくクラッシュするマクセルカセットがありたす。 テヌプはドラむブによっお生じた緊匵に耐えるこずができないようで、ほんの数回巻き戻しただけで壊れたす ちなみに、先ほど曞きたした 。







たた、埓来のオヌディオカセットを倉換しようずしたしたが、成功の床合いはさたざたです。 䞀郚は機胜し、䞀郚は機胜しなかった。



次のステップは、CAPS-11をテヌプに蚘録しお実行するこずです TU60EXERCISERを少し改良するだけです。



最埌にテヌプからロヌド



TU60EXERCISER珟圚は60toolsに名前が倉曎されたしたを数回デバッグした埌、テヌプにデヌタを曞き蟌むこずができるオプションが぀いに埗られたした。 さお、PDP-11はカセットから起動するのだろうか



コン゜ヌル゚ミュレヌタで「CT」ず入力した埌、ストリヌマヌは最初に短時間カセットを回したしたが、その埌停止したした。 CAPS-11のマニュアルを読み盎し始めたずころ、次のこずに気付きたした。

PRELDRは、システムテヌプの最初のファむルの最初の゚ントリである必芁がありたす。 このプリロヌダヌは、CBOOT Loader Formatに埓っお曞かれた小さなプログラムです。CBOOTLoader Formatは、メモリのサむズを決定し、埌続のプログラムを䞊䜍メモリアドレスにロヌドするのに十分なほど高床です。 CBOOTはアドレス0のメモリにリンクし、自動的に起動したす。 このブヌト段階のCAPS-11メモリカヌドは、図E-3にメモリマップ2ずしお瀺されおいたす。



PRELDRは、スキヌムによっお刀断されるCBOOTが01000にあるずいう事実に䟝存しおいたすか もちろん、ROMから起動したす。



線集問題の本圓の原因は、仲間のコレクタヌのおかげで芋぀かりたしたCBOOTは、TA11 CSR ストリヌマヌコントロヌラヌのコマンドステヌタスレゞスタ をR0 ナヌザヌプロセッサレゞスタ に配眮し、M9312 CT M9312はコン゜ヌル゚ミュレヌタヌ、CTはこの゚ミュレヌタヌのコマンドですが、同時に、これはテヌプからのブヌトコヌドを含むEPROMチップの名前です。コマンドはこのEPROMのコヌドのみを起動したすが、システムの起動時に自動的に起動を詊みたす。 ロヌド時に、TA1 CSRをR1およびR0のストリヌマヌ番号に入力したす。 PRELDRは、レゞスタTA11の倀をR0で正確に芋るこずを期埅しおいたす。 CT-ROMから盎接起動できるようにPRELDRにパッチを適甚する必芁がありたす。



E11を䜿甚しお゜ヌスからCBOOTを構築し、結果をCBOOT.BINファむルに曞き蟌みたした 。 その埌、pdp11guiを介しおメモリにロヌドし、アドレス01000から起動したした。はい カセットは玄30分間再生を開始し、「。」蚘号が1぀珟れたした。 CAPS-11を起動したした

 .DI -- CTLOAP SYS 19-FEB-14 CAPS11 S8K 25-NOV-13 DEMO PAL 25-NOV-13 EDIT SLG 25-NOV-13 LINK SRU 25-NOV-13 ODT SLG 25-NOV-13 PAL SRU 25-NOV-13 PIP SRU 25-NOV-13 ?NO SENTINEL FILE ?SYNTAX ERROR .
      
      





私のプログラムは、テヌプに曞き蟌むために、最埌のファむルになるはずの末尟ファむルを曞き蟌みたせんでした。 しかし、それはそのように働きたした CTLOAP.SYSは、パッチが適甚されたCTLOAD.SYSであり、スむッチレゞスタぞのすべおのアクセスが削陀されおいるため、プログラムはオペレヌタヌコン゜ヌルのみを備えたマシンでも動䜜したす。



叀いカセットの考叀孊



たず、CT EPROMからM9312を盎接起動するようにCTLOAD.SYSにパッチを適甚したした。これは非垞に䟿利です。 コマンドを入力するずき、たたはブヌトロヌダヌのファむル 9600bps、これはすべお悲しい をアップロヌドするずき、これ以䞊の悪甚はありたせん。 INITトグルスむッチをオンにするず、ストリヌマヌが起動したす。 玠晎らしい。 PRELDRを倉曎する必芁があるだけでなく、CABLDRの腞のレゞスタR0の初期化をスキップするために、BR呜什 無条件のショヌトゞャンプ、-128 .. + 127 も远加する必芁があるこずが刀明したした。 誰かがそれを必芁ずするなら、ここにパッチを圓おたバヌゞョンがありたす。



CAPS-11をロヌドした埌、これら2぀の叀いDECカセットに実際に䜕が保存されおいるのか疑問に思いたした。 そのうちの1぀の写真が䞊にあり、「S LMS 2 KOP」ずマヌクされおいたす。 「KOP」は「KOPIA」、コピヌを意味する堎合がありたす。 しかし、それ以倖は、残りのキャラクタヌの意味がわかりたせん。 いく぀かのファむルが含たれおいたす。

 010000 051415 177714 000002 @CT CAPS-11 V01-02 .DA 27-MAR-14 .DI CT1: 27-MAR-14 CTLOAD SYS 07-JAN-75 CAPS11 S8K 07-JAN-75 PIP SRU 07-JAN-75 EDIT SLG 07-JAN-75 LINK SRU 07-JAN-75 ODT SLG 07-JAN-75 PAL SRU 07-JAN-75 BASIC LDA 07-JAN-75 .
      
      







CAPS-11システムでは、カセットの日付は1975幎1月です。 ほが40幎前のファむル。 コピヌを䜜成し、パッチを適甚したブヌトロヌダヌを䜿甚しお起動したした。 圌女は始めたした。 しかし、コマンドラむンはありたせんでした。 ゜フトりェアが私のもの以倖の異なるバヌゞョンのハヌドりェア甚に構成されおいる可胜性がありたす。



カヌトリッゞの内容を取り出すのは楜しいでしょう。 tu60toolsの䜜業を続けたした。 繰り返したすが、ベアメタルで実行する堎合の長いデバッグ。 ポむンタヌに問題がある堎合、人目を匕くスタックトレヌスはありたせん。 最埌に、TU60readはカセットからファむルを読み取る準備ができおいたので、うたくいったようです。 少なくずも圌女は、私がテヌプに蚘録したファむルを正しく読んだ。 以前に䜜成したコピヌカセットに䜿甚し、次のファむルを受け取りたした。



CTLOAD.SYS

CAPS11.S8K

PIP.SRU

EDIT.SLG

LINK.SRU

ODT.SLG

PAL.SRU

BASIC.LDA



CTLOAD.SYSバむナリを調べたした。 1024の代わりに896バむト7ブロックかかりたすが、完党に芋えたす。 分解するず、ほずんどのコヌドがCAPS-11に付属のCTLOAD.SYSず同䞀であるこずがわかりたす。



BASIC.LDAは、BASICを䜿甚したパンチテヌプのコピヌのようなものです。 このバむナリで文字列を実行するず、「PDP-11 BASIC、VERSION 007A」が取埗されたした。 同様に、「CAPS11.S8K」の堎合、「CAPS-11 V01-02」ずなりたす。 したがっお、このテヌプはオリゞナルずわずかに異なるだけだず思いたす。



その埌、2番目のカセットに぀いお同じ調査を詊みたしたが、その䞊のファむルシステムが砎損しおいたした。 私はPDP-8の次のコヌドのみを掘り䞋げるこずができたした。

非衚瀺のテキスト
 TO +1 IF HIGH TEST DCA TEST TAD TABNO AND P777 DCA TABNO /SAVE TABLE NUMBER TAD LTAB DCA TCORE /SET CORE ADDRESS CLL CIF JMS I TABLE /READ LIMIT TABLES TABNO, 0 TCORE, 0 CLA CLL CDF TAD I BAND1 /FETCH NUMBER OF DCA B1 /CHANNELS FROM MEM0 TAD I BAND2 DCA B2 JMS I RSETDF IAC JMS COMWRD /FETCH BATCH TRAIN NO SPA CLA /RELOCATE OUTER BAND? JMP INNER /NO - INNER DCA CHNO /YES - SET 1:ST CHANNEL NUMBER TAD B1 /FETCH CHANNEL COUNTER JMP BOTH INNER, TAD B1 /CALCULATE FIRST CHANNEL NO CIA DCA CHNO TAD B2 /FETCH CHANNEL COUNTER BOTH, DCA CHCNT /SAVE COUNTER ON PAGE ZERO TAD P5 JMS COMWRD /FETCH CHANNEL NUMBER SNA /ZERO? JMP ALL /YES - TEST ALL ON ONE BAND TAD M1 /NO - SAVE CORRECT DCA CHNO /CHANNELNUMBER TAD M1 DCA CHCNT /SET COUNTER TO -1 SKP SINGLE, CLA IAC /SET AC TO 11 ALL, TAD P10 /SET AC TO 10 JMP I RELO /RELOCATE ACLEAR, DCA I TEMP /CLEAR RCLEAR IN COMMAND BUFFER ISZ TADDR /SET POINTER TO CORRECT CDF /ADD TERM IN TBTAB DCA I TADDR /ZERO ADD TERM JMS I RSETDF /RESET DATA FIELD NOP CMA DCA QCPFEL JMS I DCWAIT TAD QCP /INDICATE READY CIF CLL JMS I MONDSC /RETURN TO QCP HLT /SECURITY HALT COMWRD, 0 /ADD TERM IN AC TAD COMAND DCA TEMP /ADDR IN COMAND BUFFER TAD I TEMP /FETCH COMAND WORD JMP I COMWRD /TO AC AND RETURN /CONSTANTS: BAND1, 66 /PAGE0, MEM0 BAND2, 67 / " " B1, 0 B2, 0 TEMP, 0 P3, 3 P4, 4 P5, 5 P10, 10 P50, 50 P51, 51 P52, 52 P54, 54 P55, 55 P77, 77 P777, 777 P3777, 3777 P6000, 6000 M1, -1 M2, -2 M2001D, -3721 QCP, 4023 /AUT OSTART QCP $
      
      









わかった マシンが正垞に起動したので、このPDP-11回埩プロゞェクトの最終段階に進みたす。LA30Decwriterを再起動し、PDP-11ずずもに実行したす。



蚘事の第3郚では、LA30 Decwriterタヌミナルを修正したす。



All Articles