Spaces:
Sleeping
Sleeping
Upload app.py
Browse files
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
|
10 |
-
# --exec:
|
11 |
-
# --ink=green:
|
12 |
-
# --paper=black:
|
13 |
-
# --border=green:
|
14 |
output = pcbasic.run(
|
15 |
"temp_program.bas",
|
16 |
options=["--exec", "--ink=green", "--paper=black", "--border=green"]
|
17 |
)
|
18 |
return output
|
19 |
|
20 |
-
#
|
21 |
st.set_page_config(page_title="PC-BASIC 2.0 - IBM 5150 Emulator", layout="wide")
|
22 |
|
23 |
-
#
|
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
|
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
|
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
|
65 |
st.markdown("""
|
66 |
-
<div class="terminal" style="margin-top:
|
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)
|