Hacker News new | ask | show | jobs
by Cyder 1466 days ago
I first programmed using basica on an IBM dual 5.25 diskette PC but have not been able to find it or an emulator. I did graphics programming with it using commands like line (0,0)-(100,200). I've never been able to find a version if basic that had that graphics capability. I loaded it from Dos typing 'basica'. Anyways, great language to learn on.
7 comments

> I've never been able to find a version if basic that had that graphics capability.

If you are looking for a retro BASIC, then BBC BASIC had line and filled triangle drawing built in (or it was in the system ROM and BASIC had hooks for it). There was an extension (IIRC separately purchased for the Model A & B, built into the BBC Master) that added rectangles, circles, and ellipses.

BBC Basic was the best of the 8-bit offerings for learning on as it supported named procedures and functions, and a few other structural features (some BASIC implementations at the time didn't even have ELSE with their IF statements). There were significant limitations, but it was massively ahead of the GOTO/GOSUB (which it also had of course) that were your only option in BASIC interpreters on other home micros. It also supported variable names of reasonable length (40 characters IIRC, you could actually use more but any after 40 were silently ignored and you didn't want really long variable names anyway as they would take too much program space to store) where some other BASICs limited you to just a couple of characters. It even had a built-in multi-stage assembler for when you wanted a bit more oomph than interpreted BASIC could offer.

[caveat: one or two of the above features may not have been present in the very original version, though I think they were all in BASIC II that appeared in 1982]

Thanks for the info! I think you're right, must have been basic ll. Every once in a while I follow the rabbit hole trying to find that original (or similar) basic I learned on.
Nice exercise developing an embeddable BASIC interpreter in Rust.

I've experimented with teaching 11-year old school children Python in a single session.

To obtain the immediacy effect that the original poster mentioed (which reportedly were liked by his kids), I use Turtle graphics module inspired by logo (import turtle - see also https://vegibit.com/how-to-move-the-python-turtle/ ).

Here's what you can do in a single two-hour session:

1. First I explained the children how points can be addressed using x and y coordinates (Cartesian coordinate system - which they hadn't had in maths classes at the time). "Each dot has two numbers that indicate where it lives, like house numbers."

2. Then I gave them the task of drawing a house only using straight lines (no curves permitted).

3. Next I asked them to convert the lines that made up their house into Python code based on forward(), right() etc. commands inspired by LOGO (which was, after all, inspired by education work with children ast MIT).

4. Let them try out their program on a computer.

5. Tell them that if they liked this exercise, they should ask for a Rasberry PI from their parents as a Christmas present as an affordable way to get into programming (early).

Why not actual Logo, as this is exactly what it was designed for?

https://el.media.mit.edu/logo-foundation/resources/software_...

If you want to try BASICA again, you can do it here:

https://www.pcjs.org/machines/pcx86/ibm/5170/cga/

When the machine loads up, switch the disk to PC DOS 3.30 (Disk 2), type BASICA and you're in.

> but have not been able to find it or an emulator

https://robhagemans.github.io/pcbasic/

BASICA (IBM PC-DOS) and GWBASIC (Microsoft MS-DOS) were functionally identical. MS-DOS was just the version of PC-DOS that Microsoft released for non-IBM hardware. Not sure why the basic command was renamed.
EndBASIC has graphics support. Not with that syntax, but hopefully similar enough. You can try things like this:

GFX_LINE 100, 100, 200, 200

GFX_RECTF 300, 300, 400, 500

Doesn't GWBasic have the same graphics syntax? That's pretty widely available.