Spectrom

Started by iWasAdam, May 21, 2020, 11:11:38

Previous topic - Next topic

iWasAdam

hehehehehe  ;D

Well I've been working on text entry (as it will form a large part):


Next up will be cut/copy move to start of line, end, next word, etc. All the fun stuff.

After that I can sort of look at the language and how it will operate. One thing will be live variables, tracing, stepping through code.

So far there is a very nice 70/80's feel to it. You actually feel like you are using some form of spectrum/c64/apple, etc. I can't wait for the miracle RUN <enter> and it just runs the program without any compiling etc...

I wish the Pi had been like this...

Santiago

This is great !, I would like to have a mini PC with a mini screen, and have that system, as a personal pocket computer or something like that.

it's great

iWasAdam

great idea :)

Just testing very first line interpreter:

it correctly parsed all four versions, giving float, variable(gin) and the value 10

So first step has been taken...

iWasAdam

and lets change it up a bit:


Whilst working on the parser I decided to start again, with a slightly different approach.
Instead of starting with the language. Start with the data and construct the language around that.

Let's assume that for any app there can be up to 5 character fonts and these are accessed by sprite commands. The above shows dynamically the fonts available and a selection of available sprites with their dynamic commands. So you sort of get automatic help, showing you what the sprite command would generate.

iWasAdam

And another this time with the final color palette added.


This also shows that picking a color will color the sprite - giving many more colors than the included 32.

You can see that a lime green has ben chosen as the base color and the sprite commands reflect this...


image: 0..4
char: 0..255
color: 0..31
Sprite image, char, xpos, ypos [, color]


Both the color pickers show the same data - so changing the main color on the popup palette or the included colors will work :)

Steve Elliott

I really like that sprite editor, good stuff - a real nice retro charm about it.   8)
Win11 64Gb 12th Gen Intel i9 12900K 3.2Ghz Nvidia RTX 3070Ti 8Gb
Win11 16Gb 12th Gen Intel i5 12450H 2Ghz Nvidia RTX 2050 8Gb
Win11  Pro 8Gb Celeron Intel UHD Graphics 600
Win10/Linux Mint 16Gb 4th Gen Intel i5 4570 3.2GHz, Nvidia GeForce GTX 1050 2Gb
macOS 32Gb Apple M2Max
pi5 8Gb
Spectrum Next 2Mb

3DzForMe

Quote.    So far there is a very nice 70/80's feel to it. You actually feel like you are using some form of spectrum/c64/apple, etc. I can't wait for the miracle RUN <enter> and it just runs the program without any compiling etc...
     

Intriguing stuff 😁👌👍
BLitz3D, IDEal, AGK Studio, BMax, Java Code, Cerberus
Recent Hardware: Dell Laptop
Oldest Hardware: Commodore Amiga 1200 with 1084S Monitor & Blitz Basic 2.1

iWasAdam

I think this is very much a 'slow burn' project. it will come together in little steps

iWasAdam

it's very interesting as you need to parse a line of code into some form of bytecode

So you will need a live parser:


on the left is the text as typed and on the right are the variables being created.
hello is an int, yes has not been currently defined, but has been added to the list of vars

I'm just at the part of creating the bytecode and then running a single line of bytecode

should be interesting... at least the parsing seems to be intelligent  :-X

iWasAdam

sort of creeping forward with this:


I thought a paint program would be a good idea (then I can use the core as the sprite editor...)
You can see I've now got some icons, and you also see an app minimized.
The palettes are all synchronised, so changing the color in one will change it in other variants.


Lastly here is the manager which allows you to change app, you can also see that the right tool area of the paint app is now open showing a larger palette. The layers will live below it...

and if you maximize a window:


You get the full window and the title bar dissappears. The spectrom logo lives in the top left corner and clicking it brings up the (shown) menu

So. it's all moving slowly along :) \0/

iWasAdam

and now for some simple parsing:

Very early stages, but starting to work.

on the left is the command line (like the C64/Spectrum etc)
on the right is the variable list - this is populated as you create variables
you can see that 2 variables m and n have been defined, with different values at different times and in different ways

Wh know how far it will get :)