Setun Simulador do Computador Ternário
Sobre o Setun
"Setun VS" é um simulador do Setun MCVM, um computador ternário soviético. Os principais elementos são RAM, registradores, painel de controle e dispositivos periféricos de entrada (FT-1, FT-2) e saída (EUM-46).
Componentes Principais
Registradores: Exibem o estado interno da máquina.
- S (Resultado): Registrador de 18 trits para resultados de operações.
- R (Multiplicador): Registrador de 18 trits usado em operações de multiplicação.
- F (Modificação): Registrador de modificação de 5 trits.
- C (Endereço de Comando): Registrador de endereço de comando de 5 trits.
- K (Comando): Registrador de comando de 9 trits que armazena a instrução atual.
- ω (w): Determina a transferência de controle em desvios condicionais.
- МБ (MB): Endereço da última zona do tambor magnético acessada.
Interruptores (Entrada de Comando, Endereço de Parada): Permitem a entrada manual de comandos e endereços. Clique para alternar entre os estados (+1, 0, -1).
Botões de Controle:
- Carregar: Carrega dados da fita perfurada do dispositivo FT-1 para a RAM.
- Iniciar: Inicia a execução do programa.
- Parar: Encerra a execução do programa (não implementado).
- Comando Remoto: Executa o comando inserido manualmente nos interruptores.
Dispositivos de E/S:
- FT-1 / FT-2: Simulam leitores de fita perfurada para carregar programas e dados.
- Impressora EUM-46: Exibe a saída do programa (parcialmente implementada).
Conjunto de Instruções
Código (Ternário) | Código (Nove) | Nome da Operação | Descrição |
---|---|---|---|
+00 | 30 | Enviar para S | (A*) => (S) |
+0+ | 33 | Adição a S | (S)+(A*) => (S) |
+0- | 3x | Subtração a S | (S)-(A*) => (S) |
++0 | 40 | Multiplicação 0 | (S)=>(R); (A*)(R)=>(S) |
+++ | 43 | Multiplicação + | (S)+(A*)(R)=>(S) |
++- | 4x | Multiplicação - | (A*)+(S)(R)=>(S) |
+-0 | 20 | Multiplicação bit a bit | (A*)[x](S)=>(S) |
+-+ | 23 | Enviar para R | (A*)=>(R) |
+-- | 2x | Parar | Parar; (A*)=>(R) |
0+0 | 10 | Salto condicional 0 | A*=>(C) quando w=0 |
0++ | 13 | Salto condicional + | A*=>(C) quando w=+ |
0+- | 1x | Salto condicional - | A*=>(C) quando w=- |
000 | 00 | Salto incondicional | A*=>(C) |
-00 | x0 | Saída-entrada | Entrada para Fa*. Saída de Fa* |
-++ | y3 | Escrever de S | (S)=>(A*) |
--- | zhx | Parar (Não utilizado) | Para a execução |
Nota: Este é um subconjunto simplificado para demonstração. A máquina Setun original tinha um conjunto de instruções mais completo.
Como Usar
- Carregar Programa: Insira o programa no campo FT-1 e clique em "Carregar Programa".
- Exemplo de Programa: Para carregar o número 10 e depois adicionar -4, resultando em 6.
// Carrega 10 (...+0+) no Somador S +00 000000000000000+0+ // Adiciona -4 (...0-+) ao Somador S +0+ 0000000000000000-+ // Para o programa --- 000000000000000000
- Carregar para a RAM: Clique no botão 'Carregar'. Isso transfere os dados da fita para a memória.
- Executar: Clique no botão 'Iniciar' para começar a execução.
- Observar: As luzes do registrador 'S' mostrarão o valor 6 (...+--).
Como Ler os Resultados