Installing Classic Mac implementation of BBC BASIC

Anything not about Mac emulation.

Moderators: Cat_7, Ronald P. Regensburg

Post Reply
toast_marketing
Space Cadet
Posts: 5
Joined: Sun May 03, 2020 1:03 pm

Installing Classic Mac implementation of BBC BASIC

Post by toast_marketing »

I'm trying to do some metaphorical archaeology around the BBC BASIC language, and the implementation for the Classic Mac seems to have some differences I'd like to understand.

There is a download for BBC BASIC for Mac here: http://www.mdfsnet.f9.co.uk/Software/BBCBasic/Mac/

The installation is supposed to be in the Mac.zip file. Unfortunately I cannot get Stuffit Expander 5.5 to extract the Zip file. It gives the error message "Unknown zip header format encountered. This operation cannot continue."

Anybody able to give me any hints around getting that software installed?

Failing that, does anybody have a working installation of BBC BASIC on the Mac? I'm primarily interested in getting a listing of the example program "Maze" that comes with it.
User avatar
Ronald P. Regensburg
Expert User
Posts: 6584
Joined: Thu Feb 09, 2006 10:24 pm
Location: Amsterdam, Netherlands

Re: Installing Classic Mac implementation of BBC BASIC

Post by Ronald P. Regensburg »

Maybe try MacZip for unzipping?
On the Macintosh Garden site look for MacZip.


Edit: If the zip archive was created in OSX, you could try MiniUnZp or miniunz, both in this forum topic:
https://www.emaculation.com/forum/viewt ... f=1&t=8322
Last edited by Ronald P. Regensburg on Sun May 03, 2020 1:50 pm, edited 2 times in total.
Reason:  
toast_marketing
Space Cadet
Posts: 5
Joined: Sun May 03, 2020 1:03 pm

Re: Installing Classic Mac implementation of BBC BASIC

Post by toast_marketing »

Thanks for the tip. Well, it recognised the archive, but MacZip crashed while attempting to unpack it:

Basilisk II V1.0 by Christian Bauer et al.
Reading ROM file...
WARNING: Cannot open /dev/cdrom (No such file or directory)
Using /dev/dsp audio output
WARNING: InsTime(): Task re-inserted
WARNING: InsTime(): Task re-inserted
Caught SIGSEGV at address 0x10fffffff [IP=0x7811d83f]
D0: 03929c54 D1: 00000009 D2: 00000003 D3: 00000003
D4: 03920001 D5: 03929c54 D6: 00000001 D7: 00000000
A0: ffffffff A1: 000ba826 A2: 02df1d2c A3: 0392e054
A4: 03929bdc A5: 0392a4d0 A6: 03929cd0 A7: 03929bd8
USP=00000000 ISP=03929bd8 MSP=00000000 VBR=00000000
T=00 S=1 M=0 X=0 N=1 Z=0 V=0 C=0 IMASK=0
FP0: nan FP1: nan FP2: nan FP3: nan
FP4: nan FP5: nan FP6: nan FP7: nan
N=0 Z=0 I=0 NAN=0
0400b724: 1950 0031 1968 0001 0032 MOVE.B (A0),(A4,$0031) == $03929c0d
next PC: 0400b728
[0000000000000000]-> c
*** Required argument missing
[0000000000000000]-> continue
*** Unknown command
[0000000000000000]-> ?
*** Required argument missing
[0000000000000000]-> ?anythign
*** Required argument missing
[0000000000000000]-> x

... I had to quit the emulator as I didn't know how to actually use the debugger, sorry. %a0 doesn't look like the kind of address you can safely dereference, not that I actually know anything about the Mac memory map.
User avatar
Ronald P. Regensburg
Expert User
Posts: 6584
Joined: Thu Feb 09, 2006 10:24 pm
Location: Amsterdam, Netherlands

Re: Installing Classic Mac implementation of BBC BASIC

Post by Ronald P. Regensburg »

So you are running BasiliskII. You did not mention your host system.
On OSX/macOS the archive can be expanded without issues, so it may be an archive that was created in OSX/macOS. If that is true, then the above mentioned MiniUnZip or miniunz should work in classic MacOS.

Regardless your host OS, enable 'Ignore Illegal Memory Accesses' in GUI, or in prefs file set ignoresegv to true:

Code: Select all

ignoresegv true
That may lower the number of inevitable SIGSEGV crashes with these emulators. (They do things in memory that they shouldn't.)
toast_marketing
Space Cadet
Posts: 5
Joined: Sun May 03, 2020 1:03 pm

Re: Installing Classic Mac implementation of BBC BASIC

Post by toast_marketing »

Thanks for your help.

I have been able to unpack the archive on MacOS (with both unzip and with ditto). But the unpacked files don't look right; there is a "BBC BASIC" file but it is short - at 256 bytes, too short to be the interpreter. Perhaps the archive at http://www.mdfsnet.f9.co.uk/Software/BBCBasic/Mac/ just isn't a workikng version.
User avatar
24bit
Forum All-Star
Posts: 1422
Joined: Wed Nov 11, 2009 5:47 pm
Location: Germany

Re: Installing Classic Mac implementation of BBC BASIC

Post by 24bit »

Would it be OK to create a page at Macintoshgarden for BBC Basic?
The app runs with SheepShaver, Basilisk II and MiniVMac II.
Looks best with MiniVMac II and System 7.1 methinks.
User avatar
Cat_7
Expert User
Posts: 5257
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: Installing Classic Mac implementation of BBC BASIC

Post by Cat_7 »

I unpacked the file with the standard archive utility in Sierra, then copied the folder to a disk image for Qemu and that works just fine.
So also runs in Qemu with Mac OS 9.2

Best,
Cat_7
toast_marketing
Space Cadet
Posts: 5
Joined: Sun May 03, 2020 1:03 pm

Re: Installing Classic Mac implementation of BBC BASIC

Post by toast_marketing »

24bit wrote:Would it be OK to create a page at Macintoshgarden for BBC Basic?
The app runs with SheepShaver, Basilisk II and MiniVMac II.
Looks best with MiniVMac II and System 7.1 methinks.
Sure, go ahead if you like.

I wasn't able to unpack the zip file and (even using minunz-101ed6.sit) get any output files that seemed executable. Opening the "BBC BASIC" file jst yields an error message box saying, "The document "BBC BASIC" could not be opened, because the application program that created it could not be found"

I'm a bit exasperated and dispirited, tbh. I guess my grasp of Mac OS Classic isn't up to this.

If anybody has it actually working though, they may be able to save me the pain of figuring this out. I would like to know the full text of line 490 of one of the example programs which comes inside the installation, called "Maze" The line says something like

490 I-don't-know-what-here X%,Y%,Z%

I need to know what the whole line is. If you've started BBC basic, you can probably do this with

LISTO 0
LIST 490

Thanks.
User avatar
Cat_7
Expert User
Posts: 5257
Joined: Fri Feb 13, 2004 8:59 am
Location: Sittard, The Netherlands

Re: Installing Classic Mac implementation of BBC BASIC

Post by Cat_7 »

Here is a link to a small (20Mb) disk image with the BBCBasic files extracted.
It can be added to the volumes list in SheepShaver etc.

https://surfdrive.surf.nl/files/index.p ... 5/download

Please let me know when you downloaded it so I can delete it again.

Best,
Cat_7
User avatar
24bit
Forum All-Star
Posts: 1422
Joined: Wed Nov 11, 2009 5:47 pm
Location: Germany

Re: Installing Classic Mac implementation of BBC BASIC

Post by 24bit »

Maybe this is what you are looking for?

Image

The files are here, disk images compressed with Stuffit 3.6.
Maybe you can fill in some details?
https://macintoshgarden.org/apps/bbc-ba ... -macintosh

Edit: Cat_7 was too fast for me. ;)
toast_marketing
Space Cadet
Posts: 5
Joined: Sun May 03, 2020 1:03 pm

Re: Installing Classic Mac implementation of BBC BASIC

Post by toast_marketing »

Cat_7 wrote: Please let me know when you downloaded it so I can delete it again.

Best,
Cat_7
All done. This was very helpful indeed. I learned much more than I expected (the file format of the Mac dialect of BBC BASIC is very different to what I had assumed it to be).
Jorpho
Master Emulator
Posts: 368
Joined: Fri Sep 17, 2004 4:22 am

Re: Installing Classic Mac implementation of BBC BASIC

Post by Jorpho »

toast_marketing wrote: I have been able to unpack the archive on MacOS (with both unzip and with ditto). But the unpacked files don't look right; there is a "BBC BASIC" file but it is short - at 256 bytes, too short to be the interpreter.
FYI: the 256-byte file is the "data fork" of the application. The "resource fork" is stored as "._BBC BASIC" in the __MACOSX folder. The same applies to the rest of the files.

When properly unzipped on a Macintosh filesystem, these two forks are invisibly combined into single files. When improperly unzipped, the forks are largely useless. Without miniunz, it is possible to use the procedure outlined here to do the job.
Post Reply