Push Punch Cards!

Esse jogo  é inspirado numa forma antiga de realizar programação através de cartões perfurados, embora não tenho tido exito em simular isso tão bem. Você pode ler mais sobre na Wikipédia e no mini documentário do canal Computerphile.

Como jogar

É recomendado assistir este vídeo antes:

No jogo existem quatro painéis:

  • Na esquerda acima, está a memória, com as instruções e os dados
    • Os de teste são preenchidos automaticamente no fim da memória
    • Cada espaço de memória pode ser um valor simples ou uma instrução
      • No caso de uma instrução, trata-se de um par de: instrução e endereço (ou valor em alguns casos)
  • Na esquerda abaixo, está o PC e o Acc:
    • PC: contador de programa, é a instrução a ser executada
    • Acc: acumulador, guarda um valor temporário para realizar cálculos; todo resultado é guardado no acumulador (ou seja, o resultado de uma adição fica no acumulador)
  • Na direita acima, está uma tabela de duas colunas:
    • A primeira são os resultados esperados
    • A segunda são os resultados que o seu programa calculou
  • Na direita abaixo, estão os controles, é aqui onde você manipula a memória para criar o seu programa; em ordem estão:
    • As instruções:
      • LOAD: carrega o dado do endereço para o acumulador
      • ADD: faz adição entre acumulador e valor do endereço da instrução
      • SUB e MUL: idem, mas pra subtração e multiplicação
      • SET: define o valor no acumulador diretamente; este não é endereço
      • STORE: guarda o dado do acumulador no endereço
      • IF: se o dado no endereço é 0, incrementa PC em um, caso contrário, em dois
      • JUMP: define PC para o valor passado; este não é endereço, é aqui que se faz loops e condições junto com o IF
      • RESULT: define o valor do endereço como resultado do programa
      • REM: guarda no acumulador o resto da divisão com o valor do endereço, trata-se do operador % do C.
      • END: o programa para ao executar END
    • Os endereços (ou valores dependendo da instrução)
    • Controles para mudar o cursor para a próxima instrução ou anterior
    • Enter, para executar o programa


Leave a comment

Log in with itch.io to leave a comment.