Copy Link
Add to Bookmark
Report

NULL mag Issue 0C

eZine's profile picture
Published in 
null magazine
 · 13 Nov 2022
NULL magazine Issue 0C
Pin it
NULL magazine Issue 0C

 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 D&W 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++n45PXz6A8M7eTxCQz76ff"""""`'"""`Y4MCBb+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+AuEMdP"""""""MMBiAAAAAU
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+/UT7MM'"""""`MM4Awe7Rz4A
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+Hv8A5yTt5yfn6jPqykzt9MMP"""""""MBRQ6ff2AA
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+HvEd4wM""""""""`MAB30t6gIA
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/IIBQDBAICBsVGQAPIxYIIBgRGRA8M"""""""`YBEHt6gI+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/gsMM""""""""`MIRiyCfTD
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 WAfTIvICBRHvAPsf3hHTbqJfTIvICBRAg4Psf3jMBP"""""YMM8hBRHvIA
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+HEM#BP"""""YMMPdi3+3rA
ADAA L::::::::::::::::::::::L Lc0W+PUk5+0t6gIF7xYA+/U7##' .mmm. `i3w1Cwjwt
MgAT L::::::::::::::::::::::L ANkiBfX4Ag4O7wAiyCfTIvIB#M MMbbMbb1CR+Ds8x2
OAAE LLLLLLLLLLLLLLLLLLLLLLLL AAXvC/IIBQj48iTe7Rz4HOcHM# MbbMMbb+DPRAHGrh
AAAL AAjPc2TbqJADKCBb+7yL70zj2M#. `MMM' .RASff2AO4
/uLM3P3x1eTz8PPR9AkA++Ds8xEU9uUOGxoW8vYUCA/+6irKLfX1/gsRM#Mb 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 D&W 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 x00C


INTRO

Welcome, to another issue of NULL magazine! How long has it been? In the last issue we had a pandemic and now we are almost in the bring of WW3... You have to admit, that now days, you can't get bored. Even if the movies suxx, reality is here to surpass even H/Bollywood.

But enough... fuck reality... you are here to get your mind off this shitty reality and i am writing this for the same reason.

This time, this issue is full text mode!!! and only lower ascii chars. plz... oldskool... 100%. It will also be more easy to read it, if WW3 happens and return back to 8bit computers... haahaha :p

The look has changed and also the material/articles, you will find that are not just for BBSing, you can read the reason below. As always you can find a MOD TRACK to listen while you are reading this, at the end of the file, as BASE64 encoded text. Make sure to check the third one, at the end of the file, which is only 5.5Kb and is using only ONE! channel to play music! Titles, links and info on the web pages below:

Corrosion / Riot-11, 30166b
https://www.modules.pl/?id=modules&aid=448

vol pitch death star blown motherfuck / Anders Dator, 72865b
https://modarchive.org/index.php?request=view_by_moduleid&query=162098

1channel moog / Manwe, 5624b
https://modarchive.org/index.php?request=view_by_moduleid&query=158975

RANDOM stuff

% This time, there is no INDEX nor an easy way to navigate through the mag.
You bitches, have to read it all, from top to bottom!!!! :P~~~~


% The AMIGA 500 Mini is out, for 140$...
fuck it! run an emulator man... now that the US Dollar is going to collapse, as other coins, keep the money.

https://www.youtube.com/watch?v=ob-8G2c1VGo


% It's payback time...
There was a time, late 80s, that in that period, not many Greek magazines were published, about computers and specially for home micros. So i had to go to specific bookshops, that they had English/American ones and buy some. Back then my English was not as good as now, but still i managed to read them. So lets see, how you will do it, in reading now days Greek Retro magazines... hahhaaha... nah... I just want to give credit too some fellows that keep the Greek scene alive!


RETRO PLANET
https://retroplanetmagazine.blogspot.com/

RETROID
https://drive.google.com/file/d/1dwvabxCQbWrTOpSDxBE5CYmweyGmB7XV/view

ok... ok... here is also an English one for CPC Home Micros

AmtixCPC
https://fusionretrobooks.com/products/amtixcpc-micro-action-issue-1-amtixcpc-magazine


% A very nice podcast about BBSing with 8BitGuy, TheGeekPub, and GeekBits

https://www.youtube.com/watch?v=zPcx3D6BBYg


% Here are some of my favorite Gopher sites i like to visit and find interesting.
The URL is written for use in Lynx just copy/paste and use it like:

lynx gopher://viste.gopher.gr

gopher://viste.gopher.fr
gopher://linkerror.com
gopher://codevoid.de
gopher://0x1bi.net/xgopher !!!
gopher://bay.parazy.de:666


% MeaTLoTioN announced KDX, something like a new graphical BBS server thing.
For more information visit the homepage of the project at: https://erb.pw/y/kdx


% A small list of internet radios with track music, chip tunes and in general music from the BBS/Demo scene.

% Check the Another Droid BBS/Web page/Gopher site
about three new Android applications, that are related to BBSes and text mode in general. You will find a BBS Lister/Database program, an ANSI to image converter and an awesome Gopher client.


% PsychDOS...
another frontend/shell for DOS, but still worth watching, specially if you are a DOS/retro fanatic!

https://psychoslinux.gitlab.io/DOS/INDEX.HTM
https://www.youtube.com/watch?v=wQCiZtnJekU


% A very nice reading about the demo scene.
If you like the demo scene, you have to read it.

http://viznut.fi/texts-en/putting_the_demoscene_in_a_context.html


% A full analysis on how, the 8088mph demo, was created.
Worth reading it.

https://trixter.oldskool.org/2015/04/07/8088-mph-we-break-all-your-emulators


% Not just another 2048 game,
but perhaps the best one, even if it only uses (mostly) low-ASCII chars. The animations used, are giving a different feeling and make the game more pleasant, as it's clearly where new boxes are created and which are being erased. Also notice the floating score ;)

https://github.com/sp5/2048tty


% Saving Compuserves Collection...

https://computerhistory.org/blog/mission-impossible-chm-edition/


% the history of file descriptors

If you ever wondered why the fuck, every ZIP file in a BBS has that FILE_ID.DIZ file in it... then here is the answer and a lot more... The article is a trip to the past, so read it slowly and absorb the great amount of information on the subject.

Link: https://l33t.codes/retro-standards-part-1-file-descriptors/


% Build your own dialup ISP provider!!!
Awesome video about old phones and how we used to connect.

https://www.youtube.com/watch?v=Je8lwcUPBys


% If all coders and artists join one group...
what the BBS scene have become?

HX DOS-Extender

A DOS extender is a computer software program running under DOS that enables software to run in a protected mode environment even though the host operating system is only capable of operating in real mode.

DOS extenders were initially developed in the 1980s following the introduction of the Intel 80286 processor (and later expanded upon with the Intel 80386), to cope with the memory limitations of DOS.

But HX DOS-Extender... it's something even more...

HX DOS-Extender is a free DOS extender with built-in Win32 PE file format support. Usually the purpose of a DOS extender is to make protected-mode features available for DOS applications. HX fully supports this goal, but goes some steps further. A Win32 API emulation layer is part of HX which allows many Win32 console applications to run in DOS. This emulation goes far beyond similiar approaches in other extenders (Borland's PowerPack, WDOSX or Phar Lab TNT). Furthermore HX implements - limited - support for windows, DirectDraw, GDI and even OpenGL graphics. This allows to run "simple" Win32 GUI apps in DOS as well.

Link: https://www.japheth.de/HX.html

plain text

One of the best analysis, on how codepages and unicode format have been created through the years of computer science evolution. It will answer many questions on how things have been done and why.

... CP437 4 3v3r ...
Link: https://youtu.be/_mZBa3sqTrI


Also i found that writing in plain text, is a more future proof way for writing stuff. For example i want to read some of the old stuff from, previous NULL issues and i have to set DOSBOX to do so, when the last issues that are just plain text, i can open them in just a few clicks.

This is also relevant to DATA keeping and other areas. For example, a CSV file is also more future proof than an exported PDF or XLS file. You can read CSV in numerous ways and format the data to whatever you want. But you can't reformat a PDF file to something else, easily ;) Just keep that in mind.

When pixel art meets text mode

So... a textmode artist, finds a pixel art, artist and introduces him to the textmode art. The result is below :)

Link: https://youtu.be/6iSNinCzKTw

Command & Conquer: Yuri's Revenge

Let's play this awesome game, once again. From what i read in the NET, playing it via WINE is a headache. Still i managed to set it up and it runs flawlessly in X/Ubuntu 20.04, with WINE 5.0. So grab your ISO and lets start.

    ?> WINEARCH=win32 WINEPREFIX=~/games/cc2-wine winecfg

Select Windows XP version and close.

    ?> WINEPREFIX=~/games/cc2-wine winetricks

  • Select default prefix
  • Select Change Settings
    • Check VideoMemorySize = 512
    • Check orm = fbo
    • Check ddr = gdi
    • Check glsl = enabled

  • Press OK
  • Select Install a Windows DLL or component
    • Check d3dx9
    • Check dotnet35
    • Check mfc42

  • Press OK and ignore any error message, just press OK to continue and finish the installation of the libraries.
  • At the end, press Cancel until you exit the Winetricks program

    ?> WINEPREFIX=~/games/cc2-wine wineboot --restart

The WINE env. is ready. Now within the terminal, go to the folder you have mounted the CC2 ISO file. For example, mine was /media/xqtr/RA2. Inside the folder give the command to start the installation:

    ?> WINEPREFIX=~/games/cc2-wine wine setup.exe

After the installation is finished, go to the folder the game was, installed. It should be something like this, inside your WINE PREFIX.

    ~/games/cc2-wine/drive_c/Program Files/Electronic Arts/Red Alert 2

Edit the RA2.INI file if you want to skip the intros and change resolution. I tried mine with a resolution of 1024x768 and works fine.

Now give the command to start the game.

    ?> WINEPREFIX=~/games/cc2-wine wine Ra2.exe

You are ready... now go listen that awesome OST of the game!!!

Track 2 MP3

I really love listening to old and new track music, so i often visit modules.pl which i think the best site for track music and take my "fix". The files i download, i save them as they are, but still, i convert them to MP3s, for transfering them on my smartphone. So, here is a small BASH script to convert track music to MP3 easily.

You will need XMP and ffmpeg, so make sure to have them installed on your system. As always... fuck Window users...

dA sCRiPT ................................................................ 

#!/bin/bash

xmp "$1" -o /tmp/temp.wav
ffmpeg -i /tmp/temp.wav -acodec mp3 "$1.mp3"
rm /tmp/temp.wav

..........................................................................


Gopher, Gemini... and WTF?

If you don't know about Gopher (the protocol) keep scrolling... there is nothing to see here.

Have you heard of Gemini? It supposed to be a new Gopher like protocol, to make Gopher better... cause in the mind of some people, Gopher suxx. So, they made Gemini, to be better than Gopher, but still not be like HTTP...

This is exactly what schizophrenic people do... distort things, to like them better, ignoring, that there is all read a "better" solution... resulting to make things worse, as they split a protocol, a team, the scene etc.

Gopher is Gopher... it has it's advantages and suxx in other ways. That's why people, built HTTP and world became as we know it. You can't make something that is "like" Gopher and better... you shouldn't! If you want something better from Gopher, use the web.

By creating Gemini, you haven't achieved anything... you took a piece from Gopher users/admins and convert them to Gemini ones, making Gopher more obsolete. And we should ask our selves... how many are going to use Gemini or even know about it, today... in the 2022s?

Sure you can make as many text like protocols as you want... but what will be the purpose? Make people to use a text like Web? If they did, they can use HTML in its simplest form and achieve what Gemini does and even better!

If you check Internet, you can find CSS styles or simple HTML pages, as templates to make lightweight and more text friendly web pages and people can have more easy access to them, as they use the Web/HTTP, not a weird, new protocol, that just being created and made things more complicated.

If you like Gopher, use Gopher! If you want light web pages, use simple HTML and don't over do it.

Python libs for ALL...

OK... the title is a bit deceptive, so lets clear things. In python, when you install a library, with PIP, it's being installed for the current user and not for others or even ROOT. What that means for us, the BBS guys, is that if you try to execute a Python script via your BBS and specially, we are talking about MYSTIC BBS and MPY, then the script it wont execute as it should be, or not even at all.

The reason is that, MYSTIC BBS executes the scripts with ROOT privileges and it will not find a library that you have installed via PIP for a specific user. You can check this by installing my xq-rssbbs mod. For it to work you need the FEEDPARSER lib. If you install it via PIP and execute the mod, it will not display any feed and you will get an error.

To correct this and have a lib. installed for ALL users, prefer to install it via the PACKAGE MANAGER of your system, like apt, apt-get etc. So for the example above, to install the FEEDPARSER lib. for all users, install it with this command, in any debian system:

    ?> sudo apt-get install python3-feedpaser

I hope, that this will solve many problems in your BBS, as it's something that you can't easily figure out and i have spent several hours, trying to fix things in a couple BBSes :(

Managing Databases in Terminal

In many mods of mine, i am using a type of database, mostly CSV files or SQLite3 databases. Specially when creating the mod and want to debug things or even start from somewhere, you have to use some type of database tool, to check things.

Also, after making the database and the mod works, you may want to alter things, because you are trying a different approach for the mod/app or just want to correct something.

For a GUI environment i am using a text editor for CSV files and for SQL i always use sqlitebrowser. But what if you want to edit something within the BBS or a SSH/Telnet connection? For that, i found the following tools which are text mode / terminal type of database editors/browsers. You have to try them your self to see which one is fitted for you, cause each one, has its unique TUI and dis-advantages.

-+- VISIDATA -+- https://www.visidata.org

It's the easiest to install and has many installation ways to choose from. I prefer from PIP/Python. It has many features, but it doesn't allow you to enter SQL queries. It also supports CSV editing.

-+- SQLELECTRON -+- https://github.com/sqlectron/sqlectron-term

A more visually appealing app, with a more user friendly TUI, for sure. It needs node.js env. so i don't like it personally and also it can edit only MySQL and PostgreSQL databases.

-+- SQLCRUSH -+- https://github.com/coffeeandscripts/sqlcrush

That's a hard one to install... Because i installed it, here is how, in case you want to do so. It's very simple editor, so maybe is something you look for.

/------------------------------------------------------------------------\ 
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib # install postgre
sudo apt-get install libpq-dev python-dev
sudo pip install psycopg2 # psycopg2 lib
pip install sqlcrush
\------------------------------------------------------------------------/

-+- TERMDBS -+- https://github.com/mathaou/termdbms

Another nice TUI editor, that supports CSV and SQLite3. Needs GO to, compile. Haven't tried it, cause i hate GO... biah...

-+- GOBANG -+- https://github.com/TaKO8Ki/gobang

It's called gobang, but it's written in rust... go figure... it supports, SQlite3, MySQL, PostgreSQL but it's weird to handle. It's weird even trying to open a local SQLite3 file...

If you want something quick, use VISIDATA. Installs like a charm, very quick and has many features.

dosemu2 - use dos apps in linux terminal

Lets install and configure DOSEMU2, to use DOS apps in linux, in a different and unique way ;) First lets install it:

sudo add-apt-repository ppa:dosemu2/ppa 
sudo apt update
sudo apt install dosemu2

If you try to run dosemu now, you may get an error about a libfdpp.so missing. If so, give this command to install it:

sudo apt install fdpp

To start dosemu2, you give just dosemu in the terminal, but it will open a different window. We want to use dosemu, inside our current linux terminal so give the command: dosemu -t

Also, enable DPMI, cause some DOS apps need it. To do that follow these:

  • Edit or create the file /etc/dosemu.conf
  • Find this line and delete it, if you don't find it, get to next step.

$_dpmi = (off)

  • Add this line

$_dpmi = (nnnn)

Where nnnn is the number of kilobytes of memory you wish to give to the DOS program (e.g. Doom requires about 4000 kilobytes). If you do this, you should not run dosemu as root .

Now we are ready and your linux terminal is converted to a DOS terminal!!! Now the fun begins... we will create a BASH script to execute from our linux terminal, that will launch DOS apps, depending the filetype of the given file. For example you will type: ./dos.sh music.mod and in the same terminal, you will hear music from a DOS music tracker. In the same way, we can add commands to launch an ANSI editor like THEDRAW or a text editor like AURORA. You could also use the apps listed in the webpage below to create flat databases, keep notes etc.

https://clasqm.github.io/freedos-repo/Productivity.html

This way, is like integrating DOS apps into our linux system. Of course you can extend the idea as you like. For example a minor problem with the script/way i am providing here is that it doesn't handle long filenames, which isn't difficult to implement... that's an exercise for you to do :)

So the BASH script is as follows:

    dA sCRiPT .................................................. dos.sh ...... 
#!/bin/bash
DOSDIR="/home/x/.dosemu/drive_c"
TMPDIR="$DOSDIR/tmp"
DOSTMPDIR="C:\tmp"
FILENAME="$(basename $1)"
EXTENSION="${FILENAME##*.}"
EXTENSION="${EXTENSION^^}"

cp "$1" "$TMPDIR"

case $EXTENSION in
ANS)
dosemu -t -d "$(pwd)" -E "c:\apps\ansi\thedraw\thedraw $DOSTMPDIR\\$1" #-T
cp "$TMPDIR/$FILENAME" "$1"
;;
TXT)
dosemu -t -d "$(pwd)" -E "c:\apps\text\aurora\a.exe $DOSTMPDIR\\$FILENAME"
cp "$TMPDIR/$FILENAME" "$1"
;;
MP3)
dosemu -t -d "$(pwd)" -E "c:\apps\media\mpx\mpx.bat $DOSTMPDIR\\$FILENAME"
;;
MOD)
dosemu -t -d "$(pwd)" -E "c:\apps\media\mmp\OMPT123 $DOSTMPDIR\\$FILENAME"
;;
XM)
dosemu -t -d "$(pwd)" -E "c:\apps\media\mmp\OMPT123 $DOSTMPDIR\\$FILENAME"
;;
*)
echo -n "Don't know what to do whith this type of file. :("
;;
esac
..........................................................................

Make sure to have the needed apps installed and have the same directory structure or just edit the script to match your installation of DOSEMU2. Make the script executable with: chmod +x <script_name> and execute like:

./dos.sh file_id.ans

The apps should be inside the C drive of DOSEMU, inside your HOME dir.

~/.dosemu/drive_c

If you check the script, you will see that the file provided as parameter, is copied inside the TMP folder of the DOSEMU filesystem. I did that, cause i didn't want to expose system/linux folders to DOSEMU and cause problems. As you will see DOSEMU can see "on the fly" any file changes and can affect folders and files that can see. So be careful to what you are exposing.

The given file is first copied to the TMP folder, then the program assigned to the file type, edits the file and after exiting the app. the file is being copied to the original place. This way, only the given file will be affected. You can change the SCRIPT to keep backup of the file or/and clean the TMP folder after ending the DOS session.

You could also check if the paramater is not a file, but for example a telnet address and launch your favorite TELNET/TERMINAL DOS program to visit BBSes ;)

I hope you like the idea and extend it to your liking...

xmouseless - use mouse with keyboard

How many times, you wished to have a mouse on your system, but for what ever reason, you couldn't? Specially with all these SBC/RPis, if you try to build a cyberdeck like system, you may want to have support for mouse, but with no actual mouse pluged in.

That's what xmouseless does. You can bind keypresses to use the mouse cursor and emulate, key presses, in a very easy way. To install it, just git clone it to your drive and build it with make.

.................................................... 
git clone https://github.com/jbensmann/xmouseless
cd xmouseless
make
....................................................

You can change the keys that manage the mouse cursor and buttons. You have to edit the config.h file. In the page below, you can find key binding codes to use.

https://code.woboq.org/qt5/include/X11/keysymdef.h.html

I also included the config.h file i use. It's using cursor keys for mouse movement and DEL/END/PGDN as LEFT/MIDDLE/RIGHT mouse buttons. After editing the file, you have to MAKE the program for the changes to take affect.

%%%% config.h %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
/* the rate at which the mouse moves in Hz
* does not change its speed */

static const unsigned int move_rate = 50;

/* the default speed of the mouse pointer
* in pixels per second */

static const unsigned int default_speed = 400;

/* changes the speed of the mouse pointer */
static SpeedBinding speed_bindings[] = {
/* key speed */
{ XK_Super_L, 3000 },
{ XK_Alt_L, 1500 },
{ XK_a, 100 },
{ XK_Control_L, 10 },
};

/* moves the mouse pointer
* you can also add any other direction (e.g. diagonals) */

static MoveBinding move_bindings[] = {
/* key x y */
{ XK_Left, -1, 0 },
{ XK_KP_4, -1, 0 },
{ XK_Right, 1, 0 },
{ XK_KP_6, 1, 0 },
{ XK_Up, 0, -1 },
{ XK_KP_8, 0, -1 },
{ XK_Down, 0, 1 },
{ XK_KP_5, 0, 1 },
};

/* 1: left
* 2: middle
* 3: right */

static ClickBinding click_bindings[] = {
/* key button */
{ XK_Delete, 1 },
{ XK_q, 1 },
{ XK_KP_7, 1 },
{ XK_End, 2 },
{ XK_w, 2 },
{ XK_KP_9, 3 },
{ XK_e, 3 },
{ XK_Page_Down,3 },
};

/* scrolls up, down, left and right
* a higher value scrolls faster */

static ScrollBinding scroll_bindings[] = {
/* key x y */
{ XK_KP_Divide, 0 , 25 },
{ XK_KP_Multiply, 0 , -25 },
{ XK_KP_Add, 0 , 80 },
{ XK_KP_Subtract, 0 , -80 },
{ XK_comma, 25, 0 },
{ XK_period, -25, 0 },
};

/* executes shell commands */
static ShellBinding shell_bindings[] = {
/* key command */
{ XK_b, "wmctrl -a firefox" },
{ XK_0, "xdotool mousemove 0 0" },
};

/* exits on key release which allows click and exit with one key */
static KeySym exit_keys[] = {
XK_Escape, XK_q, XK_space
};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


Check ENDIANNESS/Byte Order of system, with PYTHON3

If you are making any MODs or in general you need to access DATA files, with structures (line the SAUCE data for example), you need to know the byte order the current system uses, which called ENDIANNESS. I don't explain what endianness is, cause i allready done that in a previous issue. I am only gonna show you a quick way to check it, with PYTHON3, so you can use it, in almost any type of computer, as PYTHON is almost universal.

So to do it, just execute the following script:

dA sCRiPT .................. endian.py ..... 

from sys import byteorder
print(byteorder)

.............................................

It will print little 'little' or 'big', depending the endianness of the system. You can make it an alias for use in the terminal, if you don't want to make it a script like this:

alias endian='echo "from sys import byteorder;print(byteorder)" | python3'


Print ANSI images as POSTERs

We have to admit that specially the late ANSI packs, have some unique and very interesting pieces that worth printing them as poster and have them decorating a room. There are hundreds of them, that you can choose, depending your liking.

The hard part is printing them, specially the long ones... but that's why i am here :p You could use ImageMagick tools, but i find them a bit hard to remember their syntax and i always GOOGLE for the right use. So i found a very easy way, with a GUI tool, called PosteRazor!

https://posterazor.sourceforge.io/

In Debian like systems, you can install it easily with:

sudo apt-get install posterazor

You could even use the online method (just visit the homepage of the project). So easy... the tool, guides you step by step, so there is no way you could make a mistake and you can always save the work as a PDF file, that you can edit, later. For example if you don't want to print a part of the find, use pdf-suffler or a similar tool, to remove pages.

For the images, you don't even have to convert the ANSI files, as they are all ready converted ;) Just visit the 16 Colors, site and download the preview image. With just that image, you can create your awesome poster!

But wait... there is more awesomeness!!! Install AnsiDroid...

http://andr01d.zapto.org:8080

... to your Android smartphone, download an ANSI file from the 16 Colors, site and convert to image with AnsiDroid. AnsiDroid, gives you the options to select a different font and also change the pallete. You can only image, how cool are some colorful ANSIs, if converted to grayscale ;) or use a font like Topaz, Microknight etc. AnsiDroid have many of them. If i am not mistaken, a custom version of Moebius has the same feature, to select fonts. Go print some posters now...

We need a Market!

Now days, every system/OS has its own Market place, to download apps. Linux has the best type of "market-place", with the repositories and i think from it, other OSes took it and made it as the Markets we all know in our smartphones and more.

The thing with repos and/or market apps, is that, mostly have GUI apps or all the apps, without distinct them. I am talking, mostly about Linux and the repo system, that Smartphone Market apps, as they don't have TUI apps.

So, if you are looking for TUI/Terminal apps that have a more beautiful UI, than just using the command prompt to enter commands, you will figure that it's difficult to do so. You have to look over the NET, in websites to find recommendations about TUI apps and spend hours for searching.

But, what if there was a unique type of Market place app, for linux, that has only TUI apps! Not even command line apps, but apps that have ans use a text mode user interface.

FreeDOS has done something similar and it's very cool. The app is called FDIMPLES and is installed with FreeDOS. Give it a try and look to see, how nice and useful is. Linux should have something similar.

And to take it even further... BBS programs should have a similar Market app or repo. Not just for downloading the BBS programs (clients/servers) but mostly for getting MODs and THEMEs. Many MODs for Mystic, Synchronet and other BBS programs are scattered all over the net. Many of them, have several versions that confuse the user and installing some of them, is a pain on the butt. Trust me, i know... :)

I hope someone with the skills and "courage" find this idea intriguing and perhaps try to make something of it. I just hope that he'll use Python or C and not a language like Rust, Go, JS etc. as both C and Python, are something like a "universal" language for Linux and they come pre-installed in every system, where Go, Rust etc you have to install them separately.

Complexing things in code?...

When you program, you can follow many paths to achieve the same thing. Selecting the path, depends by you, the skills you have, how much time you want to invest in a piece of code and of course how efficient you want to make the code.

There is not a wrong way to make stuff, although in specific cases, specific ways are selected for efficiency or making things more easier, to write, to read or for others to understand.

For example take this function:

    def flash(s,y): 
writexy(40-len(s)/2,y,8,s)
time.sleep(0.2)
writexy(40-len(s)/2,y,7,s)
time.sleep(0.2)
writexy(40-len(s)/2,y,15,s)
time.sleep(0.2)
writexy(40-len(s)/2,y,14,s)

We can make it more "adjustable", but it will be more complicated to use later. For example the same function can be also like this:

    def flash(s,y,colors=[8,7,15,14],delay=0.2): 
scr_width, scr_height = termsize()
x = scr_width // 2 - len(s)//2
for cl in colors:
writexy(x,y,cl,s)
time.sleep(delay)

Just looking them, which one seems more easy to read? For sure the second one, is more advanced, as you can set the colors as a parameter and it will show nicely in every text mode resolution, as the first one is built only for terminals with size of 80 chars. width.

I haven't test/timed them, as there is no reason to do that... cause the specific function is not something too much of importance and it will not be used in a program too many times. But if it was something else, it would be best to also time them and compare them. You will be surprised, watching code that you thing is sloppy written, being more efficient than code that is more "fine tuned" and perhaps vice versa. There are many parameters in making a function cpu-cycle efficient and just by thinking them, is not possible to make an accurate conclusion, so you have to test things.

Fancy text

Here are some function to show text in a more fancy way... Feel free to use them in your projects. There are written in MPY, but it's easy to rewrite them in MPL or other language.

    def flash(s,y,colors=[8,7,15,14],delay=0.2): 
scr_width, scr_height = termsize()
x = scr_width // 2 - len(s)//2
for cl in colors:
writexy(x,y,cl,s)
time.sleep(delay)

Same as above, but flashes word by word and not by line...

    /----------------------------------------------------\ 
def flash2(s,y,colors=[8,7,15,14],delay=0.08):
scr_width, scr_height = termsize()
x = scr_width // 2 - len(s)//2
gotoxy(x,y)
xt = x
for word in s.split():
word += ' '
for cl in colors:
textcolor(cl)
write(word)
time.sleep(delay)
gotoxy(wherex() - len(word),y)
xt += len(word)
gotoxy(xt,y)
\----------------------------------------------------/

This function, displays each letter of the given string, but it uses a style of countdown to reach each letter, starting from char. 32 (space), until it reaches the specific character.

    /----------------------------------------------------\ 
def countdown(s,y,colors=[8,7,15,14]):
scr_width, scr_height = termsize()
x = scr_width // 2 - len(s)//2
gotoxy(x+1,y)
for ch in s:
for i in range(32,255):
if i==ord(ch):
for cl in colors:
textcolor(cl)
write(ch)
gotoxy(wherex()-1,y)
time.sleep(0.003)
gotoxy(wherex()+1,y)
break
else:
write(chr(i))
gotoxy(wherex()-1,y)
time.sleep(0.001)
textcolor(colors[0])
\----------------------------------------------------/

This one, has an effect, like typing a line, then erasing it, partially and re-writing it. It's a weird one, but looks nice.

    /----------------------------------------------------\ 
def erasefx(s,y,colors=[8,15],delay=0.2):
from random import randint

scr_width, scr_height = termsize()
x = scr_width // 2 - len(s)//2
for cl in colors:
gotoxy(x,y)
textcolor(cl)
for ch in s:
write(ch)
time.sleep(0.005)
flush()
xt = wherex()
if cl==colors[-1]: break
while xt>x:
xt-=randint(3,10)
xa=wherex()
gotoxy(xt,y)
write(" "*(xa-wherex()))
gotoxy(xt,y)
time.sleep(0.1)
\----------------------------------------------------/

This one, shows each character from the corners towards the center and then flashes the whole string.

    /----------------------------------------------------\ 
def flash3(s,y,colors=[8,7,15,14],delay=0.05):
scr_width, scr_height = termsize()
x = scr_width // 2 - len(s)//2
s=" "+s
for i in range(0,(len(s)//2)+1):
a = s[i]
z = s[-i]
writexy(x+i,y,colors[0],a)
writexy(x+len(s)-i,y,colors[0],z)
time.sleep(delay)
writexy(x,y,colors[-3],s)
time.sleep(delay)
writexy(x,y,colors[-2],s)
time.sleep(delay)
writexy(x,y,colors[-1],s)
\----------------------------------------------------/

Another one, which first writes each word of the string and then flashes each letter of the word. Make sure that your terminal supports, hiding the cursor, otherwise the effect will not show properly.

    /----------------------------------------------------\ 
def flashword(s,y,colors=[8,7,15,14],delay=0.02):
scr_width, scr_height = termsize()
write("|[0")
x = scr_width // 2 - len(s)//2
gotoxy(x,y)
for word in s.split():
textcolor(colors[0])
write(word)
gotoxy(wherex()-len(word)+1,y)
for i,ch in enumerate(word):
if keypressed(): break
for cl in colors:
gotoxy(wherex()-1,y)
textcolor(cl)
write(ch)
time.sleep(delay)
flush()
gotoxy(wherex()-1,y)
textcolor(colors[0])
write(ch)
gotoxy(wherex()+1,y)
\----------------------------------------------------/

With almost the same function as above and adding a little shuffling, we can make an even better effect. First we shuffle/scrable the whole string print it and then writing each correct letter, one by one, with a flash fx.

I also added an if statement, so if the user pressed a key, the function, will stop, cause it takes some time to show large string and perhaps the user doesn't want to wait.

    /----------------------------------------------------\ 
def shuffleflash(s,y,colors=[8,7,15,14],delay=0.02):
from random import shuffle

def shuffle_word(word):
word = list(word)
shuffle(word)
return ''.join(word)

scr_width, scr_height = termsize()
write("|[0")
x = scr_width // 2 - len(s)//2
gotoxy(x,y)

textcolor(colors[0])
write(shuffle_word(s))
gotoxy(wherex()-len(s)+1,y)
for i,ch in enumerate(s):
if keypressed(): break
for cl in colors:
gotoxy(wherex()-1,y)
textcolor(cl)
write(ch)
time.sleep(delay)
flush()
gotoxy(wherex()-1,y)
textcolor(colors[0])
write(ch)
gotoxy(wherex()+1,y)
\----------------------------------------------------/

Anyway, the functions above, are just a starting point and you can make all sorts of effects. You can take ideas from old text mode demos or even BBSes.

File associations in X/ubuntu

For as the BBS sceners, that we use old forgotten filetypes it's a bit hard to associate them, via the filemanager app, specially on linux, where are many distributions of it.

I think i found a more "global" solution, which works in all Debian style linux OSes. There is a program called "mimeopen". At least in Ubuntu like distributions is installed by default.

To associate, for example ANSI files, you give the following command:

?> mimeopen -d file.ans

Where file.ans is a valid ANSI file in your disk. The program will ask you which app. to use to open it. Probably there will be no one valid, so select "Other..." and in the prompt, type the full path and filename of your ANSI file viewer. The file will open and if you re-open your file manager app. you will see that, the ANSI files are associated with the application and you can open them, with double-click.

You can also use WINE apps. For easier access to them, make a BASH file like:

dA sCRiPT ............................ ansiview.sh ... 

#!/bin/bash
TERM=xterm
wine "<Full_path_and_filename_to_program>" "$1"

.......................................................

And when the MIMEOPEN app. asks you to write the path of the program, you type the full path and filename of the BASH script instead.

Just do it...

There is a global phenomenon and you probably have witnessed it too. In any social group, school, work, friends, family etc. there are people that talk too much and at the end, they don't do much and others that prefer to talk less and do more.

It's something that nobody, specially the non-talkers, can do about it. But in most cases the non-talkers, don't want to do anything about it. It's in their character, perhaps, that they don't have the need for showing off, or making things more complicated than they are, so they prefer to keep a low profile and just do, what they do, regardless of what others have to say.

On the other hand, the "talkers", they don't stop only in just blurping about their incompetence of them, but they also prefer to minimize, specially, the other group of the non-talkers. For them it's something important to show that they are the TOP, above all, even if they don't contribute at all or just making minor stuff.

The BBS scene, couldn't be an exception. Even if we are a small group of the whole retro scene, we have among us the talkers and non-talkers. So this post is not about saying to the talkers to just shut-up, cause for sure they wont, but for those that don't want to say much, just keep doing what you are doing and don't give a damn, what others have to say.

Just think that, those who criticize you or just showing off, they do that, because they can't do anything else or better than you, cause if they could, then they would have shut their fucking mouth and did stuff!

We need a Python TELNET client!

I keep searching for a TELNET client, written in Python and supporting, ANSI graphics and ZMODEM downloads, but still nothing! A Python client, i believe it would be the "universal" way of using a BBS. You can run Python in anything and even a smartphone with TERMUX installed!

Also now days, almost everyone uses Python, knows a bit of programming in it, the code for anything you write, is open source, even if you don't like it and others can contribute more easily.

Python is preinstalled in all Linux machines and even Windows ones, at some point they need it for other stuff. So yes... we need a Python TELNET client!!!!

BASH script to connect on BBSes...

Would you like to have an always "fresh" list of BBSes and connect to them with just by typing a command to your terminal. With no need to update the list and always have the newest list, without doing anything and all this with just a BASH script.

The following script does exactly that. It retrieves a fresh list, from The telnetbbsguide.com site and displays the list with FZF, don't forget to have it installed on your system. It's a very useful utility and you can create all sorts of stuff.

Type a few characters of the name of the BBS you want to find or just scroll the list and press ENTER to connect to one... done! Of course you can change the telnet client to one you like, as for this example i used the system telnet command.

You could also use the DMENU command, from Suckless Tools and make almost the same thing in your Window Manager ;) Enjoy...

dA sCRiPT ................................................................ 

#!/bin/bash

if [[ ! -f "/tmp/bbslist.csv" ]]
then
wget https://www.telnetbbsguide.com/bbslist/bbslist.csv -O /tmp/bbslist.csv
fi

bbs="$(cat /tmp/bbslist.csv | fzf -e -i)"

if [[ ! -z "${bbs// }" ]]
then
address=$(echo $bbs | cut -d"," -f4)
port=$(echo $bbs | cut -d"," -f5)
if [[ -z "${port// }" ]]
then
port=23
fi
echo "Connecting to: $address:$port..."
telnet $address $port
fi

..........................................................................


FILES

%%%% Corrosion / Riot-11, 30166b %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
cmlvdC0xMQAAAAAAAAAAAAAAAAB5byEgOikAAAAAAAAAAAAAAAAAAAAABYAAQAAAAAFpbnRybyBt
b2QgYnkgPj4+Pj4+Pj4AAAAAAAAAAAE+Pj4+Pj4+Pj4gY29ycm9zaW9uIDwAAPgAQAAAAAFvZiBk
ZWdlbmVyYXRpb24gYW5kAAAAAAAAAAAAAAFkYXJrYWdlIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAF0

...

ZjIB5d/f3dvZ19bX2Nvd4OPh4NzY1tTW2eDo7fDu6eHZ1tbc6fcFDg4G+ejc2+b+HDlLTj8kAurm
/i5of39/f2Qj8d3b29nY19fX2Nnb3Nzc2djW1tfb3+Pk4+Dc2Njc4+zz9vPt5N/g6foLGBsSAfDq
9hI3VF5RLAP29vv/AA==



%%%% vol pitch death star blown motherfuck / Anders Dator, 72865b %%%%%%%%%%%%

RXh0ZW5kZWQgTW9kdWxlOiB2cGRzYiBtb3RoZXJmdWNrAAAAABpNYWRUcmFja2VyIDIuMAAAEdq0
AAQBFAEAAB8AAAAKAB8ACgABAAMAdAAAAQIDBAUGBwgJCgsMDQ4PEBESEwQVFhcYGRobHB0eAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

....

iftx/KMAiAfU+gH9AAAAAAAAwgExBJsDmARbA9sEMgP8BPcCMwXMAmcFmwKhBUwC4QXxAWUGWgF/
B0n+Bf/e9mIGUwM1BDEEoQOVBFwD9AT0Aj4FtgKZBUwC9gXXAawGuwAKCfP5Ffw2/uUEEQSoA7YE
IQMcBaQC0gWvAfAHYPv3+fAC6AdL+9H5DAMMCKT6kfue/noESwSEA7UEKQMVBdMClAXpAZgH1vsk
+TIEOwWQAsMFEwJIBg0BqQiQ+g==



%%%% 1channel moog / Manwe, 5624b %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SU1QTTEgY2hhbm5lbCAhISEAAAAAAAAAAAAAAAAABBADAAYABQACABcCFgJNAAcAgDAMsIAM1QAB
AQAAOAEAACCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg

...

1N0oE9h9qJFPXOXksTI6pfxBTgyOnjZiUQfeqrFhcU2/oncRUUgex7pRVYZ8rnxjSURPu3RSWURb
qvtkSUOszr8TgWQiAP0YBBx6ejLGYwaeGYyBw4GZ5objuA6IaCOGiIiCgjoIMhYuAP0QBITjuKE5
boAbuOEGuOEGboC7geOmaaBpugMAOqA7uqMD6KADOgDiALo7TgA=


ABOUT

null magazine

issue {x00C}

what ?

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...

download

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

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

disclaimer

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.

contact

if you want to repost bugs, send articles or art, just send an email at:

xqtr@gmx.com

or visit the BBS and leave a message.

contributions

def list(authors):

  • xqtr // another droid bbs


def list(contributors):

  • 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


def list(distributors):

  • avon // agency bbs
  • jack phlash // distortion bbs

credits

I don't want to give credits to specific people as it's not fair for people that i don't know off and also contributing to the BBS scene. So this time, i want to thank all of you that keep using BBSes, that you keep posting in the echonets, read stuff like this mag. and wait for the next release of an ANSI pack. To those that you make stuff for the BBSes and also those who support them, by just saying a "thank you"!

A big thank you, to all of you that are active in the BBS scene and even if you have your own problems and can't join a BBS every day, you still come back, from time to time to check things up.

Even if retro-computing has become famous the last years, most attention goes to home computers and gaming consoles. Even from that retro-scene, not many know and use BBSes, so each and every one out there, that uses one, deserves a big "Thank you". After all, NULL wouldn't be here, if it wasn't for them ;)

Keep safe and keep BBSing...

                       _____ _  _ ___   ___ _  _ ___ 
|_ _| || | __| | __| \| | \
| | | __ | _| | _|| .` | |) |
|_| |_||_|___| |___|_|\_|___/




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 D&W 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

← previous
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT