Commit Graph

48 Commits

Author SHA1 Message Date
Andrius Štikonas 279941646f
Fix a typo:
Recieved -> Received
2019-10-23 20:01:23 +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
Dmitry Petukhov fe10bd4df4
update hashes for stage0_monitor 2019-10-12 02:42:57 +05:00
Dmitry Petukhov c9232a21c7
reduce stage0_monitor size by 6 bytes (put often used values in regs) 2019-10-12 01:33:09 +05:00
Dmitry Petukhov ecf9194374
shave another 4 bytes from stage0 monitor bu using `TRUE R11` for toggle 2019-10-12 01:30:05 +05: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 8c7341ddf7
Revised cc_x86.s to leverage new M2-Planet support for envp 2018-10-17 16:50:31 -04:00
Jeremiah Orians bf62112f18
Thank you akkartik 2018-09-19 22:03:14 -04:00
Jeremiah Orians f2acc132f9
Expand documentation and make cc_x86.s compatable with M2-Planet's --debug 2018-08-31 18:52:18 -04:00
Jeremiah Orians 8a9eec7dce
Correct unupdated checksum 2018-08-26 15:35:31 -04:00
Jeremiah Orians 2988d0e391
Release_0.2.0 2018-08-26 12:12:30 -04:00
Jeremiah Orians f513b3f6ac
Release 0.1.0 2018-03-20 20:45:33 -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 45d9394d43
Eliminated stage1_assembler-0's need for memory 2017-12-16 18:51:51 -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 2882db4338
Incorporated DEHEX rom into build process 2017-06-03 20:48:38 -04:00
Jeremiah Orians a37d738138
Wrapup work following new function implementation 2017-05-30 23:02:04 -04:00
Jeremiah Orians 5575d78b18
Added a basic test for correctness of rom results 2017-05-29 23:08:33 -04:00