215 lines
8.3 KiB
Org Mode
215 lines
8.3 KiB
Org Mode
## Copyright (C) 2016 Jeremiah Orians
|
|
## This file is part of stage0.
|
|
##
|
|
## stage0 is free software: you an redistribute it and/or modify
|
|
## it under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation, either version 3 of the License, or
|
|
## (at your option) any later version.
|
|
##
|
|
## stage0 is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
##
|
|
## You should have received a copy of the GNU General Public License
|
|
## along with stage0. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
* Current
|
|
** Added
|
|
[CHAR] was incorporated into stage3 FORTH to reduce ascii lookup
|
|
UNTIL was incorporated into stage3 FORTH
|
|
'DODOES was incorporated into stage2 FORTH
|
|
LATEST! was incorporated into stage2 FORTH
|
|
R@ was incorporated into stage2 FORTH
|
|
DODOES was incorporated into stage2 FORTH
|
|
DOVAR was incorporated into stage2 FORTH
|
|
Added a variable BASE to control what base numbers are printed in stage3 FORTH
|
|
Added BOUNDS for common setup for sequence-iterating loops in stage3 FORTH
|
|
Added region-comment "(" (note that it doesn't nest) to stage3 FORTH
|
|
Added hex dump printer DUMP and support words to stage3 FORTH
|
|
Added DOES> and supporting words, and used it to make VARIABLE, CONSTANT, and DEFER in stage3 FORTH
|
|
Added TUCK, MIN, SPACES, :NONAME, FILL, and <> to stage3 FORTH
|
|
Added LSHIFT and RSHIFT to stage2 FORTH
|
|
Added PRINT to stage2 FORTH
|
|
Added Low memory detection to stage2 FORTH and now exits gracefully
|
|
Added Low memory detection to stage2 Lisp and now exists gracefully
|
|
Improved ISA Notes about M0 and hex2 to help bootstrappers
|
|
Added rain1's new user forth starting script, which is not actually required for bootstrapping but rather convenience
|
|
|
|
** Changed
|
|
Minor refactor of stage3 FORTH by reepa
|
|
Stage3 FORTH WHILE's compile-time stack effect is now consistent with gforth
|
|
Changed behavior of stage2 FORTH's CREATE to better match the way it usually works.
|
|
Stage0 vm now will show an error message if the size of the rom exceeds the available memory
|
|
Modified stage3 forth library to dump upper case hex values
|
|
Modified stage3 forth JUMP-TO, to support 32bit absolute addresses
|
|
|
|
** Fixed
|
|
Updated checksums to reflect changes in stage2 FORTH
|
|
Fixed dis behavior in regards to hex values in strings
|
|
Updated checksums to reflect changes in stage2 Lisp
|
|
Added missing library reference form stage2 lisp High level prototype
|
|
Fixed bug in stage2 FORTH PRINT function
|
|
|
|
** Removed
|
|
the HERE and DP! are gone from ' now in stage3 FORTH
|
|
|
|
* 0.0.8 - 2017-06-17
|
|
** Added
|
|
Incorporated High level prototypes into makefile
|
|
Added logic to catch non-existent input files and report a useful error message
|
|
Added DP! to stage2 forth
|
|
Added EXECUTE to stage2 forth
|
|
Added ABORT to stage2 forth
|
|
Added string print and address to output of High level prototype disassembler
|
|
Added initial prototype library for forth developers who want better ANS support
|
|
Expanded stage0 VM Halcode to provide a way to lookup total amount of physical memory
|
|
|
|
** Changed
|
|
Extended VPATH in makefile to shorten dependency names
|
|
Updated checksum for stage2 forth
|
|
Reversed the order of operands in stage2 forth arithmetic
|
|
Modified webIDE to leverage new enhanced disassembler output
|
|
Altered stage2 forth KEY to echo keypress so that S" and similiar functions behave like gforth
|
|
Altered EXECUTE in stage2 forth to set R12 and load its pointer and jump
|
|
|
|
** Fixed
|
|
Stack offset bug in stage2 forth was found and fixed by reepca in record time
|
|
Fixed 2DUP and ?DUP in stage2 forth
|
|
Swapped TRUE and FALSE values in stage2 forth to match http://lars.nocrew.org/dpans/dpans3.htm#3.1.3
|
|
Adjusted order of comparisions to better match ans
|
|
Stack leak in stage2 forth found and corrected
|
|
Stage2 forth no longer attempts to parse carriage returns
|
|
Stage2 forth now will display and error and clear the stacks in the event of an undefined input
|
|
Stage2 forth now respects the HIDDEN Flag
|
|
Stage2 forth now no longer clears during CMOVE to better comply with the spec
|
|
|
|
** Removed
|
|
Removed need for sponge to be used to run webIDE
|
|
|
|
* 0.0.7 - 2017-06-03
|
|
** Added
|
|
Added HACKING guide covering critical sections
|
|
Added rom building steps to make
|
|
Added more advanced cleaning options to makefile
|
|
Extended stage2 lisp with null?
|
|
Extended stage2 lisp with string=?
|
|
Exported DEHEX rom image to makefile and added checksum
|
|
|
|
** Changed
|
|
Cleaned up x86 notes and moved into x86 folder
|
|
Changed the results of make all to include all of the essential roms
|
|
Made makefile parallel build friendly
|
|
|
|
** Fixed
|
|
Fixed failure to lookup symbols that are identical but are in different lexical scopes
|
|
Updated Bootstrapping instructions to reflect new checksum and recommendation for most minimal requirements
|
|
Fixed flaws in existing makefile
|
|
Added build instructions to README and listed dependencies
|
|
Imported High level prototypes for new functions
|
|
|
|
** Removed
|
|
Purged notes that no longer apply or belong outside of stage0
|
|
Removed redundent clean options from makefile
|
|
|
|
* 0.0.6 - 2017-05-20
|
|
** Added
|
|
Added absolute addresses to High level assembler output to aid in debugging of complex assembly programs
|
|
Added Let expressions to High Level prototype lisp
|
|
Added Let expressions to stage2 lisp implementation
|
|
|
|
** Changed
|
|
Converted High level prototype lisp from dynamic scope to Lexical
|
|
Converted stage2 lisp implementation from dynamic scope to Lexical
|
|
|
|
** Fixed
|
|
Made Web debugger provide more useful information
|
|
Fixed regression in web debugger's ability to read input files
|
|
Fixed regression in stage2 lisp garbage collection interacting with let expressions
|
|
Fixed SHA256SUM of stage2 lisp to match new binary result
|
|
|
|
** Removed
|
|
|
|
* 0.0.5 - 2017-05-06
|
|
** Added
|
|
Added write to lisp
|
|
Added Cell Compactor to Lisp garbage collector resulting with multiple performance improvements
|
|
Added bootstrapping steps documentation
|
|
Added ability to specify amount of Available RAM on a Per run basis, however 16KB is the default
|
|
|
|
** Changed
|
|
Correct lisp High level prototype to include line comments
|
|
Changed default RAM to 16KB
|
|
Updated bootstrap documentation to match the memory requirements of the individual steps
|
|
|
|
** Fixed
|
|
Fixed missing traces when memory outside of world are accessed when profiling
|
|
Imported improved High Level Lisp Prototype
|
|
Updated bootstrap documentation to reflect change in Lisp sha256sum caused by recent performance upgrade
|
|
|
|
** Removed
|
|
|
|
* 0.0.4 - 2017-02-18
|
|
** Added
|
|
+ Added missing primitives from High level prototype to lisp implementation
|
|
+ Improved Eval's debugging messages
|
|
|
|
** Changed
|
|
+ Readline function no longer displays EOF Char should the user terminate input with Ctrl-d
|
|
|
|
** Fixed
|
|
+ Corrected Eval's processing of ASCII type
|
|
+ Make IF statements behave correctly
|
|
+ Enabled support for negative numbers
|
|
+ Properly display Integer Cells with the value of ZERO
|
|
|
|
** Removed
|
|
+ Removed Eval's default behavior of unknown input
|
|
|
|
* 0.0.3 - 2017-02-17
|
|
** Added
|
|
+ Added a primitive Lisp implementation in assembly
|
|
+ Gave primitive Lisp an exact garbage collector for CELLs (aka everything but strings)
|
|
+ Added a concatination program to make dealing with line macros easier for M0-macro programmers
|
|
|
|
** Changed
|
|
+ Enhanced Forth to better fit memory space
|
|
|
|
** Fixed
|
|
Fixed arrangement of spaces in forth to prevent the small input space bug
|
|
|
|
** Removed
|
|
|
|
* 0.0.2 - 2016-11-01
|
|
** Added
|
|
+ Created xeh tool in C for more cross platform debugging
|
|
+ Created M0 in hex2
|
|
+ Documented build steps in notes.org
|
|
+ Imported CMPSKIP instructions that operate on 2 registers
|
|
+ Imported CMPJUMP instructions that operate on 3 registers
|
|
+ Incorporated bounds checking on all vm->Memory accesses
|
|
+ Wrote the forth implementation in assembly
|
|
|
|
** Changed
|
|
+ Renamed xeh1 files to match current naming standard
|
|
+ created roms/ to store previously built roms and expanded .gitignore to prevent binary blobs from being checked in.
|
|
+ Revised stage0 Monitor to utilize ANDI and updated the Hex0 version to incorporate the enhancements made previously
|
|
|
|
** Fixed
|
|
+ Fixed leading char bug in M0
|
|
+ Updated Checksums to reflect updates in stage1_assembler-2
|
|
+ Corrected CMPSKIP(u) to CMPSKIP(u)I to match current naming scheme for instructions
|
|
+ Corrected CMPJUMP(u) to CMPJUMP(u)I to match current naming scheme for instructions
|
|
|
|
** Removed
|
|
|
|
* 0.0.1 - 2016-10-02
|
|
** Added
|
|
+ Initial draft of change log added
|
|
|
|
** Changed
|
|
+ Reorganization of Files to group files by stage
|
|
|
|
** Fixed
|
|
+ Line Macro assembler M0 is now self hosting
|