Discord
Login
Community
DARK THEME

MicroScript elsewhere?

Just wonder - does MicroScript analog exist somwhere else? Like Linux C++ library/extension or maybee entire studio with compiler?

Working with arrays of objects in C++ is painnfully, if I want an array, like: [int, int, int [obj, obj]], especially if size of this array is not set (leave to expand if needed).

All this is easy to use in MicroScript, but pain in... well, can imagine... in C++.

Or in class (object) can create foo = false

And call like: if(foo) then foo(val) end

So I can create bool foo value, but later set:

o = new obj
o.foo = function(val) something end

so 'default' foo now not false but a function now.

So really useful features is:

//Creating object so easy!
obj = class
  //Yeah its easy constructor
  constructor = function(a, b)
    this.a = a
    this.b = b
    this.foo = false
  end
  //And we can make inside function!
  func = function(a, b)
    this.a = a  //Note, that a != this.a, becase function have intake `a`
    this.b = b  //Same to `b`
  end
end

//Creating array of unset length (theoretically infinite)
newObjects = []
//And just push to it! Its so nice ;)
//Not just `push`, but push new instance of object (class)!
newObjects.push(new obj(2, 3))

//And just like that get that instance as some `object` `pointer`
object = newObjects[0]
//And easy do things with this object in array!
//More of that! We can change `foo` from boolean `false` to function! Thats amazing!
object.foo = function(a, b) this.c = a + b end
//Did you notice this.c? Yeah, we can use a unexistant variable and it will be created if not exists! Amazing!

//Non-less - we can just add to our object (single instance in array) a new unexistant before function! Marvellous!
object.foo2 = function(c) a = c end

So much helpful functions, so much abilites!

If that just exist as some terminal-based solution (IDE - compiler)...

Does anyone have suggestions?

Well the thing you are searching for doesn't exist at least in that form.

Although programming in lua isn't impossible, I didn't see a lot of software created in it. Microscript is based on the lua script, which is interpreted language with many useful features. It is mostly used to recode some pre-existing software, such as interactive configuration files or a robust plugin system that can be included into C-type languages.

Id recommend checking out

awesomewm - window manager for linux written in c but configured (recoded) in lua

or better yet

lite - text editor lite has it core written also in c but everything else is in lua and has plugin system that can reprogram i think even core features in lua

PS: there might be some other lua related interpreter or something that allows compiling lua but i'm not shure...

There is also lua API for C/C++ this article might help: https://www.codingwiththomas.com/blog/a-lua-c-api-cheat-sheet

@Lucifer, thanks :)

What would do.

But right now stuck at 2 questions:

  1. Graphical (or ANSI) output;

  2. Create executable (so no LUA software required on other machine to run it).

Before I checked 16 different languages (which promise flexibility, 'soft' types, easy work with objects (classes) and stuff I only see in MicroScript). But these does not offer I need...

So, right now MicroStudio is the best solution (sadly its can't connect /dev/ttyACMx or /dev/ttyUSBx or some other devices).

Can you tell me on what project are you working on if it's a game i recommend godot because of gd script it's really easy even for beginners and has a lot of built in features and functions also you can find alot of tutorials regarding godot. On the other hand you can create executable with lua api and parser built in so you don't have to have external lua exec. and regarding graphic or ansi it depends on what are you trying to recive. I have sorta like mini guide for making efficient C/C++ code can share it if you want? maybe it will help.

sadly its can't connect /dev/ttyACMx or /dev/ttyUSBx or some other devices
I'm not sure can godot handle devices that way and dev/ttyUSBx what that device is supposed to be tty(Teleprinter or virtal terminal)USB??

@Lucifer - right now I'm on way to create some kind of 'master UI' library (windows, buttons, indicators - include gauges, sliders, etc...).

To correct work with 'unknown' to library amount of object with unknown object parameters/vars (+to initial have) i have need of 'infinite' arrays of functions/object, and object, that can be extended on creation & later (on use), so i can apply new vars/arrays/functions to object...

And i wish to use this graphical euphoria to work with some Arduino devices :)

Right now I made eRISC 'processor' (not ASIC of cource :) Some kind of fast-emulation).

The idea is to make IDE for that device, which contains code editor with real-time compilation (of current string with adress shifting if length changed => that can be done by write proper command format - so compilator make its 8-bit word and now it uses 8-bit memory, so address of next command is +8 bit), page (256b) uploader and - most useful - do 'fake' word (non from ROM of device, but from programm). So after sending a word to process - retreve RAM, programm pointer & registers values.

In this way to test code no need to flush it to device ROM (it have limited write cicles, so we saving a chip), we can change code in real-time and it will be work (but 'reset' required for right results).

I already make this 'IDE' on Visual Studio, but have some problems (for Linux, Win not tested yet):

  1. Sending value > 127 make arduino receive 63 (3F).. Wierd... Try turnind DTR off - any message just ignored...

  2. Running under Wine make no sense... Programm see all COM ports, but can not handle responce from Arduino...

So I start to search a new solution, which can handle such a lib... Making this lib 'static' is not good, because restrict almost 60-75% of its alility...

So I checked 16 different languages devs say it have all I need... Not have :(

LUA will do, except 2 moments:

  1. I don't know hot to make some executable (so I do not need installing LUA to run script on any machine)

  2. LUA have not graphical output. I see Love2D, but not figured out with it (on Linux it have .AppImage file, but its some king of 'player' i persume)... How to call it& How to work with it? Hot to use it?

About Godot - playing with it some years ago, but dont know about LUA in it... Should try, thanks ;)

  • Sending value > 127 make arduino receive 63 (3F).. Wierd... Try turnind DTR off - any message just ignored...
    Well I am not that familiar with adruino so... idk on this one but it seems like adruno is making error out of memory but why 127 if it's 8-bit it should be able to support values up to 255 (FF) weird...
  • Running under Wine make no sense... Programm see all COM ports, but can not handle responce from Arduino...
    I played around wine before and i think COM ports need to be redirected somehow in wine settings if i remember correctly..?
  • I don't know hot to make some executable (so I do not need installing LUA to run script on any machine)
    You don't need lua if you use lua c API since parsing code will be in exec but you will probably need lualib
  • LUA have not graphical output. I see Love2D, but not figured out with it (on Linux it have .AppImage file, but its some king of 'player' i persume)... How to call it& How to work with it? Hot to use it?
    That's correct lua doesn't have graphical output so if you decide for using lua I'd suggest tto use ncurses or termbox terminal interface libs they aren't as fancy as Love2D but they work...As for Love2D yes you will need to exec code thru player that's how Love2D works..

Godot doesn't support lua it has it's own language gd(godot script) witch is very extensible and flexible.

Also you can run C code as script with right compiler that is
idk if that helps and on linux there is tempfs witch is basically ram so maybe you could mount adruino ram and access it directly.

PS. Keep me updated i find this stuff fascinating.

  • Sending value > 127 make arduino receive 63 (3F).. Wierd... Try turnind DTR off - any message just ignored...

    • Well I am not that familiar with adruino so... idk on this one but it seems like adruno is making error out of memory but why 127 if it's 8-bit it should be able to support values up to 255 (FF) weird...

Well... Its only on Visual studio via Virtual Box, using Serial Port Terminal (Linux stuff for 'pure talking' using HEX) can send anything without errors (well, sort of, sometimes can ignore double 0xFF and save only once. But its ok, can be healed with adding to protocol get THIS [byte] and address, where to save, so we can repeat saving broken byte.

Now i think to use W5100 chip (Ethernet) for Arduino to work with it via Ethernet (not tty), which lets me use MicroStudio to do so (but needs to remake entire IDE in some other way, than VisualStudio... Wich harder, but maybe much better)

As for project - yes, can share it later (when it'l be enough stable, so saving programm not cause lost or DUP data - broke entire code. Right now its only buggy point, fixing it will make project release :) )

For now can tell about eRISC:

It have 6 REGs:

  • ix - Input register. Used to intake number from programm (only <= 63, 0x3F because of Opcode 2 bits)
  • ax - A register. Used in ALU as first argument. Also in comparator as value to compare from.
  • bx - Used as second ALU value. Also in comparator as programm pointer for jumps
  • r0 - User register, CPU does not use it.
  • r1 (or rp) - not used in 'normal' version, so fully user. But in '+' (plus) version used as 'RAM page', so CPU can address 64K of RAM (instead 256b)
  • rx - RAM pointer. Used to address RAM when save-load on it.

Also there 2 pseudoregisters:

  • RAM - using this will read/write to RAM at address in rx (rp:rx in '+') address
  • DEV (or In/Out) - external data bus, so CPU can 'take' data from other device & send data to other device. Right now has some king of 'protocol' (too simple, so using microphone as In and Speaker as out is available)

Commands:

CPU word divided to 3 parts:

2x is opcode + 3x is first argument + 3x second argument.

Its like: 00 000 000 (first opcode, second to or CMP CMD, third from or ALU CMD).

Opcode can be:

  • 00 - Set ix data from lowest 6 bites (so 00 111111 will set ix to 0x3F). To intake more can use NOT and inverted value, mul or add and other ALU tricks with intake number.
  • 01 - mov data from second argument to first (like mov ax ix will set value of ix to ax)
  • 10 - ALU, the first parameter sets output - where to put result, and second shows operation. Always process ax and bx as intake.
    • 000 and reg - will make ax AND bx and put result to ??
    • 001 or reg - similar with ax OR bx
    • 010 not reg - similar - NOT ax => reg
    • 011 xor reg
    • 100 add reg - make ax + bx => reg
    • 101 sub reg
    • 110 mul reg - yes, multiply :)
    • 111 div reg - And divider ;)
  • 10 - Comparator. Compare ax with given reg and if result is true - set program pointer to bx value. 3 bits after opcode is command, lowest 3 bits is reg
    • 000 ax == reg
    • 001 ax != reg
    • 010 ax > reg
    • 011 ax >= reg
    • 100 ax < reg
    • 101 ax <= reg
    • 110 jmp - just jump, always true.
    • 111 of == 1 - It is Overflow flag of last ALU operation. So if you make 0xFF + 0x02 you get 0x01 as result AND of flag is true (1) until next ALU operation.

So simple code is:

0 | 00 000 010 | set 2      //Intake 2 from program - to ix
1 | 01 001 000 | mov ax ix  //Set ax to this 2
2 | 00 000 001 | set 1      //Get 1
3 | 01 010 000 | mov bx ix  //now set intake to bx
4 | 10 001 100 | add ax     //make ax+bx and put result to ax. ax = 2 + bx = 1 => ax = 3
  |            | label some //Make a label
5 | 10 001 100 | add ax     //again, so ax = 3 + bx = 1 => ax = 4 ;)
6 | 01 000 101 | set some   //Set ix to label 'some' address (5)
7 | 10 010 000 | mov bx ix  //set bx to label some for jumping
8 | 11 000 111 | jmp        //jumps eternaly :)

and so on...

idk if that helps and on linux there is tempfs witch is basically ram so maybe you could mount adruino ram and access it directly.

About this moment: i no need to use AVR RAM (because it mostly 2-8k and used for Arduino vars), I use 23LCV512 (64Kb) SRAM for eRISC RAM and 24LC65 as 64Kb Flash ROM.

Also dont know how Linux will be extedning Arduino RAM as RAMDisk, sounds too wierd :)


Yep, a moment i lost before: eRISC have adressed only 256 bites of ROM (RAM in non '+' version), BUT!

Entire ROM space (64k) is divided to pages (by 256 bites), the lastest page (#255) contains jump to segment table, where each byte shows to which page after overflow of pointer jumps to. So programm can be almost 64k (except 256 bytes for addressing). But comparator can jump only by pointer (so cross-page jumps from programm impossible, have a solution, but dont know does it is will be useful).

About '+' version: it switched from IDE (can choose - will be device with extended RAM or with additional free register). Also in IDE sets start page - page to start with (for flexibility).


About much-of-devices - this eRISC is RISC version of my other project (easy to use processor, easy to understand assembler. Compile yourself w/o software). And those have core for device network, which can be used here also. Also this eRISC can be this 'core' and process talking between devices, responging if called self ID.

Much talk to explane, preparing docs (first for eRISC) and maybee soon post it somethere (Arduino soft and IDE to work with eRISC) :)

The codename is: SWCC-8e.

Additional versions: SWCC-8eA (with analog 8-bit in/out, not bus), SWCC-8e+ (extended to 64k RAM), SWCC-8e+A (both previous)

Main project is: SWCC (can be renamed in future to WDCC) - SilverWolf Computing Core (or WolfDigital Computing Core).

The main goods of this is - easy (very) assembler, non-static processor word length (from 4 to 28 bites), rich bunch of commands, fair amount of registers, VARIABLES! VARIABLES IN CPU! Can you imagine? Using assembler (without macroses or stuff, only CPU commands) use variables? Yes we have it :) Can work with ANY register (without need of first set value to some allowed and then to we need).

The compilation is so easy it can be done by hand :) Not, really :) Soooo easy :)

The list of all registers/commands with explonation what it does and when we need it forms a single list of A4 (normal font size, normal spacing etc). And have free space for devices 'talking' explonation :)

Writing a BIOS with simplest OS (terminal with static commands: show list of commands, show list of devices, show device info [class, type, vendor, name, version], use device as storage [disk], list disk files/folders) written on paper, on paper compiled and put into virtual machine (yeah I made some, its 7-th generation now) byte-by-byte - and i work with (virtual-real) keyboard+monitor(graphical-text)+storage(use 1.44Mb 3.25" floppy). All works great :)

Have plans on Arduino release of full (not eRISC) and FPGA (have something for start, but disturbed by main work) versions...

@WolfDigital - So you wanna make graphic lib for arduino; and arduino have really limited resources so it's a pretty interesting task but i doubt that can be fully graphical lib like to have support for images letalone a interactive images.all hope is not lost my suggestions and questions for now are..

  1. Does that model of arduino that you are working on have ARM cpu?
    if so we could potentially make small linux distro specialized for it and it will be semi-graphic (search TUI or CLI terminal apps for pictures just to give you idea)
  2. Can it's ROM be upgraded?
    if so we could make more ram;we will use sd cards partition like 256k for ram and rest as disk
  3. As for graphic libs we could port/use sixel or termbox or ncurses i have also written some libs for linux as well that can be ported...
    That libs include 3d in terminal in pure C
  4. We could also combine ANSI with color coded escape sequences for simple graphics
    with this way i accomplished printing png images on terminal also custom fonts are magic if u can change them interactivly

As for microscript via network goes we will need to have client app running on arduino how to start and make such app without OS running on arduino i have no idea...

By the way compiled code doesn't seem that bad/hard so i'd suggest that we make small compiler with some sort of simplyfied keywords so then we could feed adruino output of compiler thru pipe (|) that way its easier to test and debug...
I have also colldected old project and maintained it that is C lang that can be either run as a script or compiled it was designed specially for embedded devices.Extra Fast ... Extra Simple thet we could port as well.

and we could probably hook up logger on device for additional debugging.

@Lucifer, there are some misunderstanding, i suppose.

eRISC can not have more, than 64k RAM & ROM.

SWCC (WDCC) can have up to 4Gb RAM and up to 65534 devices (0-Always general CPU/core, 0xFFFF - broadcast), so 1 can be display, 2 - keyboard, 3 - mouse, other - disks :)

Now lets see you suggest...

1. Does that model of arduino that you are working on have ARM cpu? if so we could potentially make small linux distro specialized for it and it will be semi-graphic (search TUI or CLI terminal apps for pictures just to give you idea)

  • My architecture is completley different of anything is existed in world... So install Linux is not option until someone make GRUB for it... Also the device talking (CPU & each other) methods too different from used in almost any CPU (right now is IRQ with DMA. I not use IRQ, and DMA is... not really DMA, for any device can use any RAM space in any time... Even codespace).

So Idea is too different (maked to be easy to understand & use, and for fast work as possible without sync issues IRQ provide & fixed with mostrous solutions)...

So answer is: My model does not contain ARM at all. Self Linux distro is real, but for SWCC (WDCC), not SWCC-8e (eRISC), because it is not designed to have any graphic output (except special device it will talk to).

2. Can it's ROM be upgraded? if so we could make more ram;we will use sd cards partition like 256k for ram and rest as disk

  • On SWCC-8e ROM is limited by 64k (2x 8bit register to address, programm pointer 8 bit - so any page can contain only 256 bytes), so using SD is not solution, but downgrade (it has lower read speed, than 64LC chips).

  • Second: SD for RAM? SD is too slow for ROM and have too limited read-write cycles - using it as RAM will kill it too soon (while you experience too slow overall work until its die & you start use RAM solutions for RAM)...

3. As for graphic libs we could port/use sixel or termbox or ncurses i have also written some libs for linux as well that can be ported... That libs include 3d in terminal in pure C

  • I focused on easy way to use & manipulate it. Main point is - any object is the same object (window is same as button, but have different functions to process (as window) and different draw function (so it looks like window, not button). So you can create object (just rectangle with not drawing, it has X, Y & width/height. It belongs to some 'layer', have some 'parent' & have self id and group (for operations with group of objects, like making it visible/invisible or active/inactive). To be window this object also need new drawing function, boolean folded flag, 3 childs (fold & close buttons, + main form), it needs also color variables (for active/inactive main, front & back colors + header color), it also need string with window name (not ID) to show in header, also window can have icon (image or vector)... All of these can be inserted in object as static (all-in-one always), but what if programmer want to add some, say, timer & angle variables to draw some kind of gauge, like analog clock? It must be extern vars then, not really neat... How about function? When it should be called? How & then draw this gauge? If it all 'inside' object - no problems, but if we use c++ what not allowed dynamically change object (adding vars/changing vars types/adding or change functions), so we in some trouble here... Not nice...

If you mean to make these libs on SWCC (WDCC) self-printed Linux - i have solution more interested: hardware-processed. That means that you can just say videocard: Hey pal, make me window (let it ID be 'W1') this size over there & image [here it is] over there - and it will do. Then you say Pal, i moving window 'W1' to new X,Y - do it - and it will do. Main idea is that videocard not just output its RAM and making some simple calcs with amount of cores, but get entire image-forming to itself (include 3D) and you can just tell it to make something and while it make this - CPU be free to other tasks (so i divide drawing from calculations, CPU make calculations & transfering tasks, drawing do only videocard! Also calculations can be delegated to EALU - extarnal ALU, so CPU is more free to do more tasks, and all this is pure parallel without collapses!).

But is has a lot of work to make it real (not virtual), device talking core is same for all devices, but it complex.

Also any device must have some CPU to do its dutys, some devices can have only simple controller (even on 74xx series), like keyboard, but some should have something more like SWCC CPU itself (with some external hardware, like LCD display on video device).

4. We could also combine ANSI with color coded escape sequences for simple graphics with this way i accomplished printing png images on terminal also custom fonts are magic if u can change them interactivly

  • Thats idea is was made almost first when i make video device :) 1024 characters (4 pages by 256 chars), each can have fore & back color (like DOS, colors same: 4 bit as LRGB EGA standart).

Custom fonts is also maded - by changing video device codepage data (ROM for characters lookout, right now 8x8 each), so any programm can make sprites, and then after finish send command to retrieve original charset.

As for microscript via network goes we will need to have client app running on arduino how to start and make such app without OS running on arduino i have no idea...

Network is for eRISC to change its parameters & read-write ROM. Only.

If you need to 'draw' something on eRISC - you need to make it video device (with designing codes) and then write program to send codes.

Its not like 'buy x86, buy motherboard, buy videocard, combine & run => Ok'. As arduino not have display by default (only SPI, analog/digital interfaces etc) eRISC have no video as so... Its just idea of more fast semi-CPU (RISC architecture) with much of abilities (most for automation, not gaming. Like CNC or smart house).

As for SWCC (full version) - it also designed for CNC, educations, 'big toys for big humans' and stuff. Theoretically it can challenge some x86, but I have not want to make challenge to Intel, just make fast, simple, easy to use & understand CPU with lots of abilities. Thats all.


Most important note about eRISC (SWCC-8e): on Arduino i make only Virtual machine! So, if Arduino can handle display + SD card + Ethernet its not mean that eRISC can have it due to limitation of architecture itself (its virtualization of some real device, maded on 74xx logic series chips or even transistors + resistors!).

So theoretically i can add instructions to magically work with devices (also making processor word bigger), but in real life it is not how it work. To magic workout in CPU you need make monster of monsters from transistors, so CPU can do some unusual task... But good CPU have not futures like this, only things it can handle in single tick, without abstract magic & stuff.

Right now I can send you VisualStudio .exe (x64) of IDE for eRISC

You cant read-write ROM/RAM/regs or make other things with it - because you have not eRISC CPU ^_^, but you can write a program (but save only as copy-paste to, say, notepad) and look how real-time compile works (can be buggy sometimes, just warn of indev version).

If you interested - give me mail where send to.

@Lucifer - i send you 'invitation' to copy of my lib (WIP), there are some 'demo' in main. Run it & see what it can :)

This lib IS NOT FOR eRISC OR SWCC! It is for programms which can talk with devices (or programms that can not? Like games, they too need windows/buttons/vector/stuff).

Thank you for invitation WIP lib looks real impressive I took a quick look at code will check it out later in more details but from demo play it's great stuff. And yeah there were clearly some misunderstanding mainly because i based my assumptions for arduino from google search..

OK butt I'm still not in clear what are you trying to achieve with this I know you want graphic lib but...

  1. what is the end goal like producing custom arduino boards(code it yourself) cause you said that your arduino has unique architecture???
  2. how will that work I mean will it be stand-alone machine or will it be controlled via some other device?

if it's going to be stand-alone.. When we talked about that compiling code could be done basically by hand i've got some interesting idea that i can't get out of my head so.. even if we make bootloader like GRUB we couldn't boot linux because of architecture at least not without recompiling kernel and core utils but wouldn't it be great if we could make our own micro unix. yes we have limitations but you already make shore that text based interfaces work if we could port as well as change it to fit arduino architecture my micro C we will essentially act like shell and parser and compiler since i alredy made it small to fit embedded devices and then make small scripts and programs to act like interface so we could potentially end up with something like this https://xtermwm.sourceforge.io/screenshots/pager_1.png

or idk point me in the right direction
BTW my e-mail is k.brzakovic@aol.com

@Lucifer, ok. Try to explain: eRISC is not complete-computer as most people think of (like x86 or Mac), its a RISC processor.

It have own architecture, not like anything else.

Limitation of 256 bytes per page make this processor not usable as some terminal, and of course, gaming PC.

This one is toy for programmers-hardwarers to make things (like CNC devices, such as milling CNC of 3D printer. Or maybe radiocontrol machine-drone, or maybee simple calculating stuff, or maybee weather station...)

Theoretically it can have keyboard and some display (not 4k of course, but depends of display code architecture & protocols).

The main article is that thing just a core of something bigger, but not this 'bigger' itself. Playing solitare theoretically possible, but I see it more like brick-game china toy from 90-s (but if you make display with easy protocol can play even tiny-DOOM with external RAM & filse storage.

In my global project (SWCC) this eRISC is planned to be used as 'core' to every device (keyboard, mouse, display, storage and other stuff) to make SWCC device protocol complex enough to fast-easy talking with error correction level enough to prevent error in work by any chance.

So eRISC will be used as core (for simple devices like keyboard also get all workaround with keys matrix & recode-decode routine). This allows to make any type of device by self (try to make device on USB... Or even ISA, PCI, PCI-E, AGP, IDE, SATA? Making on any will take too much time, money and forces. In SWCC I plan to make one protocol (global device protocol) which allow to have ONE simple 'core' of device networking, so you can using it make own keyboard/momnitor/CNC machine/array of detectors of any type/any other crazy stuff just burn in your head ^_^

Wanna little fully-working terminator?

In x86, ARM, PIC and any other it possible only theoretically, but take ages & lost of power/money to produce. Too much motors/pistons need to be controlled in one time...

How about SWCC? Not a problem. Get a 'core' of 'device network', reprogramm it to get commands (to move motors/pistons/ make some descision - yeah, cellular automata fully-possible/get data from detectors), connect it all together (no hub needed until you want to separate network to zones. Again - DEVICE network, not Internet. Its like you attach video card to motherboard, but limitation of 'slots' is 65534, and no 'slots' exist, only one port, single line like USB but more speedy and to attach 2 devices you need just plug it parallel in same lines).

So you can do hardware as big as you just mad enough (65534 devices only on 'first layer', every device can be a hub with another 65534 devices).

But it all about SWCC (big project, requires FPGA, or better is ASIC - not found manufacturers which agree to produce it). To make only SWCC CPU (with RAM & ROM & eRISC device manager) will take much time (short of money, so more short on time - working other projects for money to have something eat).

eRISC theoretically fully ready (schematics, user need Atmega 32u4 + 23LCV512 or similar + 24LC65 or similar, some board or breadbord to make scheme until you love wire spagetty, and Arduino code to make all it work).

Now step-by step:

  • Schematic: ready for 32u4 with 23xx and 24xx. If you want use other chips - you need other schematic (until other chips have same pinout & protocols).
  • Board scheme - not ready. I do it on breadboard, but can easy make a breadbord scheme on SPlan or librePCB (include exports on GERBER)
  • Arduino code: almost ready. Well, core is fully ready, almost ready is part to reprogramm eRISC, switching modes (like '+' version which make r1 register be RP and allowing use of 64k RAM instead of 256b, of page-jumping on pointer overflow and starting page. Also process external command & return registers/pointers/flag/RAM/ROM data). So, external eRISC workout (to programm/play with it in non-normal work) not ready because of testing issues & maybe changing 32u4 tty to W5100 Ethernet (it also can be used to power eRISC via PoE). Or maybe will do both, Ethernet + PoE is useful, but requires more money for W5100 (not cheap at all), but allows to use nice graphics of IDE maded on MicroStudio, other hand - USB tty (ttyUSBx or ttyACMx depends of Linux internal & used chip, can use 328PU wich ttyUSB or 32u4 wich ttyACM) with windows exe eRISC-IDE.

So project near finish, just stopped at terminal (with 0x3F error via virtual machine & invisible device on Wine), also cant make W5100 work (try 3 different chips: 328p-pu, 32u4 and leonardo-uno clone, markings unreadable, but not 32u4 or 328p).

After solving bugs do version (if W5100 works - will concentrate on MicroStudio coded IDE version, on solving tty 0x3F bug - cmplete windows version of IDE).

Few months ago will post roadmap with all progress (include code & files), but static white IP getting too high price, so i close-up deal with my provider, now use low-speed internet with 'gray' IP (so server is turned off, because power is money too and I not use it anymore).

But will find ways to distribute eRISC idea in search of community (to project be grow & made something beatifully big & playable) :)


P.S. Try send you windows version IDE, but mailer says 'this address not exists'. Can it be because I'm from Russia deep village?

Well don't worry about it I am from Serbia but aol is american mail provider so i gess that's why it doesn't work in Russia. i needed to integrate mail somewere and aol has fastest integrations i used yandex before but forgot pass.

I got it now but that's so much low level like i can understand but i guess i'm not skilled enough to code such device sorry :(
I've hacked devices made my own linux distro coded everything except kernel and bootloader; made games and such stuff...even booted my linux distro on phone and it worked like charm...
I am currently in russian FPSC community making some horror FPS game just for fun... using a bit microscript(2d sidescroller)...
I thought I could help code but arduino is something else something that i'm not faced before so...
if you have any questions post them here and i might be able to make suggestion ... or maybe even proper answer...

Post a reply

Progress

Status

Preview
Cancel
Post
Validate your e-mail address to participate in the community