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:\>
On the right hand side, the floppy driver is mounted. Without game ROMs put in the slot, BBG boots from floppy disks.
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.
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).
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.
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.
The BASIC (First generation, every statement must be accompanied with a line number).
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.
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.
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.
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).
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.
With the command bbgcdos, you can launch the BBGCDOS, the Chinese version of BBGDOS.
The 8-bit debug.cmd like the (debug.exe under PC) but only for BBGDOS, which makes debugging easier at famicom clone (BBG).
A paint-like drawing software: (brush.cmd)
dir looks quite professional, and it supports command line switches such as /P, /W and /L.
The edit.cmd is a quick text editing tool (plain text) for BBG:
The 8-bit Excel, you must be amazed how 8-bit hardware (the famicom clone) can do.
The LOGO (Turtle Programming) is a well-known programming language for kid, a must-have software for children learning their first programming language.
The ver and vol (of course, these are just a tip of the iceburg, there are so many other DOS commands).
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.
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.
and the pclink.cmd looks like:
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.
And the files on the game floppy disk look like this:
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).
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) —
loading...
Last Post: Introduction to 8-bit Famicom Clone - Subor - SB2000
Next Post: The Matrix Printing Animation in C++
do you have a download for the game converter? or files? just got a bbk 98 but no disks 🙁
Where can I buy one?
And to think that this is the same BBK Electronics who would later be known for their OnePlus, Oppo and Vivo smartphone brands. Would have been full circle if this BBGDOS system of theirs would be emulated on an Oppo lol.
Yes, it is the same BBK.
Where might i find the nes2gam application? Thank you
Please let me know the price of BBG Famiclone emulator ?
Very interesting and valuable information. How could I get the BBG Famicom emulator?
interresting article, thanks