PCコンピュヌタヌ「怜玢」。 Electronmash

画像 今日、私は゜ビ゚トPC怜玢に぀いお少しお話ししたいず思いたす。 このコンピュヌタヌを、倚数のBytes、Irish、Corvettes、BK0010、Radio-P86などず区別しおいるのは、IBM XT / PCずの互換性があるこずです。 このマシンは、Intel i8088プロセッサの囜内アナログ-KM1810VM88に基づいおおり、元のXTの4.7 MHzず比范しお、わずかに高い呚波数-〜5 MHzで動䜜したす。 ただし、䞀般に、怜玢は本栌的なCGAビデオカヌドを実装しおいなかったため、コンピュヌタヌの動䜜はXTよりも遅くなりたした。 実際、テキストモヌドぱミュレヌトされたした-ビデオアダプタヌは垞にグラフィカルモヌドで動䜜し、画面䞊の文字はピクセル単䜍でシステムBIOSによっお描画されたした。 圓然、これには倚くのプロセッサヌ時間がかかりたした。 実際のXTずのもう1぀の違いは、DMAの欠劂であり、これはメモリの操䜜速床にも圱響したした。 そしお、メモリ自䜓は640Kbからはほど遠いものであり、もちろん誰にずっおも十分でしたが、それ以䞋ではなく、すべおのメモリが搭茉されるわけではありたせんでした。 しかし、すべおの欠点にもかかわらず、PC SearchはMS-DOSを実行するこずができたした。これは圓時関連しおおり、Norton CommanderずDiggerからWindowsずOfficeたで、圓時のほずんどすべおの人気のあるアプリケヌションずゲヌムで動䜜したす。 そしおもちろん、䟡栌...組織だけが本物のXT-shkuを賌入する䜙裕があれば、通垞の゜ビ゚トの゚ンゞニアが怜玢PCを䜿甚できたした月絊。 しかし、たず最初に...







たえがき


䞀般的に、厳密に蚀えば、怜玢にはいく぀かの倉曎が加えられおいたす。 䞻な違いは、オンボヌドRAMの量です。 Searchesの最初のモデルには128 KBしかありたせんでしたが、そのうち32 KBがビデオメモリを消費したした。 ナヌザヌの空きメモリはわずか96 Kbでした。 最新のモデルは既に512 Kbを搭茉しおおり、32 Kbもビデオメモリの䞋にあり、ナヌザヌは480 Kbでした。 これにより、すでにDOS以倖の䜕かを起動する機䌚が䞎えられたした。



ただし、暙準パッケヌゞにはオヌルむンワン、電源、およびシステムプログラムずゲヌムを含むカセットが含たれおいたため、DOSに぀いおは早くから話したした。 そしおそれだけです。 したがっお、ドラむブコントロヌラヌもちろん、ドラむブ自䜓でも、ゞョむスティックコントロヌラヌでも、ナヌザヌは個別に賌入する必芁がありたした。 それたでの間、ナヌザヌはカセットレコヌダヌをストレヌゞメディアずしお䜿甚できたす。 カセットむンタヌフェむスは、ブルゞョアコンピュヌタヌIBM PCjrからの「コピヌアンドペヌスト」でした。 カセットの蚘録圢匏は、PCjrず゜ビ゚トのもう1぀の「粟神の兄匟」ず同じでした。 ゚レクトロニクスMC-1502もx86ず互換性があり、䜜成者の「ひねり」なしではなく怜玢も同様です。 したがっお、ドラむブコントロヌラヌがない限り、カセットから始めたす。



テヌプおよびテヌプむンタヌフェむスの蚘録圢匏


この怜玢は、ZX互換機やそのクロヌンなど、叀いコンピュヌタヌのファンの間ではあたり人気がないため、テヌプを操䜜するための゜フトりェアはたったくないため、この䞍正を修正するこずにしたした。 そのため、デヌタはれロず1の圢匏で蚘録されたす。 極性が1ミリ秒でマむナスからプラスに倉化する堎合-これは1ビットです。 間に合わない堎合-れロ。 したがっお、れロは玄0.5ミリ秒、1は1ミリ秒です。 これを知っおいれば、目で盎接芖芚的に信号を簡単にデコヌドできたす。 ここに、䟋えば

画像

ここで、間隔が倧きい「スむング」期間は単䜍であり、短い期間はれロです。 合蚈で、この図は1111 0000 1011 001を瀺しおいたす。各蚘録は、256バむト0xFF、぀たり256 * 8 = 2048シングルビットで構成されるパむロットトヌンで始たり、その埌に蚘録ビット「0」、同期バむト0x1600010110  すべおのデヌタは256バむトブロックで曞き蟌たれ、その埌に2バむトのチェックサムが続きたす。 チェックサムは、CRC = CRC xor 0xFFFFを蚈算した埌、倚項匏0x1201、初期倀= 0xFFFFのCRC-16アルゎリズムを䜿甚しお蚈算されたす。 パむロットトヌン、れロビット、および0x16同期バむトの埌に、プログラムがダりンロヌドされるファむル名、ファむルタむプ、セグメント、オフセットなどの重芁なデヌタを含む256バむトのヘッダヌがありたす。

Poisk_hdr = Packed Record Magic : Byte; // A5h FName : Array [1..8] of Char; FType : Byte; FLen : Word; Seg : Word; Ofs : Word; End;
      
      





ヘッダヌには、最倧256バむトのれロが埋め蟌たれたす。 次はそのチェックサム-2バむトです。 シヌケンスは4バむト0xFFで終了したす。 次に、ナニット、同期ビット0、同期バむト0x16のリヌダヌパむロットトヌンが再び来たす。ここで、デヌタブロックは既に開始されおいたす。 最埌に、シヌケンスは4バむト0xFFで終了したす。



蚘録圢匏でのピッキングの結果は、 CAS2WAVずWAV2CASの 2぀の小さなナヌティリティでした 。 最初の方法では、バむナリファむルから.WAVファむルを䜜成し、埌で通垞のmp3プレヌダヌで再生できたす。 2番目は、反察に、カセットレコヌドからバむナリファむルを䜜成しようずしおいたす。 したがっお、誰かがSearchたたはMS-1502のカセットを持っおいる堎合は、WAVでデゞタル化しお、収集ず履歎を取埗しおください。 珟時点で怜玢甚のカセットプログラムずゲヌムの最も完党なセットをダりンロヌドしおください vizersprojects.ru/archive/sannata/apps.zip



カセット


これで、WAVファむルを䜜成し、カセット゜フトりェアを倉換しおmp3プレヌダヌに録音できるようになりたした。 プレヌダヌを「RECORDER」コネクタヌに接続し、電源を入れたす。





割り蟌み凊理の䞻な機胜に加えお、怜玢のBIOSには小さなプログラムモニタヌが含たれおおり、ファむル名を入力しおテヌプレコヌダヌからメモリに読み蟌むこずができたす。





プログラムずゲヌムは、基本的に、IBM PCで人気のあるゲヌムずプログラムのロシア語版です。 たずえば、BASICは、IBM PCjrコンピュヌタヌのROMに配線されたMicrosoft Basicにすぎたせん。 2぀の違いを芋぀けたす。









カセットおもちゃの残りを芋おください


























ただし、公平には、チェスやリバヌシなどの独自のゲヌムがあったこずは泚目に倀したす。



远加のコントロヌラヌアダプタヌ


はい、前述のずおり、指瀺に蚘茉されおいるように、远加のコントロヌラヌたたはアダプタヌを怜玢に接続できたした。 これを行うために、怜玢には4぀の拡匵スロットがあり、最倧4぀のコントロヌラヌを同時にむンストヌルできたした。 実際、バスは圓時ISA-8で暙準でしたが、もちろん異なるコネクタず1぀たたは2぀の反転信号がありたす。 怜玢コントロヌラヌは䞡方の工堎で補造されたため、協同組合やアマチュアでさえ補造されたした。



最初に望たれ、必芁だったのは、ドラむブコントロヌラヌでした。 圌ず䞀緒に、SearchはBASICずゲヌムのタむプラむタヌから本栌的なDOSコンピュヌタヌに倉わり、その時点で存圚するx86゜フトりェアのセット党䜓たあ、ほがすべおでナヌザヌを開攟したした。 これらのコントロヌラヌで行わなかったこずは、360 Kbではなく、800 Kbのディスケット圢匏のファヌムりェアサポヌトに組み蟌たれたタヌボチャヌゞ読み取り/曞き蟌み速床の向䞊でした。 䞀般に、それらは異なっおいたしたが、䞀般的にはフロッピヌディスクでうたくか぀迅速に機胜したした。 これは私のコントロヌラヌです





そしお、これは別のドラむブコントロヌラヌです。





128KbのRAMを搭茉した怜玢モデルでは、DOS以倖の䜕かを実行するために「RAM゚クスパンダヌ」を賌入する必芁もありたした。 「RAM゚クスパンダヌ」は、通垞のコントロヌラヌのようにスロットに挿入されたした。 256 Kb、512 Kb、さらに670 Kbず噂されおいるさたざたなモデルがありたした。 LPTポヌトなど、他の䜕かず組み合わされるこずもありたした。 コピヌで私はちょうどそうしたした。





そしおもちろん、MFMむンタヌフェヌスを備えたハヌドディスクドラむブコントロヌラヌ。 獣はたれで高䟡ですが、ハヌドドラむブ自䜓も同様です。 最倧68 Mbの怜玢ハヌドドラむブぞの接続を蚱可。 コントロヌラヌ自䜓がハヌドドラむブに接続されたルヌプ自䜓も同様にナニヌクでした。





私はそれを少しいじらなければなりたせんでした。 最初のルヌプ。 それは暙準ではないので、スキヌムの倧たかな抂芁をたずめる必芁がありたした。





そしお、そのようなアダプタヌをはんだ付けしたす





さらに、既存のRobotron K5504.20ハヌドドラむブで20 MBのコントロヌラヌを動䜜させようずしたした。 䜎レベルフォヌマットぱラヌなしで終了したしたが、FDISKを起動しおシステムパヌティションをパヌティション分割しようずするず、゚ラヌが発生したした固定ドラむブの読み取り゚ラヌ。 私はケヌブルに眪を犯し、コントロヌラヌのゞャンパヌのすべおの組み合わせを詊し、コントロヌラヌファヌムりェアのこの特定のネゞのコントロヌラヌのパラメヌタヌを線集するこずでそれを倉曎したした-それは無甚です。 それでも、FDISKは起動するこずがありたしたが、ディスクにパヌティションを曞き蟌もうずするずクラッシュしたした。 さらに、このGrobotronが完党に機胜しおいるこずを確信しおいたした。問題なくフォヌマットされ、レむアりトされ、䞀般的にXT-shkeでは完党に正垞に感じられたした。 お祝いの責任





「鳎らしお」ケヌブルを10䞇回確認した埌、私は吐き出し、XTボックスにあった2番目のSeagate ST-225 MFMハヌドドラむブを接続するこずにしたした。 確かに、ヌルモデムを䜿甚しおメむンコンピュヌタヌに事前にバックアップする必芁がありたした。 そしお、芋よ、それは問題なくフォヌマットされ、初めお獲埗したした。 そのため、SeagateをSearchに残しお、GrobotronをXTに配眮する必芁がありたしたが、反察のこずが必芁でした。



ゞョむスティックコントロヌラヌもあり、それに応じお、ゞョむスティック自䜓もありたした。 それ以倖のものず互換性がなく、䜕のようにも芋えない面癜いデバむス。 ドラむバヌプログラムを䜿甚するず、キヌボヌドのキヌの傟きの察応を蚭定できたす。これにより、ゞョむスティックを巊に傟けたり、巊のキヌを゚ミュレヌトしたりするこずができたす。 䞀般的には良い考えです。 これにより、ゲヌムがゞョむスティックをサポヌトしおいなくおも、ゞョむスティックでゲヌムをプレむできたした。







内臓および修理


私の怜玢は長い間䞭断し、欠陥がありたした。 誀䜜動は、定期的な突然のフリヌズたたは再起動でさえありたした。 論理的にはすべおがメモリの問題であるず想定し、テストでCheckITプログラムを実行するず、次のような悲しい画像が衚瀺されたした。





ハンマヌでドラむバヌを手に取り 、䞋郚から数本のネゞを倖し、キヌボヌドで䞊郚カバヌを取り倖したす。 マザヌボヌド党䜓が目に芋えたす。





䞭倮には、BIOS ROMパネルの右䞊隅にあるセラミックプロセッサがあり、䞋から16個の密封されたK565RU7Gマむクロ回路がありたす。これがメモリです。 16個の超小型回路をはんだ付けしたくなかったので、以前に聞いたこずがある方法を詊しおみるこずにしたした。 䜕かが倉わった堎合は、チップを亀換しおください。 1぀だけ私を止めたした-叀いチップに新しいチップを取り付け、キヌボヌドを接続し、DOSをロヌドし、CheckITをロヌドしおテストを実行するたびに。 そしお、それはプログラムのダりンロヌドに費やされた時間で倧䞈倫だろう...キヌボヌドも非垞に信頌性の高いケヌブルを持っおいない、そしおそれを頻繁に切り替えるこずから間違いなく良くなるこずはないだろう。 芁するに、怠inessは進歩の゚ンゞンです。 叀き良きTASMアセンブラがアヌカむブから匕き出されたした。 BIOSの代わりに盎接瞫い付けられ、コンピュヌタヌの電源がオンになるずすぐに開始するテストを䜜成するこずが決定されたした。

䞀般に、BIOSの代わりにアセンブラヌでプログラムを曞くこずは、DOSの䞋でアセンブラヌでプログラムを曞くこずずは少し異なりたす。たずえば、通垞のBIOS割り蟌み曞き蟌みずDOSがなく、画面に䜕かを衚瀺するためです。キャラクタヌを手で描く必芁がありたす。 䞀方、すべおのメモリは自由に䜿甚でき、䜕でもできたす。 実のずころ、レゞスタだけに倚くのデヌタを保存するこずはないので、いく぀かの倉数をメモリに保存する必芁がありたす。 もちろん、スタックもありたす。スタックがないず、サブルヌチンを呌び出したり、レゞスタ倀を保存したりできないためです。 芁するに、スタックも有甚なものです。 したがっお、最初にメモリの最初のキロバむトをテストしたす。゚ラヌがある堎合は、3回ピックしおプロセッサをハングさせたす。 すべおが順調であれば、スタック、倉数を最初のキロバむトに蚭定し、メむンテストを開始したす。



合蚈、少したわごず tak_sebse_code膝の䞊ず自分のためずテストの準備ができおいたす。 ROMにフラッシュし、コンピュヌタヌの電源を入れお、CheckITが瀺したのず同じこずを、テストで即座に確認したす。





それだけです。今では、はんだ付けされたものの䞊に、既知の良奜なマむクロ回路を埐々に「抌し」始めたす。 すぐに152Kbの領域で最初の欠陥のあるものを芋぀けお亀換し、その埌264Kbの領域で゚ラヌを長時間いじりたしたが、埐々に枛少、枛少、れロに枛少したした。 その結果、7぀のマむクロ回路おそらくいく぀かは無駄になっおいたすを倉曎し、同時に゜ケットに䞊げたした





結局のずころ、倚くはありたすが、16ではありたせん。 私のテストぱラヌなしで合栌し、CheckITぱラヌなしで合栌し、䞀般に、考えられるメモリテストず考えられないメモリテストはすべお゚ラヌなしです。 勝利



゜フトりェア


ドラむブを䜿甚するず、さらにハヌドドラむブを䜿甚するず、怜玢は文字通り「生き返り」、倧きな真面目なコンピュヌタヌになりたした。 これを再生できるカセットおもちゃはどこにありたしたか。

















その圓時の他のおもちゃを芋る


























そしおもちろん、圌らが蚀うように、Windows、lulzのためだけです。 バヌゞョン3.0では、急いで動䜜したせんただし、480 KbのRAMから䜕を望みたしたかでも動䜜したす。













アップグレヌド半分成功


昚幎の冬、2぀のNEC V20プロセッサヌが䞭囜から来たした。 理論的には、i8088ず完党に互換性があり、陀算ず乗算のハヌドりェア実装が改善されおいるため、倚少速くなり、プロセッサ80186の呜什セットが含たれおいたすたずえば、1以倖の匕数でシフトし、すべおのレゞスタをスタックに保存し、 td。 ほが80286、おそらく保護モヌドなしでのみ。 さお、レトロな愛奜家にずっお楜しいボヌナスずしお、i8080プロセッサコマンドのハヌドりェアサポヌトがあるので、i8080のCP / Mから特別なプログラムを介しおネむティブ゜フトりェアを実行できたす。



そのため、ハンダ、ハンダ付けハンダ、ハンダ付けポンプを手に取り、忍耐を蓄え、゜ビ゚トKM1810VM88を慎重にハンダ付けしたす。 NEC V20がぎったりず配眮されるDIP-40゜ケットを配眮したす。





予想どおり、コンピュヌタヌは問題なく起動したす。 これで、小さなオりムを枬定できたす。 たず、元のKM1810VM88のテスト。 党䜓的なパフォヌマンス





KM1810VM88を䜿甚したビデオサブシステム





そしお、NEC V20





NEC V20でのCPUテスト





そしおビデオサブシステム





特に数孊では、V20を䜿甚するずコンピュヌタヌの速床がいくぶん速くなるこずがわかりたす。 ビデオサブシステムは、キャラクタヌレンダリングの䞀郚のBIOS機胜では、乗算および陀算挔算が行われる堎所があるずいう事実により、いくらか高速になりたした。 良いプロセッサ、蚀いたいこず。 しかし、さらに䞍快な驚きが私を埅っおいたした-これらのテストの埌、通垞のVolkov Commanderをロヌドしようずするず、次のこずがわかりたした





画面䞊の1぀おきの文字が描画されないこずは泚目に倀したす。 長い間、私は文字出力に関連するすべおの原因ずなるBIOSコヌドを泚意深く考え、int 10h凊理プログラムを調べたした。 NEC V20ずi8088が同じコマンドセットを䜿甚しおいるにもかかわらず、ただ違いがあるこずを知っおいたので、NEC V20ずの非互換性のためにBIOSにパッチを圓おるこずは非垞に簡単だず思いたした。 次のこずに぀いおコヌドをチェックしたした。



1 POP CS 、および䞀般的に私はリストで䌚ったこずがない2バむトのPOP 。 v20はそれらを食べたせん。

2 MULの埌、結果が0の堎合、 v20はZFをリセットしたせん。コヌドにはいく぀かのMULがありたすが、操䜜埌のZFはどこにもチェックされたせん。

3゚キゟチックなAAD / AAMはどこにも芋぀かりたせん。 Intelでは、呜什は匕数を取るこずができたす; V20では、垞に= 0Ahです。

4v20がXLATずしお解釈するSALC D6オペコヌド呜什に぀いおも同じこずが蚀えたす。 BIOSにはそのような指瀺はありたせん。



急降䞋に倱敗した問題を修正したす。 さらに、ZX-PK.ruフォヌラムからの1人のナヌザヌのプロンプトで、このようにビデオメモリを操䜜するプログラムがバグがあるずいう事実に泚意を喚起したした。 既に説明したように、怜玢には物理テキストモヌドがないため、プログラムが0xB800テキストメモリ領域に䜕かを曞き蟌もうずするず、マスク䞍可胜なハヌドりェア割り蟌みが生成され、制埡がInt 2ハンドラヌに転送されたす。NMIハンドラヌはポヌト0x28から倀を読み取りたす。オフセットは、蚘録がメモリで発生した堎所にあり、グラフィックビデオメモリ0xBC00でピクセルごずのシンボルの描画を開始したす。 ビデオメモリにシンボルが描画された埌、NMIハンドラヌが終了したす。 これは、このような単玔化されたスキヌムず、テキストモヌドからグラフィカルモヌドぞの文字の芖芚化です。 したがっお、詊行錯誀を通じお、 REP STOSWコマンドで耇数の文字を䞀床にメモリに曞き蟌むず、ハヌドりェアアドレストラップが機胜せず、最埌の文字にシフトする代わりに、前の文字のオフセットがポヌト0x28にあるこずが刀明したした。 NMIも呌び出されたせん。 V20はREP STOSWサむクルごずに䜿甚するクロックサむクルが少なく、回路はより倚くのクロックサむクル甚に蚭蚈されおいるため、回路は2サむクルごずにのみ動䜜するず想定できたす。 残念ながら、問題はハヌドりェアであるこずが刀明したした。 もちろん、それをバむパスしおプログラムで、たずえば、NMIハンドラヌの束葉杖ずしお、珟圚のキャラクタヌだけでなく、すぐ隣のキャラクタヌを描画できたすが、これはご存知のように単なる束葉杖です。 この欠点に泚意を払わなければ、ゲヌムを含む他のプログラムは問題なく動䜜したす。



結論ずしお


怜玢PC-これは私の最初のコンピュヌタヌです。おそらくこのため、他の叀い鉄よりも泚意が払われおいたす。 フォヌラムZK-PK.ruずその「怜玢」セクションは、技術的な問題で非垞に圹立ちたす。 珟圚、䜕人かの愛奜家がMFMディスクコントロヌラ、ドラむブのレプリカのリリヌスを準備しおいたす。 䞀般に、たずえば、IDEコントロヌラヌ特に、Questの起動時にそのようなコントロヌラヌが存圚しおいたため、おそらくIDE-CFコンパクトフラッシュコントロヌラヌの補造など、倚くの蚈画がありたす。 誰かが突然録音付きのテヌプ、たたはいく぀かの珍しいコントロヌラヌアダプタヌを持っおいる堎合、それらを個人的なメッセヌゞで受け取る可胜性に぀いお話し合うこずができればうれしいです。 皆さんに幞運を



All Articles