
Perangkat yang diusulkan mengemulasi mikrokontroler ATmega4809 mikrokontroler abstrak 4-bit dengan ruang alamat 256 byte, yang dapat diprogram dengan tiga tombol dan empat sakelar.
Ruang alamat dibagi menjadi 16 halaman dengan 16 instruksi masing-masing. Panjang instruksi adalah 8 bit, di mana empat yang paling signifikan adalah perintah, dan empat yang lebih rendah adalah data:

Untuk masuk ke mode pemrograman, tahan tombol 2, tekan tombol reset, lepaskan, lepaskan tombol setelah itu. Dalam mode pemrograman, urutkan secara berurutan instruksi dalam RAM dengan tombol 2. Ketika pindah ke instruksi berikutnya, LED menunjukkan alamat saat ini untuk sepersekian detik. Tombol 1 memungkinkan Anda untuk membuat perubahan pada perintah dan alamat sebagai bagian dari instruksi saat ini. Saat pindah ke alamat baru dengan tombol 2, instruksi untuk alamat sebelumnya dimasukkan di EEPROM. Setelah mengetik program, Anda perlu menekan tombol reset, dan akan ada transisi dari mode pemrograman ke mode eksekusi program.
Daftar perintah:
0x0 - muat nilai konstan ke port doutB
0x1 - sama di port doutA
0x2 - jeda
0x3 - lompatan tanpa syarat relatif
0x4 - memuat nilai konstan ke dalam variabel A
0x5 - memuat sesuatu dengan nilai variabel A
0x6 - muat nilai sesuatu ke dalam variabel A
0x7 - melakukan operasi aritmatika dan logis dengan variabel A (dan B)
0x8 - atur gigitan tinggi alamat untuk instruksi lompatan mutlak tanpa syarat
0x9 - membuat lompatan mutlak tanpa syarat ke alamat yang ditentukan
0xA, 0xB - bertindak seperti untuk loop: setiap kali perintah dieksekusi, jika variabel C (atau D) lebih besar dari nol, transisi mutlak tanpa syarat ke alamat yang diberikan terjadi, maka nilai variabel C (atau D) menurun
0xC - lewati pernyataan berikut jika argumennya adalah unit logis
0xD - memanggil fungsi di alamat yang ditentukan
0xE - kembali dari fungsi yang dipanggil
0xF - atur alamat untuk virtual 4-bit RAM, nilai yang disimpan di alamat ini dapat dibaca dengan instruksi 0x6E dan ditulis dengan instruksi 0x50.
Contoh 1 - flasher:
0 1f doutA 1 28 500 2 10 doutB 3 28 500 4 34 -4
Contoh 2 - penghitung biner:
0 5B DoutB = A 1 59 PWM1 = A 2 71 A++ 3 28 500 4 34 -4
Contoh 3 - flasher dengan kecepatan yang dapat disesuaikan (dengan subrutin):
: 0 10 DoutA = 0x0 1 d5 myWait 2 1f DoutA = 0xf 3 d5 myWait 4 34 -4 myWait: 5 64 A = Din 6 52 C = A 7 25 50 8 a7 for(C > 0; C--) jmp 7 9 e0
Skema:



Semua file yang diperlukan untuk pengulangan (board, firmware, dll.) - dengan merujuk ke aslinya.
Simulator TPS Jerman
, kemampuan yang dekat, berfungsi sebagai inspirasi untuk desain.