Home
JAQForum Ver 20.06
Log In or Join  
Active Topics
Local Time 10:27 26 Apr 2024 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : firmware variants

     Page 1 of 3    
Author Message
Gadget
Regular Member

Joined: 22/06/2011
Location: Australia
Posts: 70
Posted: 12:11pm 14 Jul 2011
Copy link to clipboard 
Print this post

Hi,

I see there are a few firmware variants popping up. just wondering if people could post their changes to the source code as well as the .HEX file, then at least we could attempt to combine some of the changes that people are making.

just my 2c worth

Terry
 
seco61
Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 205
Posted: 12:29pm 14 Jul 2011
Copy link to clipboard 
Print this post

Hi Terry.

While a couple of us are releasing some compiled firmware, I think it would be best if Geoff were to release the software - that way only one master source would be available.

I have sent Geoff a copy of my source code changes and will leave it up to him to release if he wishes.

Of course if you would like a copy I can send it privately, but do be aware that it could change (I am continuously tweaking and working on other mods) and I do not want people to become dependant on the code if it is not the official release. It is OK if you are very good with software and can modify each official release of the source with any unofficial mods....

Just my thoughts.

Regards

Gerard

Regards

Gerard (vk3cg/vk3grs)
 
Gadget
Regular Member

Joined: 22/06/2011
Location: Australia
Posts: 70
Posted: 12:36pm 14 Jul 2011
Copy link to clipboard 
Print this post

Hi Gerard,

I guess I'm just being a bit impatient, I am curious to see what others are doing and how they are doing it. Yes I would love to see your changes, if it's too hard to send here, my email is tgrnn at big pond dot com.

thanks

Terry
 
captainbill

Newbie

Joined: 16/06/2011
Location: United States
Posts: 37
Posted: 06:22pm 14 Jul 2011
Copy link to clipboard 
Print this post

Howdy

If the MMB software gets too fragmented, it will be chaos. I personally would like a FFT function but thats just me.

I have proposed earlier that I would like a way to allow user machine language subroutines. If Geoff can do it, we could have a standardized protocol for calling, passing arguments, and returning values. Perhaps the routines could be poked into string addresses returned by varptr function. The function might be called as x=exec(varptr(y$)) A single floating point number could be returned. Other values could be left at specific offsets in the allocated ram to be peeked and translated as necessary. There may be many ways to implement machine language subroutines.

Such a scheme will allow the MMB to remain general in concept and allow individual developers to create assembly or "C" routines for specific purposes. A vast number of such functions could be kept on SD to be retrieved, loaded, called, replaced as necessary at run time.


Bill
Old school. Still interested. Head in the clouds.
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1310
Posted: 09:04pm 14 Jul 2011
Copy link to clipboard 
Print this post

  captainbill said   Howdy

If the MMB software gets too fragmented, it will be chaos. I personally would like a FFT function but thats just me.
Bill


G'day Cap'n Bill,

FFT function? I missed that one. Please explain.

I agree on the call ML routines. If I haven't been involved in a thread, then certainty it is the way I have always thought we should be heading. I had to check the wish list to make sure it wasn't there.

About to take off for my walk, but I'll add a suitably phrased wish to my wish list, and see if we can raise the profile of this one, as it would sure help Geoff with re-compiles in the long run, if it can be achieved.

Edit to done:
Wish 29: Call Machine Language Routines. Possibly use Peek & Poke to achieve.


http://www.themaximitecomputer.com/wish-list-priority-level- poll/

Cheers Don...Edited by donmck 2011-07-16
https://www.32v8.com/1
 
aargee
Senior Member

Joined: 21/08/2008
Location: Australia
Posts: 255
Posted: 09:30pm 14 Jul 2011
Copy link to clipboard 
Print this post

I agree with Bill, some sort of pseudo library function would be great. So you could say, have a comms library of routines that could handle RS-232 for instance, then all you do is load up the library with your program if you want to use it.

I don't know how difficult this might be to implement though...

Don..

FFT = Fast Fourier Transform.

Let's blast away those complex waveforms!

See here

- Rob


For crying out loud, all I wanted to do was flash this blasted LED.
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1310
Posted: 09:50pm 14 Jul 2011
Copy link to clipboard 
Print this post

  aargee said  
Don..
FFT = Fast Fourier Transform.
Let's blast away those complex waveforms!
See here
- Rob


Just as well I asked Rob.

As I say, you don't ask questions, you will never know the answers.

Mind you, this could fall out the back of my FIFO memory buffer. My wife says I have a short path through it on items I don't have a great interest in, like clothing, shopping, jewelry.................

But then, she accuses me of selective deafness too.

Her father said if I don't marry her, he would make sure I was locked up for 50 years. To think, I could be a free man today.

Cheers Don...
https://www.32v8.com/1
 
Nick

Guru

Joined: 09/06/2011
Location: Australia
Posts: 512
Posted: 10:08pm 14 Jul 2011
Copy link to clipboard 
Print this post

  donmck said  Her father said if I don't marry her, he would make sure I was locked up for 50 years. To think, I could be a free man today.


Someone got it wrong then.

I would have thought getting married is like being locked up for 50 years.

(She doesn't read this forum does she?)
 
Gadget
Regular Member

Joined: 22/06/2011
Location: Australia
Posts: 70
Posted: 10:21pm 14 Jul 2011
Copy link to clipboard 
Print this post

user callable machine code would be great, I have been reading the data sheets on the pic32 and it looks like its doable. it seems that you need to set up a portion of ram to do this, and in doing so I'm not sure about the impact on amount of memory available for basic. Have to some more research, but i think it can be done.

 
stuarts

Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 194
Posted: 10:25pm 14 Jul 2011
Copy link to clipboard 
Print this post

Nick, isn't the difference that marriage can be a life sentence. So it just depends on how long you live......

Stuart
Time is nature's way of keeping everything from happening all at once.
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1310
Posted: 10:28pm 14 Jul 2011
Copy link to clipboard 
Print this post

  Nick said  
  donmck said  

(She doesn't read this forum does she?)


She is actually one of the most switched on grannies ever.

What could you expect being married to me?

Outgrew her first 4g iPOD in about 4 minutes.

Possibly the first Ozzie with the amazon Kindle eReader. If it has "e" or "i" in front of it, then she is into it.

Could be responsible for the downfall of the local bookshops, as she put all of her friends onto purchasing firstly on-line books, then eventually eBooks.

But she doesn't read this forum.

Cheers Don...
https://www.32v8.com/1
 
seco61
Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 205
Posted: 11:22pm 14 Jul 2011
Copy link to clipboard 
Print this post

  Gadget said   user callable machine code would be great, I have been reading the data sheets on the pic32 and it looks like its doable. it seems that you need to set up a portion of ram to do this, and in doing so I'm not sure about the impact on amount of memory available for basic. Have to some more research, but i think it can be done.



Hi All.

I do not think that user callable machine code functions are possible. The thing to remember is that we are operating on a MCU, not a PC/computer with an operating system. Therefore we do not have available a loader that can load the module, relocate all the addresses to handle where it is loaded, establish linkages to the already loaded C runtime functions, etc.

When we compile MMBasic (or any other program for an MCU), we are utilising the linker of the IDE to perform this relocation and address reolution for us.

So the only way to add C funtions/commands to MMBasic is to modify the base code (mostly in custom .c and custom.h depending on what the code does) and recompile MMBasic. This is not hard to do and if you examine Geoff's code you will see that he has set it up so this can be done quite easily.

The only "runtime" loadable programs are going to be Basic subroutines - and this will become a possibility once Geoff releases updated firmware that allows subroutine calls, and parameter passing without the need for line numbers (ie. using labels).

Regards

Gerard



Regards

Gerard (vk3cg/vk3grs)
 
Nick

Guru

Joined: 09/06/2011
Location: Australia
Posts: 512
Posted: 11:34pm 14 Jul 2011
Copy link to clipboard 
Print this post

Would any non-BASIC callable code (M/L) interfere with the PIC32's video generation?

I haven't seen many big programs created yet for the Maximite so I am wondering what routines we need to call that can't be employed in the standard setup?

I can understand maybe an M/L routine processing some fast realtime data where the full 80Mhz of the PIC32 may be useful.

I'm curious what people are actually doing with their Maximites, from a software perspective that is.
 
seco61
Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 205
Posted: 11:39pm 14 Jul 2011
Copy link to clipboard 
Print this post

  Nick said   Would any non-BASIC callable code (M/L) interfere with the PIC32's video generation?

I haven't seen many big programs created yet for the Maximite so I am wondering what routines we need to call that can't be employed in the standard setup?

I can understand maybe an M/L routine processing some fast realtime data where the full 80Mhz of the PIC32 may be useful.

I'm curious what people are actually doing with their Maximites, from a software perspective that is.


Hi Nick.

The video system is interrupt driven and then utilises DMA transfers to the SPI module, again triggered by interrupts from the SPI module.

So, other code will not interfere with the video.

But again, the only way to have M/L programs is to compile them as part of MMBasic and create new custom commands/functions.

Regards

Gerard

Regards

Gerard (vk3cg/vk3grs)
 
Nick

Guru

Joined: 09/06/2011
Location: Australia
Posts: 512
Posted: 01:17am 15 Jul 2011
Copy link to clipboard 
Print this post

Cool. So video should be ok.

ML could be POKEed in, now that Geoff has added those commands. No way to do an EXEC or USR call to it though.

The BASIC is fast enough for most things and any good BASIC programmer can find workarounds for most ommisions.

It would be for specialized applications that need speed I guess. Maybe some real time application or even an arcade game.

What applications do people have in mind that can't be done with the existing setup?

I've highlighted Programmable characters as a way of speeding up graphics by defining special symbols so that more complex graphics could simply be PRINT'ed rather than drawing LINE's, CIRCLE's and Boxes. That's what *I* would like to see.

What does everyone else want to use the MM for from a Software perspective?
 
Ray B
Senior Member

Joined: 16/02/2007
Location: Australia
Posts: 219
Posted: 01:21am 15 Jul 2011
Copy link to clipboard 
Print this post

Seco61 said "The only "runtime" loadable programs are going to be Basic subroutines "

Does this mean for example that the published LCD routines for initialising an LCD from James could be linked in at the time using an INCLUDE command so you don't need to copy/paste code from one source code snippit library file into the program being written at the time ?

This way we publish standard subroutines in a library INCLUDE file that are called up by the new application file.

GW-Basic has a USR function and a CALL statement but I think that is just for calling machine code subroutines.

Comments ....

RayB from Perth WA
 
aargee
Senior Member

Joined: 21/08/2008
Location: Australia
Posts: 255
Posted: 01:29am 15 Jul 2011
Copy link to clipboard 
Print this post

Nick,

There is a really cheap way of getting colour, I remember the old variants of the Space Invaders arcade boxes that had coloured cellophane stuck to the screen for the static graphics. So if yo wanted red just stick your graphics in the red sector of the screen...

- Rob.



For crying out loud, all I wanted to do was flash this blasted LED.
 
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1310
Posted: 01:33am 15 Jul 2011
Copy link to clipboard 
Print this post

  aargee said   Nick,

There is a really cheap way of getting colour, I remember the old variants of the Space Invaders arcade boxes that had coloured cellophane stuck to the screen for the static graphics. So if yo wanted red just stick your graphics in the red sector of the screen...

- Rob.




Some may remember the same thing for TVs around the late 50s.
Blue up the top, and green down the bottom.

Cheers Don...


https://www.32v8.com/1
 
seco61
Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 205
Posted: 02:36am 15 Jul 2011
Copy link to clipboard 
Print this post

  Ray B said   Seco61 said "The only "runtime" loadable programs are going to be Basic subroutines "

Does this mean for example that the published LCD routines for initialising an LCD from James could be linked in at the time using an INCLUDE command so you don't need to copy/paste code from one source code snippit library file into the program being written at the time ?

This way we publish standard subroutines in a library INCLUDE file that are called up by the new application file.

GW-Basic has a USR function and a CALL statement but I think that is just for calling machine code subroutines.

Comments ....


Hi Ray.

When Geoff completes the firmware update that will allow MMBasic programs without line numbers (using labels, and hopefully with parameter passing), then what you want will be available. You would be able to use the existing MERGE command to load the MMBasic subroutine and would be able to access it as though you had it in your original code.

Of course, this technique could be used now - however you would have to ensure you had no line number conflicts and no variable name conflicts...

regards

Gerard

Regards

Gerard (vk3cg/vk3grs)
 
seco61
Senior Member

Joined: 15/06/2011
Location: Australia
Posts: 205
Posted: 02:49am 15 Jul 2011
Copy link to clipboard 
Print this post

  Nick said  
I've highlighted Programmable characters as a way of speeding up graphics by defining special symbols so that more complex graphics could simply be PRINT'ed rather than drawing LINE's, CIRCLE's and Boxes. That's what *I* would like to see.


Hi Nick.

I have an implementation of programmable fonts in my system at the moment. It is quite easy to implement and I will send a copy of the code to Geoff for his perusal, as I know he has it on his todo list. How many programmable characters would you see the need for? I am also extending the default font to include a lot of the code page 437 characters - but it all takes more memory.

On the list of what I would like to see in MMBasic is a PWM output (I am working on that now but it does require using pin 46 of the MCU - early stages yet).

Also I would like the ability to read and write "binary" files - again I am working on that as well.

And I would also like the ability to declare a variable as an integer (rather than defaulting to float) and also to store "whole" numbers as integers as opposed to floats. This would be to improve the speed when using numbers that have no fractional component, and that are within the range of a 32bit signed integer. This is at the early stages of investigation....

If only I was retired and more time.....

regards

Gerard

Regards

Gerard (vk3cg/vk3grs)
 
     Page 1 of 3    
Print this page
© JAQ Software 2024