Jump to content
IGNORED

Channel F


~llama

Recommended Posts

I was curious and I took a look at the specs at Sean's page (http://members.cox.net/seanriddle/chanfspecs.html) and I am confident that the system is not harder to program than the 2600.

If you're only going to run games on emulators, that's fine. But after looking at how the F8 CPU works, it's going to be significantly harder to make a cartridge than even the Intellivision. Nowadays, we take data and address busses for granted, but back then, people were still trying wierd things. (Similarly, we now take 8^n-bit words for granted, but lots of old mainframes and minicomputers used weird word lengths like 12, 18, 24, and 36.)

Link to comment
Share on other sites

Hi- David Galloway asked me to check out this thread. Pretty cool! A few months ago I only knew about 4 other people who were interested in the Channel F system.

 

I created a multigame cart for the system by hacking a Schach (chess) cart. That cart has the dynamic memory interface that creates a real address bus. I had to patch the Maze game since that cart had a 2102 SRAM, and you can't put in your own words in Hangman since I didn't patch that one, but all the other known carts work. I built a cart dumper using a PIC microprocessor and sent it to a couple of guys to dump their hard-to-find carts.

 

I originally wrote my multigame code by hand-patching Demo Cart 1. There's an F8 disassembler in MESS, and I'd hex edit the binary then disassemble it to make sure I did it right. Someone sent me an F8 assembler, but I can't distribute it. That's what I used to write Lights Out, then to rewrite the multigame code.

 

I've got a ton of documentation on the 3850 CPU, 3851 PSU (program storage unit), 3853 dynamic memory interface, as well as the F8 system itself. I've disassembled a bunch of the games, and found 3 easter eggs.

 

What's the goal here? To create an entire system from scratch, or just create some carts? It really isn't too tough to write code when you have an assembler; you just have to think a little oddly. The Channel F doesn't have any RAM that you can read; you have to use the F8's 64 scratchpad registers, which are a little wacky to access.

 

Sean

Link to comment
Share on other sites

Hi-  David Galloway asked me to check out this thread.  Pretty cool!  A few months ago I only knew about 4 other people who were interested in the Channel F system.

 

Well, now there are... eight :D

 

I created a multigame cart for the system by hacking a Schach (chess) cart.  That cart has the dynamic memory interface that creates a real address bus.  I had to patch the Maze game since that cart had a 2102 SRAM, and you can't put in your own words in Hangman since I didn't patch that one, but all the other known carts work.  I built a cart dumper using a PIC microprocessor and sent it to a couple of guys to dump their hard-to-find carts.

 

Well... what exactly would creating new cartridges for the system entail? I'm not understanding what Bruce Tomlin means by "the program counter has to be on the ROM..." I know what a program counter is, but I just can't get my head around actually putting in on a cart...

 

I originally wrote my multigame code by hand-patching Demo Cart 1.  There's an F8 disassembler in MESS, and I'd hex edit the binary then disassemble it to make sure I did it right.  Someone sent me an F8 assembler, but I can't distribute it.  That's what I used to write Lights Out, then to rewrite the multigame code.

 

Well I think we can use Bruce's F8 assembler for now, the only issue I see with it is that it doesn't produce binary output... what tools would I use to turn the hex file into a raw binary? Also... I propose we take the code to either Bruce's F8 assembler or another custombuilt assembler and have it be our DASM, our default assembler... maybe we can call it Fate (get it? a pronunciation of "Feight")

 

I've got a ton of documentation on the 3850 CPU, 3851 PSU (program storage unit), 3853 dynamic memory interface, as well as the F8 system itself.  I've disassembled a bunch of the games, and found 3 easter eggs.

 

Is this documentation available anywhere for me to look at? That'd be wonderful...

 

What's the goal here?  To create an entire system from scratch, or just create some carts?  It really isn't too tough to write code when you have an assembler; you just have to think a little oddly.  The Channel F doesn't have any RAM that you can read; you have to use the F8's 64 scratchpad registers, which are a little wacky to access.

 

Well, the goal here is to start a homebrew development community, get some working games, some fun and exciting stuff made, fun to play... and maybe if it's not too ridiculous AtariAge could sell new homebrew Channel F carts? sounds like that might be a stretch but at least some new games to play in emulation and a better understanding of the limits of the Channel F and exactly what it can do :D

 

Thanks! it was really good to hear from you, hopefully you'll stick around? Join the mailing list if you want :D

Link to comment
Share on other sites

Kevin- The 3850 has two 8-bit ports built-in, so to make things fit into a 40-pin package, there is no address bus. The 3851 PSU is more than just ROM- it takes 5 signals from the CPU and generates its own internal address bus. The 3853 static memory interface (I typoed in my last message) takes those 5 signals and creates an address bus for you. So you either need a 3853 or a functional equivalent in a cart. Those 5 signals allow for 32 different states, some of which change the address bus, and others that don't, so it's pretty complicated to make your own. I hacked an existing cart that has the 3853 and uses standard ROM and RAM. Some other, more common, carts also have a 3853, but it is just the die bonded to a printed circuit board, so it would be tough to work with.

 

Bruce also has makerom.c on his site, which converts the Intel hex format into straight binary.

 

I will gather the documentation together and put it on a web site. Check out my website for some info if you haven't already: http://members.cox.net/seanriddle/chanf.html.

 

Channel F systems and carts sell pretty well on ebay. I'm not sure if new carts would sell, but probably a few. It is fun to write a new program for a long-dead platform. Do you call that anachrogramming?

 

Sean

Link to comment
Share on other sites

Sean, your webpage is what kicked off this little Channel F fan club. It was your discovery of the first easter egg (now we know it wasn't Adventure) that started all this conversation. Now the old Fairchild fans are coming out of the woodwork. I remember the system well and it has the same kind of historical and nostalgic fascination for me that the 2600 does. I hope that more people will come to understand the importance of the first programmable system ever made.

Link to comment
Share on other sites

Kevin- The 3850 has two 8-bit ports built-in, so to make things fit into a 40-pin package, there is no address bus.  The 3851 PSU is more than just ROM- it takes 5 signals from the CPU and generates its own internal address bus.  The 3853 static memory interface (I typoed in my last message) takes those 5 signals and creates an address bus for you.  So you either need a 3853 or a functional equivalent in a cart.  Those 5 signals allow for 32 different states, some of which change the address bus, and others that don't, so it's pretty complicated to make your own.  I hacked an existing cart that has the 3853 and uses standard ROM and RAM.  Some other, more common, carts also have a 3853, but it is just the die bonded to a printed circuit board, so it would be tough to work with.

 

So basically it's impossible to make a new cartridge playable for the Channel F without hacking up an old cartridge with a 3853 on it? That sucks...

 

I'm not sure if new carts would sell, but probably a few.

 

Well... I'd buy one of my own games :)

 

It is fun to write a new program for a long-dead platform.  Do you call that anachrogramming?

Well... you could call it anachroprogramming, retroprogramming, im-a-really-big-nerd-programming, or... Channel F-icizing.
Link to comment
Share on other sites

OK, here's a page with links to a bunch of info: http://members.cox.net/seanandalicia/chanfinfo.html

 

Kevin- I know one guy who is thinking about programming an FPGA to replace the 3853. I considered it, but it seemed too tough for me. I think I could do it with a small FPGA and a PIC microcontroller, or maybe just a big PIC.

 

NovaXpress- so are you saying that the Easter egg in the demo cart predates any other known egg? That's pretty cool!

 

Sean

Link to comment
Share on other sites

OK, here's a page with links to a bunch of info: http://members.cox.net/seanandalicia/chanfinfo.html

 

Kevin- I know one guy who is thinking about programming an FPGA to replace the 3853.  I considered it, but it seemed too tough for me.  I think I could do it with a small FPGA and a PIC microcontroller, or maybe just a big PIC.

 

Well... thanks for the documentation :) I'll look over it- I'm about to go work on other stuff for the rest of the night so I'll check in tomorrow. Join the list! you'd be the only guy there who's actually written a game for the system (which, btw, is really challenging in "torus" mode :D)... sorry if it seems like i'm badgering you into the list but your site, like NovaXPress said, is the whole reason this movement is beginning to exist...

Link to comment
Share on other sites

There has been some talk about various assemblers. Tasm with a custom table, Bruce's F8 or writing one from scratch, and even of having 'our DASM'. After looking at DASM, it turns out that DASM is actually a multi CPU cross assembler (now that's why I have to put processor 6502 at the top of my 2600 files). Judging from the source it seems like it supports 6303, 6502, 6811 and 68705. Now I have not done the analysis but I'm betting that it could be adapted to handle the F8. Just to be clear, DASM is available as source. Then all we'd have to do is put processor F8 at the top of our files.

 

David G.

Link to comment
Share on other sites

There has been some talk about various assemblers. Tasm with a custom table, Bruce's F8 or writing one from scratch, and even of having 'our DASM'. After looking at DASM, it turns out that DASM is actually a multi CPU cross assembler (now that's why I have to put processor 6502 at the top of my 2600 files). Judging from the source it seems like it supports 6303, 6502,  6811 and 68705. Now I have not done the analysis but I'm betting that it could be adapted to handle the F8. Just to be clear, DASM is available as source. Then all we'd have to do is put processor F8 at the top of our files.

 

David G.

 

 

I'm the current maintainer of DASM, and I would be happy to assist in getting this assembler up to speed for you F8 fans. DASM is indeed a multi-processor assembler! Contact me privately if you wish to proceed this route.

 

Cheers

A

Link to comment
Share on other sites

NovaXpress- so are you saying that the Easter egg in the demo cart predates any other known egg? That's pretty cool!

Yes indeed. I found your page while looking for Video Whizball information and was shocked to see your discovery. Everyone thought that Warren Robinett did it first so you've helped to rewrite video game history.

 

Here's the thread that discusses your find:

http://atariage.com/forums/viewtopic.php?t=59087

Link to comment
Share on other sites

NovaXpress- so are you saying that the Easter egg in the demo cart predates any other known egg? That's pretty cool!

Yes indeed. I found your page while looking for Video Whizball information and was shocked to see your discovery. Everyone thought that Warren Robinett did it first so you've helped to rewrite video game history.

 

Here's the thread that discusses your find:http://atariage.com/forums/viewtopic.php?t=59087

 

Actually I posted info in a thread earlier this year (April) about much of this: 8)

 

http://atariage.com/forums/viewtopic.php?t...?t=44963#596297

Link to comment
Share on other sites

Well... what exactly would creating new cartridges for the system entail? I'm not understanding what Bruce Tomlin means by "the program counter has to be on the ROM..." I know what a program counter is, but I just can't get my head around actually putting in on a cart...

That's because the F8 bus is completely different from anything you've ever seen before. There is no program counter in the CPU. They decided that a separate program counter should be contained in every memory chip, all keeping track of the same states.

 

Well I think we can use Bruce's F8 assembler for now, the only issue I see with it is that it doesn't produce binary output... what tools would I use to turn the hex file into a raw binary?

If you look at the next line on the same web page, you'll see something called "makerom". This will convert the .hex file to a binary image.

Link to comment
Share on other sites

NovaXpress- so are you saying that the Easter egg in the demo cart predates any other known egg? That's pretty cool!

Yes indeed. I found your page while looking for Video Whizball information and was shocked to see your discovery. Everyone thought that Warren Robinett did it first so you've helped to rewrite video game history.

 

Here's the thread that discusses your find:http://atariage.com/forums/viewtopic.php?t=59087

 

Actually I posted info in a thread earlier this year (April) about much of this: 8)

http://atariage.com/forums/viewtopic.php?t=44963#596297

 

 

Well, the Channel F demo cart is copyrighted 1977, but it wasn't a game, and it wasn't for sale. Video Whiz Ball is copyrighted 1978; wasn't Adventure also 1978? So which was first? Also, there were a whole lot more Adventure carts sold than Video Whiz Ball!

 

Fredric Blaholtz (the supreme Channel F collector) wrote the author of Video Whiz Ball and Alien Invasion a couple of times. Brad ReidSelth responded with some information: Video Whizball was written for Fairchild. The game idea was the result of a contest- the winner got a color TV. Alien Invasion was written in 1981 for Zircon.

 

Brad says that he hid the egg code as data statements within graphics tables to avoid detection. The programmers knew that hidden things were being put into games at Atari and Activision (he did not mention Adventure), and his superiors told the Fairchild programmers not to do that. He didn't know about the egg in the demo cart, but he knew the programmer.

 

So unless he is misremembering, it sounds like his egg in Video Whiz Ball came after the Adventure egg. But possibly VWB was released before Adventure? I'm not up on my Atari history, but Activision wasn't created until '79, right? That's after VWB was released, so I think he must be confusing some of the timeline (it was over 20 years ago!)

 

Sean

Link to comment
Share on other sites

That's because the F8 bus is completely different from anything you've ever seen before.  There is no program counter in the CPU.  They decided that a separate program counter should be contained in every memory chip, all keeping track of the same states.

 

Ah. Upon reading the 3851 documentation and the F8 programmer's guide I get it. I guess we'll just have to work that one out later.

Link to comment
Share on other sites

So how much CPU time do you actually get with the Channel F? The games I've seen seem pretty slow. Also, is there any mechanism to determine when vertical blank is?

 

    -Bry

 

Bryan-

 

It's not super-fast, but some of the games are pretty snappy. If you've only used the old MESS emulator, it was running too slow until a few months ago. Now it seems to be pretty close to actual speed.

 

I don't think there's any way to detect vertical blank. Just plotting points on the screen requires jumping through some hoops for timing reasons. Check out the Tetris and Lights Out code on my page.

 

Sean

Link to comment
Share on other sites

Sean,

 

Thanks, and I'm really glad to see you here. I used to really be into the classic arcade scene, and always enjoyed your website. I had to quit lugging all that stuff around for a while, but I really miss my Q*Bert and my Joust. :)

 

-Bry

Link to comment
Share on other sites

Just a quick update, this discussion about assemblers and such lives on in the [channelf] list... and at the moment Thomas Mathys has almost completed adding F8 support to DASM, which is a big boost because all of you Atari hackers already know all the DASM directives and macro declaration syntax and such... he says that at this point his F8-icized DASM is assembling Sean's lights.asm to the exact same binary as the f8tool used by Sean for his downloadable binary... No word yet on when this all will be finished but soon we will have a wonderfully powerful assembler to use for Channel F development.

 

Stay tuned for a probably public release of DASM/F8 and then lots of cool Channel F stuff :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...