Commit Graph

56 Commits

Author SHA1 Message Date
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