You do call a routine stored in VGA ROM (interrupt 0x10) to set up the mode, then do some port I/O to configure VGA registers and then access VGA memory directly. No "system libraries" from DOS involved as such (they are needed for things like filesystem access, allocating memory and dealing with command-line arguments and returning to the system, though).
Borland's dev tools came with "BGI" (Borlands Graphics Interface), but that's not necessary and wasn't really used for many games -- it provides abstract high-level drawing routines, like lines, circles, etc... that can be made to work on different graphics devices (CGA, VGA, ...). This was not necessary for direct graphics card access that most games used.
You can use `gpo import FILENAME|URL` to import an OPML on the command line, or `gpo export FILENAME` to export and OPML on the command line. The "import" command doesn't delete any subscriptions, you can use `gpo list` to get a list of current subscriptions and `gpo unsubscribe URL` to remove a subscription.
The `gpo` command-line utility can do most of the tasks of the GUI that you want to automate.
okay, thanks for the tips! i was looking at the mobile-friendly Linux podcast apps last month and had mixed experiences. passed over gpodder because i saw a sqlite database and thought it'd be hard to configure externally. but i just installed it on my Pinephone and great first impressions! i'll take a look at integrating this into my nix config after i try it out a bit more, maybe make some wrapper that ingests some external OPML on start. i'll swing by IRC if i have anything worth sharing or get blocked :^)
yeah i just made a ~/.config/gpodderFeeds.opml file and pointed gpodder.desktop to a wrapper that invokes `gpo import ~/.config/gpodderFeeds.opml` before handing off to the real gpodder.
i think this causes the start time to be linear w.r.t. the number of feeds, but it’s working fine for the time being
gPodder started in 2005 when I needed a tool on Linux to download podcasts and sync it to my iPod mini, so even back then it was mostly about downloading on the Desktop, and my phone of the day didn't have much storage space for audio, let alone a 3.5mm headphone jack (I remember getting a "MP3 player phone" with 3.5mm headphone jack and dedicated media player buttons, the 5310 around 2006 or 2007 at which point the iPod as a dedicated device starting to become redundant).
At some point though, phones (and "mobile Internet devices") became powerful and programmable enough that it made sense to port gPodder to "Desktop Linux Userland"-based devices and phones (N800, N810, N900, N9, Jolla) and run it directly on the phone.
These days, my day-to-day podcast consumption happens with the built-in Podcasts app on the iPhone, but gPodder (on the Desktop) is still useful for downloading and archiving (hoarding) YouTube subscriptions (especially since there are so many ads on the web and TV versions of YouTube), mixes from Soundcloud and others and just interesting podcast episodes that might not be available in the future.
I even recently submitted a patch to re-introduce iPod support, so the current version can sync to iPod minis again if you want to have a distraction-free retro podcast listening experience on the go :)
gPodder does ship with a command-line interface "gpo" that can just do the subscribing and downloading part which might suit your needs (while still retaining the possibility to bring up the GUI if needed, the on-disk format is the same).
If you roll your own, https://github.com/gpodder/podcastparser is a neat little Python library that has been split out from (and is now used by) gPodder, as dealing with all kinds of RSS (and Atom) specialities is kind of something you want to outsource if possible.
I'll check out `gpo`, thank you. To be honest the other reason for this was an exercise in Haskell a while ago, and an exercise in Python long, long ago before that. I'm beyond that interest these days so something that doesn't break constantly sounds like a good plan.
Yes, on the N900 (and the N800/N810) before that, gPodder was sharing most of the UI code even with the Gtk Desktop version (with some special-casing for the touch-friendly Hildon UI), and initially the "system" music player was used to play back podcasts. Panucci added support for resuming playback and a UI tailored towards audiobooks and podcasts.
Panucci is still around and should be usable on the Desktop, but the last commit was several years ago: https://github.com/gpodder/panucci
Starting with the N9 and later Sailfish OS, the UI of the mobile app was re-done in Qt/QML (so don't name your project after the toolkit of the day...). There, audio playback was integrated into the main application, so there was no need for a separate app like Panucci (this also made it easier to sync fine-grained playback positions between devices using gpodder.net, although this also works with MPRIS2 and e.g. VLC on the Desktop these days).
Borland's dev tools came with "BGI" (Borlands Graphics Interface), but that's not necessary and wasn't really used for many games -- it provides abstract high-level drawing routines, like lines, circles, etc... that can be made to work on different graphics devices (CGA, VGA, ...). This was not necessary for direct graphics card access that most games used.