6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Mon Apr 29, 2024 5:44 pm

All times are UTC




Post new topic Reply to topic  [ 44 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: Another 65816 STC Forth
PostPosted: Mon Dec 12, 2016 7:09 am 
Offline

Joined: Fri Apr 15, 2016 1:03 am
Posts: 136
At http://174.31.10.176:81/65816F/

Runs in 65816 (& 65265) native mode.
Definitely a work in progress, but most things work correctly.

Edit: update IP address


Last edited by leepivonka on Mon Jun 06, 2022 3:49 am, edited 3 times in total.

Top
 Profile  
Reply with quote  
PostPosted: Mon Dec 12, 2016 10:03 am 
Offline

Joined: Mon Jan 07, 2013 2:42 pm
Posts: 576
Location: Just outside Berlin, Germany
leepivonka wrote:
Definitely a work in progress, but most things work correctly.
Ah, thanks. Is that yours? I'm down with a fever and can't be trusted with machinery any more complicated than a fork for the moment, so it will be a few days before I can take a better look...


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 13, 2016 6:22 am 
Offline

Joined: Fri Apr 15, 2016 1:03 am
Posts: 136
Yes, it's mine. It tries to put lots of handy things for a 65816 system (EhBasic type functions + assembler + disassembler + debugger + system support + I/O drivers + filesystem handlers + ???) in a big flash ROM available at reset. There are some things that could use more work (like Forth compile peephole optimization) & some things that aren't really started yet (like filesystem handlers), but it generally works well on the simulator.

Reading about your Liara Forth project, some of my goals are similar to yours. You've motivated me to start writing this thing up for presentation!

0265sxb is the port for the '265sxb board. This version uses $2000-$7fff for the ROM code, so it can load & run on an out-of-the-box board. It uses $0300-$1fff as RAM. It has not been tested on real hardware yet, but does run in the generic 65816 simulator using bare-bones Mensch monitor console simulation routines. After it is tested & working, the next step is to move it to $8000-$deff in the boot bank of the flash ROM so it'll start on reset.
Future possible directions:
* Fill in $e000-$ffff in the boot bank of the flash ROM with code & replace the Mensch monitor.
* Set up a flash filesystem in the other banks of the flash ROM, with Forth words to access files there.
* Attach 1 or 2 SD cards, with Forth words to access them.
* Set up a FAT filesystem handler.


Top
 Profile  
Reply with quote  
PostPosted: Thu Dec 15, 2016 11:12 am 
Offline

Joined: Mon Jan 07, 2013 2:42 pm
Posts: 576
Location: Just outside Berlin, Germany
So, first somewhat clear-headed reaction: Wow, great work!

I'm curious about the choice of multi-tasking words. I'm planning to use those from Brad Rodriguez' paper at http://www.bradrodriguez.com/papers/mtasking.html (MULTI, SINGLE, TASK, ACTIVE, PAUSE, SLEEP, WAKE, STOP, WAIT, SIGNAL), but see you have used others. Any reason not to use Brad's? I know there are no ANSI words, so there is no accepted terminology ...

Can't wait to read the code when I'm completely well again. Uh, what's the license?


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 17, 2016 3:47 am 
Offline

Joined: Fri Apr 15, 2016 1:03 am
Posts: 136
Thanks!

On multi-tasking: Some of this is in ANSI & previous usage I've seen, and some I just made up to fill out the set. I'm tempted to adopt Brad's set.

On the license: Does "I assert copyright & give permission for any use" sound reasonable?


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 17, 2016 4:47 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8428
Location: Southern California
We have the "Copyright considerations" topic at viewtopic.php?f=1&t=3090 , started by Ed. There's some good stuff there.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 17, 2016 8:46 am 
Offline

Joined: Sun Apr 10, 2011 8:29 am
Posts: 597
Location: Norway/Japan
leepivonka wrote:
On the license: Does "I assert copyright & give permission for any use" sound reasonable?
Nope. Well, it depends.
According to my company's copyright attorney, 'use' (even with 'any') in copyright terms means one thing only: The right to use, i.e. execute/run the software/product. If you want to give the right to modify, you must state so explicitly. If you want to give the right to distribute, you must state so explicitly. Same for just distribute, and for distributing a modified work. (Edit: And to be allowed to copy, of course! That's where the name copyright comes from. If you don't explicitly give the user the right to make a copy, he doesn't have any.)

That's why you will find those terms in various licenses, e.g. the GPL and others. So, decide on exactly what you want to allow the user to do, and state so explicitly. If you only want to give the right to sit at home and run the software, nothing else, then 'use' (with or without 'any') will cover it, but that's all it covers.

There are good historic reasons for why copyright law was written this way. Imagine you were Beethoven, and you sell your composition to a guy with a printer. Fixed, one time price (composers used to do that). Then the printer guy decides to "improve" your composition, and sells the modified score, as a Beethoven piece, or changes some parts and sell it as his own composition. Even if you/Beethoven at that point had no monetary interest in the composition, it would be terrible. Such things used to happen, going all the way back to Bellman's time, and that is why copyright law was written the way it is.

The easiest way is to choose one of the available licenses (BSD, GPL, MIT etc) and attach one of them. All the hard work of getting the wording right, in legal terms, has been done for you.


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 17, 2016 11:13 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
Indeed, in short, writing your own license isn't a wise move - it probably won't accomplish what you intended.


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 17, 2016 6:16 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8155
Location: Midwestern USA
Tor wrote:
The easiest way is to choose one of the available licenses (BSD, GPL, MIT etc) and attach one of them. All the hard work of getting the wording right, in legal terms, has been done for you.

I would not use GPL for anything. It doesn't protect the rights of the copyright holder at all and in fact, was not written with that in mind. Geoff Graham explains why in this essay.

The license and copyright notice I use in software I have released for general usage is as follows:

    Copyright ©1994-2016 by BCS Technology Limited
    All Rights Reserved

    ──────────────────────────────────────────────────────────────────────────────────────────────
    Permission is hereby granted to use, copy, modify and distribute this software, either in stand-alone form or as part of a complete package. BCS Technology Limited requires that a copyright acknowledgment worded as follows must be present in any documentation provided with the package of which this software is a component:

      Portions of this software copyright ©1994-2016 by BCS Technology Limited. All rights reserved.

    The above copyright acknowledgment must also appear at least once in the source code of the package into which this software has been integrated.

    Redistribution of this software in any form must be at no charge to the end user. This code or any part thereof, including but not limited to any derivation, MAY NOT be incorporated into any package intended for sale, unless written permission to do so has been granted by BCS Technology Limited. Please visit http://bcstechnology.net for information on how to contact us to obtain such permission.

    THERE IS NO WARRANTY OF ANY KIND WITH THIS SOFTWARE. While it is believed that this software will perform as described, the user assumes all risk in connection with the incorporation of this software into any system. If this provision is not acceptable to you do not use this software and immediately delete it from your system.

The above was reviewed by our company attorney and suitably edited. It is enforceable in any country that is a signatory to the Berne Convention.

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 17, 2016 6:22 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
The GPL does exactly what it intends to do, and protects the rights of both the originator and the end-user. It isn't appropriate for everyone, and the link you share illustrates that. Perhaps it's reasonable advice to anyone not to use a license if you don't understand the purpose of it. But it's certainly reasonable advice not to roll your own - in your case, you had a lawyer, you preferred to do it that way, and that's fine for you. Most likely it constrains people who use your software, possibly in ways you didn't intend. But I'm glad you do at least offer a license!


Top
 Profile  
Reply with quote  
PostPosted: Sat Dec 17, 2016 6:33 pm 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8155
Location: Midwestern USA
BigEd wrote:
The GPL does exactly what it intends to do, and protects the rights of both the originator and the end-user.
.
The origins of the GPL are rooted in Stallman's desire to be able to use and tinker with software without having to actually pay for it. Our company attorney, who is quite familiar with the history of the GPL, is of the opinion that the copyright holder is not protected at all by the GPL, and that anything more than trivial modifications to "protected" software would open the door to the modified software legally being considered a separate work. He also had pointed out at one time that there wasn't any U.S. case law in which the GPL was enforced to the benefit of the copyright holder. I don't know if any such enforcement has occurred in other countries.

I'm not a lawyer, of course, so I'm relying on the words and knowledge of someone who did graduate law school and passed the bar examination.

Quote:
But it's certainly reasonable advice not to roll your own - in your case, you had a lawyer, you preferred to do it that way, and that's fine for you. Most likely it constrains people who use your software, possibly in ways you didn't intend. But I'm glad you do at least offer a license!

The only constraints are unambiguously spelled out in the license. Of course, legal decisions handed down in courts sometimes defy logic. :?

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 20, 2016 6:07 am 
Offline

Joined: Sat Dec 13, 2003 3:37 pm
Posts: 1004
As Tor said, license your code. Don't make one up, and don't leave it unlicensed, don't use a license for written works, use a software license. The BSD and Apache licenses are about as close to the intent of public domain as you can get.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 20, 2016 9:14 am 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10793
Location: England
I recently saw a mention of the Unlicense, but for me it looks inferior to the CC0 license.


Top
 Profile  
Reply with quote  
PostPosted: Thu Jan 05, 2017 3:53 am 
Offline

Joined: Fri Apr 15, 2016 1:03 am
Posts: 136
Apache 2.0 license applied.
Modifications continue.
Since it seems the Mensch monitor likes S28 but not S19, I've changed the hex file to S28.


Top
 Profile  
Reply with quote  
PostPosted: Thu Jan 05, 2017 7:36 am 
Offline

Joined: Mon Jan 07, 2013 2:42 pm
Posts: 576
Location: Just outside Berlin, Germany
Great! Just out of curiosity, any special reason you're not hosting this on GitHub? Again, just curious.

One heads up - I've found that all the subroutine jumps in my STC Forth model tend to confuse the assembler when trying to figure out which width A and XY have, to the point where I am going to go back and put asserts (stuff like .!a16 in TinkAsm) at the beginning of every word definition as a new rule of Best Practice (this in fact was the source of my vexing Backspace bug). I'll also be isolating all put_chr/get_chr accesses in EMIT/KEY earlier than planned because of this - I had wanted to wait so they can be more easily vectored with DEFERs in high-level code and access PAUSE, but I should get to the point where all 8-bit A code lives in very exactly defined areas.

This, I guess, is how projects get delayed :shock: .


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 44 posts ]  Go to page 1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 11 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: