
Pada artikel ini saya ingin berbicara tentang arsitektur mikrokalkulator Soviet yang dapat diprogram menggunakan kalkulator Electronics MK-52 sebagai contoh dan bagaimana ia dapat dimasukkan ke dalam arsitekturnya.
Kalkulator Soviet dari keluarga "
Electronics B3-34 " ("Electronics MK-56", "Electronics MK-61" dan "Electronics MK-52") sangat populer di USSR. Alasannya bukan hanya harga yang terjangkau yaitu 65 rubel untuk MK-54, 85 rubel untuk MK-61 atau 115 rubel untuk MK-52, tetapi juga bahasa pemrograman yang dikembangkan. Rangkaian kalkulator ini telah menjadi standar de facto untuk banyak pengguna.
Sejumlah besar buku dikhususkan untuk pemrograman pada mesin-mesin ini dan publikasi algoritma yang sudah jadi. Elektronik MK-52 bahkan terbang ke luar angkasa di pesawat ruang angkasa Soyuz TM-7, di mana ia seharusnya digunakan sebagai cadangan jika terjadi kerusakan pada peralatan navigasi turunan. Bahkan di Angkatan Laut Uni Soviet, kalkulator MK-52 Electronics dengan unit ekspansi memori Astro PDU untuk beberapa waktu merupakan alat standar untuk perhitungan navigasi.

Mikrokalkulator MK-52 milik generasi kedua dari mikrokalkulator yang dapat diprogram Soviet.
Generasi pertama adalah keluarga
B3-21 (termasuk
MK-46 ,
MK-64 dan
MS 1103 ). Model dasar B3-21 dikembangkan pada tahun 1975 dan diproduksi secara massal sejak tahun 1977. Dia memiliki tumpukan yang berfungsi untuk dua angka (B3-21, seperti keluarga B3-34 - kalkulator dengan RPN - catatan Polandia terbalik (atau non-pemblokiran) - di mana angka pertama kali dimasukkan pada tumpukan, dan kemudian tombol operasi ditekan).

Selain tumpukan kerja, ada tumpukan dering tambahan 6 angka. Anda bisa menulis angka dalam lingkaran di tumpukan ini, lalu mengekstraknya. Dan tujuh register memori lagi dengan angka 2-8 (delapan di MK-46, MK-64 dan MC 1103) adalah register memori biasa untuk menyimpan nomor. Jumlah langkah program untuk B3-21 adalah 60. Dalam model MK-46, MK-64 dan MC 1103 ada 66. Model terbaru adalah kalkulator desktop dengan blok untuk memantau parameter dari perangkat eksternal. Di MK-46 hanya ada kesempatan untuk menerima kode digital, dan di MK-64 dan MS 1103 kaset dengan konverter analog-ke-digital dipasang, dan chip tambahan K145IK1801, yang mengatur interaksi. Karena pemasangan chip ini, register memori tambahan dengan nomor 9 dan enam langkah program lainnya muncul. Kontrol baca terjadi melalui register nomor 9 dengan memasukkan kode perintah. Demikian pula, omong-omong, MK-61 dan MK-52 dilengkapi dengan chip K745IK1306, yang, di samping fungsi tambahan, menambahkan satu register lagi dan tujuh langkah program lagi, tetapi lebih pada nanti.
Di suatu tempat di tahun 1980, mikrokalkulator yang dapat diprogram generasi kedua muncul di hadapan "Elektronik B3-34." Salinan pertama harganya 120 rubel, tetapi pabrik dengan cepat mengurangi harganya menjadi 85 rubel dan menjual model itu di suatu tempat sampai 1985. Secara umum, penetapan harga kalkulator adalah topik pembahasan untuk artikel terpisah: di suatu tempat, harga turun saat dirilis, di suatu tempat mereka meningkat. Jika tertarik, maka Anda dapat melihat situs saya untuk perubahan harga selama bertahun-tahun - saya mencoba untuk mengumpulkan informasi sebanyak mungkin. Kalkulator B3-34 digantikan oleh fungsi yang serupa, tetapi lebih ringkas MK-54, desktop MK-56. Beberapa tahun kemudian, chip K745IK1306 muncul dengan fungsi tambahan, dan merilis model MK-61 baru dalam kasus yang mirip dengan MK-54, dan horizontal MK-52 dengan internal EEPROM K1601PP1 pada 512 langkah (hal yang unik, saya belum melihat kalkulator lain dengan EEPROM di dunia). : mereka memiliki CMOS RAM yang rendah, atau lebih modern Flash) dan dua konektor untuk menghubungkan perangkat: yang pertama digunakan untuk menghubungkan modul memori eksternal dari "unit ekspansi memori PDU", dan yang kedua adalah teknologi dan tidak ada yang terhubung di sana (pabrik menjelaskan bagaimana teknologi konektor biologis untuk pengujian selama produksi).
Tampak belakang:


Dibandingkan dengan mikrokalkulator generasi pertama, peningkatannya signifikan. Jumlah register untuk menyimpan angka meningkat dari 8/9 menjadi 14/15.
Tumpukan operasional dari dua register meningkat dua register lagi - X, Y, Z, T. Sebuah register dengan nilai terakhir register X muncul sebelum melakukan operasi aritmatika terakhir - BX (register operasional X, Y, Z, T dengan register X Terakhir dipata-matai oleh kami, sebaliknya secara keseluruhan, kalkulator Hewlett Packard dengan register yang serupa, namun, ini adalah tempat identitas dengan HP berakhir). Area program dari 60/66 langkah meningkat dari 98 langkah (untuk B3-34, MK-54, MK-56, MC 1104) menjadi 105 langkah (untuk MK-61 dan MK-52).
Dalam program ini, Anda dapat menggunakan loop otomatis di register L0-L3, kemudian register yang sesuai berkurang 1, dibandingkan dengan nol dan bercabang di alamat.
Kalkulator generasi kedua telah sangat meningkatkan implementasi pengalamatan tidak langsung. Setiap register memori dapat digunakan sebagai indeks untuk menyimpan / mengambil nomor, serta untuk transisi tidak langsung ke program dan subprogram, termasuk dengan syarat. Dalam hal ini, nilai register lompat tidak langsung akan secara otomatis dikurangi (register 0-3), ditingkatkan (register 4-6) atau dibiarkan tidak berubah.
Semua tindakan otomatis dengan register ini sangat menghemat area program dan membuat pemrograman lebih mudah.
Anda dapat berbicara tentang bekerja dengan MK-52 untuk waktu yang lama. Saya hanya berbicara singkat tentang kemampuan mesin ini untuk mereka yang tidak bekerja dengan mereka.
Saya ingin memulai percakapan tentang arsitektur dengan sebuah cerita. Keluarga kalkulator B3-21 dan B3-34 adalah pengembangan Lembaga Penelitian Ilmiah Kiev dari Microdevices (NIIMP). Kalkulator pertama yang disebut "
Elektronik 4-71 " muncul pada tahun 1971. Dua perusahaan diberi tugas membuat kalkulator di sirkuit terpadu besar - Kiev NIIMP dan Leningrad Svetlana - di Kongres ke-24 CPSU pada tahun 1971. Akibatnya, pada waktu yang hampir bersamaan, dua model kalkulator muncul - Electronics 4-71 dan
Electronics 24-71 yang disebutkan di atas (
apakah Anda mendapatkan nama modelnya?). Model 4-71 dibuat pada kontrol program mikro, sebagai kalkulator pertama keluarga Iskra, dengan logika pada mesin Moore bekerja sama dengan Biro Desain Khusus Negara Leningrad. Artinya, ketika tombol ditekan, pemicu yang diperlukan klik (tergantung pada tujuan tombol), yang membentuk bagian dari perintah mikro yang sesuai. Automata - ini tentu baik, tetapi Anda tidak akan pergi jauh dalam hal perbaikan. Bahkan kalkulator
Iskra-114 dari Biro Desain Khusus Negara pada tahun 1974 sudah memiliki ROM K5YAP011001 (mungkin yang pertama dalam sirkuit mikro chip USSR ROM) dengan firmware.
Maka, pada tahun 1973, NIIMP
muncul inti mikrokontroler dari desainnya sendiri. Simpan situs itu dengan referensi selagi masih hidup - ada banyak informasi menarik tentang NIIMP.
Mikrokalkulator elektronik B3-09 pertama pada microchip K145IK2A keluar sebagai "pancake pertama" dan tidak berakar, tetapi modifikasi
B3-09M Electronics , B3-14M dan B3-14 meledak dengan keras, ratusan ribu keping diproduksi setiap tahun dan memecahkan masalah menghitung defisit. Tidak ada cukup kalkulator produksi kami pada tahun-tahun itu, dan mereka diimpor dari luar negeri, baik dari negara sosialis maupun dari negara kapitalis. Ingat film "Office Romance" pada tahun 1977? Anda dapat melihat, mulai jam
9:15 , kalkulator mana yang ada di atas meja - terutama transistor GDR "Soemron 220" dan Bulgaria "Elka 50" dari modifikasi pertama.



Foto yang lebih besar dapat dilihat di situs Radio Pictures:
K145IK2 ,
K145IK501 ,
K145IK502P .
Ini adalah kristal dari rangkaian mikro K145IK2, IK501 dan IK502. Seperti yang Anda lihat, chip kalkulator sederhana dengan empat operasi aritmatika K145IK2 praktis bertepatan dengan chip kalkulator yang diprogram "B3-21" (K145IK501, 502 dan 503). Yang terakhir hanya berbeda dalam "firmware". Nomor firmware ditampilkan pada lapisan terpisah setelah namanya.



Dan ini adalah chip kristal yang lebih maju
K145IK1302 , yang ada dalam kalkulator yang dapat diprogram dari keluarga "Electronics B3-34", termasuk "Electronics MK-52", yang menjadi tujuan artikel ini.
Tiga area terlihat di tengah chip (ditandai dengan warna hijau). Ini adalah memori microcommands, memori program sinkronisasi dan memori program. Kuning menunjukkan register shift cincin.
Prosesor kalkulator beroperasi pada frekuensi 75-100 kHz. Prosesor ini memiliki ALU satu bit (perangkat logika aritmatika) dengan beberapa sumber dan penerima.
Untuk empat mikrotak, prosesor melakukan satu perintah mikro (lebih dari satu notebook). Setiap perintah mikro mengatakan set sumber mana yang harus diambil untuk penambah dan ke mana harus menempatkan hasilnya.
Secara total, rangkaian mikro memiliki 68 perintah mikro dengan panjang masing-masing 27 bit, 128 program sinkronisasi yang berbeda, dan 256 sel untuk perintah.
Mikroprosesor kalkulator (akan lebih akurat untuk mengatakan mikrokontroler, karena di dalamnya terdapat ROM, RAM, dan port input-output) bekerja sesuai dengan prinsip yang konsisten. Semua register adalah register geser.

Di dalam prosesor, semuanya dilingkarkan dan menyerupai taman hiburan dengan komidi putar, roda Ferris, dan bus ideal dengan pengunjung, dengan satu pintu bekerja di pintu masuk, yang lain di pintu keluar, dan pengunjung secara bertahap bergerak dari awal hingga akhir.
Seorang karyawan taman (perintah mikro), memeriksa dengan buku catatan (bidang perintah mikro), pada setiap mikrotak, mengekstrak (atau tidak) dari korsel sel yang didekati, kincir ria atau penumpang bus berikutnya (yaitu, register berikutnya) bit, mengarahkan mereka ke objek wisata “adder”, di mana beberapa tindakan terjadi dengan mereka dan hasilnya dikirim kembali, juga tergantung pada bidang perintah mikro. Rutin ini berlaku untuk 4 bit, setelah itu nomor ukur bertambah.
Karena register berbentuk lingkaran, pengembang harus mengatur ukurannya dengan benar. Akibatnya, nomor dasar untuk kalkulator keluarga K145IK13 adalah nomor 42.
Panjang ini (42 tetrads) memiliki register berurutan - register M, R dan ST. Agar tidak menunggu sampai angka-angka yang diperlukan maju di sepanjang ring, selain itu ada beberapa register 4-bit dan satu-bit seperti register transfer yang tersedia di setiap siklus clock. Satu nomor dengan mantissa 8-bit dan pesanan 2-bit menempati 14 tetrads (sepertiga dari 42). Tepatnya tiga angka masuk ke dalam register cincin, yang memungkinkan, misalnya, untuk mengimplementasikan register memori dan penyimpanan dua angka ketika menghitung dengan tanda kurung, seperti yang diterapkan dalam kalkulator "Elektronik B3-32" pada K145IK1301.
Dengan nomor 42, yang disebut "memori program sinkronisasi" juga bekerja keras, yang berisi alamat-alamat perintah mikro yang harus dijalankan.
Ini disebut program sinkronisasi karena disinkronkan secara erat dengan ukuran register cincin dan angka pengukuran 0-41 - satu siklus dering.
Setiap program sinkronisasi berisi sembilan nomor perintah mikro yang perlu dijalankan.
Perintah sinkronisasi cukup menarik. Pengembang menganalisis algoritme dan menghitung bahwa, dengan mempertimbangkan transfer akun, satu operasi ALU pada notebook memerlukan tiga siklus clock, dan tindakan yang dilakukan sangat mirip. Dan mereka membuatnya sehingga perintah mikro, tergantung pada nomor ukur (0-41), selalu dieksekusi dalam perangkat keras dalam urutan berikut:
0, 1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 2, 3, 4, 5

Saya menandai bagian yang sama dengan warna kuning (perintah mikro 3, 4, 5), yang dieksekusi tujuh kali berturut-turut. Ini cukup untuk memproses satu angka delapan digit. Sebenarnya, ini adalah mikroalgoritma siap pakai. Di satu sisi, loop bawaan seperti itu mengurangi kapasitas ROM yang diperlukan untuk program, tetapi di sisi lain, bayangkan bahwa urutan seperti itu selalu berjalan di setiap baris program.
Karena satu tetrad diproses dalam tiga langkah, data selama waktu ini berhasil dibiarkan berdering. Karena fitur ini, angka-angka dalam register cincin tidak disimpan dalam sel yang berurutan, tetapi di setiap ketiga, sehingga mereka tiba tepat pada waktunya untuk akhir siklus 3, 4, 5.
Gambar di bawah ini menunjukkan area memori program. Dalam memori program di setiap bidangnya berisi informasi tentang tiga program sinkronisasi yang harus dilakukan dalam satu siklus dering. Ada juga nuansa bahwa program sinkronisasi ketiga biasanya digunakan untuk semua jenis cabang. Dalam register R, sel 36 dan 39 ditugaskan ke alamat program saat ini dieksekusi, mereka hanya muncul pada jam yang sesuai ketika dua program sinkronisasi pertama dieksekusi, dan program sinkronisasi ketiga memproses alamat ini.
Tentu saja, di dalam mikroprosesor bekerja lebih rumit. Hanya deskripsi tentang itu dengan semua nuansa menempati lebih dari selusin halaman buku Trokhimenko Y.K. “Mikrokalkulator yang dapat diprogram. Perangkat dan penggunaan ”(google book).
Arsitektur ini dengan tiga tingkat pemrosesan - memori program dengan alamat program sinkronisasi, memori program sinkronisasi dengan jumlah perintah mikro dan memori perintah mikro dengan seperangkat sumber dan penerima adalah basis untuk seluruh keluarga rangkaian mikro K145IK2, K145IK13xx, K145IK18xx dan K145IK19xx, hanya saja mereka memiliki ukuran register yang berbeda, pengalamatan dan percabangan dibuat untuk yang lain dan perbaikan dan perubahan lainnya dilakukan.
Dan hal yang paling menarik yang dilakukan para pengembang pada tahun 1973 adalah mereka membawa otak prosesor untuk ekspansi. Maksud saya register dering. Dalam kalkulator massa B3-09M pertama, kapasitas register sudah cukup, dan ekspansi tidak diperlukan. Tetapi bagaimana jika daya tariknya tidak cukup? Anda dapat menambah ukurannya atau meletakkan yang lain di sebelahnya. Agar tidak meningkatkan ukuran ROM, dan karena itu ukuran kristal, untuk mengurangi hasil kristal yang sesuai dalam proses produksi dan kesulitan lainnya, pengembang mengambil beberapa prosesor identik dan membuat register cincin umum.


Di sini, di foto di sebelah kiri adalah bagian dari kristal K145IK2, dan di sebelah kanan adalah K145IK5. Anda bisa memperhatikan sudut kiri atas. Sudah ada dalam proses produksi ada jumper kecil yang menutup dua bantalan kontak (ring register). Dan di K145IK5 jumper ini tidak, dan register ring tidak ditutup.
Pada tahun 1975, sampel pertama dari kalkulator yang dapat diprogram "
Elektronik B3-21 " muncul. Di sana Anda dapat melihat sebanyak tiga prosesor dari tipe K145IK5 - K145IK501, K145IK502 dan K145IK503. Mereka hanya berbeda dalam firmware.
Prosesor K145IK502 pertama bergerak dalam input dan output keyboard ke indikator, memproses tindakan dalam mode otomatis dan input program dan mode eksekusi.
K145IK501 terlibat dalam operasi aritmatika, dan K145IK503 - dalam operasi trigonometri. Dan karena kapasitas juga diperlukan untuk menyimpan program pengguna dan register memori, selain celah dalam register yang sama, mereka memasukkan chip K145IR1, yang merupakan salah satu register geser besar. Hasilnya, tiga wahana muncul dengan tiga bus yang terhubung secara seri dan satu kereta. Dan semua data terus bergerak di sepanjang cincin umum dengan kecepatan clock generator.
Berkat Felix Lazarev, yang dapat membaca firmware dari mikrokontroler ini dan memahami arsitekturnya, kami mendapatkan
emulator kalkulator seperti MK-61 dan B3-34, di mana Anda dapat mempelajari pekerjaannya secara lebih terperinci dan bermain dengan menghidupkan dan mematikan chip dari ring umum.
Mikrokalkulator pertama dari generasi kedua "
Electronics B3-34 " menggunakan chip K145IK1302 (input / output, mode operasi), K145IK1303 (fungsi matematika) dan dua register K145IR2 masing-masing 1008 bit.

Secara total, dua register M dan dua register 1008 bit masing-masing membentuk cincin 42 * 4 + 42 * 4 + 1008 + 1008 = 2352 bit.
Pengembang membagi seluruh bidang data menjadi tiga bidang identik 784 bit (196 tetrads atau 98 byte). Program pengguna disimpan di area pertama (98 langkah), register data di area kedua (14 register dengan angka 0-9, a, b, c, d masing-masing adalah 14 tetrads), dan area ketiga adalah service one.
Beberapa tahun setelah kemunculan B3-34, dua model baru muncul - MK-61 dan MK-52. Mereka menambahkan chip K145IK1306 lain, di mana operasi dengan derajat dan operasi logis dihitung. Cincin itu mulai terlihat seperti ini:

Harap dicatat bahwa dalam K145IK1306 terdapat register M yang sama seperti pada K145IK1302 dan K145IK1303. Tampilan chip ini menambahkan satu register memori (14 tetrads) ke ring, tujuh langkah program lainnya (14 tetrads), dan area layanan bertambah 14 tetrads.
Di MK-52 ada juga chip K745IK1801, yang mentransfer data dari chip EEPROM atau unit ekspansi memori yang dapat dilepas. Tetapi tidak menggunakan cincin register.
Rincian seluruh cincin data dalam kalkulator tipe MK-61 dan MK-52 ditunjukkan pada gambar di bawah ini:

Seperti yang saya katakan, seluruh cincin dibagi menjadi tiga area: M1, M2 dan M3.
Di wilayah M1 ada register memori 0-9, a, b, c, d, e. Hal yang menarik tentang mereka adalah untuk menyimpan angka Anda memerlukan 12 tetrads (1 adalah tanda mantissa, 8 adalah tanda mantissa, 3 adalah urutan), dan 14 tetrads dialokasikan untuk satu register (akan dibagi dengan 42 dalam prosesor). Akibatnya, dua buku catatan untuk setiap register tidak digunakan.
Di bidang M3 adalah memori program. Semuanya sederhana di sana - 98 langkah untuk B3-34 dan 105 langkah (14 lebih tetrads) untuk MK-61 dan MK-52.
Area M2 adalah yang paling menarik. Selain register X, Y, Z, T, BX, itu juga berisi wilayah Ms, saluran komunikasi KS dan Label.
Area yang ditunjukkan tidak saling mengikuti. Ingat, saya mengatakan bahwa dalam program sinkronisasi ada beberapa operasi berulang yang membutuhkan tiga siklus clock dan menyebabkan angka-angka dalam register disimpan pada setiap sel ketiga? Inilah yang diimplementasikan dalam data cincin. Pertama, tetrad pertama region M1 ditransmisikan, kemudian tetrad pertama region M2, dan kemudian tetrad pertama region M3. Lalu datang notebook kedua dan seterusnya.
Dan selama tiga siklus clock, perintah mikro 3, 4, 5 dikerjakan dalam program sinkronisasi, area yang tidak perlu dilewati.Ketika saya berurusan dengan distribusi data di cincin umum, saya sangat tertekan oleh area yang ditunjuk sebagai Ms. Ini cukup besar, menempati seperenam dari area data cincin. Dan area ini tidak digunakan dalam kalkulator. Saat mengembangkan arsitektur, pengembang memberikan kesempatan untuk membuat "area data-program". Ini adalah area di mana seseorang dapat menulis program atau register data. Selain itu, area yang agak besar - 56 langkah program. Dalam kalkulator, itu seharusnya mencakup fungsi-fungsi khusus dalam kombinasi dengan tombol [K] untuk pertukaran (tombol di atas 1 dan 2, sekarang ada tempat kosong di sana). Tapi, saya ulangi, dalam model serial area ini menghilang, dan jadi kami bisa memiliki lebih banyak register memori atau program yang 56 langkah lebih lama. Area ini dengan santai disebutkan dalam jurnal "Technique-Youth", No. 7 untuk 1986.
Elemen paling penting dari sinkronisasi dalam data dering adalah apa yang disebut "Label". Ini adalah urutan sembilan notebook yang terdiri dari unit. Ketika kode "Tag" muncul, penghitung internal prosesor diatur ulang, dan dering mulai menghitung sehubungan dengan kode Tag. Pada awalnya, setelah menyalakan mesin, prosesor kepala K145IK1302 menginisialisasi cincin dan membentuk tanda. Perintah dan konten register dipilih sehingga kode Label tidak dapat ditemukan dalam data atau dalam program.Pengguna canggih kalkulator keluarga B3-34 telah mendengar tentang "dummy" - operasi tanpa dokumen saat hanya titik desimal ditampilkan pada indikator. Ini adalah kode yang hanya terdiri dari unit. Ketika kode ini muncul, penghitung internal tersesat dan kalkulator mulai panik - dua kode muncul.Label dan semua sinkronisasi tersesat - kalkulator mengambil satu area memori untuk yang lain.Pengalamatan internal relatif terhadap kode label. Ketika chip K745IK1306 dengan register tambahan M muncul, jumlah sel meningkat, dan mereka ditambahkan secara kondisional sampai akhir, karena dalam arsitektur seluruh area data di dalam cincin kontinu. Dalam arsitektur ini, Anda dapat menambahkan prosesor lain seperti K145IK13, maka itu akan menjadi satu register memori lagi, dan 7 langkah program lagi akan ditambahkan (maksimum 112).Kemungkinan besar, representasi internal dari data bekerja dengan cara yang sama dalam kalkulator yang tidak dapat diprogram Electronics MK-44 , yang dibuat pada mikroprosesor K145IK1305 yang sama. Itu adalah salah satu kalkulator desktop paling populer di negara kita. Ini memiliki tiga register memori. Saya bertanya-tanya apa yang akan terjadi jika saya merobek cincin register M dibawa keluar dan menambah memori di sana. Eksperimen itu sukses . Prosesor "mengambil" memori yang muncul, dan ada sepuluh register memori dalam kalkulator.Dan bagaimana prosesor berinteraksi satu sama lain? Mereka "berkomunikasi" dengan bidang khusus yang disebut "saluran komunikasi" (CS). Baik kalkulator keluarga B3-21 dan kalkulator keluarga B3-34 memiliki satu prosesor utama. Dalam kasus kami, ini adalah K145IK502 untuk B3-21 dan K145IK1302 untuk B3-34. Mereka menginisialisasi cincin ketika dinyalakan, membentuk kode "label" dan berinteraksi dengan operator, mengatur input dan output keyboard ke indikator. Prosesor lain dalam mode siaga dan menunggu perintah."Saluran komunikasi" adalah dua notebook tempat prosesor utama dapat memasukkan angka - byte dengan kode operasi.Jika prosesor kepala tidak dapat memproses operasi dengan kode apa pun saat bekerja dalam program atau dalam mode manual, maka ia menempatkan kode operasi dalam register kotak cincin dan mulai menunggu.Prosesor budak terus memantau register COP di cincin data. Segera setelah kode operasi muncul yang dapat diproses oleh prosesor slave, ia mulai memprosesnya, misalnya, melakukan fungsi tambahan, menghitung sinus, dll. Prosesor slave secara mandiri mengekstrak register yang diperlukan dari cincin ketika mereka datang ke dalam sebuah cincin, membuatnya operasi, dan hasilnya menempatkan kembali. Setelah prosesor melakukan aksinya, ia membersihkan register saluran komunikasi, menimpa notebook terendah dengan angka "F". Artinya, jika angka 10 muncul di saluran komunikasi (kode tambahan), maka pada akhir perhitungan, angka 1F akan dituliskan dalam register COP.Bersamaan dengan kode operasi yang diatur dalam saluran komunikasi, penghitung siaga khusus dihidupkan dalam chip kepala sebagai pengawas waktu. Jika tidak ada prosesor slave yang dapat memproses perintah melalui saluran komunikasi, maka setelah waktu tertentu prosesor host akan menghapus saluran komunikasi dan menampilkan pesan kesalahan "YYGOG" pada indikator.Chip slave menggunakan batas waktu ini jika terjadi kesalahan dengan nomor selama proses perhitungan. Misalnya, pengguna mencoba mengekstrak root dari angka negatif. Dalam kasus ini, slave chip tidak memasukkan apa pun ke saluran komunikasi, dan setelah beberapa detik prosesor host sendiri menampilkan pesan kesalahan. Oleh karena itu, dalam kalkulator, output dari prasasti "EGGOG" dengan kesalahan seperti itu memakan banyak waktu.Prosesor utama mungkin tidak tahu prosesor apa yang ada di dalam ring. Itu hanya menempatkan kode ke saluran komunikasi, dan prosesor lain memprosesnya. Anda dapat, misalnya, mengganti chip K745IK1306 dengan yang lain, atau membuat pengembangan Anda berdasarkan mikrokontroler, seperti yang Anda lakukan di masa Soviet dalam kalkulator MS-1104 Electronics .Selain bus data serial, kalkulator tipe "MK-52 Electronics" memiliki antarmuka dengan EEPROM dan modul ekspansi memori eksternal. Seperti yang saya tulis di atas, MK-52 memiliki chip memori K1601PP1 yang dapat dihapus secara listrik, di mana hingga 512 langkah program dapat ditulis. Alih-alih memori program, register memori numerik dapat disimpan. Apa yang harus ditulis - memori atau register program, ditentukan oleh sakelar "D-P" pada panel depan. Area yang sama di EEPROM dapat digunakan untuk penyimpanan program dan untuk penyimpanan register. Anda dapat menulis register ke EEPROM, dan data yang direkam dapat diekstraksi ke area program, dan sebaliknya.Jenis kalkulator di sisi microcircuit
: Microcircuit besar :
Selain EEPROM internal, modul memori yang dapat dipertukarkan "PDU" (unit ekspansi memori) juga diproduksi. Mereka adalah chip ROM di mana program direkam.Total modul yang dikenal:- PDU "Astro", juga dikenal sebagai BRP-2 - program navigasi. Modul ini digunakan di kapal, yang saya tulis di awal artikel.
- BRP-3 berisi program matematika
- BRP-4 - program matematika dan program rumah tangga, termasuk permainan.
Jumlah ROM yang cukup besar, dan dalam satu PDU benar-benar masuk ke program dari dua modul. Artinya, pemilik modul BRP-3 dapat membuka kasing, menyolder jumper dan mendapatkan modul Astro BRP-2.Ketika saya membaca dump, saya menemukan dump dari modul tujuan yang tidak dikenal di modul BRP-4. Belum ada informasi cara menggunakan dump ini.Chip komunikasi dengan EEPROM atau PDU K745IK1801 cukup independen. Dia juga duduk di ring kalkulator, tetapi tidak melacak perintah. Itu hanya mengingat isi register X sebagai alamat dan panjang akses ke ROM atau EEPROM dengan menekan tombol [A ↑], dan dengan menekan tombol [↑ ↓] itu mulai menghapus, membaca atau menulis dari, atau ke program atau area data.Sehubungan dengan ROM PDU, alamat dalam kode paralel selalu ditetapkan pada bus, dan PDU selalu menyediakan konten sel.Modul PDU dimasukkan ke soket yang sesuai di bagian belakang kalkulator MK-52.Tentunya setiap pengguna MK-52, setelah membeli kalkulator, melihat dua konektor di belakang kasing - besar untuk PDU dan kecil, tidak jelas mengapa. Dalam instruksi dan majalah, pengembang menjelaskan bahwa konektor ini hanya digunakan untuk keperluan teknologi pada tahap produksi.Mungkin beberapa modifikasi non-serial kalkulator MK-52 diproduksi, tetapi saya belum pernah mendengarnya. Setiap saat saya ingin mengembangkan beberapa jenis perangkat yang dapat digunakan pada konektor itu dan menggunakannya dalam pekerjaan.Jika Anda beralih ke konsepkalkulator, Anda dapat melihat bahwa selain tegangan pasokan dan sinyal clock, sinyal dari cincin diambil dari input dan output chip K745IK1801 juga output ke konektor. Untuk menyusup dan merekam sesuatu di cincin itu, perlu untuk mematahkannya. Tentu saja, mengubah sesuatu dalam skema MK-52 adalah opsi terbaru. Tetapi ternyata sinyal keluaran dari chip chip K745IK1801 lemah. Kemungkinan besar itu sedikit dikencangkan ke salah satu tegangan suplai, dan itu bisa sangat bebas diisi dengan sinyalnya. Jadi saya lakukan. Mikrokontroler memonitor cincin MK-52, menganalisisnya, dan dapat membaca dan menulis data.Hasilnya, kami mendapat perangkat - modul FRS-BRP. Berikut adalah diagram skematik:
Inti dari modul adalah mikrokontroler STM32F205. Ini terputus dari generator frekuensi internal kalkulator membaca sedikit demi sedikit data yang dikirimkan sepanjang cincin. Secara bersamaan memonitor bus paralel untuk meniru unit ekspansi memori. Sejumlah besar pembanding diperlukan untuk deteksi tingkat logika yang benar. Faktanya adalah bahwa kalkulator menggunakan tegangan negatif dari 0 hingga -15 volt. Tegangan ini dihasilkan dari catu daya 5 volt. Papan juga perlu menggunakan tegangan ini, tetapi tidak hanya untuk -15 volt, tetapi ke -5 dan -3,3. Akibatnya, tegangan yang 0 volt dalam kalkulator di papan FRS-SRP menjadi +5 volt, dan yang -5 volt menjadi nol. Pada komparator, semuanya dapat disaring dengan baik, ada banyak dari mereka, tetapi sekarang sangat murah. Pada dasarnyakomparator terlibat dalam sinyal decoding dari bus paralel emulator PDU. Tentu saja, PDU sendiri dapat ditiru dengan mengirim data langsung ke ring. Tetapi untuk keaslian, sehingga pengguna menekan tombol "sama" yang dijelaskan dalam instruksi untuk PDU, saya memutuskan untuk membuat emulator penuh.
Sekarang beberapa orang akan menggunakan kalkulator MK-52 untuk tujuan yang dimaksud. Ada cara komputasi yang lebih efisien. Tetapi bagi penggemar, bagi mereka yang ingin berurusan dengan struktur internal, yang ingin menggunakan program yang telah terbukti atau mereka yang ingin memainkan game-game yang membuat para pengguna pertengahan 1980-an menjadi gila, modul ini dapat berguna.Apa yang dapat dilakukan modul ini:- Ini ditampilkan pada layar konten OLED untuk memilih dua register kalkulator RAM (0-9, A, B, C, D, E) secara bersamaan. Dalam mode akun program, ketika layar utama kalkulator berkedip, Anda dapat mengklik tombol pada modul untuk melihat register.
- () -, -3, -4, -5 ( -5 , ).
- (105 ) 1 130.
- 130 (105 ).
- . 3, 4 (0-9, A, B, C, D, E) 130 .
- , (, ) 50 .
- («-1», «-2», «-3», «-1», «-2», «»).
- 7451303 , , . , 7451303 , « », , .
- 0x28 (K *) 0x29 ( /).
Seperti yang saya tulis di atas, kode operasi ditransmisikan melalui saluran komunikasi. Sekarang hampir semua kode sibuk, dan hanya tiga perintah yang tidak digunakan dapat dimasukkan dari remote control - kode 27, 28 dan 29. Pada prinsipnya, mereka cukup untuk beberapa tugas. Meskipun saya tidak tahu perintah apa yang bisa diimplementasikan karena kalkulator untuk tujuan yang dimaksud bukan lagi kue, tetapi fakta pemrosesannya sangat menarik.
Nah, dan tentu saja - komunikasi dengan komputer melalui USB. Modul ini mengimplementasikan perintah dialog sederhana, Anda dapat membaca dan menulis konten data, program, area layanan, atau keseluruhan dering. Itu dapat disimpan ke disk, diekstraksi, dianalisis, dimodifikasi dan ditulis ke kalkulator. Ini screenshotnya:

Anda dapat, misalnya, memasukkan beberapa nomor di saluran komunikasi dan melihat bagaimana itu akan diproses oleh chip lain. Atau cari tahu apa yang terjadi jika beberapa sel layanan ditulis secara berbeda. Atau periksa apakah mungkin untuk menghapus kalkulator dari keadaan "gelap", jika register X diperbaiki melalui modul melalui modul, katakanlah, dari 500 ke 0, apakah akan mengeluarkannya dari keadaan pingsan?
Sayangnya, hanya cincin data yang keluar dari kalkulator. Dan negara-negara lain seperti penghitung perangkat lunak, tanda - apakah kalkulator menghitung sesuai dengan program atau menampilkan pada indikator, dan sebagainya - informasi ini duduk di register internal R.
Tapi para pengembang membawanya keluar. Jika Anda melihat rangkaian MK-52 yang sama, Anda dapat melihat bahwa ada "jumper tertentu" - itu adalah output dan input dari register "R". Artinya, jika Anda mau, Anda dapat terhubung ke bus ini dan lebih hati-hati memeriksa bagian dalamnya.
Register yang disimpulkan seperti itu mungkin ada di semua mikrosirkuit dari keluarga K145IK5, K145IK13, K145IK18 dan bahkan K145IK19. Microcircuit arloji “K145IK1901” yang terkenal juga dilengkapi dengan register M dan R. Anda dapat memastikannya dengan melihat diagram sirkuit.

Saya bahkan, sebagai percobaan,
terhubung ke register di jam di K145IK1901 dan mengambil tempat ia memiliki data.
Sebagai kesimpulan dari artikel ini saya akan mengatakan bahwa keluarga mikrokontroler yang disebutkan sangat populer di CCCP, sejumlah besar kalkulator - model dirilis berdasarkan:
- K145IK2 - B3-09, B3-09M, B3-14, B3-14M;
- K145IK5xx - B3-05M, B3-21, MK-46, MK-64, MS-1103, MK-59, Elwro 330;
- K145IK13xx - B3-32, MK-44, B3-34, MK-54, MK-56, MK-52, MK-61, MS-1104.
Pada sirkuit mikro seri K145IK18xx dan K145IK19xx - peralatan rumah tangga, yang dikenal adalah timer untuk gelombang mikro,
jam , timer untuk fotografi, pengontrol kaset dalam perekam kaset dan banyak lagi.
Hanya itu yang ingin saya katakan. Saya harap itu menarik. Terima kasih atas perhatian anda