The 8 bit DOS by Famicom Clone – BBGDOS in the 1990s


BBGDOS, a Disk Operating System was developed by BBG (also known as BBK, or BuBuGao) Ltd, in around 1997, China. The BBGDOS is a 8-bit OS (the CPU is a 6502-series, i.e. UM6561). The BBGDOS is very similar to MSDOS 3.1/3.2, most of the commands are the same, such as dir, cd, format, diskcopy, ver, type, copy, del, md, rd, exit, date, time, cls, rem etc. BBGDOS operates the fils on floopy disks, the structures/file contents can be shared with PC.
BBGDOS boots from floppy disks on sector 0, and the format /s can be used to make a system bootable disk. There are two BBG famicom clones that support floppy drivers, one is BBG F loopy 1 and the other is BBG 98.

The BBG Floopy 1 has a game cartridge slot (so you can play traditional 8bit NES games). The traditional NES games (*.nes ROMs) can be converted later easily to the game format files (*.GAM) and launched under the command line prompt: e.g. A:\>

bbg-1 The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

On the right hand side, the floppy driver is mounted. Without game ROMs put in the slot, BBG boots from floppy disks.

bbg-1-floopy The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The floppy disks are quite outdated nowadays (they are unstable and most of the floppy disks are sort-of damaged when are put long), therefore, it is highly recommended you get one of those USB Floppy Emulator from ebay or amazon, that will virtually replace the floppy drivers with USB (you can put 100 or 1000 floppy disks inside a U drive). The advantage of doing this is two-fold: the USB drives are more stable and you don’t worry about data getting lost. Second, you can put more (1000/100 X 1.44M) data on a single USB and switch them (emulating) using the key pads on the emulator. Apart from these, it is silent and not considered making so much noise when floppy driver is reading/writing data.

Of course, BBG highly depends on the floppy drives, everything boots from floppy for BBG-1. so a USB floppy emulator works great, virtually a SSD-like drive, which enhances the performance and gives you the great experience. However, since it is still a floppy emulator. It means that the reading/writing data speed is not accelerated. It (using USB) is just as the same speed as the floppy drives.

BBG Floppy 1 has a 512K RAM and 32K Graphi Memory.

startup The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

For BBG98, the game slot is removed, and everything boots from floppy disks or the inbuilt ROM (which has a 2MB readonly ROM, and it has some frequently-used tools/files). When booted from internal ROM, the DOS prompt will be C:\> (in fact, it will load a BBG-Win, a windows-like operating system, a GUI shell).

7070f6bc9cbc29f836839966cc6d6901.jpg The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The above BBG98 has a higher hardware specification, the default RAM is 1024KB and the graphic memory is 256KB. The memory is upgradable via 30-pin SIMM Memory.

a4f8e61289cc676c14c7fd4cf5471459.jpg The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

fce45fe7af6c5993634065bcf74ae8ab.jpg The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

Very luckily, the software/tools written for BBG-Floppy 1 and BBG98 are interchangeable. Although, BBG98 can have at most 8MB RAM (via the software emm386.cmd to make use of the extension memory),  some software written specifically for BBG98 may not be compatible for BBG Floppy 1.

Most of the software written for both famicom clones is still based on 6502 Assembly, which looks like below.

6502 The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The BASIC (First generation, every statement must be accompanied with a line number).

basic The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The first generation BBG-BASIC is not structured programming language due to the compulsory line number. the string variable names must end with a dollar sign otherwise it will be treated as numerical values.

1
2
10 s$ = "Hello from BBG-Basic"
20 print s$
10 s$ = "Hello from BBG-Basic"
20 print s$

There are 3 versions of BBG-BASIC, 1.0, 2.0 and 2.1. The version 2.1 contains an online help system which is actually help.cmd. It has many advanced keywords and functions such as def fn which is similar to lambda function (see code example below), call that allows invoke a sub routine given a memory location etc. inkey allows checking whether a key is pressed. circle draws a circle or ellipse and dot plots a pixel.

1
2
3
10 def fn fc(x)=10*x*x+5*x-2
20 print fn fc(5)
30 end
10 def fn fc(x)=10*x*x+5*x-2
20 print fn fc(5)
30 end

BBG File Manager is a handy tool to list all files and folders in the current drive using a GUI. You can navigate the files/folders, select and choose and operation such as copy/move/delete.

c2ecb755d637455f772c136de3e16b45.jpg The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

3ac54a4875bb20259c2411f77c2c96fa.jpg The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The 6502 Assembler can be run directly on the 8-bit BBGDOS, which is superior at that time, so you can develop software without purchase expensive PC at that time.

bbg-assembler-basm The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

At that time, the floppy disk together with a development manual (in Chinese, about 8-bit 6502 programming on BBGDOS) costs 98 RMB which is considered expensive for most families.

You can even find many similarities between BBGDOS function calls (there are no interrupt concepts in 6502 assembly) and the MS-DOS interrupts. For example, both the 0-function or interrupt for BBGDOS and MSDOS respectively will return the OS command prompt.

assembly-dos The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

Without int in MS-DOS, the BBGDOS will use jsr to call a sub-function, and in the sub-routine, rts is used to return to the code in the main function.

For example, the following assembly code (extracted from the development manual) draws a rectangle on the screen at point (0, 8) and (40, 80).

assembly-rect The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The BBG famiclones does not have a inbuilt battery CMOS, so every time after system boots, the date and time is set to 1996-Sept-14, 12:00:00.

bbgcdos-e The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

With the command bbgcdos, you can launch the BBGCDOS, the Chinese version of BBGDOS.

bbgcdos The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

help-c The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The 8-bit debug.cmd like the (debug.exe under PC) but only for BBGDOS, which makes debugging easier at famicom clone (BBG).

bbg-debug The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

A paint-like drawing software: (brush.cmd)

brush The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

dir looks quite professional, and it supports command line switches such as /P, /W and /L.

dir The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The edit.cmd is a quick text editing tool (plain text) for BBG:

edit The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The 8-bit Excel, you must be amazed how 8-bit hardware (the famicom clone) can do.

excel The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

excel2 The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The LOGO (Turtle Programming) is a well-known programming language for kid, a must-have software for children learning their first programming language.

logo The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

The ver and vol (of course, these are just a tip of the iceburg, there are so many other DOS commands).

ver-vol The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

Another must-have, the word processing software, WPS (Word Processing System), that can edit texts in rich style. The file formats can be interchangeable with the one on PC.

wps The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

BBG98 and BBK-Floppy 1 can use the parallel cable (known as DB25) to connect to PC. On PC, you run pcservr.exe and on BBGDOS, you run pclink.cmd so a virtual C:\> (or D:\> on BBG98) is simulated and the files on PC can be used remotely by BBGDOS.

pcsver The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

and the pclink.cmd looks like:

bbgdos-pclink The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

It is not common to see Lovely C:\> prompt on famicom clones back at that time, is it?

The BBGDOS has several versions: 0.9, 1.0, 2.0, 2.1 and 3.0. There are four kinds of executable files on BBGDOS, the first one is plain-text *.BAT which lists the command (programs, commands) to follow line by line. On startup, BBGDOS will look for CONFIG.SYS for some system-level configurations e.g. DEVICE=SB486.kbd,  SHELL=COMMAND.CMD etc and it will look for AUTOEXEC.BAT to execute those commands listed in the file.

The second type is *.CMD which is similar to *.COM in the MS-DOS. The first two bytes of *.CMD specifies the address to execute and everything (code and data) is contained in the single file (no more than 40K = $FFFA – $6100)

The third type is *.EXC which is similar to what we have today (*.EXE on PC). It allows different sections and is usually for bigger programs. The magic signature for *.EXE on PC is MZ however on BBGDOS, the signature for *.EXC is MY.

The last type is *.GAM. The *.GAM files are NES games (8 bit). You could nowadays download easily the ROM *.nes to play 8-bit nes games in the emulator such as VirtualNES. There is a tool NES2GAM which has been developed to enable the conversion from *.NES to BBG *.GAM formats. However, when a GAM file is launched from the BBGDDOS command prompt, it entirely takes over the control and you will never see the BBGDOS prompt again unless you reset the machine.

There is a file gamshell.cmd and if you put a line shell=gamshell.cmd in the config.sys, when BBGDOS boots, all the GAM files will be searched and listed in the game menu. And you can start playing 8bit NES games like the way you insert any game cartridge.

The game menu looks something like this, all Chinese game names, listed two in a row, column by column.

8a26ae0f0103acc8ef1e4883726a51b5.jpg The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

And the files on the game floppy disk look like this:

game-disk The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

8-bit BBG Floppy-1 Famiclone Emulator (PC/Win Version)

The 8-bit powerful BBG Famiclones are rare today. But with the emulator, you can run most of the BBG software on the emulator, that runs on any Windows version (32-bit).

bbg-floppy-1-emulator The 8 bit DOS by Famicom Clone - BBGDOS in the 1990s 6502 8 bit famicom hardware

bbg-floppy-1-emulator

However, the author of the BBG Famiclone emulator charges the piece of software (with source code) at a very small price (Ask me for Details!)

–EOF (The Ultimate Computing & Technology Blog) —

GD Star Rating
loading...
2429 words
Last Post: Introduction to 8-bit Famicom Clone - Subor - SB2000
Next Post: The Matrix Printing Animation in C++

The Permanent URL is: The 8 bit DOS by Famicom Clone – BBGDOS in the 1990s

8 Comments

  1. Steven R
  2. Andrius Stasausk
  3. Maryellen Larkin
  4. Kris
  5. wyattwong
  6. Young

Leave a Reply