Andrius Štikonas
279941646f
Fix a typo:
...
Recieved -> Received
2019-10-23 20:01:23 +01:00
Andrius Štikonas
defe36f55d
Move the SET section down.
...
It needs hex2 assembler which was not yet available at that point.
2019-10-14 00:59:14 +01:00
Andrius Štikonas
f3feb7497d
SET is compiled from hex2 sources, not hex0.
2019-10-14 00:58:34 +01:00
Dmitry Petukhov
c563ce3ddc
reduce stage0_monitor size by 6 bytes (toggle default zero, use mux)
...
The toggle can have default state of zero, and then non-zero means
second nybble is processed. That allows to skip initialization of
toggle, and save 4 bytes.
But then we cannot create value 1 with 4-byte instruction.
But we can get something out of this situation: we can initialize
R11 to 0x1101, and R15 to 0xF, and then we can get 0x1100 with MUX:
MUX R0 R15 R11 R8 ; 0x1100 = ((0x1101 & ~0xF) | (0 | 0xF))
And we will also have value 0xF in R15.
0xF is used twice as immediate thus we save another 4 bytes
by using non-immediate instructions two times
We save 6 bytes overall.
(We lose 2 bytes because we use immediate load to R15)
2019-10-12 13:01:08 +05:00
Jeremiah
41cf0f4c58
Merge pull request #21 from dgpv/stage0_minimization
...
Reduce stage0_monitor by 18 bytes
2019-10-11 17:45:48 -04:00
Dmitry Petukhov
fe10bd4df4
update hashes for stage0_monitor
2019-10-12 02:42:57 +05:00
Andrius Štikonas
b7e3c97de6
Fix some typos in bootstrapping Steps.org
...
equivelent -> equivalent
specificy -> specify
concatinates -> concatenates
langauge -> language
atleast -> at least
2019-10-11 00:06:59 +01:00
Dmitry Petukhov
0e3d05fafc
make stage0 monitor 4 bytes smaller by using FALSE to put zero in R1
2019-10-10 01:36:19 +05:00
Jeremiah Orians
d12606c9bb
Minor update in bootstrapping Steps note
2019-04-29 20:03:15 -04:00
no_identd
0f84c27418
Fixed obvious typo in licensing terms @ line 4
2018-07-24 20:55:44 +02:00
Jeremiah Orians
56bf53390c
Updated boostrapping steps to match current pieces
2018-03-21 09:38:38 -04:00
Jeremiah Orians
8396dc15df
Tuned M0 for much better performance (down to 9/32 previous)
2017-12-26 00:01:53 -05:00
Jeremiah Orians
deac93c6f2
Updated hex2 to improve performance and reduce size
2017-12-24 17:17:37 -05:00
Jeremiah Orians
c81c2567ab
Shrink stage1_assembler-1 further
2017-12-23 17:53:31 -05:00
Jeremiah Orians
cb2bc1309f
Trimmed down hex0 and improved its performance
2017-12-23 17:17:24 -05:00
Jeremiah Orians
0805284391
Hex1 assembler optimization to reduce size and number of clock cycles
...
required to process input
2017-12-17 21:29:35 -05:00
Jeremiah Orians
2dcb5017a1
Updating documentation
2017-12-16 18:54:38 -05:00
Jeremiah Orians
2b7e24e31c
Forgot to update the checksums
2017-09-16 07:46:44 -04:00
Jeremiah Orians
c06faa77e0
Release 0.0.9
2017-08-18 12:02:02 -04:00
Jeremiah Orians
9be2763c40
Incorporated number? and symbol? into stage2 lisp
2017-08-18 11:41:21 -04:00
Jeremiah Orians
1926a9d6b7
Added list->string primitive to stage2 lisp
2017-08-18 11:15:59 -04:00
Jeremiah Orians
ec47252222
Accidentally forgot to update the checksums
2017-07-30 21:56:11 -04:00
Jeremiah Orians
21e06a6dfa
Bunch of renames and 1 new internal function for future use
2017-07-30 21:14:25 -04:00
Jeremiah Orians
51c7c98a05
Adding string? primitive to stage2 lisp
2017-07-30 21:01:09 -04:00
Jeremiah Orians
157bec9609
Added char? primitive to stage2 lisp
2017-07-30 20:53:23 -04:00
Jeremiah Orians
ef68ad2d3b
Added string->list to stage2 lisp
2017-07-30 20:38:56 -04:00
Jeremiah Orians
7619d6c779
Added char->integer and integer->char
2017-07-30 18:42:36 -04:00
Jeremiah Orians
f3f8ec5a32
Implemented basic raw string support in stage2 lisp, many more
...
enhancements required to make it fully useful
2017-07-30 18:04:29 -04:00
Jeremiah Orians
5b302ba9d0
Actually write to the desired output
2017-07-13 22:01:25 -04:00
Jeremiah Orians
23b12e0ef9
Fixed lisp's behavior when there is insufficient memory
2017-06-24 11:49:28 -04:00
Jeremiah Orians
4963fcfebc
Implemented graceful FAILURE and PRINT
2017-06-24 10:06:50 -04:00
Jeremiah Orians
a51c243088
Implementing LSHIFT and RSHIFT per request
2017-06-24 08:49:08 -04:00
Jeremiah Orians
37b061defc
Ensure changelog, checksums and whitespacing rules are updated and enforced
2017-06-24 08:14:31 -04:00
Jeremiah Orians
800c867085
Altered EXECUTE into indirection
2017-06-17 22:27:15 -04:00
Jeremiah Orians
3b05f83e6a
Fixed the Carriage return issue and CMOVE zeroing issue
2017-06-17 22:05:33 -04:00
Jeremiah Orians
b3eedb60de
Refining FORTH to enable more productive development
2017-06-17 00:02:33 -04:00
Jeremiah Orians
97a145ac1f
Enabled support for HIDDEN Flag
2017-06-16 18:08:33 -04:00
Jeremiah Orians
c43171c7d2
Added requested ABORT function to forth
2017-06-16 17:43:57 -04:00
Jeremiah Orians
8b0384b370
Added an EXECUTE command primitive to stage2 forth
2017-06-16 16:36:03 -04:00
Jeremiah Orians
9e2d807553
Fixed the arithmetic order issue found by reepca
2017-06-15 16:36:05 -04:00
Jeremiah Orians
41d3ebb643
Fixing forth comparisons thanks to reepca
2017-06-15 06:33:45 -04:00
Jeremiah Orians
54f4019767
Incorporated requested function into stage2 forth
2017-06-14 23:07:50 -04:00
Jeremiah Orians
2a12799d82
Fixings remaining stack offset bugs
2017-06-14 21:25:41 -04:00
Jeremiah Orians
02b2d231a6
Bug fix thanks to reepca
2017-06-14 21:13:52 -04:00
Jeremiah Orians
a37d738138
Wrapup work following new function implementation
2017-05-30 23:02:04 -04:00
Jeremiah Orians
f28b86d697
Implemented NULL? into stage2 lisp and adjusted accordingly
2017-05-29 22:36:22 -04:00
Jeremiah Orians
9bf8255849
Fixing assoc in mixed lexical scope
2017-05-21 21:13:04 -04:00
Jeremiah Orians
7b5c8788b1
Wrap up essential pieces
2017-05-20 13:55:36 -04:00
Jeremiah Orians
24d67b3810
Update documentation to reflect implementation changes in stage0 lisp
2017-05-14 14:45:10 -04:00
Jeremiah Orians
0520fcb23c
Compacting garbage collected lisp rollup
2017-05-06 21:44:05 -04:00