This is a small collection of Acorn BBC Master Compact projects mainly in C language I made to train myself.
$ git submodule--helper list
160000 60a151e8c43dc850d12057a73770f49b79883116 0 cc65
Important discussion where I found this submodule repository and some of the information in this README.md
on how to compile and run the sources.
Built Windows snapshot
Credits 8bit-Dude.
git submodule update --init -- cc65
cd cc65
make
Assuming that the executable is called DUMP and the source dump.c:
$ cd small_C_projects
$ ../compile.sh dump.c DUMP
cl65 V2.15
Copiling dump.c into DUMP
Assuming that the executable is called DUMP:
- Put the executable inside an .adl or .ssd floppy image using something like Beeb Image or MkImg from mdfs's DiskTools
- Set the 'Load' and 'Execution' addres of the executable to '00000E00'
- Load the diskette into the machine or the image into the emulator and run
> MODE 7
> *MOUNT n
> *RUN DUMP
where n
can be 0 to 3 depending which floppy drive we use, or after step 1 load the diskette into the machine or the image into the emulator and run
> MODE 7
> *MOUNT n
> *LOAD DUMP E00
> CALL &E00
A !BOOT
file can be also created to automatically run what listed above with SHIFT + BREAK
.
See here how to make !BOOT
.
In short:
> *OPT 4,3
> *BUILD !BOOT
MODE 7
*RUN DUMP
Press ESCAPE
> *INSERT 7
> *SRLOAD $.Library.DFSimage 8000 7Q
> CH."CONVERT"
> *ADFS (or *DFS)
> *MOUNT n (or *DRIVE n on DFS)
> *.
> SAVE "file_name"
> *.
> *DELETE file_name
Where n
can be 0 to 3 depending on how many floppy drives we have in our system. A maximum of four floppy drives can be installed as the Shugart interface standard specifies.
When mounting floppy drive n
and running *CAT $
, *CAT
, *. $
or *.
with a non specified drive number, they will list what's on the currently mounted drive. If no drives are mounted, the same commands will automatically mount drive 0 on ADFS, so unless using drive 1, 2 or 3, the *MOUNT n
command can be avoided if the intention is to mount and list drive 0.
If using drives n > 0
, the drive number must be specified and so the commands *CAT :n.$
, *CAT :n
, *. :n.$
or *. :n
will list and mount drives n > 0
as well. These commands can be also used to specifically list and mount floppy drive n
even when drive n1 != n
is currently mounted.
The *MOUNT n
command is basically only used to specify which drive should be accessed when not specified in the *CAT :n.$
, *CAT :n
, *. :n.$
, *. :n
or ADFS commands in general, otherwise the last mounted drive, even through a non *MOUNT n
command, will be used.
*CAT $
, *CAT
, *. $
or *.
*CAT :n.$
, *CAT :n
, *. :n.$
or *. :n
Assuming a pathname A:\dir1\dir2\file
in DOS format, in the Acorn BBC format it will be represented as $.dir1.dir2.file
if drive 0 is mounted or :n.$.dir1.dir2.file
with n = 0
. A and B floppy drives in DOS can be seen as drive 0 and 1 in the Acorn BBC. The third and fourth floppy drives (drive number 2 and 3 in the Acorn BBC) where supposed to be external drives in the original IBM PC. That's why the internal floppy drive connector cable of the PC architecture has a twist and allows only two drives to be connected.
To navigate through the directories the *DIR directory_name
command can be used.