Commit Graph

21 Commits

Author SHA1 Message Date
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 d21dc971d1
leave stack at zero; to not do FALSE R15 because it is zero on start 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 2ba42c00c1
test that asm comments in stage0_monitor.hex0 match the resulting binary 2019-10-10 02:36:04 +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 f513b3f6ac
Release 0.1.0 2018-03-20 20:45:33 -04:00
Jeremiah Orians c67bbc8fff
Fix labels and improve comments 2017-12-16 16:40:26 -05:00
Jeremiah Orians 87477db7eb
Added requested Copyright notices 2017-04-01 17:26:44 -04:00
Jeremiah Orians 5f6c7f82bc
Added license to all source files 2017-03-28 20:25:39 -04:00
Jeremiah Orians d7bab06902
Revised stage0 monitor with several minor improvements and updated checksums 2016-10-29 07:45:23 -04:00
Jeremiah Orians 73651b577e
Fixed typo of CMPSKIP(u) to CMPSKIP(u)I which is required per the naming convention 2016-10-29 07:03:25 -04:00
Jeremiah Orians 5dd9e79770
Started conversion process of enforcing tabs for indentation but spaces for alignment 2016-09-05 18:46:15 -04:00
Jeremiah Orians fa0e0d063b
Prototyping an improvement to The Hex monitor's user interface for more primative hardware 2016-08-24 19:44:54 -04:00
Jeremiah Orians 4b56570284
Unified Hex naming scheme to minimize confusion 2016-08-14 12:53:38 -04:00
Jeremiah Orians 9c19a41d2c
Updated syntax of assembler to simplify task of identifying labels 2016-07-01 17:14:14 -04:00
Jeremiah Orians 806ffaaa77
Improved Stage0 and reduced size of required binary 2016-06-25 23:17:35 -04:00
Jeremiah Orians bc9012a1f0
Hex conversion complete for new stage0_monitor, it is officially self hosting. 2016-06-19 09:59:02 -04:00
Jeremiah Orians 4b781d07d1
Turned off debug mode by default and created a Stage0_monitor in assembly, Hex conversion will be by shortly 2016-06-18 19:29:24 -04:00
Jeremiah Orians 14e4c6746a
Minor reorganization 2016-06-05 14:46:30 -04:00
Jeremiah Orians 35cba707ba
Organized files and expanded notes 2016-05-21 20:12:34 -04:00