I'm certainly considering making it a collaborative project.
But that requires some sort of project goals to work towards (otherwise it will turn into emacs), and that's project goals I'm not quite clear on even now when I'm working alone, and to compound the problem, a lot of design revisions has to be made on the way so there never -can- be any definitive goals.
But that is the problem with the entire project, binary computing has had half a century to make mistakes and learn what works and what doesn't. But ternary computing is pretty much a blank slate.
eudoxie wrote:
But that is the problem with the entire project, binary computing has had half a century to make mistakes and learn what works and what doesn't. But ternary computing is pretty much a blank slate.
The situation is not that bad. In fact ternary computing exists almost as long as the binary one. But, the only problem is that most publications were made in russian language, since ternary computers Setun and Setun-70 were designed, released and used in Soviet Union. There are some theoretical and practical publications, and I do my best to find, collect and store in my library as many of them as it only possible.
Be that as it may, binary computing has had a different level level of field testing of their concepts. Also, tunguska is an entirely different sort of a machine from setun. It's a PC, not a mainframe-type machine.
There's so many practical questions that need answering. Example: What screen resolution should a ternary computer have? Conventional resolutions are all aligned to 256b pages, so they're obviously no good. Turns out after some tinkering, factoring in page alignment, and the aspect ratio of screens (4:3), that 324x243 is a good screen resolution (and very close to 320x240 -- a common binary resolution).
But then again, that is what tunguska is all about. The main goal of the project is to see what works and what doesn't, by making lots of stupid mistakes, and then learning from them.
I downloaded sources from CVS. Demo of raster or vector graphics is not working properly, right? Also new assembler has some strange errors like inability to handle negative decimal numbers.
In machine.cc (machine::init_translation_table) there are 2 JMP operations and no TSX and TXS operations. Is it right?
Also meaning of LDA without arguments (ACC) is loading A to A, is it the same as NOP or flags are somehow involved?
P.S. I checked source code - flags are involved
P.P.S. Is it possible to add increment/decrement for full address saved in pair X:Y?
eudoxie wrote:
There, fixed. It's amazing how well Tunguska works with apparently so few working instructions.
Thanks for fixes
P.S. Right now I'm working on "alternative" Tunguska assembler with "alternative" syntax, based on my RoboAssembler (RASM)
Next step - to make my C-like programming language to be able to cross-compile programs for Tunguska...
Having an assembler that isn't actually tied to the Tunguska sources is going to be very hard to maintain, especially in these early stages where design changes are relatively common and rapid.
Having an assembler that isn't actually tied to the Tunguska sources is going to be very hard to maintain, especially in these early stages where design changes are relatively common and rapid.
Lets see things from other point of view - if there isn't "alternative" assembler, then you probably found that bugs much later
P.S. My assembler tied to my C-like language, so it's only intermediate form of code representation...
Gotten a lot of work done on Tunguska today. Re-implemented the brownian motion demo that was missing from the ram image, and fixed a lot of stuff on the assembler that were flaky. Also, motion support is partially implemented.
eudoxie wrote:
Gotten a lot of work done on Tunguska today. Re-implemented the brownian motion demo that was missing from the ram image, and fixed a lot of stuff on the assembler that were flaky. Also, motion support is partially implemented.