PCBASIC(1)

๐Ÿ“ฆ
version 2.0.7 ยท 3 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

๐Ÿ’– PCBASIC โ€” the manual, but make it make sense (part 1) ๐Ÿ’–

okay bestie, gather round โ€” this is the manual page for pcbasic, from the General Commands Manual section. Yes, section 1, the "user commands" section, the one where all the fun stuff lives. Let's get into it. ๐Ÿซถ


โœจ NAME โœจ

pcbasic โ€” a free, cross-platform emulator for the GW-BASIC family of interpreters. That's the whole vibe. One name, one job, endless nostalgia. ๐Ÿ’…


๐ŸŒธ DESCRIPTION ๐ŸŒธ

So. PC-BASIC is a free, cross-platform interpreter for GW-BASIC, Advanced BASIC (that's BASICA), PCjr Cartridge Basic, and Tandy 1000 GWBASIC. It interprets all of these BASIC dialects with a high degree of accuracy, and honestly the goal is bug-for-bug compatibility โ€” like, it is not trying to fix the quirks, it is trying to BE the quirks. Iconic behaviour, no notes. ๐Ÿ‘‘

On top of that, PC-BASIC emulates the most common video and audio hardware that these BASICs used to run on, so it's giving full era-accurate main character energy. ๐Ÿ“บ๐Ÿ”Š

It runs plain-text, tokenised and protected .BAS files โ€” all three, no discrimination.

And here's the flex: it implements floating-point arithmetic in the Microsoft Binary Format (MBF), which means it can read and write binary data files that were created by GW-BASIC. fr fr. Same bytes, same energy. ๐Ÿงš


โญ SYNOPSIS โญ

pcbasic [program|package [output]] [OPTION] ...

๐ŸŽ€ POSITIONAL ARGUMENTS ๐ŸŽ€

Real talk, the rules here are strict and they do not care about your feelings:

Positional arguments must come before any options. They must not start with a dash -. And any positional arguments that come after options? Ignored. Just straight up ignored. ๐Ÿ’€
  • program โ€” if a .BAS program is the first positional argument, it gets run. Simple. But heads up: the --run, --load and --convert options override this behaviour, so they're the ones calling the shots. ๐Ÿ™ˆ
  • package โ€” if a zipfile package or a directory is the first positional argument, then any PCBASIC.INI configuration file contained inside it gets loaded, and usually it'll run a program file inside that package. Every other command-line option overrides the package configuration file โ€” and note in particular the potential of the --run, --load and --convert options to alter the behaviour of the package. So the package is a starting point, not the boss. ๐Ÿ’…
  • output โ€” if there's a second positional argument, it sets the output file for file format conversion. This one is ignored unless the --convert option is given. Ignored! Sitting there! Doing nothing! We've all been there bestie. ๐Ÿซ 

๐Ÿ”ฅ OPTIONS ๐Ÿ”ฅ

Okay this is the long part, hydrate first. ๐Ÿ“

  • --allow-code-poke[=True|=False] โ€” allow programs to POKE into code memory. Yes, that's exactly as spicy as it sounds.
  • --aspect=x,y โ€” set the display aspect ratio to x:y. Only has an effect if combined with --interface=graphical.
  • -b โ€” use the command-line interface. This is identical to --interface=cli.
  • --border=width โ€” set the width of the screen border as a percentage from 0โ€”100. That percentage refers to the total width of the borders on both sides as a fraction of the usable screen width. Only has an effect if combined with --interface=graphical.
  • -c=statement[:statement ...] โ€” execute commands as a shell. This is a convenience shorthand and it's identical to --interface=none --quit=True --exec=statement[:statement ...]. One tiny flag, three flags' worth of chaos. slay. โœจ
  • --caption=title โ€” set the title bar caption of the PC-BASIC window. Default title is PC-BASIC.
  • --cas1=type:value โ€” attach a resource to the CAS1: cassette device. type:value can be:
    • WAV:wav_file โ€” connect to the RIFF Wave file wav_file with data modulated in IBM PC cassette format.
    • CAS:cas_file โ€” connect to the PCE/PC-BASIC CAS tape image cas_file.
  • --codepage=codepage_id[:nobox] โ€” load the specified codepage. The codepage determines which characters are associated to a given character byte or, in the case of double-byte codepages, two character bytes. The available codepages live in the codepage/ directory; by default these are:

437 720 737 775 806 850 851 852 853 855 856 857 858 860 861 862 863 864 865 866 868 869 874 932 934 936 938 949 950 1258 alternativnyj armscii8a big5-2003 big5-hkscs georgian-academy georgian-ps iransystem iscii-as iscii-be iscii-de iscii-gu iscii-ka iscii-ma iscii-or iscii-pa iscii-ta iscii-te kamenicky koi8-r koi8-ru koi8-u mazovia mik osnovnoj pascii ruscii russup3 russup4ac russup4na viscii

See the list of codepages in the User's Guide for details. The specifier nobox disables box-drawing recognition for double-byte character set code pages. By default, sequences of box-drawing characters are recognised by an algorithm that isn't as smart as it thinks it is, and displayed as box drawing rather than as DBCS characters. If nobox is set, they will be displayed as DBCS.

  • --config=config_file โ€” read a configuration file. The system default configuration is always read first, but any preset group of options in a configuration file replaces the whole equivalent default preset group. Whole group, not just one option. Respect the group. ๐Ÿซถ
  • --com1=type:value โ€” attach a resource to the COM1: serial device. type:value can be one of the following:
    • PORT:device_name โ€” connect to a serial device. device_name can be a device name such as COM1 or /dev/ttyS0, or a number, where the first serial port is number 0.
    • SOCKET:host:socket โ€” connect to a TCP socket on a remote or local host.
    • RFC2217:host:socket โ€” connect using the RFC2217 protocol to a TCP socket on a remote or local host.
    • STDIO:[CRLF] โ€” connect to standard I/O of the calling shell. If CRLF is specified, PC-BASIC replaces CR characters with LF on its output and LF with CR on its input. This is more intuitive on Unix shells. When using a Unix console, you should use stty -icanon to enable PC-BASIC to read input correctly.

If this option is not specified, the COM1: device is unavailable.

  • --com2=type:value โ€” attach a resource to the COM2: serial device. See --com1. Same deal, second port. ๐Ÿ’ซ
  • --convert={A|B|P} โ€” convert program to one of the following formats:
    • A โ€” Plain text
    • B โ€” Tokenised
    • P โ€” Protected

If output is not specified, write to standard output. If program is not specified, use the argument of --run or --load. If none of those are given, read from standard input. Overrides --resume, --run and --load.

  • --mouse-clipboard[=True|=False] โ€” enable clipboard operations with the mouse. If True (default), select text with the left mouse button to copy and paste with the middle mouse button. Copy-paste, the classic combo. ๐Ÿ–ฑ๏ธ
  • --ctrl-c-break[=True|=False] โ€” if False, follow GW-BASIC behaviour where Ctrl+C breaks AUTO and INPUT but not program execution or LIST. If True, treat Ctrl+C exactly like Ctrl+Break and Ctrl+Scroll Lock when --interface=graphical. With --interface={text|cli}, Ctrl+C is always treated like Ctrl+Break. Default is True.
  • --current-device={CAS1|@|A|B ... |Z} โ€” set the current device to the indicated PC-BASIC drive letter, or CAS1 for the cassette device. The device you choose should be mounted to an actual location using --mount (or --cas1 if you picked the cassette device). Don't leave it floating, mount your drives bestie. ๐Ÿ’พ
  • --debug[=True|=False] โ€” developer option โ€” use only if you know what you're doing. Enable debugging extension.
  • --dimensions=x,y โ€” set window dimensions to x by y pixels. This overrides --scaling=native and --aspect. Only has an effect if combined with --interface=graphical.
  • -d, --double[=True|=False] โ€” enable double-precision transcendental math functions. This is equivalent to the /d option in GW-BASIC. More precision, more power. ๐Ÿ”ฅ
  • -e=statement[:statement ...], --exec=statement[:statement ...] โ€” execute BASIC statements. The statements are executed after loading any program but before entering into direct mode or running it. Multiple statements can be entered by separating them with colons :. These will be executed as if they were entered as separate statements, not as a single compound statement: even if statements such as GOTO or LIST are included, the following statements will still be executed. The character : will be interpreted as part of a string if quoted with single quotes ". If your calling shell interprets such quotes, you should properly escape them. (Shell quoting is the villain of every story, ngl.)
  • --extension=module_name[,module_name ... ] โ€” developer option โ€” use only if you know what you're doing. Load extension module(s).
  • --font=font_name[,font_name ... ] โ€” use the specified fonts for the interface. The last fonts specified take precedence, previous ones are fallback. The available fonts are stored in font/. By default, the following fonts are available:

default cga mda vga olivetti tandy1 tandy2

The font names freedos, univga, and unifont are treated as synonyms of default unless a font with one of these names is available. This behaviour is deprecated and these synonyms will be removed in a future version. See the list of fonts in the User's Guide for details.

  • --fullscreen[=True|=False] โ€” fullscreen mode. Only has an effect if combined with --interface=graphical. Big screen, big vibes. ๐Ÿ–ฅ๏ธ
  • -h, --help โ€” show a usage message and exit.
  • --hide-listing=line_number โ€” disable listing and saving to plain text of lines beyond line_number, as in GW-BASIC beyond 65530.
Use with care as this allows execution of hidden lines of code. ๐Ÿšจ

Default is to list all lines.

  • --hide-protected[=True|=False] โ€” disable listing and saving to plain text of protected files, as in GW-BASIC.
Use with care as this allows execution of hidden lines of code. ๐Ÿšจ
  • -i={input_file|{STDIO|STDIN}[:RAW]}, --input={input_file|{STDIO|STDIN}[:RAW]} โ€” retrieve keyboard input from input_file, except if KYBD: is read explicitly. Input from KYBD: files is always read from the keyboard, following GW-BASIC behaviour. If input_file is STDIO: or STDIN:, keyboard input will be read from standard input. If RAW is specified, input will be treated as codepage bytes. If not, it will be treated as the locale's encoding (probably UTF-8).
  • --interface=[none|cli|text|graphical] โ€” choose the type of interface. Not all interfaces will be available on all systems. The following interface types may be available:
    • none โ€” filter for use with pipes. Also -n.
    • cli โ€” command-line interface. Also -b.
    • text โ€” ANSI text interface. Also -t.
    • graphical โ€” SDL2 graphical interface.

The following values for this option are deprecated:

  • ansi โ€” ANSI text interface. Synonym for text.
  • sdl2 โ€” SDL2 graphical interface. Synonym for graphical.
  • pygame โ€” PyGame graphical interface. Please use graphical instead.
  • curses โ€” NCurses text interface. Please use text instead.

The default is graphical. ๐Ÿ‘‘


okay that's a lot of options and we're not even done โ€” part 2 is coming, stay with me bestie ๐Ÿ’œ

  • -k=keystring, --keys=keystring โ€” Insert the keystring into the keyboard buffer ๐Ÿ’…. keystring may contain escape codes such as \r for return, \n for line feed and \xXX to enter CHR$(&HXX). It may also contain e-ASCII codes to indicate keypresses that do not have a regular character encoding. For example, \0\x0F indicates Shift+Tab โœจ.
  • -l=program, --load=program โ€” Start in direct mode with the BASIC program loaded ๐Ÿซถ.
  • --logfile=log_file โ€” Write error and warning messages to log_file instead of stderr ๐Ÿ“.
  • --lpt1=type:value โ€” Decide where the output goes when writing to the LPT1: parallel device. type:value can be:
    • PRINTER:[printer_name][:trigger] โ€” Output is written to a printer. If printer_name is not specified, the default printer is used. Windows and CUPS printers are supported. The printer will be activated when a file on LPT1:trigger sets an additional trigger to activate the printer:
      • line โ€” After every line break.
      • page โ€” After every page break.
      • close โ€” No additional trigger.
      • The default is close.
    • FILE:file_name โ€” Output is written to a file or character device such as /dev/stdout on Unix or LPT1 on Windows.
    • STDIO: โ€” Output is written to the standard output of the calling shell.
    • PARPORT:port_number โ€” Output is written to a Centronics parallel port, where port_number is 0 for the first parallel port, etc. This option only works with physical parallel ports. To write to a Windows printer or other device mapped with NET USE LPT1:, use FILE:LPT1 instead.
    • The default is PRINTER:, so that output goes to the default printer specified by the operating system.
  • --lpt2=type:value โ€” Attach a resource to the LPT2: parallel device. See --lpt1. Note that, unlike LPT1:, printers connected to LPT2: do not get activated when a program terminates. If this option is not specified, LPT2: is unavailable ๐Ÿ’€.
  • --lpt3=type:value โ€” Attach a resource to the LPT3: parallel device. See --lpt1. Note that, unlike LPT1:, printers connected to LPT3: do not get activated when a program terminates. If this option is not specified, LPT3: is unavailable ๐Ÿ’€.
  • -f=number_of_files, --max-files=number_of_files โ€” Set maximum number of open files to number_of_files. This is equivalent to the /f option in GW-BASIC. Default is 3 ๐Ÿ“.
  • --max-memory=max_memory[,basic_memory_blocks] โ€” Set the maximum size of the data memory segment to max_memory and the maximum size of the data memory available to BASIC to basic_memory_blocks*16. In PC-BASIC, the minimum of these values is simply the data memory size; the two values are allowed for compatibility with the /m option in GW-BASIC ๐Ÿง .
  • -s=record_length, --max-reclen=record_length โ€” Set maximum record length for RANDOM files to record_length. Default is 128, maximum is 32767. This is equivalent to the /s option in GW-BASIC ๐Ÿ“.
  • --monitor={rgb|composite|green|amber|grey|mono} โ€” Sets the monitor type to emulate. Available types are:
    • rgb โ€” RGB colour monitor (default).
    • composite โ€” Composite colour monitor.
    • green โ€” Green-tinted monochrome monitor.
    • amber โ€” Amber-tinted monochrome monitor.
    • grey โ€” Greyscale monochrome monitor.
    • mono โ€” Green-tinted monochrome monitor (same as green).
    • On SCREEN 2 with --video={pcjr|tandy|cga}, --monitor=composite enables (crude) colour artifacts ๐ŸŒˆ.
  • --mount=[drive:path[,drive:path ... ]] โ€” Assign the path path to drive letter drive:. The path can be absolute or relative. If this option is not specified: on Windows, all Windows drive letters will be assigned to PC-BASIC drive letters; on other systems, the current working directory is assigned to Z:. If this option is specified but empty, do not mount any drives (except the internal device @:) ๐Ÿ—‚๏ธ.
  • -n โ€” Run PC-BASIC as a command-line filter. Same as --interface=none ๐Ÿงƒ.
  • -o=output_file[:append], --output=output_file[:append] โ€” Send screen output to output_file, except if SCRN: is written to explicitly. Output to SCRN: files will always be shown on the screen, as in GW-BASIC. If the specifier append is given, the output file is appended to rather than overwritten. If output_file is STDIO: or STDOUT:, screen output will be sent to standard output ๐Ÿ“บ.
  • --peek=[seg:addr:val[,seg:addr:val ... ]] โ€” Define PEEK preset values. If defined, DEF SEG seg:? PEEK(addr) will return val ๐Ÿ‘€.
  • --preset=option_block โ€” Load machine preset options. A preset option corresponds to a section defined in a config file by a name between square brackets, like [this] โ€” --preset=this will load all settings defined in that section. Available presets depend on your configuration file. See the list of default presets in the User's Guide ๐Ÿ“š.
  • --prevent-close[=True|=False] โ€” Suppress window close event. This allows BASIC to capture key combinations that normally close the window. Graphical interface only. By default, the operating system's key combination to close a window (usually Alt+F4) terminates PC-BASIC. Set --prevent-close to allow BASIC to capture this key combination instead. This is useful if your program uses this key combination ๐Ÿšซ๐ŸชŸ.
  • -q, --quit[=True|=False] โ€” Quit interpreter when execution stops. If combined with --run, PC-BASIC quits when the program ends. If set in direct mode, PC-BASIC quits after the first command is executed ๐Ÿ‘‹.
  • --reserved-memory=number_of_bytes โ€” Reserve number_of_bytes of memory at the bottom of the data segment. For compatibility with GW-BASIC. Default is 3429 bytes. Lowering this value makes more string and variable space available for use by programs ๐Ÿงฎ.
  • --resume[=True|=False] โ€” Resume from saved state. Overrides --run and --load โฏ๏ธ.
  • -r=program, --run=program โ€” Run the specified program. Overrides --load ๐Ÿƒโ€โ™€๏ธ.
  • --scaling={smooth|crisp|native} โ€” Choose scaling method.
    • smooth โ€” The display is smoothly scaled to the largest size that allows for the correct aspect ratio.
    • crisp โ€” The display is scaled to the same size as with smooth, but without smoothing.
    • native โ€” Scaling and aspect ratio are optimised for the display's native pixel size, without smoothing. --scaling=native overrides --aspect.
    • Default is smooth. Only has an effect if combined with --interface=graphical ๐Ÿ–ผ๏ธ.
  • --serial-buffer-size=size โ€” Set serial input buffer size. Default is 256. If set to 0, serial communications are disabled ๐Ÿ”Œ.
  • --shell=[shell-executable] โ€” Enable the SHELL statement to run the operating system command interpreter shell-executable. The executable shell-executable should support MS-DOS's COMMAND.COM calling conventions, in particular its /C switch. Example command interpreters are CMD.EXE on Windows and "wine cmd.exe" on Unix. If shell-executable is empty (as it is by default), the SHELL statement is disabled ๐Ÿš.
  • --soft-linefeed[=True|=False] โ€” Do not treat LF in text and program files as a line break. This enables the highest level of compatibility with GW-BASIC files. If this option is set, any Linux or Mac text files need to be converted to DOS text before using them with PC-BASIC ๐Ÿ“„.
  • --sound[=True|=False] โ€”
    • False โ€” Suppress sound output.
    • True โ€” Output sound, if a sound driver is available (default).
    • If sound is on, PC-BASIC will try to use the SDL2 library first; if it is not available, it will try PortAudio. If neither is available, sound will be disabled. The following values for this option are deprecated:
      • none โ€” Suppress sound output. Use False instead.
      • interface โ€” Use the native sound engine of the interface. Use True instead.
      • sdl2 โ€” Use the SDL2 sound generator.
      • portaudio โ€” Use the PortAudio sound generator.
      • beep โ€” Use the built-in speaker. ๐Ÿ”Š
  • --state=state_file โ€” Set the save-state file to state_file. Default is pcbasic.session in the Application Data directory ๐Ÿ’พ.
  • --syntax={advanced|pcjr|tandy} โ€” Choose BASIC dialect. Available dialects are:
    • advanced โ€” IBM BASICA
    • gwbasic โ€” Microsoft GW-BASIC
    • pcjr โ€” IBM PCjr Cartridge BASIC
    • tandy โ€” Tandy 1000 GW-BASIC.
    • Default is advanced ๐Ÿงฌ.
  • -t โ€” Use text-based interface. Same as --interface=text ๐Ÿ“Ÿ.
  • --term=terminal_program โ€” Set the terminal program run by the PCjr TERM command to terminal_program. This only has an effect with --syntax={pcjr|tandy} ๐Ÿ–ฅ๏ธ.
  • --text-width={40|80} โ€” Set the number of columns in text mode at startup. Default is 80 ๐Ÿ“.
  • --text-encoding=[encoding] โ€” Set the text encoding. Text files (i.e. plain-text programs and files opened for INPUT and OUTPUT) stored on a disk device will be assumed to be encoded in encoding. Examples of valid encodings are utf-8, utf-16, latin-1. Please ensure that all characters in the current codepage are included in the encoding you choose; if this is not the case then such characters will be replaced by ๏ฟฝ or ?. If encoding is not set, text files will be treated as raw bytes in the current PC-BASIC codepage ๐Ÿ”ค.
  • --utf8[=True|=False] โ€” Set the text encoding to UTF-8. This option is deprecated and ignored if --text-encoding is set. Use --text-encoding=utf-8 instead ๐Ÿšซ.
  • -v, --version โ€” Print PC-BASIC version string and exit ๐Ÿท๏ธ.
  • --video=adapter โ€” Set the video adapter to emulate. Available adapters:
    • vga โ€” Video Graphics Array
    • ega โ€” Enhanced Graphics Adapter
    • cga โ€” Color/Graphics Adapter
    • mda โ€” Monochrome Display Adapter
    • hercules โ€” Hercules Graphics Adapter
    • pcjr โ€” IBM PCjr graphics
    • tandy โ€” Tandy 1000 graphics
    • olivetti โ€” Olivetti M24 graphics
    • Default is vga ๐ŸŽฎ.
  • --video-memory=size โ€” how much emulated video memory you get to play with. This is the thing that decides how many video pages you can use. On PCjr and Tandy you can literally change it mid-session with the CLEAR statement, and heads up: you need at least 32768 available before SCREEN 5 and SCREEN 6 will let you in the door. Default is 16384 on PCjr and Tandy, and 262144 on the other machine presets.
  • -w, --wait[=True|=False] โ€” if True, PC-BASIC sits there and waits for a keystroke before it closes the window on exit. Only works when --interface=graphical or --interface=text, so don't expect it to do anything otherwise. Default is False.
  • --options=gwbasic_options โ€” sets GW-BASIC-style command-line switches. This is purely a convenience thing to make migrating from GW-BASIC less of a whole ordeal. gwbasic_options is a string that can contain these bad boys:
    • /d โ€” turns on double-precision floating-point math functions. See also --double.
    • /f:n โ€” sets the maximum number of open files. See also --max-files.
    • /s:n โ€” sets the maximum record length for RANDOM files. See also --max-reclen.
    • /c:n โ€” sets the size of the receive buffer for COM devices. See also --serial-buffer-size.
    • /i โ€” statically allocate file control blocks and data buffer. Note that this is already the default approach in GW-BASIC and in PC-BASIC, so honestly this option has no effect. It's just here for the vibes (and compatibility).
    • /m:n,m โ€” sets the highest memory location to n and maximum BASIC memory size to m*16 bytes. See also --max-memory.
    • >filename โ€” write screen output to filename. See also --output.
    • >>filename โ€” append screen output to filename. See also --output.
    • <filename โ€” read keyboard input from filename. See also --input.

GW-BASIC-style switches are not case sensitive, so go off. But real talk: the symbols used in these switches might mean something completely different in whatever shell you're calling PC-BASIC from, so you should quote and escape the options as necessary. The shell does not care about your feelings. ๐Ÿ’€


โœจ EXAMPLES โœจ

  • pcbasic โ€” start PC-BASIC in direct mode, emulating GW-BASIC/BASICA with VGA graphics. The classic. The default. The moment.
  • pcbasic --codepage=950 โ€” start PC-BASIC using the Big-5 codepage.
  • pcbasic Foobar.baz โ€” start PC-BASIC with package Foobar. It loads the settings from the package, and usually that means it'll run a main program contained in the package.
  • pcbasic Foobar.baz --convert=A --text-encoding=utf-8 โ€” list the main program of package Foobar to standard output as UTF-8.
  • pcbasic MYPROG.BAS --mount=A:./files,B:./morefiles โ€” mount the current directory's subdirectory files as drive A: and subdirectory morefiles as drive B:, then run MYPROG.BAS.
  • pcbasic --mount=A:C:\fakeflop โ€” run PC-BASIC with the Windows directory C:\fakeflop mounted as the A: drive. Fake floppy, real vibes. ๐ŸŽ€
  • pcbasic Z:\INFO.BAS --preset=mda --monitor=amber โ€” run INFO.BAS in the current directory on an emulated MDA with an amber tinted monitor. Aesthetic.
  • pcbasic /home/me/retro/COMP.BAS --preset=cga --monitor=composite โ€” run COMP.BAS stored at /home/me/retro on an emulated CGA machine with a composite monitor.
  • pcbasic PCJRGAME.BAS --preset=pcjr -k='start\r' โ€” run PCJRGAME.BAS on an emulated PCjr and feed in the keystrokes startEnter.
  • pcbasic BANNER.BAS --lpt2=PRINTER: โ€” run BANNER.BAS in default mode with the default printer attached to LPT2:.
  • pcbasic --resume โ€” resume the most recently closed PC-BASIC session. Your save file said "come back bestie" and you listened. ๐Ÿซถ
  • pcbasic -c ?1+1 โ€” execute the BASIC command PRINT 1+1 in the command-line interface and return to the calling shell.

๐Ÿ“ FILES ๐Ÿ“

  • $XDG_CONFIG_HOME/PCBASIC.INI or ~/.config/pcbasic-2.0/PCBASIC.INI โ€” the user configuration file. Options in here look like command-line options but without the leading --. One option per line, okay? Options you put under the [pcbasic] header get loaded by default. Options under any other header get loaded if the --preset option group of that name is loaded. It's giving very organized. ๐Ÿ’…
  • $XDG_DATA_HOME/pcbasic.session or ~/.local/share/pcbasic-2.0/pcbasic.session โ€” the saved state of the last PC-BASIC session. Pick up where you left off with --resume. Heads up though: this file is saved in a binary storage format and is not meant to be edited or exchanged. Do not open it in a text editor and start typing, I'm begging. ๐Ÿ™ˆ

๐ŸŒ ENVIRONMENT ๐ŸŒ

There are no environment settings specific to PC-BASIC. None. Zero. Nada. However โ€” and this is the fun part โ€” BASIC programs can still reach the environment through the ENVIRON$ function, so they could totally have their own environment settings going on. So it's not that the environment doesn't matter, it's just that it's not PC-BASIC's thing. Periodt.


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

PC-BASIC is written and maintained by Rob Hagemans <rob.hagemans@hotmail.com>.

Show some love, they literally built an entire GW-BASIC emulator. Iconic behaviour. ๐ŸŒˆ๐Ÿ’–


okay that's the whole page bestie, go forth and emulate ๐Ÿ’…โœจ This was PCBASIC(1) โ€” yes, section 1 of the manual, the one and only โ€” and that little footer down at the bottom was just the man page signing its own name like the main character it is. ๐ŸŽ€๐Ÿฆ‹๐ŸŒธ

๐Ÿ“ฆ where this page comes from