Setting up FabGL + how to use?

128 views
Skip to first unread message

Patrick Jackson

unread,
Mar 13, 2025, 7:27:58 PM3/13/25
to Altair-Duino
My FabGL 1.4 terminal just came in, and I heard that there is a way to hack some code to add another serial port to the altairduino or something?

Also, I would like to put images/bitmaps/use sprites on my altair and its code, are there guides on this? I'll poke over the fabgl stuff in the meantime.

So stoked to finish Logicsim for Geoff's terminal and then port it to keyboard/mouse support!

Patrick Jackson

unread,
Mar 13, 2025, 8:33:08 PM3/13/25
to Altair-Duino
I found some examples in the AnsiTerminal example, this is awesome!

But I also want to know if I can do web browsing/server stuff/bbs and/or bitmap picture loading/downloading from servers and such

John Galt

unread,
Mar 13, 2025, 11:02:23 PM3/13/25
to Altair-Duino
the extra serial port:

for an additional Serial port you use the RX and TX coming from the Arduino DUE main board.
it requires removing two SMD LEDS and soldering wires or pins.

there used to be pictures on where to make the modification on the adwater site however i can't seem to find it at the moment.

At any rate you modify the Arduino, so you will have  TX and RX wires coming off the board and then Ground and 3.3V i would recommend.
this then drives a RS232 to TTL Converter Module COM Serial Port Board.

once that is complete you will need to flash updated firmware into the DUE this was also part of the instructions but you modify the host_due.h file and set: #define USE_SERIAL_ON_RXLTXL 1

this allows you to go into the configuration menu and setup this new port and how you want to map it.

with the FABGL ESP 32 loaded with the Ansi Terminal and plugged into this new port externally you can now remap the primary terminal to the fabgl terminal.

why go through all this.... 
the stock setup gives you one 9pin serial port, there are USB ports but there is no USB server/master the DUE just has slave ports.
you can make a USB server but its really convoluted and its really flaky. i built one a few years ago.

the micro usb slave ports work great connected to an external modern computer as it can service the usb slaves with its built in USB server/master.
so you can use the micro ports to drive a Dazzler or usb connection to transfer files back and forth like a network connection.

the point is: if you want to use a different terminal then the GEOFF you have to sacrifice the one external 9pin 232 serial port you have.
if your using up the single serial port then you can't plug in other external devices like a modem, printer, speech, etc.

after the above mod you now have 2 9pin 232 serial ports. now you can map one to the new terminal you want to use and the other port is free and mappable under CP/M with IOBYTE modifications to connect to any other serial device you wish.
--------


the sprite, mouse etc,,, functions are accessed via the fabgl ansi terminal escape codes, as you have seen in the basic examples for the terminal.
just understand the basic examples used will not directly work with the era of basic typically used. the functions have to be defined first and you can not use a goto or gosub to trick it.
if you flip all the programs around then they will work. i modified them some years ago and have then around this giant mess of mine somewhere.

----

the Fabgl terminal gives you 64 colors with ansi text supports VT-100 100% and many other terminals are emulated, kaypro, heathkit, osborne, ansi etc.. programs that use these escape codes will now work allowing for color animation of text
and text effects that other machines that came after the altair had, there is no DMA of the terminal just remember its all serial one character at a time and the mouse function is the only one that returns information.
you will have to set aside virtual display memory in your machine and depending on resolution and how much ram you take up limit what you can do. you can also barrow from the C64 in how the display memory was used.
there is just not enough memory at 64KB to do everything you want on the machine you have to compromise.

the kaypro had a very nice one bit drawing program, Dr-draw
which is more then possible to implement with the fabgl or Geoff terminal(except for mouse control)

since all manner of escape codes are able to be used it means just about all the fancy ansi character graphics are able to be seen on the terminal. this give you access to telnet BBS, door games.
downloading will depend on your modem and not being on a telnet port for the BBS. Xmodem transfer as issues when in telnet mode.

web browsing is very possible with the VT-100 support you would have good use of unix browsers like LYNX, or ELINKS(many variations).
for graphics web browsers i came up with using ELINKS that allows an external program to run when opening set file extensions
i wrote a python script that opens any supported image file for HTML and converts it to FABGL ANSI terminal escape codes.
so you can browse simple HTML websites and view the pictures on your screen the remote system handles everything as there is not enough ram at 64kb to do everything natively.
basically you use the Altair as a smart terminal as you can remain connected via WIFI modem to a remote system and access your local or remote CP/M sessions as you can run MP/M NET 2 remotely and have multi-user cp/m to play with but kind of pointless.

just think of the FABGL Ansi terminal as a fancy graphics accelerator card allowing you to do more things on your altair.
as a bonus you also get Wordstar support using the cursor keys and can support a much better terminal with more escape code features.

its a really big mess to get started, and i had lots of frustration with initially setting it up and getting it working.

the html aspect is problematic. many WIFI modems start to freak out with lots of escape codes being sent to them.

the only half way stable Wifi modem i have tested and i tested A LOT of them was "theoldnet" wifi modem.

when using Elinks  and my python code  you will be able to see a few photos before the modem locks up and requires a reset. 

i wanted a serial to serial connection with my raspberry pi and avoid the wifi modem but i could not get it to work and honestly was just wasting my time from other projects.

you end up like this
DSCN5986.jpg
DSCN5994.jpg

pretty neat, just gives you something to explore but not really practical long term.

you start to understand that serial terminals are really cool but very limited. at 9600 baud an image that is limited in size thanks to the script takes about 5 minutes to display.
i wrote a bunch of options into the python script that can be controlled from inside Elinks.
if you preview a photo and then want to make it bigger then you can make it the max resolution but it can take up to 90 minutes to display the picture one pixel at a time.
where on a modern computer the same picture would display instantly.

where i put the HTML python script

its also possible to write a python script that will play WAV files from websites i started to write one but could not find all the documentation to complete it.
so i said forget it and again moved on.
 
for the firmware information

this older manual page 9,10 shows the TX/RX information where to solder the new connections(remove the 2 LEDS)

you can damage the DUE with this modification, you might want to buy some extras just in case.

John Galt

unread,
Mar 13, 2025, 11:13:31 PM3/13/25
to Altair-Duino
i'll also point out the DR-DRAW and DR-GRAPH will not work with the Fabgl Ansi terminal the programs were designed to work with a much later version of the KAYPRO that had a DMA video card similar to the VDM-1.

Patrick Jackson

unread,
Mar 16, 2025, 6:17:16 PM3/16/25
to Altair-Duino
Thanks so much for the info! Back in town, and I'll work through the TXL/RXL stuff. There already is such options in the firmware now for the altairduino, so that's nice.
Looking for PS/2 panel mounts or something, I want this to be integrated internally and not flopping around inside covered in masking tape!
Reply all
Reply to author
Forward
0 new messages