summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Jonas Hvid [Fri, 6 Mar 2020 17:15:15 +0000 (18:15 +0100)]
Add "Hello world" UEFI application
Jonas Hvid [Fri, 6 Mar 2020 13:44:09 +0000 (14:44 +0100)]
Set up QEMU and add some notes on UEFI
Jonas Hvid [Fri, 6 Mar 2020 13:12:18 +0000 (14:12 +0100)]
Separate example code from sys.f and add build instructions
Jonas Hvid [Tue, 10 Dec 2019 17:40:58 +0000 (18:40 +0100)]
Add support for comments
Jonas Hvid [Tue, 10 Dec 2019 17:21:41 +0000 (18:21 +0100)]
Reimplement HELLO in Forth
This implementation is a bit awkward right now, but we should be able to clean
it up later.
Jonas Hvid [Tue, 10 Dec 2019 15:58:14 +0000 (16:58 +0100)]
Implement looping words and add fibonacci example
Jonas Hvid [Tue, 10 Dec 2019 15:28:35 +0000 (16:28 +0100)]
Define ELSE
Jonas Hvid [Tue, 10 Dec 2019 15:26:36 +0000 (16:26 +0100)]
Define IF and THEN
Jonas Hvid [Tue, 10 Dec 2019 14:51:24 +0000 (15:51 +0100)]
Add error handling to parse_number
Jonas Hvid [Tue, 10 Dec 2019 14:36:11 +0000 (15:36 +0100)]
Fix bug in interface of parse_number
This procedure did not actually do what it claimed to be doing. It just happened
to work with the way it was called.
Jonas Hvid [Mon, 9 Dec 2019 17:09:38 +0000 (18:09 +0100)]
Implement some arithmetic words
Jonas Hvid [Sun, 8 Dec 2019 20:51:08 +0000 (21:51 +0100)]
Define ':' and ';' in Forth
Jonas Hvid [Sun, 8 Dec 2019 18:28:29 +0000 (19:28 +0100)]
Support compilation mode in INTERPRET
Now we can do
S" BOOP" CREATE ] DOCOL HELLO 3 2 + .U NEWLINE EXIT [ BOOP
Jonas Hvid [Sun, 8 Dec 2019 17:32:21 +0000 (18:32 +0100)]
Add space for immediate flag
We don't actually use this for anything yet.
Jonas Hvid [Fri, 6 Dec 2019 13:48:12 +0000 (14:48 +0100)]
Implement CREATE
We can now do stuff like:
S" 3HELLO" CREATE
S" DOCOL" FIND >CFA ,
S" HELLO" FIND >CFA ,
S" HELLO" FIND >CFA ,
S" HELLO" FIND >CFA ,
S" EXIT" FIND >CFA ,
3HELLO
Jonas Hvid [Fri, 6 Dec 2019 12:37:07 +0000 (13:37 +0100)]
Implement ','
Jonas Hvid [Fri, 6 Dec 2019 12:30:54 +0000 (13:30 +0100)]
Add variables 'LATEST' and 'HERE'
These will be used for compilation.
Jonas Hvid [Tue, 3 Dec 2019 18:54:21 +0000 (19:54 +0100)]
Automatically parse integers in INTERPRET
Jonas Hvid [Tue, 3 Dec 2019 18:35:51 +0000 (19:35 +0100)]
Implement '!' and '@' commands and add 'STATE' variable
Jonas Hvid [Tue, 3 Dec 2019 18:28:17 +0000 (19:28 +0100)]
Refactor: Create INTERPRET word
(We will probably want to write this in assembly when we add more
functionality.)
Jonas Hvid [Sat, 30 Nov 2019 17:35:28 +0000 (18:35 +0100)]
Move some assembly functions to separate module
Jonas Hvid [Sat, 30 Nov 2019 15:48:44 +0000 (16:48 +0100)]
Remove some unused code
Jonas Hvid [Sat, 30 Nov 2019 15:47:04 +0000 (16:47 +0100)]
Support executing words that the user enters
Jonas Hvid [Mon, 25 Nov 2019 19:26:48 +0000 (20:26 +0100)]
Add metadata to all words using macro
Jonas Hvid [Mon, 25 Nov 2019 19:01:49 +0000 (20:01 +0100)]
Implement FIND
I could only be bothered to add some of the words to the dictionary in this
commit. We should probably have a macro for that.
Jonas Hvid [Sat, 23 Nov 2019 18:07:30 +0000 (19:07 +0100)]
Implement word for reading numbers
Jonas Hvid [Sat, 23 Nov 2019 17:00:05 +0000 (18:00 +0100)]
Implement .U
Jonas Hvid [Sat, 23 Nov 2019 16:21:29 +0000 (17:21 +0100)]
Also implement BRANCH
I feel like we should theoretically be able to implement this in terms of
0BRANCH, but since we don't have a mechanism for getting the "outer" value of
RSI inside the function, we can't just implement it as
: BRANCH 0 0BRANCH ;
In that case, RSI would point to EXIT when executing 0BRANCH.
Jonas Hvid [Sat, 23 Nov 2019 16:07:01 +0000 (17:07 +0100)]
Rename TYPE to TELL
This is what jonesforth uses, so we'll use the same convention.
Jonas Hvid [Sat, 23 Nov 2019 16:05:32 +0000 (17:05 +0100)]
Implement 0BRANCH
Jonas Hvid [Thu, 21 Nov 2019 21:55:59 +0000 (22:55 +0100)]
Add comments to Forth words that we expect to keep
Jonas Hvid [Thu, 21 Nov 2019 21:11:42 +0000 (22:11 +0100)]
Implement and use LIT
Jonas Hvid [Thu, 21 Nov 2019 18:12:47 +0000 (19:12 +0100)]
Implement READ_WORD
Jonas Hvid [Thu, 21 Nov 2019 17:32:27 +0000 (18:32 +0100)]
Implement TYPE
Jonas Hvid [Thu, 21 Nov 2019 17:23:14 +0000 (18:23 +0100)]
Change indentation to use 2 spaces
Jonas Hvid [Tue, 19 Nov 2019 18:50:13 +0000 (19:50 +0100)]
Add notes on IO and compilation
Jonas Hvid [Mon, 18 Nov 2019 17:47:55 +0000 (18:47 +0100)]
Add list of built-in variables
Jonas Hvid [Mon, 18 Nov 2019 17:23:37 +0000 (18:23 +0100)]
Terminate program correctly
Jonas Hvid [Mon, 18 Nov 2019 17:08:20 +0000 (18:08 +0100)]
Remove unused code
Jonas Hvid [Mon, 18 Nov 2019 16:49:25 +0000 (17:49 +0100)]
Add extension to notes file
Jonas Hvid [Sat, 16 Nov 2019 20:24:30 +0000 (21:24 +0100)]
Add somewhat working hello world
We exit by segfaulting, which is not very elegant.
Jonas Hvid [Thu, 14 Nov 2019 17:47:05 +0000 (18:47 +0100)]
Implement basic return stack
Jonas Hvid [Thu, 14 Nov 2019 17:28:11 +0000 (18:28 +0100)]
Add notes on how literals are handled
Jonas Hvid [Thu, 14 Nov 2019 17:24:35 +0000 (18:24 +0100)]
Add documentation describing how definitions are stored
Jonas Hvid [Thu, 14 Nov 2019 17:03:42 +0000 (18:03 +0100)]
Implement "next" macro and add related notes
Jonas Hvid [Thu, 14 Nov 2019 16:32:21 +0000 (17:32 +0100)]
Add notes about dictionary
Jonas Hvid [Wed, 13 Nov 2019 20:53:45 +0000 (21:53 +0100)]
Hello world in FASM