Page 40 of 78

Change of product direction, good and bad news!

Posted: Thu Aug 26, 2021 8:45 pm
by Guybrush


14 minutes ago, paulscottrobson said:




The Next and the M65 are pretty much entirely FPGA, they just have external RAM (which may be worth considering for the X8 ? Thinking of Grant Searle's work here). You can have a working M65 now, you just need a Nexys A7 board.



External RAM requires 8 data lines and at least 16 address lines (essentially FPGA pins) and VERA's FPGA doesn't have enough of those (it currently uses 8 data lines and only 5 address lines). A bigger FPGA with more pins would also be more expensive.


Change of product direction, good and bad news!

Posted: Thu Aug 26, 2021 8:53 pm
by x16tial


1 hour ago, paulscottrobson said:




Actually the X8 is way closer.



Yeah, I changed my mind on that, and created the thread about making that hard decision.

And really, I want VERA module(s) for systems I already have. If I had to bet, the X16 will be released, and probably the X8 sooner or later, adding 2 platforms to the 8-bit arena.  So I'd rather have VERA all around, and ideally have it just be processor agnostic, giving video capabilities (and more) to any system that can feed it 1's and 0's fast enough.


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 2:29 am
by BruceMcF


7 hours ago, paulscottrobson said:




Already exists https://github.com/paulscottrobson/6502-basic



No floats , largely because I don't like them ? but the hooks are all in there for it. It's designed to run in banked RAM, but doesn't have to. Haven't worked on it much recently. Whole pile of graphics sprite and sound functions, and a 65C02 assembler. From memory it's about 14k or something. https://github.com/paulscottrobson/6502-basic/blob/main/documents/Reference.pdf



Though to be a competitor to the licensed Basic, as opposed to an option if the license didn't come through, it would have to cater to David's preference for a Basic that is compatible with vanilla V2 Basic code that runs on a C64. That along with a Kernel that implements the Commodore Kernel interface would likely need a development team, since by their nature their first impression would be that they were built on Commodore IP that Cloanto claims, and they would have to document that they are "clean code".

Edit: though that's a much nicer Basic. I hope someone extends it to at least 4byte floating point (with 32bit integers, the extended Commodore mantissa is not as critical). Though, come to think of it, for a lot of programming tasks, maybe a 16.16 fixed point would be a usable alternative which would be, obviously, much more efficient to execute on a 65C02.


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 3:03 am
by EMwhite

This thread has been a lot of fun.  After a full week, responses are dying down somewhat but I wonder... are armchair engineer (me) pontification leading to anything aside from mild entertainment? Is the release of something imminent?

Spending way to much $$ on eBay crap and would like to pay fwd, not back.

 


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 4:02 am
by BruceMcF


12 hours ago, paulscottrobson said:




Actually the X8 is way closer. The original plan was something that was going to cost $30. I don't think that's doable, maybe as a DIY kit just, but there's a thing called the ZX-Uno which is effectively a Superspectrum, which is something like $60-$80 to produce I think. You could probably design it for less now.



The "real hardware" design came later.



Though the original plan was something that was going to under $50 and made from off the shelf ASIC chips, which was an internal contradiction.

The "phase 1" (X16p) and "phase 3" (X16e) plan eventually emerged from that contradiction. And of course, the X8 emerged as a proof of concept of the X16e.

 


12 hours ago, paulscottrobson said:




It's cheap, technically feasible and nearly the same thing. I don't know if it has external RAM or uses Block RAM, but effectively what it does is move the 6502 into the FPGA rather than existing as a seperate chip.



It's already too many black boxes. Aside from obviously Vera which now does most of the sound and all the graphics, there are microcontrollers and all sorts to make it work.  It's a black box already. If you want the bells and whistles do Ben Eater's course. If you want to build a kit, it could probably be a kit.



I think it's a no-brainer personally. Largely because if nothing happens soon the project will die.



It appears that it is just the same internal 128KB single port RAM in the same FPGA as the Vera was designed on. Vera has 128KB internal RAM accessible at the 50MHz dot clock because that member of that FPGA family has a 1Mb SPRAM module. Take half of it and make it 65C02 system RAM, keep the other half for the Vera routines, add some more secret sauce, voila, X8.

This black box argument doesn't seem like it is likely to persuade many people who are not already inclined to agree with it. The Video and Audio chips being "black boxes" in that sense was normal in the 80s. If an in-stock tile and sprite video chip was still in production, then it would have been a black box too. The micro-controller is a white box. Serial is going to be bit banged on VIAs, which is very white box. The PS/2 ports are either going to be bit banged on VIAs or run on code on the micro-controller, so they are white box one way or the other.

The biggest feature creep of them all was adding bit-mapped graphics modes, but as long as the bit-maps are used as the equivalent of painted canvas backgrounds in the theater it's still in the spirit of 8bit graphics. Luckily they didn't give in to the demands for more feature creep with more built in Vera functions to support faster bitmap rendering on the fly, or else there wouldn't have been the logic resources to spare for the X8 to include the full Vera operations and the 65c02 core as well.

 


12 hours ago, paulscottrobson said:




Hardware's not my thing, but couldn't you just have an I2C port on the FPGA for expansion ? Then if you wanted (say) a classical user port you could get an Arduino to do it, maybe.



The issue is pins ... there appears to be at most one spare X8 pin, and that might not be truly available ... it might be stranded by logic resources used for other things. To get two free pins, you need to overload the I2C on something that already has a purpose. If the unofficial information in circulation is correct, the most obvious candidates are the two pins used for the debug serial interface, which @Wavicle describes as being "connected to a UART driver and accessible to software via I/O registers", but since that will already be on pins, I would prefer if that could be left open as a two line serial port.

And also, there might not be sufficient logic resources to do that overlay, especially since you want the two wire debug serial access to be able to work even when the internal register has set the port to I2C.

What may be possible is to make the existing SPI interface available on a block pin header with independent selects. Two chip selects are already done, one for the SD card, one for the serial flashROM (I presume the bootloader loads from a specific location in the flashROM, since at 512bytes fitting an SD card read routine would be challenging). They are decoded internally .. %10 selected one, %01 selects the other, %00 and %11 turns off both. Taking out the internal decode and decoding them externally seems like it would allow for setting up the SPI expansion bus ... a 2>4 decoder would generate the SD select and serial flashROM select lines. A third select line could select a serial shift register, into which you could write the state of the eight "external" select lines. Then the fourth select line would enable the output of the eight external select lines. With the output high impedance when output is not enabled, pull up resisters would ensure that the external selects are only low when they are set low in the serial shift register AND the output is enable.

So you could have a block pin header with SPI MOSI, MISO, SCLK, +3.3v, GND and CS0-CS7.

Even more speculative than the above (speculative^2), if the unused pin is an actual spare pin and not just stranded, it might be given to an alert pin which shows up in the SPI control register. That would have to be polled if it was used, unless there is the spare logic to have a setting to allow it to trigger the 65C02 IRQ.

Just put an SPI GPIO extender on a hat, and you have a User Port. Or you can have an RTC, or an RS-232C interface with hardware flow control, or ... well, since what happened when SPI faded a bit relative to I2C (when the faster I2C protocols became established) was a a portion of the market accepting both SPI and I2C for serial I/O, there is quite a lot that can be done if you have an SPI bus with enough selects. And of course you can talk to modern microcontroller SBCs as well: I'm thinking an RPi nano hat would be straightforward.

 


12 hours ago, paulscottrobson said:




The Next and the M65 are pretty much entirely FPGA, they just have external RAM (which may be worth considering for the X8 ? Thinking of Grant Searle's work here). You can have a working M65 now, you just need a Nexys A7 board.



I have been guessing that external RAM would be the biggest cost driver ... both the RAM itself and the cost of the larger FPGA with enough pins to increase from 5 address pins to 22 or 24 ... behind David's estimate that the X16e would cost roughly twice what the X8 does ... so where the X8 might cost in the range of $35-$50, the X16e might cost in the range of $70-$100.

For me, if the X8 can be given SOME way to have expansion hats, the $35-$50 price range really sets it ahead of the X16e. The load and run compatibility with the X16p/X16c would be nice, but without the slot, it's only "compatible until I make a card to go into the slot". Without the option for a bus mastering card, the X16e is much more locked down than the X16p/X16c.

So in THAT sense, the bootloader "load BIOS code to RAM and run it" approach is actually more in line with the X16p/X16c than the X16e is, and at half the price.

Once I worked out that the video RAM can be used to store program data that has nothing to do with video functions ... the only thing I'd really want to add to the X8 is some way to put a hat on it.


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 5:23 am
by James Anders Banks


9 hours ago, paulscottrobson said:




Actually the X8 is way closer. The original plan was something that was going to cost $30. I don't think that's doable, maybe as a DIY kit just, but there's a thing called the ZX-Uno which is effectively a Superspectrum, which is something like $60-$80 to produce I think. You could probably design it for less now.



The "real hardware" design came later.



In some ways the X8 is closer, in some ways the X16 is closer. I'm sure someone could come up with a list if they agree, I haven't followed all the details well enough to do so.


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 8:27 am
by BruceMcF


2 hours ago, James Anders Banks said:




In some ways the X8 is closer, in some ways the X16 is closer. I'm sure someone could come up with a list if they agree, I haven't followed all the details well enough to do so.



That's my basic position, so it's not surprise that I agree.

What I did find surprising when finding out more about the X8 is that with just one design tweak, despite being less software compatible than the X16e, it can be made closer in spirit to the X16p and X16c in some respects. The X16e compatibility with the X16p/c stops when something is put in the slot of a X16p/c.

And that is on a potential price point that is a killer advantage over the X16e all on its own.


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 8:40 am
by paulscottrobson


6 hours ago, BruceMcF said:




Edit: though that's a much nicer Basic. I hope someone extends it to at least 4byte floating point (with 32bit integers, the extended Commodore mantissa is not as critical). Though, come to think of it, for a lot of programming tasks, maybe a 16.16 fixed point would be a usable alternative which would be, obviously, much more efficient to execute on a 65C02.



Oh, it's easy enough. All the hooks are in there, there's a dummy module. I've got a 6502 FP package I wrote from scratch somewhere (isn't great), or I could retrofit Woz's. I just haven't bothered ? The default is integer (it's postfix $ string # real % integer) but any can be the default type, even string. The only thing missing would be the Taylor series stuff which is hardly ever used anyway.


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 8:51 am
by BruceMcF


6 minutes ago, paulscottrobson said:




Oh, it's easy enough. All the hooks are in there, there's a dummy module. I've got a 6502 FP package I wrote from scratch somewhere (isn't great), or I could retrofit Woz's. I just haven't bothered ? The default is integer (it's postfix $ string # real % integer) but any can be the default type, even string. The only thing missing would be the Taylor series stuff which is hardly ever used anyway.



I said "I hope someone" because there's no way on this green earth that it would be me. If xForth development goes well in my time off this fall after getting back to the US, I might seriously consider putting in signed fixed point. Though come to think of it, maybe 24.8 rather than 16.16.


Change of product direction, good and bad news!

Posted: Fri Aug 27, 2021 8:58 am
by paulscottrobson


15 minutes ago, BruceMcF said:




 



 


4 hours ago, BruceMcF said:




The issue is pins ... there appears to be at most one spare X8 pin, and that might not be truly available ... it might be stranded by logic resources used for other things. To get two free pins, you need to overload the I2C on something that already has a purpose. If the unofficial information in circulation is correct, the most obvious candidates are the two pins used for the debug serial interface, which @Wavicle describes as being "connected to a UART driver and accessible to software via I/O registers", but since that will already be on pins, I would prefer if that could be left open as a two line serial port.



I have been guessing that external RAM would be the biggest cost driver ... both the RAM itself and the cost of the larger FPGA with enough pins to increase from 5 address pins to 22 or 24 ... behind David's estimate that the X16e would cost roughly twice what the X8 does ... so where the X8 might cost in the range of $35-$50, the X16e might cost in the range of $70-$100.



I haven't seen it. I would be interested to know what the pins are used for. USB in, Audio out (D/A ladder ?), Video out of some sort , SD Card interface.

I think making it cheap opens up a whole new vista, and adding your serial RAM chip opens it up even more.  If 8 bit Dave does release the X8 I hope they spend a little bit of time tweaking the design. An option or a slightly larger port and you could use VRAM as an extended memory like A000-BFFF is now if you weren't using all of it.

But then I never bought the authenticity argument. I still don't really, as a learning experience. I don't buy the whole thing educationally, not that there mightn't be a use for it, but the old Microsoft BASIC is just unusable for that. I was teaching programming nearly 40 years ago and it was antiquated then.