Famicom World

Family Computer => Famicom / Disk System => Topic started by: Protoboy on July 11, 2014, 07:12:52 pm

Title: Famicom Family Basic question
Post by: Protoboy on July 11, 2014, 07:12:52 pm
Hey all, I'm new to the Famicom scene, but I'm very interested in collecting a Family Basic for my Famicom. My question is, did Nintendo ever release a SKU of a Family Basic combined with V3 in the same package?

Also, does V3 render the black Family Basic cartridge obsolete in features? Can I do everything the black cartridge can but more or are both needed to get all the features?

Last but not least, was V3 only packaged in an open-face cardboard tray with the programming manual? I'm having trouble finding pictures of the packaging so I'm making sure I'm buying a complete version and not missing and manuals or packaging. Thank you so much!
Title: Re: Famicom Family Basic question
Post by: UglyJoe on July 11, 2014, 07:28:34 pm
Quote from: Protoboy on July 11, 2014, 07:12:52 pm
Also, does V3 render the black Family Basic cartridge obsolete in features? Can I do everything the black cartridge can but more or are both needed to get all the features?


I'm not positive about the CIB packaging, but this one I can answer.

The V2 cartridge (or V2.1 -- it's the black cartridge) had a few "extra" modes for doing computer-esque things.  This includes a basic text editor, music composer, and calculator.  V3 gets rid of these and dumps you straight to the BASIC prompt.  V3 also adds more memory, a few more BASIC commands, and packs in three built-in BASIC games (which you can load and then edit).

So, V3 is pretty much the better version, although V2 is easier to find and still pretty capable.  One bad thing about V3 is that the manual that comes with it is more like an addendum to the V2 manual, rather than a full-blown manual.  You can find both manuals on the forums here, though (the V2 one even has an English translation).
Title: Re: Famicom Family Basic question
Post by: Protoboy on July 11, 2014, 07:41:25 pm
Thank you very much AngryJoe! It's awesome there's an english translation here, I will definitely use it!

So the Family Basic was ONLY packaged with V2.1 (black cartridge), right? There wasn't a retail version of the keyboard packaged with the V3 cart, right?
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on July 11, 2014, 09:23:04 pm
Quote from: Protoboy on July 11, 2014, 07:12:52 pm
Hey all, I'm new to the Famicom scene, but I'm very interested in collecting a Family Basic for my Famicom. My question is, did Nintendo ever release a SKU of a Family Basic combined with V3 in the same package?

I don't think so.
Quote
Also, does V3 render the black Family Basic cartridge obsolete in features? Can I do everything the black cartridge can but more or are both needed to get all the features?

As UJ said, there is some extra software in V2.x carts. Notepad, some sort of music tracker, calculator,  BG editor. On the other side V3 provide 4kB of RAM for your programms.
Quote
Last but not least, was V3 only packaged in an open-face cardboard tray with the programming manual? I'm having trouble finding pictures of the packaging so I'm making sure I'm buying a complete version and not missing and manuals or packaging.
No idea about "complete list" of Family Basic related items.
Title: Re: Famicom Family Basic question
Post by: P on July 12, 2014, 03:58:07 am
Some clarifications: The black cartridge isn't V2, its title is just "Family Basic". It can contain any version of NS-HuBASIC from V1 to V2.1A, but the V1 is very rare and I've only seen pictures of it online. Supposedly people could call Nintendo and trade in their V1 cart for a V2 one which is partly why it's rare I guess. V2 has one more extra command (SCR$) added and V2.1A has bug fixes. V3 is however a separate title called "Family basic V3".

Packaging for the black cart seems to vary a bit and we have noticed some differences between different manual revisions but I've never seen packaging that includes V3.

It seems that NS-HuBASIC V3 has all the functionality of V2 but tapes from earlier versions will not work in V3. The code should be compatible though so you can type it in manually (goes for BG GRAPHIC as well). Though if a BASIC program uses in-line assembly (or POKE and PEEK commands in some cases) you'll have to do some slight modifications because of the differences of the memory mapping.

I'm currently in the process of translating the V3 manual to English and the link can be found in my signature.
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on August 25, 2015, 05:25:50 am
BUMP old thread.

So V1 existed in the form of "black cart"?
Interesting note about incompability tapes V2.x and V3, i will have look code closer sometimes.
Title: Re: Famicom Family Basic question
Post by: zmaster18 on August 25, 2015, 05:58:07 am
Quote from: 80sFREAK on August 25, 2015, 05:25:50 am
BUMP old thread.

So V1 existed in the form of "black cart"?
Interesting note about incompability tapes V2.x and V3, i will have look code closer sometimes.

Yes. I had one copy of V1. Some believe it was never released, but I can confirm it is real.
Title: Re: Famicom Family Basic question
Post by: P on August 25, 2015, 07:06:30 am
I read on a Japanese forum of a person that bought Family BASIC and later his friend bought it only months later and he realized that his friend's version was that of V2 while his own was V1. He called Nintendo and they swapped it for a V2 for him for free.

Quote from: 80sFREAK on August 25, 2015, 05:25:50 am
Interesting note about incompability tapes V2.x and V3, i will have look code closer sometimes.

Playbox BASIC also has it's own tape format that is incompatible with the others. At least the prototype (http://bootgod.dyndns.org:7777/profile.php?id=4622) ROM that I tried it with long ago.
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on August 25, 2015, 07:45:29 am
@zmaster18 any photos left? Especially photo of pcb.

@P ok, sound like "call back" by some reasons. So at moment we can guess about 4 tape formats

1. Playbox Basic
2. Basic V1.x
3. Basic V2.x
4. Basic V3.0

Another interesting thing. Look at the following images from bootgod's database

(http://bootgod.dyndns.org:7777/imagegen.php?ImageID=10437&width=600)

(http://bootgod.dyndns.org:7777/imagegen.php?ImageID=9751&width=600)

Basic V3 have unusual size RAM(6116, 6264, 62256 are most common, but other exist as well), manufactured in 1984. Too expensive for V2.x?

Can't find link to the V1 ROM  ???
Title: Re: Famicom Family Basic question
Post by: zmaster18 on August 25, 2015, 12:49:43 pm
I sold the BASIC set with V1 about 6 months to a year ago and don't have photos of it anymore. Next time I get one, I will take pictures of the board and anything else you guys would like to know. So what was the major difference between V1 and V2? What was missing or defective with V1?
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on August 25, 2015, 12:59:37 pm
ANYTHING. Usually people making scans of pcb, case, guru's desoldering chips and making scans of bare pcb.

Thanks in advance.
Title: Re: Famicom Family Basic question
Post by: zmaster18 on August 25, 2015, 01:09:06 pm
Quote from: 80sFREAK on August 25, 2015, 12:59:37 pm
ANYTHING. Usually people making scans of pcb, case, guru's desoldering chips and making scans of bare pcb.

Thanks in advance.

If I get one, I'll sell it to you or whoever for a cheap price. For the sake of research, and science!!!  8)
I just checked my sales records and it looks like I sold my V1 set in February.
Title: Re: Famicom Family Basic question
Post by: P on August 26, 2015, 01:36:42 am
Quote from: P on July 12, 2014, 03:58:07 am
V2 has one more extra command (SCR$) added and V2.1A has bug fixes.

I think this was from Japanese wikipedia.

I hope the V1 ROM will get dumped. And the V1 Playbox BASIC too since I've only seen the prototype ROM (V0).
Title: Re: Famicom Family Basic question
Post by: Gered on December 22, 2016, 08:37:46 pm
Hey all, sorry to bump this older topic, but figured I had something to add that was relevant.

Recently I bought a Family Basic set with the original box, manuals/inserts, cart and keyboard and it arrived today. Upon starting it up and booting into the Game Basic mode, I noticed that it was displaying "NS-NUBASIC V1.0" (http://www.blarg.ca/files/familybasic/IMG_20161222_232444.jpg). That caught my attention as I thought I had previously read that v1.0 was not released or something like that.

After a bit of Googling, came across this topic and of course zmaster18 confirmed above here that that was not the case and v1.0 was in fact released but it was just a bit rare nowadays (probably due to the v2 trade in offer from back then).

Anyway, I'll have to check on what hardware I'll need to dump a ROM if someone still wants that (I have SNES/GB/GBA ROM dumping hardware but not NES/FC carts unfortunately... go figure! EDIT: Actually, forgot I have an INL Kazzo with 72pin NES connector which doesn't help me for FC carts, but probably can just buy the FC version of the Kazzo and would be good to go).

In the mean time, I took some shots of the cartridge shell and PCB: 1 (http://www.blarg.ca/files/familybasic/IMG_20161222_230303.jpg) 2 (http://www.blarg.ca/files/familybasic/IMG_20161222_230544.jpg) 3 (http://www.blarg.ca/files/familybasic/IMG_20161222_230840.jpg) 4 (http://www.blarg.ca/files/familybasic/IMG_20161222_230851.jpg)
 
The SCR$ function does appear to be missing, CALL works fine. SCR$ is not mentioned in the manual I got with it, but CALL is.

Also of note the trick which apparently works with v2 where you can hold F while turning the console on to boot into Game Basic directly does not work (this is actually a thing, right? thought I read something about that on this forum but cannot find it now). I also read somewhere else something about holding T and switching on the Backup switch, but that didn't work either. Though holding T during boot up does do some RAM test (shows "RAM OK").

Anyway, would be happy to check on anything else if anyone wants me to. I'll post back here too when I am able to dump the ROM image.

EDIT: Just updating the links to the photos I took so that they continue to be available into the future, should anyone still need it.
Title: Re: Famicom Family Basic question
Post by: P on December 23, 2016, 03:19:31 pm
Thank you for the pictures! :) This is great news, it would be great if you could dump it.

QuoteThe SCR$ function does appear to be missing, CALL works fine. SCR$ is not mentioned in the manual I got with it, but CALL is.

No surprises here, thanks for confirming. I tested both commands in Playbox Basic V0 (the prototype) and CALL worked already back in that version (but not SCR$). I suppose Nintendo removed CALL from certain later revisions of the manual so they didn't had to get so many questions about it. ;D But they never actually removed it in the software.

QuoteAlso of note the trick which apparently works with v2 where you can hold F while turning the console on to boot into Game Basic directly does not work (this is actually a thing, right? thought I read something about that on this forum but cannot find it now). I also read somewhere else something about holding T and switching on the Backup switch, but that didn't work either. Though holding T during boot up does do some RAM test (shows "RAM OK").

I don't think F key should do anything (I've tried it with most keys). Maybe the person mixed it up with the T key.
You hold the T key while you press reset (you don't need to touch the backup switch) to skip the talking computer and go directly to BASIC. In V2 you see "RAM OK" really quick and then you go into BASIC mode directly if you do this. In PlayBox BASIC proto nothing happens at all.
So you say that in V1, holding T while booting does not go into BASIC mode but instead shows a RAM slef-test screen? That's very interesting. It makes sense to use T for Testing too.

Oh and don't forget to check out the stickied Family BASIC Super Thread if you haven't already.
Title: Re: Famicom Family Basic question
Post by: Gered on December 23, 2016, 06:49:59 pm
Might take 2-3 weeks before I can get a dump though, as I have to order in some additional hardware.

Quote from: P
I suppose Nintendo removed CALL from certain later revisions of the manual so they didn't had to get so many questions about it. ;D But they never actually removed it in the software.


Which would make sense to me. I'm honestly surprised it's mentioned at all in the manual as the explanation of it is pretty light with no examples anywhere. Majority of people (kids) picking up a copy of Family Basic back then wouldn't have a clue what to do with it, heh. :)

But yeah after reading elsewhere on this forum that some manual revisions didn't mention CALL at all, I was worried once I noticed I had received a v1.0 copy that CALL might be absent from the cart too! Thankfully it's not, as it's nice having an "escape hatch" enabling you to do some more advanced stuff should the need arise (I remember CALL ABSOLUTE from my QBasic days being handy for that same reason!).

Quote from: P
I don't think F key should do anything (I've tried it with most keys). Maybe the person mixed it up with the T key.
You hold the T key while you press reset (you don't need to touch the backup switch) to skip the talking computer and go directly to BASIC. In V2 you see "RAM OK" really quick and then you go into BASIC mode directly if you do this. In PlayBox BASIC proto nothing happens at all.
So you say that in V1, holding T while booting does not go into BASIC mode but instead shows a RAM slef-test screen? That's very interesting. It makes sense to use T for Testing too.


Good to know about the F key then, as it's definitely not doing anything for me.

But yeah, just to confirm: Holding down just T at console power on boots into a light pink background screen with red-ish text saying "RAM OK". However, it never goes beyond this screen even if I wait for a while or try pressing some keys (I've tried a lot). Worth noting, if I turn the backup switch on and boot up holding T, I get the light pink screen, but no text, and it also never goes beyond this point either.

Kind of a bummer actually, I find the computer boot up / question intro annoying now, haha. :) But I was eventually planning on getting a V3 anyway (well, maybe), so I guess that problem will go away at that time.
Title: Re: Famicom Family Basic question
Post by: P on December 24, 2016, 09:27:01 am
Quote from: Gered on December 23, 2016, 06:49:59 pm
Quote from: P
I suppose Nintendo removed CALL from certain later revisions of the manual so they didn't had to get so many questions about it. ;D But they never actually removed it in the software.


Which would make sense to me. I'm honestly surprised it's mentioned at all in the manual as the explanation of it is pretty light with no examples anywhere. Majority of people (kids) picking up a copy of Family Basic back then wouldn't have a clue what to do with it, heh. :)

Yeah I guess CALL is there because not only beginners wants to play around with Family BASIC. And if they had removed it in later versions advanced users would be disappointed, and also there would be compatibility issues with code from earlier versions.
But I think instead of removing it from the manual they could just leave in a note that says it's for advanced users and the manual won't cover it.

But I suppose Family BASIC could be used to learn 6502, although it's not the main-goal of the cart.

QuoteHolding down just T at console power on boots into a light pink background screen with red-ish text saying "RAM OK". However, it never goes beyond this screen even if I wait for a while or try pressing some keys (I've tried a lot). Worth noting, if I turn the backup switch on and boot up holding T, I get the light pink screen, but no text, and it also never goes beyond this point either.

I see, I guess this self-test screen was used by technical support and later they turned it into a short-cut. Thanks, I thought of writing a short FAQ for Family BASIC so it's good to know what the main differences are in the various versions.

QuoteI find the computer boot up / question intro annoying now, haha. Smiley But I was eventually planning on getting a V3 anyway (well, maybe), so I guess that problem will go away at that time.

V3 is the definitive version. No useless apps just BASIC and BG GRAPHIC mode, sample games, much more Work RAM, ability to backup BG screens and a number of new quite useful commands. When you start using it you don't want to go back to V1/V2.x again.
Title: Re: Famicom Family Basic question
Post by: Gered on January 05, 2017, 03:59:45 pm
So I have dumped the v1.0 ROM and verified it (works fine in FCEUX). Not sure what is allowed to be posted here as far as ROMs go so I don't want to just link directly to it (but would be fine doing so if a mod/admin says it's fine).
Title: Re: Famicom Family Basic question
Post by: UglyJoe on January 05, 2017, 05:51:01 pm
Technically not allowed but I would overlook it this one time :-X
Title: Re: Famicom Family Basic question
Post by: Gered on January 05, 2017, 06:58:28 pm
Hah, alright then UglyJoe. :)

familybasic-1.0.nes (http://www.blarg.ca/files/familybasic/familybasic-1.0.nes)

EDIT: Probably no one will see this, but just updating the URL so it will continue working.
Title: Re: Famicom Family Basic question
Post by: P on January 06, 2017, 04:27:01 am
Thank you! I had to test SCR$ and the RAM self-test and they behave like expected. ;D

But I think you might have made a mistake in the header?
4E 45 53 1A 02 01 33 00 00 00 00 00 00 00 00 00
Upper nibble in byte 6 here ($33) indicates that this is mapper 3 (CNROM) but I'm pretty sure Family BASIC belongs to mapper 0 (NROM). The already dumped 2.0 and 2.1 ROMs stores $03 here indicating mapper 0. Bootgod also states it as being mapper 0.
Title: Re: Famicom Family Basic question
Post by: Gered on January 06, 2017, 04:43:17 am
Oh it was probably the script I was using (anago). You're right it should be NROM. I'll fix it when I get home from work later, but easy enough for anyone else to tweak themselves if they want it corrected before then. :P

EDIT: yeah oops, checked just now and noticed I was missing an NROM script for anago in the package I downloaded. I guess it defaulted to CNROM and I just didn't notice (and the dump still just happened to work fine as CNROM making me not think twice about it). Oops!
Title: Re: Famicom Family Basic question
Post by: P on January 06, 2017, 09:28:36 am
I see, I'd try redoing it with the NROM script to see if anything is different.

I guess CNROM is kind of like NROM, but allows to bankswitch CHR-ROM banks.
Title: Re: Famicom Family Basic question
Post by: Gered on January 07, 2017, 03:28:21 pm
Re-dumped it with updated Anago scripts (from here (https://github.com/arantius/anago-scripts)). However it looks like all that changed was the mapper number in the iNES header.  :D Link above has been updated.
Title: Re: Famicom Family Basic question
Post by: P on January 07, 2017, 03:38:19 pm
I see, thanks for making sure it's dumped correctly. The file is quite different so I wasn't sure it was because of the added features or if it was somehow dumped incorrectly.

Gotta check the differences from 2.0 and 2.1A one day.
Title: Re: Famicom Family Basic question
Post by: Gered on January 07, 2017, 06:48:56 pm
Ah, interesting. Goes without saying I think, but definitely post when you figure out what the differences are from v1.0 -> 2.0 (and 2.1 I guess also, heh :) ). I'd guess most of it is probably just bugfixes, but either way would be interesting to know what the changes are.
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on January 07, 2017, 10:48:24 pm
Thanks for dump.

First of all v2.1 is patched v2.0. Both ROMs are almost identical.
v1.0<->v2.0 16386 bytes different
prototype<->v1.0 32768 bytes different

So...
1) i guess there is only minor changes in source code
2)ROM consist of few independent blocks, which, probably, were made by different teams.
3)origin unknown(based on Woz-Basic?)
Title: Re: Famicom Family Basic question
Post by: UglyJoe on January 08, 2017, 08:48:35 am
Quote from: 80sFREAK on January 07, 2017, 10:48:24 pm
So...
3)origin unknown(based on Woz-Basic?)


Quote from: UglyJoe on November 14, 2015, 07:05:56 am
My copy of The Untold History of Japanese Game Developers Volume 2 (http://www.amazon.com/Untold-History-Japanese-Game-Developers/dp/1518655319/) arrived yesterday and it has a Hudson chapter.  Some interesting Family BASIC info from it:

- It was developed by Takashi Takebe.
- The Nintendo / Hudson relationship was fostered via Sharp.  Hudson had made a BASIC interpreter for one of Sharp's early PCs, so Sharp recommended them to Nintendo for Family BASIC.
- Family BASIC was developed on a Sharp X1 (which has a different CPU architecture!) and then cross-assembled for the Famicom.  This was apparently a common thing for Hudson to do at the time.
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on January 09, 2017, 12:25:25 am
 Thanks for the quote. "Origin" is not "copy" or "patch". I mean "inspired by" - the way to tokenize, basic programm line format etc.

Since X1 is a CP/M machine, using cross(macro) assembler was very possible. Maybe this could explain "weirdness" of some code in Family Basic, which doesn't looks like code for 6502(PL/M? Z80?). Lots of parts could be done faster.

While ago i disassembled v2.0 to the "bare bones", removed all bells and whistles and now have almost finished(SPRITE operator not completed yet - there is quite tricky code to process animation) source code of Family Basic. It can be assembled in 16K ROM with some speed increase(too many JSR in JSR).
Title: Re: Famicom Family Basic question
Post by: P on January 09, 2017, 01:40:47 am
I read that HuBASIC was developed for Sharp's PCs with compatibility with Microsoft's BASIC in Commodore and other PCs in mind.

Unefficient code and beginner mistakes is quite common in early video games they say. Often programmers tried to code the 6502 like it was a Z80 (if that was their previous experience) or the other way around for some Game Boy games, and yet others had hardly any programming experience at all and learned mostly by themselves by looking at the code from other games.


Quote from: 80sFREAK on January 09, 2017, 12:25:25 am
While ago i disassembled v2.0 to the "bare bones", removed all bells and whistles and now have almost finished(SPRITE operator not completed yet - there is quite tricky code to process animation) source code of Family Basic. It can be assembled in 16K ROM with some speed increase(too many JSR in JSR).

So you made something like V3 for V2? That's pretty cool.
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on January 09, 2017, 04:16:32 am
P, it would be nice to see some links or code examples from late 70s, early 80s :-[

Well, i wouldn't call it V3 for V2 or v2.0a(dvanced). Main purpose was to have 24K RAM with custom mapper. Functionality is exactly the same as v2.0 at moment.

And there is two ways to go
- keep functionality as is and increase speed as much as possible
- strip down some features(kana support, autorepeat, key macro) and add SD card support
- do both from above
Title: Re: Famicom Family Basic question
Post by: P on January 09, 2017, 09:06:16 am
I meant the game V3 not the V3.0 version of NS-HuBASIC, you removed the annoying stuff the same way.
But why didn't you use V3 to begin with? That way you wouldn't need to remove anything an it has several usefull new commands (I like RENUM for example).

I'm sad to see kana input go though.
Title: Re: Famicom Family Basic question
Post by: 80sFREAK on January 09, 2017, 11:37:26 pm
 Well, it's just happened  :) v2.x is common, and original manual is widely avaliable.

I'm pretty sure, you'd instantly drop off RENUM for CLOAD/CSAVE on real hardware  ::) Also with a source code is easy to add/remove functionality.

2cut or not 2cut kana - look, compiled ROM is 15K+ now and SPRITES not finished(there is few tables left to fiure out, how it is working). And make ROM over 16K will make things more complicated(if you wish to have big RAM).

So... to gain some space and increase speed i have to rewrite NMI handler(really funny slice of code), keyboard driver(i think total code, related to keyboard, include autorepeat is about 1K) and most likely drop key macros(KEY).

There is always another way TODO - split kernel of Basic(I/O, editor, tokenizer) and operators. Put them in 8K banks, but this will drop speed.

At moment 24K/16K is a very good compromize and there is very big potencial to optimize code. I also keep in mind 24K/32K(64K) config for some extra software(tracker, assembler, wi-fi, etc.).