i @ n
i @ nn
L L i dn
L i n n@d
D H L n ni@ n
D D H d ii n
W D D @ @Li d n
W D i iHL n @ n
3 W i iDH n i dn
N 3 L LDD n d i @n
m N 3 H WD n n @ L id
S m N n DW n d i H i@
n S m n D D3 d @ i D Li
nM 3 S n d W WN3 @ i L D Hi
dH 3 M n @ mN i i H W DL
@f n H M d i 3 3Sm i L D DH
iY n n f H @ i N N L H D 3 W
ik d n Y f i L m mM H D W N D
LK @ d k Y i H S SHM D D m n3W
PAN iBfX @ K k L D fH D W n 3 S nN
AAA vC/I i n K H PANkiBM MYf W n N dm3
AAj c2TbP NkiBfX n D AAAAAXvC nHkY 3 d PANPAN fXSN
Q5As7rioA AXvPANki fXPANkiBfXAAjPc2TbPA NkiBfX 3PAN PANAAAAAAX NkiBfX
vC/IIBQjA jPcAAAX /IAAAXvC/IQ5As7rioAAA AXPANkiBfX AAA AAAAAjAAj AXvC/I
c2TbqJADQ As7AAjPc TbAAjPc2TbvC/IIBQjAAj jPAAAXvC/IIAAj AAjQ5AQ5A AjPc2Tb
7rioR7wAv /IIQ5As7 ioQ5As7rioc2TbqJADQ5A AAAAjPc2TbHQ5A 5AvC/vC/ 5As7rio
LcAAAjPcc TbqvC/II QjvC/IIBQj7rioR7wAvC/ /AQ5As7rio0vC/I C/c2Tc2T C/IIBQj
ANEQ5As77r oRc2Tbq Dc2TbqJADBwAF5As7c2T TQvC/IIBQj/c2Tb 2T7ri7ri 2TbqJAD
AAXvC/IIBQ 487rioR7 A7rioR7wAvgHPj7+B7PA BfX2TbqJADE7rio rioR7wAQ 7rioR7wA
AjPc2TbqJA CBb+7yL 0zjt2SQO8uQyjPv+BzAA C/IrioR7wAEfFtb7rioR7wAA u8c4SLcC
5As7rioR7wAF6irKLfX /gsR0BwAFuoJ/X1/h8AAjP 2TbioR7wAkzt9QAO97rioR7w kC5xzye
HPj7+BntA H41i34AAD+AuEiC+8I3D7eFv TMwQ5As rioIIBgRGRAHGhoX9/QHBxLt Lu+Qz5A
yjPv+BzIJ/gFBfX+CAsC+OEfFtb7Ig7e+wUIDuvC/ IBQjxCQz76ff2AO7sDPbdwiIO5/gc3CTkA
J/X1/h8A5yTt5yfn6jPqykzt9QAO9R/IKgDZCxc2TbqJADW9f4cC+HvEd4w3i3+3A4ZzQgRDt4fA
AOLc0W+PUk5+0t6gIF7xYA+/UT7wjtDLc0W+PU7rioR7wAF7xYA+/UT7wjtDgD1CwjtBQLyFiLcr
CAANkiBfX4Ag4O7wAiyCfTIvICBRHvAANkiBfX4Ag4O7wAiyCfTIvICBRHvAPsf3hH76iLeGRy0g
AAAAXvC/IIBQj48iTe7Rz4HOcAHPj76AAXvC/IIBQj48iTe7Rz4HOcAHP 76vgk+B/FAj7QAPgzA
AAAjPc2TbqJADKCBb+7yL70zjt2SQO8AjPc2TbqJADK Bb+7yL70zjt2SQO8uQw3ir40yfQExMAD
EQ5As7rioR7wAF6irKLfX1/gsR0BwAF5As7rioR7wAF6irKLfX1/gsR0BwAFuoZzSfqERPk7TDCt
EEQLeLe3tC/If 8gTJOr+5As7rioR7wAF6irKLfX1/gsR0BwAFuoZzSfqERPk7TDCQd4O5wIk7+3
MMAveAu8c9fITAgjWM+f4HPj7+BntABH41i34AAD+AuEiC+8I3D7eFvXTMwgA5wUZyD7WLdkZH7E
AAAsAAAjZNuQLBdYIDgIfyjPv+BzIJ/gFBfX+CAsC+OEfFtb7Ig7e+wUIDu8c4SLc7xkW5AX+HNM
33O0cCNwWEeQZ4QX+AhzKJ/X1/h8A5yTt5yfn6jPqykzt9QAO9R/IKgDZCxkC5xzy9RPq9RkAAOo
MDB6AAAAAAAAAAAAMDAAAAAAAABoujh+d/uLM3P3x1eTz8PPR9AkA++Ds8xEU9uUOGxoWO7wAiy/
AAAAADBGMDAwegAAdgAAAAAAAAAAAAAAADBAICBsVGQAPIxYIIBgRGRAM8iTe7zqERPk7TDqERPF
AAB AAAA AA++n45PXz6A8M7eTxCQz76ffY4MCBb+7T
AAA NNNNNNNN AAAA NNNNNNNN AA3h/ZJ/Ic3BEL8vIW9f4cC+H mm. mm. KM6irKL4
AAA N:::::::N RgA N::::::N GMLc0W+PUk5+0t6gIF7xYA+/U 6A8 6A8 FM1i34AL
MDB N::::::::N Ri N::::::N +dANkiBfX4Ag4O7wAiyCfTIvI 3BE 3BE 4MBfX+Cy
AAA N:::::::::N V N::::::N AAAAXvC/IIBQj48iTe7Rz4HOc 5+0 5+0 FM5yfn6g
AAB N::::::::::N N::::::N AAAjPc2TbqJADKCBb+7yL70zj Ag4 Ag4 tMARjBGM
AAA N:::::::::::N N::::::N 6A5As7rioR7wAF6irKLfX1/gs4fX4A4cC+HvEdRoujh+D
AAA N:::::::N::::N N::::::N AAHPj7+BntABH41i34AAD+AuEMdPMMBiAAAAAU
MEY N::::::N N::::N N::::::N ouyjPv+BzIJ/gFBfX+CAsC+OEM .mmmm MMAfR9AkAL
OH5 N::::::N N::::N:::::::N AAJ/X1/h8A5yTt5yfn6jPqykzM MPtIIBgRz
AAA N::::::N N:::::::::::N /uAuEi3x1eTz8PPR9AkA++Ds8M 6A6A8 MfYxxCQz7A
AAA N::::::N N::::::::::N DB+OEfsVGQAPIxYIIBgRGRAHGM 3B3BE MgThW9f4cw
MTA N::::::N A N:::::::::N ++ykztXz6A8M7eTxCQz76ff2AM 5+5+0 MMIOF7xYAA
AAB N::::::N Aa N::::::::N 3hIvICIc3BEL8vIW9f4cC+HvEdasdgAg4dMffIdiyCfTA
AGi N::::::N AAA N:::::::N LcHOcAUk5+0t6gIF7xYA+/UT7MMMM4Awe7Rz4A
AAA N::::::N MAAA N::::::N AN0zjtX4Ag4O7wAiyCfTIvICBM .mmm. MKTRvEdL7A
AAA NNNNNNNN dMAAA NNNNNNN AA/gsRIIBQj48iTe7Rz4HOcAHM 4fX4A4cC+HPKLfX1w
RjA AdMDA AjAuEibqJADKCBb+7yL70zjt2M MMM M4rS4AAD+4
fnYAAABGMEYwMDEAAdgAAAAAAAAAAAA5A+OEfoR7wAF6irKLfX1/gsR0M. MMM .MF3B+CAsCA
AAA A AAAHPykztntABH41i34AAD+AuEiCMM. .MMtX+++Ds8A
AAA UUUUUUUU Y UUUUUUUU RjAyjykztzIJ/gFBfX+CAsC+OEfF4fX4A4cC+HvEdtGRAHGx
MTc U::::::U A U::::::U fnYJ/C+Hv8A5yTt5yfn6jPqykzt9MMPMBRQ6ff2AA
AEY U::::::U A U::::::U AAAAA+/UTH52AAAARjBGMDAxMUEAM .mmmm MA7AC+HvEA
aLo UU:::::U E U:::::UU AAAAAIvICAAAAABoujh+dgAAAEYwM PcR+/UT7A
AAAA U:::::U Y U:::::U xMUQAAHOcAAAAAAAAAAAAAAAAaLo4M 6A6A8 MYAfTz8PPA
AAAA U:::::D o D:::::U A/uLM30zjteTz8PPR9AkA++Ds8xEUM 3B3BE MTe9APIxYG
MDAx U:::::D A D:::::U ADBAIC/gsRQAPIxYIIBgRGRAHGhoXM 5+5+0 MIQ98M7eT+
dgAA U:::::D A D:::::U A++n45AuEiA8M7eTxCQz76ff2AO7sMMBAgAg4MMMIADEL8vIA
AAAA U:::::D A D:::::U A3h/ZJ+OEfBEL8vIW9f4cC+HvEd4wMMAB30t6gIA
AAAA U:::::D D:::::U GLc0W+ykzt+0t6gIF7xYA+/UT7wjtMmmmmm .MT+DfL7Eye
NwAA U:::::D D:::::U +ANkiBYA+/g4O7wAiyCfTIvICBRHvMMfMP .MddffALfX1AA
RjBG U::::::U U::::::U AAAXvCfTIvQj48iTe7Rz4HOcAHPj7MsP .MMdasdK6AAD+Bo
ujh+ U:::::::UUU:::::::U AAjPc2z4HOADKCBb+7yL70zjt2SQOM .MMaadada48CAsCAA
AAAA UU:::::::::::::UU y5As7rL70zwAF6irKLfX1/gsR0BwAM MX+F+Ds8AA
AAAAds UU:::::::::UU LAHPj7+X1/gBH41i34AAD+AuEiC+8I4fX4A4cC+HvEd3RAHGyw
MDEzasd UUUUUUUUU dasdyjPv+cAHP/gFBfX+CAsC+OEfFtb7D7eF MwUARGIff2A72
AAAARjBGMA A/uLM3P3x1eTz8PPR9AkA++Ds8xEU9uUOGg7e+ MSLc76x+HvE7A
A0NABoujh+dgAAAEYwRjAwMDBAICBsVGQAPIxYIIBgRGRAHGhoX9/QHBoW8v MxzCcCx/UT7LA
TARAA VAAAA++n45PXz6A8M7eTxCQz76ff2AO7sDPbdwLt+y MAAAA+iz8PPA3
AouA LLLLLLLLLLL wMTN3h/ZJ/Ic3BEL8vIW9f4cC+HvEd4w3i3+3IO5/ MjAweTAPIxYCG
GAAE L:::::::::L AAABLc0W+PUk5+0t6gIF7xYA+/UT7wjtDgD1C4ZzQ MnY4QAwM7eT66
AAAH L:::::::::L AAGiANkiBfX4Ag/uLM3P3x1eTz8PPR9AkA++D4fX4A4cC+HvEdsL8vIG/
AwMA LL:::::::LL AAAAAAXvC/IIBQDBAICBsVGQAPIxYIIBgRGRA8MYBEHt6gI+z
j2AAA L:::::L AAAAAjPc2TbqJA++n45PXz6A8M7eTxCQz76ffGM mmmm. +02AAAAAT
nAATQ L:::::L WAhcC5As7rioR7w3h/ZJ/Ic3BEL8vIW9f4cC+HAM 8M7eTx MAvR9AkA4
AAAAB L:::::L CMwI0HPj7+BntABLc0W+PUk5+0t6gIF7xYA+/UEM EL8vIW MPTIIBgRL
A1AGi L:::::L PAlACyjPv+BzIJ/ANkiBfX4Ag4O7wAiyCfTIvI7M 0t6gIF MYCxCQz7y
zGMAA L:::::L CbAJtJ/X1/h8A5yAAXvC/IIBQj48iTe7Rz4HOcBM 4O7wAi MTAW9f4cg
E6OAA L:::::L aAAAAAAAAAAAAAAAjPc2TbqJADKCBb+7yL70zj4fX4j48iTevEdtF7xYAM
LAAjA L:::::L adas Vi5As7rioR7wAF6irKLfX1/gsMMMIRiyCfTD
AAAnY L:::::L LLLLLL AHPj7+BntABH41i34AAD+AuEMM mommomoMAie7Rz4U
AwMA LL:::::::LLLLLLLLL:::::L AyjPv+BzIJ/gFBfX+CAsC+OEM MMBMTfHvEd7L
DAAA L::::::::::::::::::::::L ADgD1CwjtBQLyFiLcAjPqDgDMM 4fX4A4cC+1HvEd1A
gAAT L::::::::::::::::::::::L YkA++Ds8xEU9uUOGxoAAAkA+MM 4fX4A4cC++4AAD+o
AAAE LLLLLLLLLLLLLLLLLLLLLLLL AgRGRAHGhoX9/QHBxLAxNgRGMM .M3R+CAsCL
AAAL AAz76ff2AO7sDPbdwiIAAAz764fX4A4cC+HvEdfd+Ds8I
QwRABoujh+dgAAAEYwRjAwMTM0AAAAAA/4cC+HvEd4w3i3+3A4kA+4cCfMdDASDASDdas+ASDsd
ATIAA VADgD1CwjtBQLyFiLcAUT7wDgD1CwjtBQLyFiLHMA aD DDasc6ff2Aj
MABA LLLLLLLLLLL wkA++Ds8xEU9uUOGxoICB3BEL8vIW9f4cCeOGAMAD DSDM7xC+HvEH
dGiE L:::::::::L AgRGRAHGhoX9/QHBxLcAHPgRGRAHdasd9/QHBoMRSD DADeMcxGhoX7/
AAAH L:::::::::L Az76ff2AO7sDPbdwiIjt2Sz76ff2AO6A8PbdwLKdD EWZXCiAO7sPr
AAAA LL:::::::LL A4cC+HvEd4w3i3+3A4fX4A4cC+HvEd3BEi3+3IMM Ld bMMeAEd4wY0
MjAAA L:::::L AYA+/UT7wjtDgD1Cwj/IIBYA+/UT7w5+0gD1C4fX4A4cC+HvEdw7wjtTz
RnYTQ L:::::L WAfTIvICBRHvAPsf3hHTbqJfTIvICBRAg4Psf3jMBPYMM8hBRHvIA
uAAAB L:::::L CMz4HOcAHPj76vgk+B/ioR7z4HOcAHPj76vgk+HM .mmm. MEBHPj7IC
AAAGi L:::::L PAL70zjt2SQO8uQw3irBntAL70zjt2SQO8uQw3/M MM M M0i2SQOUZ
AzUAA L:::::L CbAJtAm4CbwAAAyjPv+BzIJ/gFBfX+CAsC+OEfrM M MM MgF+CAsLc
MEYAA L:::::L aAAAAAAAAAAAAA/uLM3P3x1eTz8PPR9AkA++DstM. MMM .M88/QHBx+
ALojA L:::::L adas VDBAICBs4fX4A4cC+HvEdGRAHxMMb dMBYGQ/QHBx
AAAnY L:::::L LLLLLL ++n45PXz6A8M7eTxCQz76ffA4fX4A4cC+HvEdObPbdwi
AAAA LL:::::::LLLLLLLLL:::::L 3h/ZJ/Ic3BEL8vIW9f4cC+HEMYMMPdi3+3rA
ADAA L::::::::::::::::::::::L Lc0W+PUk5+0t6gIF7xYA+/U7 mmmm. i3w1Cwjwt
MgAT L::::::::::::::::::::::L ANkiBfX4Ag4O7wAiyCfTIvIBM MMbbM 1CR+Ds8x2
OAAE LLLLLLLLLLLLLLLLLLLLLLLL AAXvC/IIBQj48iTe7Rz4HOcHM MbbMM +DPRAHGrh
AAAL AAjPc2TbqJADKCBb+7yL70zj2M MMMM .RASff2AO4
/uLM3P3x1eTz8PPR9AkA++Ds8xEU9uUOGxoW8vYUCA/+6irKLfX1/gsRM dMff0B4fX4A
DBAICBsVGQAPIxYIIBgRGRAHGhoX9/QHBxLt+yLu+Qz51i34AAH76iLeGRy0xYIIBgRGR/U/UT7w
++n45PXz6A8M7eTxCQz76ff2AO7sDPbdwiIO5/gc3CTk/+X+CA/FAj7QAPgzeTxCQz76fvIvICBR
3h/ZJ/Ic3BEL8vIW9f4cC+HvEd4w3i3+3A4ZzQgRDt4fz5fn6jPqykzt9QAO9R/IKgDZCOcOcAHP
Lc0W+PUk5+0t6gIF7xYA+/UT7wjtDgD1CwjtBQLyFiLcPPR9H76iLeGRy0xYIIBgRGRAHzjzjt2S
ANkiBfX4Ag4O7wAiyCfTIvICBRHvAPsf3hH76iLeGRy0xYII/FAj7QAPgzeTxCQz76ff2BfBfX+C
AAXvC/IIBQj48iTe7Rz4HOcAHPj76vgk+B/FAj7QAPgzeTxCQz76ff2AO7sDPbdwiIO5/8P8PPR9
AjPc2TbqJADKCBb+7yL70zjt2SQO8uQ/uLM3P3x1eTz8PPR9AkA++Ds8xEU9uUOGxoW8vIxIxYII
5As7rioR7wAF6irKLfX1/gsR0BwAFuoDBAICBsVGQAPIxYIIBgRGRAHGhoX9/QHBxLt+yLu+Qz5W
3h/ZJ/Ic3BEL8vIW9f4cC+HvEd4w3i3AAXvC/IIBQj48iTe7Rz4HOcAHPj76vgk+B/FAj7QAPgzA
Lc0W+PUk5+0t6gIF7xYA+/UT7wjtDgDAjPc2TbqJADKCBb+7yL70zjt2SQO8uQw3ir40yfQExMAA
ANkiBfX4Ag4O7wAiyCfTIvICBRHvAPs5As7rioR7wAF6irKLfX1/gsR0BwAFuoZzSfqERPk7TDCC
AAAAXvC/IIBQj48iTe7Rz4HOcAHPj76AAXvC/IIBQj48iTe7Rz4HOcAHP 76vgk+B/FAj7QAPgzA
CAANkiBfX4Ag4O7wAiyCfTIvICBRHvAANkiBfX4Ag4O7wAiyCfTIvICBRHvAPsf3hH76iLeGRy0g
AOLc0W+PUk5+0t6gIF7xYA+/UT7wjtDLc0W+PU7rioR7wAF7xYA+/UT7wjtDgD1CwjtBQLyFiLcr
J/X1/h8A5yTt5yfn6jPqykzt9QAO9R/IKgDZCxc2TbqJADW9f4cC+HvEd4w3i3+3A4ZzQgRDt4fA
yjPv+BzIJ/gFBfX+CAsC+OEfFtb7Ig7e+wUIDuvC/ IBQjxCQz76ff2AO7sDPbdwiIO5/gc3CTkA
HPj7+BntA H41i34AAD+AuEiC+8I3D7eFv TMwQ5As rioIIBgRGRAHGhoX9/QHBxLt Lu+Qz5A
5As7rioR7wAF6irKLfX /gsR0BwAFuoJ/X1/h8AAjP 2TbioR7wAkzt9QAO97rioR7w kC5xzye
AjPc2TbqJA CBb+7yL 0zjt2SQO8uQyjPv+BzAA C/IrioR7wAEfFtb7rioR7wAA u8c4SLcC
AAXvC/IIBQ 487rioR7 A7rioR7wAvgHPj7+B7PA BfX2TbqJADE7rio rioR7wAQ 7rioR7wA
ANEQ5As77r oRc2Tbq Dc2TbqJADBwAF5As7c2T TQvC/IIBQj/c2Tb 2T7ri7ri 2TbqJAD
LcAAAjPcc TbqvC/II QjvC/IIBQj7rioR7wAvC/ /AQ5As7rio0vC/I C/c2Tc2T C/IIBQj
7rioR7wAv /IIQ5As7 ioQ5As7rioc2TbqJADQ5A AAAAjPc2TbHQ5A 5AvC/vC/ 5As7rio
c2TbqJADQ As7AAjPc TbAAjPc2TbvC/IIBQjAAj jPAAAXvC/IIAAj AAjQ5AQ5A AjPc2Tb
vC/IIBQjA jPcAAAX /IAAAXvC/IQ5As7rioAAA AXPANkiBfX AAA AAAAAjAAj AXvC/I
Q5As7rioA AXvPANki fXPANkiBfXAAjPc2TbPA NkiBfX 3PAN PANAAAAAAX NkiBfX
AAj c2TbP NkiBfX n D AAAAAXvC nHkY 3 d PANPAN fXSN
AAA vC/I i n K H PANkiBM MYf W n N dm3
PAN iBfX @ K k L D fH D W n 3 S nN
LK @ d k Y i H S SHM D D m n3W
ik d n Y f i L m mM H D W N D
iY n n f H @ i N N L H D 3 W
@f n H M d i 3 3Sm i L D DH
dH 3 M n @ mN i i H W DL
nM 3 S n s d W WN3 @ i L D Hi
n S m n D D3 d @ i D Li
S m N n DW n d i H i@
m N 3 j H WD n n @ L id
N n 3 L LDD r n d i @n
3 t W i iDH o n i dn
W D u r i iHL n @ n
W o D D @ @Li a d d n
D D H d ii m n
D H L n ni@ n h t
L i n n@d n
L L i dn s i
i @ nn
i @ n
NULL mag. issue x00D
I N D E X
: INTRO
: RANDOM / LINKS
: ARTICLES
xx where the fuck were you? wtfwy
xx respect textmode rspct
xx recruiting ChatGPT for NULL and BBSing llmai
xx corrupted echoareas crech
xx todays C64 Music c64ms
xx tariffs? tarfs
xx cyberdecks! cbrdk
xx BASH Doors basdr
xx XDOOR/DOSBOX xddos
xx mystic applications mysap
xx prototyping assembling services servs
xx pirating movies prtmv
xx secure bbs for freedom of speech spfbb
xx free games? frgms
xx use a raspberry pi, out of the box rpibx
xx Linux DIALOG blue theme lndlt
: FILES
xx Mystic Applications BASH script mysaf
xx Raspberry Pi Buttons and LEDs rbtsc
xx Blue/Black .dialogrc theme dlgtm
: ABOUT
xx what?
xx download
xx disclaimer
xx contact
xx contributors
I N T R O
Hehehehee... you thought that Null was over? No way! It may be a long
time since the last issue, but that doesnt mean that i gave up.
This issue, is a bit different. Its not so much about BBSing and
doesnt have many mods/scripts. Its about the whole retro scene,
how it is, for what we should be grateful about that we have, how
it may be affected from stuff that is happening in the world right
now and more.
Its also about pirating and new laws that forbid it, about
security and the freedom that we lose, day after day in the Net, as
almost everyone wants to have a look in our data, what we download,
what we listen, what we see, what we say. Perhaps we are living in
a dictatorship and we dont even know it... or we are just in the
beginning of one. Who knows... only time will tell.
Perhaps its time to act about it. At least take precautions. A VPN
is not a solution, its just a remedy... the disease its not
gonna disappear. People like us, that lived during the birth of
the Internet and computer technology, we can understand things
better, than the current generations, that got birthed during the
inter-connectivity of the whole earth. I remember, how we talked
about, that the Internet is gonna be a way for better democracy and
more freedom, not the opposite. That it would be a mean to speak
freely and control the governments, not the other way around...
Anyway, this is too much for an intro.. you will find more, as you
read :
As always... some music to hear along reading... Enjoy!
e!ghtbm Tomarkus - Vernes disturbia :: 1.9MBs
https://www.modules.pl/?idmodulemod9672
JazzCat - Cockbusters :: 296.6KBs
https://www.modules.pl/?idmodulemod9660
AceMan - H A R U K A :: 1.0MBs
https://www.modules.pl/?idmodulemod9669
Slaze - Virtual journey :: 200KBs
https://www.modules.pl/?idmodulemod9663
R A N D O M
---s-t-u-f-f---
@ If you are Greek, you should definitely check these magazines!
RETRO PLANET
https://retroplanetmagazine.blogspot.com/
RETROID
https://drive.google.com/file/d/1dwvabxCQbWrTOpSDxBE5CYmweyGmB7XV/view
GreekRCM :: Archive of old magazines
https://greekrcm.gr/
@ A new site about BBSes with interesting articles.
Dialing Out! Talking to Atomic Clocks via a Modem
https://bbsfromscratch.com/0x03-2/
@ A new telnet client, worth checking.
Teleconference Terminal
https://github.com/ntack93/TT
@ Visiting BBSes with a Commodore 64
https://www.youtube.com/watch?vZjHe3h-McVA
@ ICY Board is looking great and being developed.
https://github.com/mkrueger/icyboard/
https://www.youtube.com/watch?vwChpdfVWskk
@ February 16th, the BBS Day!!!!
https://bbsday.org/about
@ CP737 - My new website, for all my projects and stuff
https://cp737.net
@ Ansigarden.com is no more
If you visit ansigarden.com, you will see that the site is down.
One of the few websites that were selling ANSI art online. :
You can still take a look of it, at the WayBackMachine...
https://web.archive.org/web/20240622191259/https://ansigarden.com/all
@ Retro month naming...
So there is, DOScember, AmigApril, Marchintosh... do you know
another one? Lets build a retro calendar :
@ Build a brand new NES - The SM-Tendo
https://www.youtube.com/watch?viglXwfSpYVc
@ BBS Documentary 20th Anniversary Fundraise Sale March 20, 2025
As it says... its a fundraise, for more details look in the
link. If the link doesnt work, it means the fundraise is over.
https://ascii.textfiles.com/archives/5755
@ The Lost Art of Warez
A small VICE documentary for WAREZ? hmmm
https://www.vice.com/en/article/the-lost-art-of-warez/
@ FreeDOS 1.4 Released
Just getting better and better...
https://www.freedos.org/download/announce.html
:::: Where the fuck were you? ::::::::::::::::::::::::::::::::::::::: wtfwy ::
Well... my scene is textmode! Not just BBSes, but everything that
uses textmode, specially the Terminal! So, all the time i was not
around the BBS scene a lot, i was making stuff for the Terminal :
If you are like me, then you should definitely like the projects
i made.
:: CP737 :: https://cp737.net
I built a new website, to host my projects. Its built with
GRAV. I got bored with the complexity of Wordpress, which has its
own problems lately.
:: PySpecSDR :: https://github.com/xqtr/PySpecSDR
An SDR application for the Terminal! Now you can hear FM radio
stations from a TUI/TTY.
:: Feedln :: https://github.com/xqtr/feedln
An awesome RSS reader, built with Python, for use in textmode. Many
features and with some changes, it could be integrated in a Mystic
BBS
:: RetroAmber :: https://github.com/xqtr/retroamber
Not for textmode, but still retro! A theme for Retropie.
:: HeatWave :: https://github.com/xqtr/heatwave
This is an RTLSDR scanner program, made to be used in a plain TTY
session. So, it may be for the terminal, but it uses the linux
framebuffer, to display graphics!
:: BASH Fetch :: https://cp737.net/blog/bash-fetch
A simple neofetch like, script for BASH.
And some more... Check my website cp737...
:::: Respect Text Mode... ::::::::::::::::::::::::::::::::::::::::: rspct ::
Textmode and the terminal in general, comes from a long way back in the
past. It was invented in a time, that computers had many restrictions,
compared with the present ones. So, the terminal also had its limitations,
from which many of them, came because of the systems limitations. Now
days, those limitations are gone and the terminal/textmode has also gone
this transformation. Who would have thought back then, that today we
wouldnt use codepages any more and UTF8 would be the standard.
For sure, erasing or overcoming these limitations of terminal is a good
thing, but we shouldnt forget the origin of it and what had served all
this time. You may be able to resize a terminal to 1000 chars. wide now,
but back then 80 chars. was a standard and even less sometimes. You may
be able to play SNES games or even DOOM II in the terminal now days, but
back then, you didnt even had light bars or even colors, in a terminal.
So, coming to the present... many new textmode, cli/terminal applications
are being built, that do all sort of stuff and magic, which is very
cool. For sure text mode is not dead and it still has a purpose in
computers and will always have. But today, developers are not used in the
limitations of the past. They think, that because you can resize a
terminal application, using a GUI/Windows environment, up to hundreds of
characters, you should use all that space and even discourage the use of
smaller in size terminals.
Take for example the application AngryOxide. If you try to use it in a
terminal 80x25 chars, it wont let you to and it will tell you so. Other
cli apps do the same also... WHY?????? Because developers, dont know how
is it to use a limited system and they dont care about. They think, that
because the majority of computers can run in high resolutions, with much
greater speed etc. that all users and all computers/systems can do so.
But no... its not like this, for everyone or every system and The
Terminal is for those systems.
My opinion on the matter is, that if you need hundreds of chars to
visualize something on the terminal, youd better use a GUI toolkit. If
you want to make apps for the terminal, make them compatible, with
systems, that have limitations. The minimum supported size for a cli app,
should be 80x25. If you can do it for even less, like 40x20, do so... but
dont make apps/tools, that want very big terminals to work. And its not
that the app. needs all that space. Most of the times, if all... its bad
designing. Its because the programmer, doesnt think that others, with
smaller terminals would want to use the apps, that not all people want to
launch a XWindow system, just for having xTerm to display a terminal
app.! Its because the programmer was too lazy or not familiar with the
old ways that didnt adapt the TUI to be able to use as little space as
its possible.
Respect the terminal, text mode and what they represent! Limitations, in
every form, are a chance for creativity and to think out of the box. It
has been proven by all those old games and systems, that even with 8bit,
16bits colors, 4MHz, 8MHz CPUs and two tone speakers, developers have
done miracles with them and hobbyists continue to do so.
If you want to build cli/terminal apps you should respect the following
guidelines:
:: Size ::
80 x 25 chars, should be the standard minimum supported size. If you can
with less, do so. But dont expect that every system/user will have a
larger one. If a terminal can support a larger size, then your app,
should have the ability to resize and use the space, but it shouldnt
ask for space just to run.
:: Colors ::
Dont over do it with colors. Even if terminals now days, can support 256
and more colors, just stay in the limit of the 16 colors.
:: Pagination / Scrolling ::
Nope... dont expect that all terminal apps, support scrolling. I dare
you to use a TTY Linux terminal, with out tmux. If your app. throws too
much of info, give the user the ability to scroll back, even by using
tools like less. Instead of scrolling, you can use pagination, display
stuff page by page.
:: Keys ::
If you are programming something for the terminal, then dont expect to
use the mouse for it! Some terminal, dont even have special keys, like
arrow keys or Home, End buttons etc. If you can avoid cursor keys and use
simple letters for navigating into your app. do so. The furthest you
should go with the keys, are the arrow, F1-10, Home, End, Tab etc. No
media player or other special keys and for god sake, not mouse!
Textmode and terminal, is built for systems, with limitations. If you
think that you are making things, without those limitations, then your
app, shouldnt being made for the terminal. A trip to a BBS system,
will give you many ideas and remind you, how was the past and what text
mode, really is
:::: Recruiting ChatGPT for NULL and BBSing ::::::::::::::::::::::: llmai ::
So AI is all over the place... ChatGPT, DeepSeek, Grok and many
other. So, why shouldnt i recruit an AI, to write some articles
for NULL magazine?
Nahhh... its not something i will do, more than once and only this
one. Not because i want articles for the mag, but just to see how
AIs are going to change the world and what they know about the
retro scene.
Below are some articles that i asked ChatGPT to write. With just a
few questions, ChatGPT provided tons of text and code.
The code below is not checked and used. I paste the articles here,
just to see, how an AI, can think stuff about BBSes and the
scene and as it says, how both worlds of BBSes and AIs can
collaborate.
ChatGPT
Can you write an article, for Null Magazine,
about how AI could benefit BBS boards?
How AI Could Benefit BBS Boards in the Modern Era
:: Introduction ::
Bulletin Board Systems BBS may seem like relics of the past, but they
continue to thrive among dedicated communities that value nostalgia,
digital craftsmanship, and self-hosted, decentralized communication.
However, as technology advances, AI has the potential to enhance and
evolve the BBS experience in ways never imagined during its heyday. From
improving text-based interactions to automating moderation, AI could
breathe new life into the world of dial-up-era digital socialization.
:: AI-Powered Moderation and Spam Filtering ::
One of the biggest challenges for any online community is moderation.
AI-driven natural language processing NLP could help BBS sysops
system operators manage discussions by automatically flagging spam,
hate speech, or off-topic messages. This would reduce the burden on human
moderators while maintaining the integrity of discussions. Additionally,
AI could assist in filtering messages for relevance, ensuring that
threads remain focused and informative.
:: Enhanced Text-Based Chatbots ::
In the past, BBS boards often featured rudimentary text-based chatbots or
simple command-line interfaces. Modern AI, particularly large language
models, could introduce much more advanced and engaging chatbots. These
bots could provide useful information, assist new users, or even
participate in creative storytelling within BBS role-playing forums.
:: AI-Assisted ANSI Art Generation ::
BBS culture is deeply tied to ANSI and ASCII art, with groups like ACiD
and iCE leaving a lasting legacy. AI models trained on historical ANSI
art could help generate new designs, offering artists inspiration or even
automating certain aspects of the creative process while maintaining the
classic aesthetic. Imagine an AI tool that assists in converting modern
images into ANSI art with greater fidelity than existing filters.
:: Automated BBS Content Summarization ::
Long message threads can sometimes become difficult to follow, especially
for users joining a discussion late. AI-powered summarization tools could
help by providing concise summaries of ongoing conversations, allowing
users to catch up quickly without having to scroll through hundreds of
posts.
:: Speech-to-Text and Text-to-Speech for Accessibility ::
AI-powered speech recognition and synthesis could make BBS more accessible
to users with disabilities. A text-to-speech engine could read posts
aloud, while speech-to-text tools could allow users to interact with BBS
systems via voice commands. This would open up the experience to a wider
audience and make navigating boards easier for everyone.
:: Predictive Text and Smart Replies ::
AI-driven predictive text could speed up posting by suggesting words or
entire replies based on the context of the discussion. Smart reply
features, similar to those seen in modern messaging apps, could offer
quick, contextually relevant responses that maintain the flow of
conversation while reducing typing effort.
:: Reviving BBS for the AI Age ::
While AI and BBS might seem like an unlikely pairing, integrating modern
machine learning tools into these classic systems could ensure their
continued relevance. Whether through automation, accessibility, or
creative enhancements, AI has the potential to modernize BBS communities
while preserving their old-school charm.
The resurgence of interest in retro computing, coupled with the
open-source nature of many AI projects, means that sysops and developers
can experiment with these ideas today. Perhaps the next great innovation
in BBS culture will come from the very thing that many old-school users
once viewed with skepticismartificial intelligence.
:: Conclusion ::
BBS boards have survived decades of technological shifts, and with
AI-driven enhancements, they could remain a vital part of digital culture
for years to come. Whether youre a sysop, ANSI artist, or dedicated
user, AI offers exciting possibilities to enhance and preserve the unique
charm of BBS communities. The question ishow will you use it?
Nice. Now write a more technical article on
how someone could use an AI like Chatgpt to
summarize specific threads of messages in
an echonet.
:: Summarizing Echonet Threads with AI: A Technical Guide ::
Introduction
Echonet message bases remain a vital part of many FidoNet-style BBS
networks, allowing users to exchange discussions asynchronously across
interconnected systems. However, as message bases grow, it can become
difficult to follow long threads efficiently. AI-powered summarization,
using models like ChatGPT, offers a way to condense discussions into
concise summaries while preserving key details.
This article provides a technical guide on how to implement AI-based
summarization for Echonet message bases, using Python and OpenAIs GPT
API.
1. Extracting Echonet Messages
Most Echonet-style message bases store messages in structured formats
such as JAM Joaquim-Andrew-Mats message bases or Hudson message bases.
To summarize threads, we first need to extract relevant messages.
Reading Messages from a JAM Message Base
JAM is a common message storage format used in Fidonet-compatible BBS
software. The jambase Python library can be used to read messages:
import jambase
Open a JAM message base
jam jambase.JAMechonet/jamfile
Read messages
messages
for msg in jam.readmessages:
messages.appendfmsg.fromuser: msg.body
Combine messages into a thread
threadtext nn.joinmessages
For Hudson or Squish message bases, similar extraction methods can be
used with appropriate libraries.
2. Sending Extracted Messages to ChatGPT for Summarization
Once we have the thread text, we can send it to ChatGPT for summarization.
Using OpenAIs API for Summarization
import openai
APIKEY youropenaiapikey
def summarizethreadthreadtext:
response openai.ChatCompletion.create
modelgpt-4-turbo,
messages
role: system, content: You are an AI assistant that
summarizes Echonet message threads concisely.,
role: user, content: fSummarize the following
thread:nnthreadtext
return responsechoices0messagecontent
summary summarizethreadthreadtext
printsummary
3. Implementing a BBS-Friendly Output Format
Most BBS software expects plain-text output, often with a character
limit per line. We can format the AI-generated summary to fit within
these constraints:
def formatsummarysummary, linelength72:
lines
words summary.split
line
for word in words:
if lenline + lenword + 1 linelength:
lines.appendline
line word
else:
line + + word
lines.appendline
return n.joinlines
formattedsummary formatsummarysummary
printformattedsummary
This ensures the summary is readable on traditional text-based BBS
interfaces.
4. Automating Summarization in a BBS System
To integrate AI summarization into an active BBS, a sysop could:
Set up a script to periodically process new Echonet messages.
Use a bot to post summaries as a reply in threads.
Implement a /summary command for users to request summaries
dynamically.
For example, in Synchronet, this could be done with a JS or Python script:
// Synchronet JS script to call the summarization script
var threadtext getThreadText // Function to extract thread messages
var summary system.exec/bbs/scripts/summarize.py, threadtext
console.putmsgsummary
Conclusion
By leveraging AI-powered summarization, sysops can make Echonet-style
message bases more accessible and easier to navigate. With simple
automation, BBS users can quickly catch up on discussions without wading
through long threads manually.
For those managing active Echonet networks, AI offers a powerful tool
to modernize and improve user experience while maintaining the classic
BBS ethos.
Write another article on how someone
could use an ai to create true ansi
art.
:: Using AI to Generate True ANSI Art ::
Introduction
ANSI art has been a defining aesthetic of the BBS scene for decades,
with skilled artists meticulously crafting images using a limited color
palette and blocky characters. While some tools exist to convert images
into ANSI, they often fail to capture the artistic intent and creative
stylization that real ANSI artists achieve.
Recent advancements in AI, particularly deep learning models trained on
ANSI datasets, have opened new possibilities for generating true ANSI
artart that follows the aesthetic principles, constraints, and
composition techniques used by human ANSI artists. This article explores
how AI can be trained and used to generate ANSI artwork that mimics
hand-crafted designs rather than simple pixel-to-character conversions.
1. Understanding the Constraints of True ANSI Art
For AI-generated ANSI to be considered authentic, it must adhere to key
principles:
- 16-Color Palette: ANSI art is limited to 16 colors, following the
VGA color scheme.
- Character-Based Composition: True ANSI art uses characters , , ,
etc. to create shading and detail, rather than simply mapping pixels.
- Dithering Techniques: Skilled ANSI artists use patterns like
checkerboarding or gradient dithering to create depth and texture.
- Screen Width Limitations: Most ANSI art is designed for an 80x25 or
similar terminal size.
2. Training an AI on ANSI Art
Instead of using a simple image-to-text converter, we can train an AI to
understand ANSI composition techniques. This involves:
Step 1: Collecting a Training Dataset
A dataset of high-quality ANSI art can be gathered from archives like
16colo.rs or other BBS art repositories. Ideally, the dataset should
contain:
Classic ANSI art from groups like ACiD, iCE, and Blocktronics.
Metadata about the artists techniques, if available.
Step 2: Preprocessing ANSI Art for AI Training
Since ANSI files use control sequences rather than pixels, preprocessing
involves converting ANSI into a format that a deep learning model can
understand:
Extract ANSI as an image representation e.g., using ansilove to
render ANSI to PNG.
Convert ANSI text into a structured grid of characters and color
codes.
Example using ansilove to convert ANSI to an image:
ansilove -o output.png input.ans
Parsing ANSI files for direct model training:
from ansi2html import Ansi2HTMLConverter
with openinput.ans, r as f:
ansitext f.read
converter Ansi2HTMLConverter
htmloutput converter.convertansitext
Step 3: Training a Neural Network
A deep learning model like a Transformer-based VAE Variational
Autoencoder or a GAN Generative Adversarial Network can be trained on
the dataset.
A VAE could be used to encode ANSI patterns and generate new
compositions.
A GAN could generate ANSI images by learning from real ANSI samples
and refining outputs based on discriminator feedback.
Using TensorFlow or PyTorch, we can train a model:
import torch
from torchvision import datasets, transforms
Define transformation for ANSI images
transform transforms.Compose
transforms.Grayscalenumoutputchannels1,
transforms.Resize25, 80, Terminal-like dimensions
transforms.ToTensor,
Load ANSI dataset
dataset datasets.ImageFolderrootansidataset, transformtransform
dataloader torch.utils.data.DataLoaderdataset, batchsize32,
shuffleTrue
3. Using a Pre-Trained AI to Generate ANSI Art
If training a model from scratch is too complex, you can use existing AI
models, like ChatGPT, to create ANSI-inspired compositions with prompts
that guide its artistic choices.
Generating ANSI-Styled Art with GPT
We can use OpenAIs GPT API to generate ANSI-like text-based art:
import openai
def generateansiprompt:
response openai.ChatCompletion.create
modelgpt-4-turbo,
messages
role: system, content: You are an ANSI artist
creating detailed, stylistic ANSI artwork using only
text-based ANSI characters and colors.,
role: user, content: prompt
return responsechoices0messagecontent
prompt Create an ANSI-style cyberpunk cityscape using only ANSI
characters.
ansiart generateansiprompt
printansiart
Using AI to Assist ANSI Artists
Instead of full automation, AI can be used as an assistant to:
Suggest dithering patterns based on human input.
Convert sketches into ANSI outlines for artists to refine.
Auto-color ANSI compositions while respecting classic color palettes.
For example, using a Diffusion Model fine-tuned on ANSI Art, an artist
could generate base images and manually refine details using an ANSI
editor like PabloDraw.
4. Deploying AI-Generated ANSI Art on a BBS
Once ANSI artwork is generated, it can be integrated into a BBS:
Using Synchronets ANSI rendering system to display AI-generated art.
Embedding ANSI files into message boards or welcome screens.
Providing an AI ANSI generator as a command for BBS users.
Example: Synchronet script to display AI-generated ANSI
var ansiart system.exec/bbs/scripts/generateansi.py,
cyberpunk city
console.putmsgansiart
Conclusion
AI can revolutionize ANSI art generation by capturing the nuances of
true ANSI composition. While simple pixel-to-text conversions lack
artistic depth, modern AI models trained specifically on ANSI art can
generate compelling, stylistic pieces that rival human-made works.
Whether used as a tool for inspiration, automatic coloring, or
full-fledged generation, AI offers a new frontier for ANSI artists and
BBS sysops alike.
For those looking to push ANSI art into the future while respecting its
rich history, AI-powered ANSI generation is a fascinating path worth
exploring.
So, what do you think? For me, it seems that even LLMs/AIs know
enough about BBSing, which is a surprise. Even so, i wouldnt like to
see the scene get filled with AI generated ANSI art, or DOOR
programs/games, specially art. :
:::: Corrupted echoareas :::::::::::::::::::::::::::::::::::::::::::: crech ::
Many times, you may notice that some messages in an echoarea dont
appear good or not at all. Often, when you try to read them, you
may disconnect from the BBS and other times, depending on how you
have set up your system, you wont be able to login at all... why?
Because somewhere in the files of the specific JAM base aka
echoarea there is a corrupted message, that has destroyed the
entire JAM base. Corrupted messages is not something unusual. They
may happen, for various reasons. The main reasons are, bad
programming of a program/script that access a JAM base or a sudden
shutdown of a BBS while exchanging messages. It could also happen
from a bad disk or a network disconnect.
Whatever the reason, a corrupted message base is a pain in the
butt... and thats what happen a while to me. The thing with a
corrupted base, is that you may not be able to notice it, in
advance or you could not be able to trace it easily. For example,
what happened to my BBS, is that when a user logs into my BBS,
various script/mods run in the background. Some of them, like the
InterBBS mods, access specific message areas. If one of them is
corrupted, the program may crash and even disconnect you from the
BBS. And that happened... At the time, you dont know what the
reason is and you have to find it, by trial and error. Dont panic,
as its not that serious, even if you have to delete a message
base, as you can always retrieve messages for it, after.
An advice... if you notice weird behavior and disconnects from a
BBS, try and check your message areas. Mystic, has a maintenance
.ini file to do so. You can use ./mutil with it like:
./mutil maint.ini
It will check all the message bases, compress them, may fix some
issues, but if there is a total corrupted base, it will crash...
and this is a good thing. You may catch the name of the base and
then delete the files of it, otherwise, bad luck... you have to
find it your self : But chances are, mutil will spit the name for
you. Then go to the message folder, of the BBS and delete those
.jdx, .jdt, .jhr, etc. that have the name of the specific echoarea.
Most of the time, this will resolve the problem. Retrieve messages
with an AREAFIX message or just let the base to repopulate it self
with new messages. After all, thats why they made, in this way, as
corrupted echoareas in the past, specially when using floppy disks
for a BBS, was something usual.
:::: Todays C64 Music ::::::::::::::::::::::::::::::::::::::::::::::: c64mu ::
The C64 has been the most popular game system for the 80s and early
90s. This created a large community of user of creators, where the
music of the C64 became an integral part of the game experience.
Classic compositions such as those of Rob Hubbard or Martin Galway
became legendary and were directly linked to the childhood of many
people. The sounds and music of the C64 have a unique place in memory
of gamers of that time and continue to inspire contemporary artists
and bands, which continue to adapt its music to date.
Some examples:
- Fastloaders
a Norwegian band that creates rock covers in C64 and Amiga game music.
- C64 Orchestra
a Netherlands orchestra performing music by C64 games.
- Kerekes 64Band
a musical project that reproduces pieces of Kerekes band using the
sound of the C64.
- 8 bit weapon
a band that creates contemporary music using sounds from the C64, VIC20
and Gameboy.
- Machinae supremacy
a Swedish band that combines heavy metal with chiptune, incorporating
C64 sounds into their compositions.
- Nordischsound
German producer that creates 8 -bit chiptune music using the C64.
- HVSC High Voltage Sid Collection
a collection that organizes C64 music in a file, available for
listening and receiving.
- Commodore 64 Vinyl Tribute Volume 2
an album that includes C64 music covers in vinyl.
- Remix64
a community dedicated to the cover and reproduction of music by the
C64, with albums and songs available for listening.
- C64 Orchestra on YouTube
video featuring live C64 Orchestra performances, performing classic
pieces of C64.
:::: Tariffs? ::::::::::::::::::::::::::::::::::::::::::::::::::::::: tarfs ::
If you arent living in a hole, you should have heard about the US
tariffs imposed to imported products from China and other areas,
like the EU. They should be in effect from 1st April.
But what that means to our community... and not just the BBS
community, but all the retro gaming / computing community. Will
prices rise up, to any imported device? and how much? Services like
PCBWAY, JLPCB etc. will also affected from these tariffs?
For sure, retro devices, like the cheap handheld ones, will be
affected and have an increased price. How much, i dont know, but
we should probably forget the 30-50 price range of the cheap ones.
DIY projects, that are using services like PCBWAY in China, i think
they definitely be affected and probably we will see a break/pause
on them. Perhaps, less Youtube videos, about these projects, less
crowdfunding projects and generally a stall in DIY
projects/devices.
Perhaps its the right time to purchase one, before the tariffs get
in effect. Perhaps, this will also increase the prices in all retro
devices, as we wont be able to buy the cheap ones or the emulator
type devices like the RGXXs. Perhaps, it will give a boost to new
mods for the old devices, that would be developed in country.
Whenever there are difficulties, the human brain has to adapt and
it innovates new things and stuff. For sure, people will try to use
old hardware, salvage components or just keep its current hardware
for more time. So tariffs to save the environment ? :
We are in the beginning of a new era, that unfortunately has
happened in the past again. You could look for it, it happened
about in the 1930s while the Great Depression, and resulted in more
and more tariffs, that affected the global economy. Let us hope,
that it wont have the ending of that era.
:::: Cyberdecks! :::::::::::::::::::::::::::::::::::::::::::::::::::: cbrdk ::
Whats a cyberdeck? Its a name for a portable computer, when
portable computers, wasnt even a thing. The term cyberdeck came
from cyberpunk stories/books and used for computer systems that
were portable and a hacker could access the Net.
Today, we have many portable computers, like laptops, netbooks,
umpcs, smartphones, so the term is used to describe such a device,
that is custom made and its cool, in its way, in general. You can
make a cyberdeck, with a smartphone, an SBC like a Raspberry pi, an
old laptop etc. There are many builds out here to take ideas and
build one.
Below are some ideas or preferences for what i think a cyberdeck
is or should be, you dont have to agree on them, just take and
implement whatever you agree on : So...
o A cyberdeck is a computer for a Cyberpunk era! It should have
the aesthetics and use for/of it
o It has to be cheap. In a cyberpunk era, there not enough
credits
o It has to be as open source it can be. This helps with the
cheapness and also makes it easy to repair and find materials
o Can be upgraded easily
. add/remove any new device just with plugin things
together
. the main board should also be plug and upgrade :
o Can be fixed easily
. no need to solder things or at least as a last resort
. plug and play, also
o Should be portable
o Should be able to connect with the Aether
o Should be able to connect with other hardware devices, over
cable or wiressly
o Should use desktop/linux as open source as it can be software,
not that Android/iPhone shit
o No need to have a screen, could also use a VR headset or a
screen embedded in glasses or even being used/accessed by
another device, like a smartphone via SSH
o Could use optical indications for status, like extra screens,
LEDs or sound
So, with that in mind, my dream cyberdeck would be a wedged
like computer, like old Amiga600s, with ten key less keyboard,
which would use a SBC like a Raspberry Pi, internally. All
connections, should be done on the SBC it self, with cables and
avoid soldering or wireless connections.
The deck, should also contain other devices, like a GPS dongle, a
track/touch pad, perhaps a RTLSDR device, even an NFC card reader
or an OBD2 reader. In a Cyberpunk era, someone should be able to
connect to many devices. This cyberdeck could act as a HAM radio
receiver, a boradcast radio or TV receiver, of course as a hacking
platform for penetration testing and all sorts of hacking/
cracking projects.
For power, it should be able to use multiple sources, like power
banks USB-C, batteries like 18650 ones or 12V batteries. For
that purpose, it can have a voltage regulator, that could accept
up to 30V and transform it to 5V, as all internal devices would
use USB 5V connections.
There are a lot that i can think of, for a machine like this. The
problem for me, is not imagination, but how to implement all that
in a small case, as possible : and without the need of 3D
printer.
Anyway... do you have a cyberdeck? would you like to build one?
How would you implement, such a device? Leave your answers on the
comments... what comments? hahahaha
Aether: i mean anything that transmits radio waves, optical or
acoustic signals via the air
:::: BASH Doors ::::::::::::::::::::::::::::::::::::::::::::::::::::: basdr ::
In Linux BBS software like Mystic and SynchroNet, you can run almost
any program and it will be able to be displayed at the remote user, as
if it was a normal DOS DOOR program. No need to use any special
libraries or DOOR kits.
This can be proven very useful, as we can use any BASH script and
display it to the user. We can write DOOR programs, just by using
BASH!
I will not dive into the why DO or DO NOT do that, cause each choice
has its dis/advantages and perhaps security issues? maybe? for example,
no one knows what will happen if someone presses ctrl-c while use such
a BASH DOOR... Anyway... for those who search for other ways to
write DOOR stuff... lets continue...
The following instructions are meant for Mystic BBS, but its the same
logic for SynchroNet or other BBS software.
To create such a DOOR, we need a the script... obviously... b to
create a new command entry in one of our menus. First create an empty
file, like: /home/pi/door.sh --- use the exact path and filename.
Make it executable with: chmod +x ...
Then enter your menu configuration editor, edit a menu and add a DD
command, for Mystic. In the DATA field add this:
Command DD Exec external program
Data /home/pi/door.sh P
The P is the folder that contains the drop files, that we will use for
the DOOR. See a complete list of all paramaters, at the link below.
Search for the EXTERNAL DOORS chapter.
http://wiki.mysticbbs.com/doku.php?idmenucommandssdd
Dont forget to configure the Hotkey and display text, as you wish. Now
the script!
This is just the beginning, so our script will be as simple as it gets.
We just want to prove and test that it works. For a DOOR to work, we
need to get information from a dropfile, like DOOR.SYS, so this will be
our first task. To read the DOOR.SYS file, we use this command:
DIR1
DOORcat DIR/DOOR.SYS
DIR contains the users temp directory and, DOOR now contains all the
contents of DOOR.SYS. But we dont want the whole file, we just need
specific data, like user name, sysop name, time, KBs etc. To get those,
we use a command like this:
ALIASecho -e DOOR sed 36qd
The number 36, in the above command, means to get the 36th line of the
DOOR file. With the same way, we can get all other values we want,
like:
ALIASecho -e DOOR sed 36qd
NAMEecho -e DOOR sed 10qd
SYSOPecho -e DOOR sed 35qd
To display any data to the user we just echo them like:
echo DIR
echo ALIAS
echo NAME
echo SYSOP
...and we are ready to write our own BASH DOORs! The complete script is
below and contains a few additions. In the next chapter, we will create
a skeleton script with useful commands to use as a base, when writing
such BASH DOOR thingies... :p
!/bin/bash
DIR1
DOORcat DIR/DOOR.SYS
ALIASecho -e DOOR sed 36qd
NAMEecho -e DOOR sed 10qd
SYSOPecho -e DOOR sed 35qd
echo -ne 033031m
echo NODE
echo -ne 033033m
echo DIR
echo -ne 033032m
echo ALIAS
echo -ne 033034m
echo NAME
echo -ne 033035m
echo SYSOP
read -p pause...
complete reference of the door.sys file
http://wiki.synchro.net/ref:door.sys
:::: XDOOR/DOSBOX ::::::::::::::::::::::::::::::::::::::::::::::::::: xddos ::
Lets set an environment for creating DOOR apps/games with Turbo
Pascal in DOS. You can use any PC, either Windows, Linux or Mac. The
steps are the same, but there may be differences on how to install
things.
This guide is not a precise, step by step guide for each machine and
it requires from you to have a level of knowledge on how to use your
PC and also program in the Pascal language.
Setup
1. Install DOSBOX on your system. For Linux/Debian is as easy as:
sudo apt install dosbox
2. Create a directory, in which you will place all files. Lets name it,
tpdos.
3. Download Turbo Pascal 7. You can get a copy at
https://winworldpc.com. Inside the archive you file several .IMG
files. Mount each one and copy the files into a common directory,
inside our tpdos dir. Lets name it tp7s. In Linux, you can mount
this image files, with just a right click and selecting Mount Image.
4. Open your DOSBOX config file and at the bottom add these lines:
autoexec
Lines in this section will be run at startup.
You can put your MOUNT lines here.
mount c /tpdos
c:
5. Run DOSBOX, CD into the tp7s directory and install Turbo Pascal
inside the TP7 directory.
c: cd tp7s
c: install
6. Re-edit the DOSBOX config file and make the autoexec stanza look
like this now.
autoexec
Lines in this section will be run at startup.
You can put your MOUNT lines here.
mount c /tp7dos
path c:tp7binc:tp7units
c:
7. Inside the archive you downloaded from winworldpc there is a
directory for a patch. Read the instruction on how to do the patch.
Its a necessary step, dont skip it. After that, you can delete
the tp7s directory.
8. Now download the XDOOR KIT, from here:
https://jackphla.sh/files/xdoor301.zip
Unzip the archive in the directory XDOOR, under our original
./tpdos directory.
9. Lets organize a bit... create another directory named PROJECTS, to
keep all of our projects in one place and not in the main
directory. You can create also another directory named SOURCE,
where to put various pieces of source code, you can find in the
Internet, for TP7 and making DOORs specific.
10. As a last step, include in the PATH, also the XDOOR directory. So
the AUTOEXEC stanza inside the DOSBOX config file, will look like
this:
autoexec
Lines in this section will be run at startup.
You can put your MOUNT lines here.
mount c /tp7dos
path c:tp7binc:tp7unitsc:xdoor
c:
At the end your tree directory, should look something like this:
-- projects
-- source
-- TP7
-- BGI
-- BIN
-- DOC
-- EXAMPLES
-- SOURCE
-- UNITS
-- xdoor
Sources
Now you have to learn to use the XDOOR kit, which is not difficult,
unless you dont know how to program in Pascal, which is out of scope
of this guide.
As a resource, you can search the Internet for the source code of
other DOOR programs. You will find plenty, programmed in Pascal,
which is the main reason we chose TP7 on the first place.
Another great resource is the SWAG archive. You can find online
versions of it here:
https://wiki.freepascal.org/PageOfCodeSitesSWAGsites
Personally i prefer the old DOS version of SWAG. You can find a
version of it here:
http://www.retroarchive.org/garbo/pc/turbopas/index.html
Demo
Inside the XDOOR kit directory, there is a demo of a DOOR app. Its a
oneliner. Go into the xdoor directory and write:
c:tpc oneliner.pas -B
The -B is to build all units. Now you will see an executable file,
named ONELINER.EXE. Type:
c:oneliner -?
...to get some help. To run the DOOR locally just give the command:
c:oneliner -l
To setup the DOOR app to run under a BBS is whole other guide
Enjoy...
:::: Mystic Applications :::::::::::::::::::::::::::::::::::::::::::: mysap ::
Many Mystic mods/scripts are very useful and/or enjoyful... perhaps
some of them, could be useful to run them on everyday usage, on
your pc, without the need to join a BBS to run them.
And thats exactly what the following BASH script is. Its a way to
run Mystic BBS scripts, on your pc, in an easy way. Of course to
use it, you must have a version of Mystic installed and the
scripts, you want to run available on that installation. After that
is easy.
Copy the script to your desired folder, make it executable and edit
it to change some variables/settings. Provide a user name and a
password, to use for making local connection to Mystic BBS. You
could create an account, just for this use. Also provide the exact
path of the Mystic installation. If you want to have an index file*
also place the path to it. You are ready.
You can find the script in the file section.
Index file
You can use an index file for the script, for just showing the
scripts/mods you want to use/see. The simple list command will
show all the scripts, which may be confusing. With the index
command and the use of the index file, the script will show only
the ones you want, with a small description.
Just create a text file and format it like the example below:
mbgopher.mpy Gopher client
retroroms.mpy Info for game ROMs
whitenoise.mpx Terminal screensaver
xbbslist.mpx Cool ANSI BBS list
xq-16colors.mpy 16colo.rs site
!!! Make sure to have the character in the line.
Usage
One way is to use the index or findex command to show a list of
files/mods and select the one you want to run. At the command line,
you can also type: myst filename or myst run filename to run
the program. If the file is not found it will show you the list of
files in the script directory.
:::: Assembling Services :::::::::::::::::::::::::::::::::::::::::::: servs ::
One great thing of our times, is the Prototype Assembling Services,
like PCBWAY, MyProto, EuroCircuits, JLCPCB etc. We may havent
noticed it, but services like these, brought great things in
technology and specially in the retro scene.
In the past, for someone to build something sophisticated, a very
small PCB board, it was impossible and even producing one in mass
quantities was unthinkable. But today, one person can design a
whole project in his computer, send it over to such a service and
purchase from one to thousand pieces in the best quality and even
with a small price! It may seem something ordinary today, but if yo
think it, its like a miracle... a dream come true.
There are many projects out there, than have been created by
hobbiests, that even companies didnt imagined to do. I dare to
say, that the whole retro gaming or computing scene, wouldnt be
the same, if there wasnt such services. Adaptors to use old
hardware, adaptors to use current technology in old hardware, whole
projects like DIY cyberdecks, light guns, joysticks, DIY mechanical
keyboards and more.
There is a whole amature/hobbiest industry, that uses Youtube,
crowdfunding and prototyping services, that perhaps is making money
to flow... i didnt say earn cause some projects, may are not
profitable, but for sure they make money flow.
Here is a list of some:
* Open Source Flash Carts EverDrive-style
* SNAC Adapter for MiSTer / MiSTer FPGA
* FlashFloppy / Gotek Mods
* PiStorm
* Mini PET
* OpenC64Cart
* ZX Spectrum Next
* Commander X16
* GBA Consolizer
* Dandanator Mini CPC
* RGB2HDMI
* uConsole ClockworkPi
* Hackberry Pi 0 2W - ZitaoTech
and many, many others...
Its a great time to live and see these projects. The generation of
the 1960-90s is very lucky to see the computer technology evolve in
front in their eyes and also being able to be a part of it, in some
way or another. Specially today, that even one person can create
himself an entire device.
:::: Pirating Movies :::::::::::::::::::::::::::::::::::::::::::::::: prtmv ::
Lately in Greece, as in other countries before, a new law has taken
effect, about pirating movies/shows, which it doesnt only affect
sites that distribute illegal content, but also the end users. This
made me think of a ways to continue watch illegal content : b is
really pirating a bad thing? or its a good thing... in a way? Let
me explain.
The most important thing to know/remember, is that the average
person in every country, doesnt afford to watch movies at a
cinema, every day or even perhaps once a week or once per month.
Also for the same reason, people cant afford to have multiple
subscriptions to streaming services like Netflix, Apple TV, HULU
etc. Probably they will make one subscription to the service they
think, it gives them the best content for them and watch the
other content, from the other services, via illegal ways. It may
seem a bad thing, but in the end, it works in a good way for the
companies and the whole movie industry.
If i like Star Wars, but i only have a subscription for Netflix and
i wont watch the new SW movie/series... then for sure, i am not
gonna buy other stuff for the specific franchise games, models,
tshirts etc. and for sure i am not going to indirectly advertise
the movie/series to others, via social media or just talking to
others, in my work/school etc. Which will lead to less profits for
the company that produced the company, as i was never gonna pay for
the movie/series it self, but i would advertise it or buy books,
comics, props etc for the same franchise.
Pirating movies, is also a way to test, in a way, a service or
network, which in the future it probably will make me a customer or
someone to suggest it to others. The thing is, that if you ask your
friends, co-workers, students, how many subscriptions have in
streaming services, they probably tell you ONE. Less, that have
two and even lesser that have more. So the movie industry, instead
of hunting individuals, it should just look at the other side,
as in the end, pirating movies, as it is today, works for them and
not against them. That doesnt mean that they/we should promote
pirating, but dont end to the other side and fine everyone.
If they truly want to stop pirating movies, shows, books, roms
etc. they should think of the economical status of the mass and
make them affordable for them. If i could watch a movie for a
dollar in my couch, i wouldnt even think of pirating it or going
to pay for 5-20 for VPN services. With that money i could watch
even more movies/series that i even watch now. And yes, i mean pay
just for a movie... not a subscription to a service. As, as it is
now, to watch my favorite movies and shows, i have to make
subscriptions from 3 to 5 services, which is just impossible. So
instead of punishing your customers, you should think of new ways
to service them. For sure you have the means... its just, that you
dont want to.
When you overtax things or make things very strict, it often works
in a backward way, like a boomerang and at the end, commerce and
economy are affected in the opposite way. Instead of making more
money, the movie industry risks to lose more than just money.
Specially today, is possible to make good movies even with less
money. But to keep alive large companies, you have to sell more
than just the ticket or a subscription, you need to have
enthusiasts to buy other stuff too.
I am not sure if the new laws for pirating as just for the
pirating or a way to invade in our privacy. With these laws they
have an excuse to watch what we download, where we are browsing the
Internet and perhaps keep a track of that. The technology right
now, is able to detect what you download, at the time you are doing
so... if the data are not encrypted... or not? We are living at
times, that security, freedom, democracy are in danger and the
individuals are helpless in front of large companies or even
states. Something to have in mind.
There is much to say about the subject. If you want, watch also
this video that gives a synopsis of why the streaming industry
doesnt provide a good solution to watch movies.
https://www.youtube.com/watch?vYjPXodrEgBc
:::: Secure BBS for Freedom of Speech ::::::::::::::::::::::::::::::: spfbb ::
Freedom of speech and democracy is under attack. We are seeing
things from novels like 1984 being implement in front of our
eyes, unable to do anything about it. Its not just censorship,
its taking control of every mean we have to communicate with each
other. Organizations, want to have ways to be able to track
anything, even in encrypted services like current Instant Messaging
services. And its not just the Internet. Even in HAM Radio, you
cant talk about anything than technical stuff and encryption is
forbidden. For security reasons, you may say... perhaps.. but in
case that we, the common people are in risk, we should have means
to communicate with total freedom.
Right now, everything is on the Internet. Everything is data, that
passes over servers, that can be controlled. You cant trust
anything that is on the Internet! Period! If you want a secure way
to communicate, that should be outside the Internet. That means a
local network and if possible, not a wireless one. Back then, BBSes
were such a unique way, that used local infrastructure, that wasnt
able to be tracked easily. The same thing, should be applied also.
Local networks, that should use encryption, outside the Internet.
It may seem weird of difficult, but examples of that, are happening
even now, in areas that Internet is difficult to access or
prohibited or people want to use illegal content movies, games
like in Cuba. You can see an example here:
https://www.youtube.com/watch?vlEplzHraw3c
With current technology it should able to create, secure local
Intranets very easy. Mini routers, drones, raspberry pis are common
things, that someone can find easy and use to build a network. The
hardware is not a problem. People are...
The weakest link in every system, community, organization etc. its
people! Closed networks, even secure technological are not safe,
if the users of it, are unaware of dangers or just talk too much.
Members of the BBS scene should remember, that most arrests of
HPAVC groups, back then, were happening because at some point,
those groups, got too large and people or even members of them,
spoke and spoke too much. So, secure networks, should have a
small number of members and act like cells that could have
communication with other cells/hubs, via files, disks, exactly like
in the past. Its not just by luck, that in the past the exact same
way of interacting via computers, was happening. Its because, back
then there wasnt Internet. You should consider, that the Internet
is no more... not like you remember it in the beginning of it. The
Internet we had is no more.
All these, may seem dark and dangerous... perhaps. But take a look
around you and think of it. Am i wrong? If i remember corrent, i
have written about the same matter in the past, in another issue of
NULL. From then, until now, things are way worse and it seems that
its gonna get even worse. As its said History repeats it self
and the same is going to happen again, sooner or later. Even
preppers/survivalists are making the same, in their own way,
through HAM radio and even packet BBSes.
:::: Free games? :::::::::::::::::::::::::::::::::::::::::::::::::::: frgms ::
There is a big difference today, than the Old Times in the
70s-80s or 90s, in playing or finding games. Back then, you had to
pay for everything, just to play... i mean legally. Back then the
public domain scene, was as small, as fuck! Today, there is too
much free content, that you can get and play in many systems, like
retro computers, consoles, PCs etc.
Independent developers, offer free games and many of them are as
good as those, that big companies produce. You can find many of
them in sites like /itch.io/ or other sites, that offer homebrew
software. For sure it needs a bit of research, to find the best
ones, but still there is plenty of stuff.
Abandonware software is another source of free games. Games that
have no royal fees or their developers, made them available for
free, can be played even online or download them to your system.
The best site for this type, i think is /www.myabandonware.com/.
You will be surprised on how many, or which of them are free, cause
many of them, were top games in their time.
Pico8 is also a category of its own. Free games, with 100 retro
vibes and excellent gameplay for most of its games. If we had Pico8
back then, it would definitely had changed the future of the gaming
industry today.
We shouldnt also forget, that many games today, are offered as
free, but have in-game purchases... but still are considered as
free, as you can download them and play. It resembles the shareware
games, but its not the same.
The gaming industry, as the music one, has changed a lot and i am
speaking mostly for the way, you pay for them today. There are
either too cheap to purchase or you can try before buy. The only
media that things havent changed is the movie industry and perhaps
there is a good reason for that... but still... there is always
room/opportunity for a change. The Internet, has changed the whole
society and how we inter-act with each other. I dont think that
the movie industry can hold much and dont accept the changes
either.
:::: Use a Raspberry Pi out of the box :::::::::::::::::::::::::::::: rpibx ::
Raspberry Pis and other SBCs are a big rabbit hole where you
throw money and time, without even realizing it, just to throw them
in a drawer, where will be unused for months, may be years. In this
article, i will describe a way to use a Raspberry Pi 0/2W, out of
the box, to have buttons and LED indications, without even
soldering anything or buying any extra hardware... not even the
buttons or the LED
The RPi0 has a Power LED indicator that we can program, to flash,
as we like, so this is gonna be the LED to program notifications
about the state of the RPi or anything we want. As for the
buttons... a button is nothing more, than a simple mechanism, that
shorts a circuit, in our case two pins! So, we dont need to buy
and/or solder any button, as we can short two pins, very easily by
using anything metallic! Just with a tip of a knife, we can short
two neighboring pins of the RPi and that will act as a button
press!
LED
First the LED. To own the LED of the RPi0, just give this
oneliner command:
sudo sh -c echo none /sys/class/leds/ACT/trigger
The Power LED will turn off. Use cat to see other values you can
give... i really like the heartbeat one, which flashes the LED as
a hear beat.
cat /sys/class/leds/ACT/trigger
To flash the LED, you give this command:
sudo sh -c echo 1 /sys/class/leds/led0/brightness
And to turn it off:
sudo sh -c echo 0 /sys/class/leds/led0/brightness
Thats it! You can use these simple commands to turn of/off the LED
and make your own signals. Use the sleep command to add a delay
between switching it on/off.
By using the LED and programming special optical codes ex. one
long flash and then two short ones, we can have a way to know, what
the system does, if it has internet connection, if a task has
finished, if its halted etc. This way, you dont have to buy any
LEDs or screens.
BUTTONS
The buttons is a bit trickier to use. As we said, we will simulate
a button press, by just shorting two pins, but which ones? In a RPi
to use a button you need a GROUND pin and a general GPIO pin. So
just shorting those two, you can have a button press. The easiest
way, i figured to do so, is to have a RPi with full pins
pre-soldered and use a clip or knife to short two neighboring pins.
Take a look at the GPIO diagram below.
+3V3---1-O O--2--+5V
SDA GPIO2---3-O O--4--+5V
SCL1 GPIO3---5-O O--6-- GROUND
GPIOGLCK GPIO4---7-O O--8-----GPIO14 TXD0
GROUND --9-O.O-10-----GPIO15 RXD0
GPIOGEN0 GPIO17--11-O O-12-----GPIO18 GPIOGEN1
GPIOGEN2 GPIO27--13-O O-14-- GROUND
GPIOGEN3 GPIO22--15-O O-16-----GPIO23 GPIOGEN4
+3V3--17-O O-18-----GPIO24 GPIOGEN5
SPIMOSI GPIO10--19-O.O-20-- GROUND
SPIMISO GPIO9 --21-O O-22-----GPIO25 GPIOGEN6
SPISCLK GPIO11--23-O O-24-----GPIO8 SPIC0N
GROUND -25-O O-26-----GPIO7 SPIC1N
EEPROM IDSD---27-O O-28-----IDSC Reserved for ID EEPROM
GPIO5---29-O.O-30-- GROUND
GPIO6---31-O O-32-----GPIO12
GPIO13--33-O O-34-- GROUND
GPIO19--35-O O-36-----GPIO16
GPIO26--37-O O-38-----GPIO20
GROUND -39-O O-40-----GPIO21
40W 0.1 PIN HDR
Find any GROUND pin and just short it with the neighboring
pin/gpio. For example we can use pins 39 and 37, 34 and 36, 34 and
32, 20 and 22 etc. You can use any other way you want to short the
pins, enabling you to use not neighboring pins, but the easiest way
is to use pins that are side-by-side.
But we are not done yet. To use the buttons we need to use a way
to program them. The easiest way and for me the most robust, is to
use Python3 and the gpiozero library. This library is very
flexible and gives us many abilities, like using a button by just
pressing it, but also while holding it for a specific amount of
time. This way, we can increase the number of buttons we can have
even more.
In the FILES sections, there is a complete Python3 script and some
BASH scripts it uses, to have 3 buttons, to reboot, shutdown and give
information about the system, using the power LED, as described
earlier.
With that script and no other component, you can set a RPi0 in no
time, able to use it as you need and have a way to properly shut it
down, with out the need to solder anything!
Make sure to change the script and use the pins/GPIOs you
want and also the paths. The numbers for the buttons are the GPIO
numbers, NOT the pin numbers.
:::: Linux DIALOG blue theme :::::::::::::::::::::::::::::::::::::::: lndlt ::
DIALOG is a Linux utility to make a TUI/Text User Interface, in an
easy and constant way, to use in BASH scripts. For sure, you have
seen it, while installing a Linux distro or settings up a Raspberry
Pi. DIALOG, except from beeing powerful and user friendly is also
theme-able. You can change its colors to your liking. Its not a
straight forward thing to do, but is possible.
So below, there is a Blue/Black theme for DIALOG, that is similar
to the Shareware BBS theme, of the Mystic BBS Configuration
program, which by it self is similar to other old DOS utilities.
To use it, copy/paste the text from the files area, into a file
named .dialogrc and put it in your HOME directory. Whenever a
scripts uses DIALOG, it will use this theme.
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.
F I L E S
Mystic Applications BASH script mysaf
!/bin/bash
script0*/
scriptscript.*
VERSION1.0.0
tmp/tmp
linesecho -e linestput -S
columnsecho -e colstput -S
let l1lines-2
let l2lines-1
let colcolumns-6
mysticdir/home/user/mystic
themedirmysticdir/themes/default
scriptdirthemedir/scripts
DIR cd -- dirname -- BASHSOURCE0 /dev/null pwd
indexDIR/myst.ind
userusername
passpassword
yellow start
C14e133m
blue start
C01e034m
color end
CEe0m
red start
C04e131m
black start
C00e030m
dark gray start
C08e130m
light blue start
C09e134m
green start
C02e032m
light green start
C10e132m
cyan start
C03e036m
light cyan start
C11e136m
light red start
C12e031m
purple start
C05e035m
light purple start
C13e135m
brown start
C06e033m
light gray start
C07e037m
white
C15e137m
setting frequent stings
YNYESC14YCE/C14nCEC14EnterCEyes
YNNOC14yCE/C14NCEC14EnterCEno
YNONLYC14yCE/C14nCE
PAKTPress C14any keyCE to
PAKTCPress C14any keyCE to continue...
PAKTGBPress C14any keyCE to go back...
code to read from keyboard without return
READAKread -n 1
function presskey
echo
echo Press a key to continue...
read -n 1
function msg
tsdate +Y/m/d H:M:S
echo -e C03ts C141CE
function error
tsdate +Y/m/d H:M:S
echo -e C03ts C041CE
function fzz
right,50,:wrap
fzf --ansi --bind enter:executeecho 1+abort --bind end:last --bind home:first --header x1b132m1
function list
cd scriptdir
ls *.mpy *.mps -1
function run
fn1
cd mysticdir
filenamebasename -- fn
extensionfilename*.
case extension in
mpx cp437 ./mystic -uuser -ppass -xfilename
mpy cp437 ./mystic -uuser -ppass -yfilename
* cp437 ./mystic -uuser -ppass -yfilename
esac
function flist
cd scriptdir
appls *.mpy *.mpx -1 fzz
if ! -z app then
run app
fi
function match
if -z 1 then
list
return
fi
cd scriptdir
ls *.mpy -1 grep 1
if ? -eq 0 then
run 1
fi
function index
if -f index then
cat index
else
error File doesnt exist!
fi
function findex
if -f index then
appcat index fzz
if ! -z app then
run echo app cut -d -f1
fi
else
error File doesnt exist!
fi
function help
echo
echo Usage: myst command args
echo
echo -e C14 CommandsCE
echo -e C15 run file C07 execute scriptCE
echo -e C15 list C07 list all scripts in script dir.CE
echo -e C15 flist C07 list all scripts with FZF and run selectedCE
echo -e C15 index C07 show index fileCE
echo -e C15 findex C07 show index file and select with FZFCE
echo
exit 1
currentdirpwd
cd scriptdir
case 1 in
list list
flist flist
run run 2
index index
findex findex
help help
* match 1
esac
cd currentdir
echo -e CEe?25h
end of script
Blue/Black .dialogrc theme dlgtm
Run-time configuration file for dialog
Types of values:
Number - number
String - string
Boolean - ONOFF
Attribute - foreground,background,highlight?,underline?,reverse?
Set aspect-ration.
aspect 0
Set separator for multiple widgets output.
separatewidget
Set tab-length for textbox tab-conversion.
tablen 2
Make tab-traversal for checklist, etc., include the list.
visititems OFF
Shadow dialog boxes? This also turns on color.
useshadow ON
Turn color support ON or OFF
usecolors ON
screencolor BLACK,WHITE,OFF
shadowcolor BLACK,BLACK,ON
dialogcolor CYAN,BLACK,ON
titlecolor WHITE,BLUE,ON
bordercolor BLUE,BLACK,ON
buttonactivecolor WHITE,BLUE,ON
buttoninactivecolor WHITE,BLACK,OFF
buttonkeyactivecolor YELLOW,BLUE,ON
buttonkeyinactivecolor WHITE,BLACK,ON
buttonlabelactivecolor WHITE,BLUE,ON
buttonlabelinactivecolor WHITE,BLACK,OFF
inputboxcolor WHITE,BLACK,ON
inputboxbordercolor CYAN,BLUE,ON
searchboxcolor dialogcolor
searchboxtitlecolor WHITE,BLACK,OFF
searchboxbordercolor bordercolor
positionindicatorcolor WHITE,BLACK,OFF
menuboxcolor WHITE,BLACK,OFF
menuboxbordercolor bordercolor
itemcolor WHITE,BLACK,OFF
itemselectedcolor WHITE,BLUE,ON
tagcolor WHITE,BLACK,OFF
tagselectedcolor buttonlabelactivecolor
tagkeycolor buttonkeyinactivecolor
tagkeyselectedcolor YELLOW,BLUE,ON
checkcolor dialogcolor
checkselectedcolor buttonactivecolor
uarrowcolor CYAN,BLACK,OFF
darrowcolor uarrowcolor
itemhelpcolor CYAN,BLACK,OFF
formactivetextcolor YELLOW,BLUE,ON
formtextcolor WHITE,BLACK,OFF
formitemreadonlycolor WHITE,BLACK,OFF
gaugecolor CYAN,BLACK,ON
border2color BLUE,BLACK,OFF
inputboxborder2color BLUE,BLACK,OFF
searchboxborder2color BLUE,BLACK,OFF
menuboxborder2color BLUE,BLACK,OFF
end of script
Raspberry Pi Buttons and LEDs rbtsc
!/usr/bin/python3
import time
from gpiozero import Button, LED
import os
import requests
import logging
import shutil
import math
sdir/home/z/scripts/
test Button5, pullupTrue, holdrepeatFalse
pwr Button12, pullupTrue, holdrepeatFalse
rst Button16, pullupTrue, holdrepeatFalse
logging.basicConfig
filenamesdir+system.log, Specify the log file name
levellogging.INFO, Set the logging level to INFO
formatasctimes - levelnames - messages
def internetconnection:
try:
response requests.gethttps://google.com, timeout5
return True
except requests.ConnectionError:
return False
def blinklongt,shortt:
os.systemsdir+led-blink.sh +strlongt+ +strshortt
def buttonpressed:
printButton pressed.
def buttonreleased:
printButton released.
def pressedreset:
logging.infoRESET button pressed
os.systemsdir+led-init.sh
printRebooting system...
blink3,0
os.systemsudo reboot
def pressedpower:
logging.infoPOWER OFF button pressed
os.systemsdir+led-init.sh
printPowering off system...
blink3,3
os.systemsudo shutdown now
def Held:
logging.infoINFO button pressed
os.systemsdir+led-init.sh
init blink
blink1,0
time.sleep1
check internet
if not internetconnection:
logging.warningNo Internet Connection
blink2,3
check disk usage
total, used, free shutil.diskusage/
percent math.ceilused * 10 / total
blink1,percent
printDisk Usage is: + strpercent * 10
return state
time.sleep1
os.systemsdir+led-heart.sh
test.holdtime 2
test.whenheld Held
pwr.holdtime 2
pwr.whenheld pressedpower
rst.holdtime 2
rst.whenheld pressedreset
printPress CTRL-C to exit.
while True:
time.sleep1
end of script
led-init.sh rbtsc
!/bin/bash
sudo sh -c echo none /sys/class/leds/ACT/trigger
end of script
led-heart.sh rbtsc
!/bin/bash
sudo sh -c echo heartbeat /sys/class/leds/ACT/trigger
end of script
led-blink.sh rbtsc
!/bin/bash
PAUSE1
LONG0.5
SHORT0.2
function on
sudo sh -c echo 1 /sys/class/leds/ACT/brightness
function off
sudo sh -c echo 0 /sys/class/leds/ACT/brightness
bash,No, parameters, passed
if -eq 0 then
echo Usage:
echo ./led-blink long-blinks short-blinks
exit 1
fi
LONG
for i in seq 1 1 do
on
sleep LONG
off
done
SHORT
for i in seq 1 2 do
on
sleep SHORT
off
done
sleep PAUSE
end of script
A B O U T
n u l l m a g a z i n e
i s s u e x 0 0 D
:::: w h a t ? :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
null magazine is an e-mag, about the bbs scene, ansi art, programming,
retro computing/gaming and stuff. as from issue x005 null is written in
turbo pascal 7 for dos only! oldschool stuff!!! this way anyone can get
a copy of dosbox in his pc or smartphone and read null! there is also a
text only version, specially for those who are scared to execute binary
files... later issues are only in text.
:::: d o w n l o a d :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
null magazine hq is another droid bbs. there you can can download or
even read online the magazine, from the bbs. just visit:
another droid bbs / andr01d.zapto.org:9999
another droid gopher / andr01d.zapto.org:7070
another droid website / andr01d.zapto.org:8080
xqtrs lair at / cp737.net
official distros for null mag:
agency bbs // agency.bbs.nz
distortion bbs // d1st.org
at the distros you can download the mag or read it online, couple of days
before the mag is released to the web. you can also download it from
affiliate networks
and from github at: https://github.com/xqtr/null
:::: d i s c l a i m e r :::::::::::::::::::::::::::::::::::::::::::::::::::::
any writer who provides articles for null mag. has his own opinion. the mag
is not responsible in any way about authors opinions. null respects free
speech and supports the variety of opinions in any social form of a network.
for used material, like articles, ansi art, music, all credits goes to their
creators. you are free to use material made by the founder of the mag xqtr
under GPL3 license, no need to ask permissions. for any other material its
your responsibility to do what you think best.
the author has taken every precaution to insure that no harm or damage
will occur on computer systems operating this util. never the less, the
author will not be held liable for whatever may happen on your computer
system or to any computer systems which connects to your own as a result
of. operating this util. the user assumes full responsibility for the
correct operation of this software package, whether harm or damage
results from software error, hardware malfunction, or operator error.
no warranties are : offered, expressly stated or implied, including
without limitation or restriction any warranties of operation for a
particular purpose and/or merchant ability. if you do not agree with
this then do not use this program.
:::: c o n t a c t :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if you want to report bugs, send articles or art, just send an email at:
xqtr@gmx.com
or visit the BBS and leave a message.
telnet://andr01d.zapto.org:9999
gopher://andr01d.zapto.org:7070
https://cp737.net
http://andr01d.zapto.org:8080/ - will be turned off
:::: c o n t r i b u t i o n s :::::::::::::::::::::::::::::::::::::::::::::::
def listauthors:
xqtr // another droid bbs
def listcontributors:
smooth // ink2 bbs
:: ansi screen for issue x003
:: ansi screen for issue x004
shinobi //
:: tutor for issue x005
:: tutor for issue x009
eugene // ?
:: ansi screen for issue x006
:: ansi screen for issue x007
:: ansi screen for issue x008
:: ansi screen for issue x009
:: ansi screen for issue x00A
alphaking // blocktronics
:: flyer/logo for null mag.
filth // blocktronics
:: flyer/logo for null mag.
nodohana
:: article for issue x008
deepthaw
:: article for issue x00B
stack fault
:: article for issue x00B
meatlotion
:: tutorial for issue x00B
ChatGPT
:: wrote some articles for issue x00d :
def listdistributors:
avon // agency bbs
jack phlash // distortion bbs
i Q5A s o 2 A P 2 b Q A v / A
TbqJA j c T A j T I Q j A A / I Aj A j 5 Q Aj c
C/IIBQjA cAA X / A XvC/IQ5 7r AAA AXP NkiBf A AAAAAjAAj AXvC/
Q5As7rio XvPANki c2TbqJADBwAF5 s7c2T jkjk C/II Qj/ 2T 2T7ri7ri 2TbqJAD
LcAAAj cc qvC/IF Qjv /IIBQj ioR7wAv Dff/ Q5 s7rio0 I C/c2Tc2T C/IIBQj
7rioR wAvS IIQ5As7 io 5As7rioc2TbqJADQ A k A AAjPc2TbH A 5AvC/vC/ 5As7rio
c2TbqJADQ 7AAjPcFFb jPc2TbvC/II QjA jkBBjPAAAXvC I Aj AAjQ5AQ5A AjPc2Tb
vC/IIBQjDS PcAAAX F/ AAAX C fX AjPc2TbPAu t kiBfX 3PAN PANA A AX NkiBfX
AAj c2T P kiBfX n D AA AXvC nHkY 3 d PA PAN fXSN
AAA vC/I i n K H PANkiBM MYf W n N dm3
PAN iBfX @ K k L D fH D W n 3 S nN
LK @ d k Y i H S SHM D D m n3W
ik d n Y f i L m mM H D W N D
iY n n f H @ i N N L H D 3 W
@f n H M d i 3 3Sm i L D DH
dH 3 M n @ mN i i H W DL
nM 3 S n s d W WN3 @ i L D Hi
n S m n D D3 d @ i D Li
S m N n DW n d i H i@
m N 3 j H WD n n @ L id
N n 3 L LDD r n d i @n
3 t W i iDH o n i dn
W D u r i iHL n @ n
W o D D @ @Li a d d n
D D H d ii m n
D H L n ni@ n h t
L i n n@d n
L L i dn s i
i @ nn
i @ n