Luis-Filipe commited on
Commit
e3f5888
·
verified ·
1 Parent(s): 5819b50

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -12
app.py CHANGED
@@ -6,21 +6,21 @@ def run_basic_code(code):
6
  with open("temp_program.bas", "w") as f:
7
  f.write(code)
8
 
9
- # Executa o PCBasic com as opções para:
10
- # --exec: executa o código
11
- # --ink=green: define a cor do texto como verde
12
- # --paper=black: define a cor do fundo como preto
13
- # --border=green: define a cor da borda como verde (opcional)
14
  output = pcbasic.run(
15
  "temp_program.bas",
16
  options=["--exec", "--ink=green", "--paper=black", "--border=green"]
17
  )
18
  return output
19
 
20
- # Configura a página com o Streamlit
21
  st.set_page_config(page_title="PC-BASIC 2.0 - IBM 5150 Emulator", layout="wide")
22
 
23
- # Adiciona CSS personalizado para simular o terminal IBM 5150 com fonte IBM Plex Mono
24
  st.markdown("""
25
  <style>
26
  @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@@ -31,11 +31,26 @@ st.markdown("""
31
  padding: 10px !important;
32
  border: 3px solid #00FF00 !important;
33
  border-radius: 5px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
  }
35
  </style>
36
  """, unsafe_allow_html=True)
37
 
38
- # Cabeçalho estático simulando o terminal do IBM 5150
39
  st.markdown("""
40
  <div class="terminal">
41
  PC-BASIC 2.0<br>
@@ -46,10 +61,10 @@ st.markdown("""
46
  </div>
47
  """, unsafe_allow_html=True)
48
 
49
- # Área para entrada do código BASIC
50
  code = st.text_area("Digite o código BASIC", height=200, key="code_input")
51
 
52
- # Botão para executar o código
53
  if st.button("Executar Código (RUN)"):
54
  if code:
55
  result = run_basic_code(code)
@@ -61,9 +76,9 @@ if st.button("Executar Código (RUN)"):
61
  else:
62
  st.warning("Por favor, insira um código BASIC para executar.")
63
 
64
- # Menu inferior fixo simulando os comandos do terminal
65
  st.markdown("""
66
- <div class="terminal" style="margin-top: 20px;">
67
  1LIST 2RUN 3LOAD 4SAVE 5CONT 6LPT1 7TRON 8TROFF 9NEW 0SYSTEM
68
  </div>
69
  """, unsafe_allow_html=True)
 
6
  with open("temp_program.bas", "w") as f:
7
  f.write(code)
8
 
9
+ # Executa o PCBasic com opções para:
10
+ # --exec: executar o código,
11
+ # --ink=green: definir a tinta (texto) como verde,
12
+ # --paper=black: definir o fundo como preto,
13
+ # --border=green: definir a borda como verde.
14
  output = pcbasic.run(
15
  "temp_program.bas",
16
  options=["--exec", "--ink=green", "--paper=black", "--border=green"]
17
  )
18
  return output
19
 
20
+ # Configuração da página
21
  st.set_page_config(page_title="PC-BASIC 2.0 - IBM 5150 Emulator", layout="wide")
22
 
23
+ # CSS personalizado para unificar a aparência de todos os elementos (cabeçalho, edição e rodapé)
24
  st.markdown("""
25
  <style>
26
  @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
 
31
  padding: 10px !important;
32
  border: 3px solid #00FF00 !important;
33
  border-radius: 5px !important;
34
+ margin: 0 !important;
35
+ }
36
+ /* Customizar a textarea do Streamlit */
37
+ .stTextArea textarea {
38
+ background-color: black !important;
39
+ color: #00FF00 !important;
40
+ font-family: 'IBM Plex Mono', monospace !important;
41
+ border: 3px solid #00FF00 !important;
42
+ border-radius: 5px !important;
43
+ padding: 10px !important;
44
+ }
45
+ /* Remover espaçamentos extras dos contêineres do Streamlit */
46
+ .stTextArea, .css-18e3th9, .css-1d391kg {
47
+ margin: 0 !important;
48
+ padding: 0 !important;
49
  }
50
  </style>
51
  """, unsafe_allow_html=True)
52
 
53
+ # Cabeçalho do terminal (sem margem inferior)
54
  st.markdown("""
55
  <div class="terminal">
56
  PC-BASIC 2.0<br>
 
61
  </div>
62
  """, unsafe_allow_html=True)
63
 
64
+ # Área de edição de código com aparência unificada
65
  code = st.text_area("Digite o código BASIC", height=200, key="code_input")
66
 
67
+ # Botão para executar o código e exibir a saída logo abaixo, sem separação
68
  if st.button("Executar Código (RUN)"):
69
  if code:
70
  result = run_basic_code(code)
 
76
  else:
77
  st.warning("Por favor, insira um código BASIC para executar.")
78
 
79
+ # Menu inferior fixo, com aparência unificada e sem margem superior
80
  st.markdown("""
81
+ <div class="terminal" style="margin-top: 0px;">
82
  1LIST 2RUN 3LOAD 4SAVE 5CONT 6LPT1 7TRON 8TROFF 9NEW 0SYSTEM
83
  </div>
84
  """, unsafe_allow_html=True)